MMCT TEAM
Server IP : 103.191.208.50  /  Your IP : 216.73.216.53
Web Server : LiteSpeed
System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64
User : celkcksm ( 1031)
PHP Version : 7.4.33
Disable Function : show_source, system, shell_exec, passthru, popen, exec
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/celkcksm/demo.ncriptech.com/hotel/demo2/js/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/celkcksm/demo.ncriptech.com/hotel/demo2/js/plugins.js
/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ ! 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(ie, e) {
    "use strict";
    var oe = [],
        r = Object.getPrototypeOf,
        ae = oe.slice,
        g = oe.flat ? function(e) {
            return oe.flat.call(e)
        } : function(e) {
            return oe.concat.apply([], e)
        },
        s = oe.push,
        se = oe.indexOf,
        n = {},
        i = n.toString,
        ue = n.hasOwnProperty,
        o = ue.toString,
        a = o.call(Object),
        le = {},
        v = function(e) {
            return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item
        },
        y = function(e) {
            return null != e && e === e.window
        },
        C = ie.document,
        u = {
            type: !0,
            src: !0,
            nonce: !0,
            noModule: !0
        };

    function m(e, t, n) {
        var r, i, o = (n = n || C).createElement("script");
        if (o.text = e, t)
            for (r in u)(i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i);
        n.head.appendChild(o).parentNode.removeChild(o)
    }

    function x(e) {
        return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[i.call(e)] || "object" : typeof e
    }
    var t = "3.7.1",
        l = /HTML$/i,
        ce = function(e, t) {
            return new ce.fn.init(e, t)
        };

    function c(e) {
        var t = !!e && "length" in e && e.length,
            n = x(e);
        return !v(e) && !y(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e)
    }

    function fe(e, t) {
        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
    }
    ce.fn = ce.prototype = {
        jquery: t,
        constructor: ce,
        length: 0,
        toArray: function() {
            return ae.call(this)
        },
        get: function(e) {
            return null == e ? ae.call(this) : e < 0 ? this[e + this.length] : this[e]
        },
        pushStack: function(e) {
            var t = ce.merge(this.constructor(), e);
            return t.prevObject = this, t
        },
        each: function(e) {
            return ce.each(this, e)
        },
        map: function(n) {
            return this.pushStack(ce.map(this, function(e, t) {
                return n.call(e, t, e)
            }))
        },
        slice: function() {
            return this.pushStack(ae.apply(this, arguments))
        },
        first: function() {
            return this.eq(0)
        },
        last: function() {
            return this.eq(-1)
        },
        even: function() {
            return this.pushStack(ce.grep(this, function(e, t) {
                return (t + 1) % 2
            }))
        },
        odd: function() {
            return this.pushStack(ce.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: s,
        sort: oe.sort,
        splice: oe.splice
    }, ce.extend = ce.fn.extend = function() {
        var e, t, n, r, i, o, a = arguments[0] || {},
            s = 1,
            u = arguments.length,
            l = !1;
        for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || v(a) || (a = {}), s === u && (a = this, s--); s < u; s++)
            if (null != (e = arguments[s]))
                for (t in e) r = e[t], "__proto__" !== t && a !== r && (l && r && (ce.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t], o = i && !Array.isArray(n) ? [] : i || ce.isPlainObject(n) ? n : {}, i = !1, a[t] = ce.extend(l, o, r)) : void 0 !== r && (a[t] = r));
        return a
    }, ce.extend({
        expando: "jQuery" + (t + 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]" !== i.call(e)) && (!(t = r(e)) || "function" == typeof(n = ue.call(t, "constructor") && t.constructor) && o.call(n) === a)
        },
        isEmptyObject: function(e) {
            var t;
            for (t in e) return !1;
            return !0
        },
        globalEval: function(e, t, n) {
            m(e, {
                nonce: t && t.nonce
            }, n)
        },
        each: function(e, t) {
            var n, r = 0;
            if (c(e)) {
                for (n = e.length; r < n; r++)
                    if (!1 === t.call(e[r], r, e[r])) break
            } else
                for (r in e)
                    if (!1 === t.call(e[r], r, e[r])) break;
            return e
        },
        text: function(e) {
            var t, n = "",
                r = 0,
                i = e.nodeType;
            if (!i)
                while (t = e[r++]) n += ce.text(t);
            return 1 === i || 11 === i ? e.textContent : 9 === i ? e.documentElement.textContent : 3 === i || 4 === i ? e.nodeValue : n
        },
        makeArray: function(e, t) {
            var n = t || [];
            return null != e && (c(Object(e)) ? ce.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)), n
        },
        inArray: function(e, t, n) {
            return null == t ? -1 : se.call(t, e, n)
        },
        isXMLDoc: function(e) {
            var t = e && e.namespaceURI,
                n = e && (e.ownerDocument || e).documentElement;
            return !l.test(t || n && n.nodeName || "HTML")
        },
        merge: function(e, t) {
            for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r];
            return e.length = i, e
        },
        grep: function(e, t, n) {
            for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) !t(e[i], i) !== a && r.push(e[i]);
            return r
        },
        map: function(e, t, n) {
            var r, i, o = 0,
                a = [];
            if (c(e))
                for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && a.push(i);
            else
                for (o in e) null != (i = t(e[o], o, n)) && a.push(i);
            return g(a)
        },
        guid: 1,
        support: le
    }), "function" == typeof Symbol && (ce.fn[Symbol.iterator] = oe[Symbol.iterator]), ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
        n["[object " + t + "]"] = t.toLowerCase()
    });
    var pe = oe.pop,
        de = oe.sort,
        he = oe.splice,
        ge = "[\\x20\\t\\r\\n\\f]",
        ve = new RegExp("^" + ge + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ge + "+$", "g");
    ce.contains = function(e, t) {
        var n = t && t.parentNode;
        return e === n || !(!n || 1 !== n.nodeType || !(e.contains ? e.contains(n) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(n)))
    };
    var f = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;

    function p(e, t) {
        return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e
    }
    ce.escapeSelector = function(e) {
        return (e + "").replace(f, p)
    };
    var ye = C,
        me = s;
    ! function() {
        var e, b, w, o, a, T, r, C, d, i, k = me,
            S = ce.expando,
            E = 0,
            n = 0,
            s = W(),
            c = W(),
            u = W(),
            h = W(),
            l = function(e, t) {
                return e === t && (a = !0), 0
            },
            f = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
            t = "(?:\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
            p = "\\[" + ge + "*(" + t + ")(?:" + ge + "*([*^$|!~]?=)" + ge + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + t + "))|)" + ge + "*\\]",
            g = ":(" + t + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + p + ")*)|.*)\\)|)",
            v = new RegExp(ge + "+", "g"),
            y = new RegExp("^" + ge + "*," + ge + "*"),
            m = new RegExp("^" + ge + "*([>+~]|" + ge + ")" + ge + "*"),
            x = new RegExp(ge + "|>"),
            j = new RegExp(g),
            A = new RegExp("^" + t + "$"),
            D = {
                ID: new RegExp("^#(" + t + ")"),
                CLASS: new RegExp("^\\.(" + t + ")"),
                TAG: new RegExp("^(" + t + "|[*])"),
                ATTR: new RegExp("^" + p),
                PSEUDO: new RegExp("^" + g),
                CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ge + "*(even|odd|(([+-]|)(\\d*)n|)" + ge + "*(?:([+-]|)" + ge + "*(\\d+)|))" + ge + "*\\)|)", "i"),
                bool: new RegExp("^(?:" + f + ")$", "i"),
                needsContext: new RegExp("^" + ge + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ge + "*((?:-\\d)?\\d*)" + ge + "*\\)|)(?=[^-]|$)", "i")
            },
            N = /^(?:input|select|textarea|button)$/i,
            q = /^h\d$/i,
            L = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
            H = /[+~]/,
            O = new RegExp("\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\([^\\r\\n\\f])", "g"),
            P = 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))
            },
            M = function() {
                V()
            },
            R = J(function(e) {
                return !0 === e.disabled && fe(e, "fieldset")
            }, {
                dir: "parentNode",
                next: "legend"
            });
        try {
            k.apply(oe = ae.call(ye.childNodes), ye.childNodes), oe[ye.childNodes.length].nodeType
        } catch (e) {
            k = {
                apply: function(e, t) {
                    me.apply(e, ae.call(t))
                },
                call: function(e) {
                    me.apply(e, ae.call(arguments, 1))
                }
            }
        }

        function I(t, e, n, r) {
            var i, o, a, s, u, l, c, f = e && e.ownerDocument,
                p = e ? e.nodeType : 9;
            if (n = n || [], "string" != typeof t || !t || 1 !== p && 9 !== p && 11 !== p) return n;
            if (!r && (V(e), e = e || T, C)) {
                if (11 !== p && (u = L.exec(t)))
                    if (i = u[1]) {
                        if (9 === p) {
                            if (!(a = e.getElementById(i))) return n;
                            if (a.id === i) return k.call(n, a), n
                        } else if (f && (a = f.getElementById(i)) && I.contains(e, a) && a.id === i) return k.call(n, a), n
                    } else {
                        if (u[2]) return k.apply(n, e.getElementsByTagName(t)), n;
                        if ((i = u[3]) && e.getElementsByClassName) return k.apply(n, e.getElementsByClassName(i)), n
                    }
                if (!(h[t + " "] || d && d.test(t))) {
                    if (c = t, f = e, 1 === p && (x.test(t) || m.test(t))) {
                        (f = H.test(t) && U(e.parentNode) || e) == e && le.scope || ((s = e.getAttribute("id")) ? s = ce.escapeSelector(s) : e.setAttribute("id", s = S)), o = (l = Y(t)).length;
                        while (o--) l[o] = (s ? "#" + s : ":scope") + " " + Q(l[o]);
                        c = l.join(",")
                    }
                    try {
                        return k.apply(n, f.querySelectorAll(c)), n
                    } catch (e) {
                        h(t, !0)
                    } finally {
                        s === S && e.removeAttribute("id")
                    }
                }
            }
            return re(t.replace(ve, "$1"), e, n, r)
        }

        function W() {
            var r = [];
            return function e(t, n) {
                return r.push(t + " ") > b.cacheLength && delete e[r.shift()], e[t + " "] = n
            }
        }

        function F(e) {
            return e[S] = !0, e
        }

        function $(e) {
            var t = T.createElement("fieldset");
            try {
                return !!e(t)
            } catch (e) {
                return !1
            } finally {
                t.parentNode && t.parentNode.removeChild(t), t = null
            }
        }

        function B(t) {
            return function(e) {
                return fe(e, "input") && e.type === t
            }
        }

        function _(t) {
            return function(e) {
                return (fe(e, "input") || fe(e, "button")) && e.type === t
            }
        }

        function z(t) {
            return function(e) {
                return "form" in e ? e.parentNode && !1 === e.disabled ? "label" in e ? "label" in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && R(e) === t : e.disabled === t : "label" in e && e.disabled === t
            }
        }

        function X(a) {
            return F(function(o) {
                return o = +o, F(function(e, t) {
                    var n, r = a([], e.length, o),
                        i = r.length;
                    while (i--) e[n = r[i]] && (e[n] = !(t[n] = e[n]))
                })
            })
        }

        function U(e) {
            return e && "undefined" != typeof e.getElementsByTagName && e
        }

        function V(e) {
            var t, n = e ? e.ownerDocument || e : ye;
            return n != T && 9 === n.nodeType && n.documentElement && (r = (T = n).documentElement, C = !ce.isXMLDoc(T), i = r.matches || r.webkitMatchesSelector || r.msMatchesSelector, r.msMatchesSelector && ye != T && (t = T.defaultView) && t.top !== t && t.addEventListener("unload", M), le.getById = $(function(e) {
                return r.appendChild(e).id = ce.expando, !T.getElementsByName || !T.getElementsByName(ce.expando).length
            }), le.disconnectedMatch = $(function(e) {
                return i.call(e, "*")
            }), le.scope = $(function() {
                return T.querySelectorAll(":scope")
            }), le.cssHas = $(function() {
                try {
                    return T.querySelector(":has(*,:jqfake)"), !1
                } catch (e) {
                    return !0
                }
            }), le.getById ? (b.filter.ID = function(e) {
                var t = e.replace(O, P);
                return function(e) {
                    return e.getAttribute("id") === t
                }
            }, b.find.ID = function(e, t) {
                if ("undefined" != typeof t.getElementById && C) {
                    var n = t.getElementById(e);
                    return n ? [n] : []
                }
            }) : (b.filter.ID = function(e) {
                var n = e.replace(O, P);
                return function(e) {
                    var t = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id");
                    return t && t.value === n
                }
            }, b.find.ID = function(e, t) {
                if ("undefined" != typeof t.getElementById && C) {
                    var n, r, i, o = t.getElementById(e);
                    if (o) {
                        if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
                        i = t.getElementsByName(e), r = 0;
                        while (o = i[r++])
                            if ((n = o.getAttributeNode("id")) && n.value === e) return [o]
                    }
                    return []
                }
            }), b.find.TAG = function(e, t) {
                return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : t.querySelectorAll(e)
            }, b.find.CLASS = function(e, t) {
                if ("undefined" != typeof t.getElementsByClassName && C) return t.getElementsByClassName(e)
            }, d = [], $(function(e) {
                var t;
                r.appendChild(e).innerHTML = "<a id='" + S + "' href='' disabled='disabled'></a><select id='" + S + "-\r\\' disabled='disabled'><option selected=''></option></select>", e.querySelectorAll("[selected]").length || d.push("\\[" + ge + "*(?:value|" + f + ")"), e.querySelectorAll("[id~=" + S + "-]").length || d.push("~="), e.querySelectorAll("a#" + S + "+*").length || d.push(".#.+[+~]"), e.querySelectorAll(":checked").length || d.push(":checked"), (t = T.createElement("input")).setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), r.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && d.push(":enabled", ":disabled"), (t = T.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || d.push("\\[" + ge + "*name" + ge + "*=" + ge + "*(?:''|\"\")")
            }), le.cssHas || d.push(":has"), d = d.length && new RegExp(d.join("|")), l = function(e, t) {
                if (e === t) return a = !0, 0;
                var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
                return n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !le.sortDetached && t.compareDocumentPosition(e) === n ? e === T || e.ownerDocument == ye && I.contains(ye, e) ? -1 : t === T || t.ownerDocument == ye && I.contains(ye, t) ? 1 : o ? se.call(o, e) - se.call(o, t) : 0 : 4 & n ? -1 : 1)
            }), T
        }
        for (e in I.matches = function(e, t) {
                return I(e, null, null, t)
            }, I.matchesSelector = function(e, t) {
                if (V(e), C && !h[t + " "] && (!d || !d.test(t))) try {
                    var n = i.call(e, t);
                    if (n || le.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n
                } catch (e) {
                    h(t, !0)
                }
                return 0 < I(t, T, null, [e]).length
            }, I.contains = function(e, t) {
                return (e.ownerDocument || e) != T && V(e), ce.contains(e, t)
            }, I.attr = function(e, t) {
                (e.ownerDocument || e) != T && V(e);
                var n = b.attrHandle[t.toLowerCase()],
                    r = n && ue.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !C) : void 0;
                return void 0 !== r ? r : e.getAttribute(t)
            }, I.error = function(e) {
                throw new Error("Syntax error, unrecognized expression: " + e)
            }, ce.uniqueSort = function(e) {
                var t, n = [],
                    r = 0,
                    i = 0;
                if (a = !le.sortStable, o = !le.sortStable && ae.call(e, 0), de.call(e, l), a) {
                    while (t = e[i++]) t === e[i] && (r = n.push(i));
                    while (r--) he.call(e, n[r], 1)
                }
                return o = null, e
            }, ce.fn.uniqueSort = function() {
                return this.pushStack(ce.uniqueSort(ae.apply(this)))
            }, (b = ce.expr = {
                cacheLength: 50,
                createPseudo: F,
                match: D,
                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(O, P), e[3] = (e[3] || e[4] || e[5] || "").replace(O, P), "~=" === 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] || I.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] && I.error(e[0]), e
                    },
                    PSEUDO: function(e) {
                        var t, n = !e[6] && e[2];
                        return D.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && j.test(n) && (t = Y(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(O, P).toLowerCase();
                        return "*" === e ? function() {
                            return !0
                        } : function(e) {
                            return fe(e, t)
                        }
                    },
                    CLASS: function(e) {
                        var t = s[e + " "];
                        return t || (t = new RegExp("(^|" + ge + ")" + e + "(" + ge + "|$)")) && s(e, function(e) {
                            return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "")
                        })
                    },
                    ATTR: function(n, r, i) {
                        return function(e) {
                            var t = I.attr(e, n);
                            return null == t ? "!=" === r : !r || (t += "", "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t.indexOf(i) : "*=" === r ? i && -1 < t.indexOf(i) : "$=" === r ? i && t.slice(-i.length) === i : "~=" === r ? -1 < (" " + t.replace(v, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-"))
                        }
                    },
                    CHILD: function(d, e, t, h, g) {
                        var v = "nth" !== d.slice(0, 3),
                            y = "last" !== d.slice(-4),
                            m = "of-type" === e;
                        return 1 === h && 0 === g ? function(e) {
                            return !!e.parentNode
                        } : function(e, t, n) {
                            var r, i, o, a, s, u = v !== y ? "nextSibling" : "previousSibling",
                                l = e.parentNode,
                                c = m && e.nodeName.toLowerCase(),
                                f = !n && !m,
                                p = !1;
                            if (l) {
                                if (v) {
                                    while (u) {
                                        o = e;
                                        while (o = o[u])
                                            if (m ? fe(o, c) : 1 === o.nodeType) return !1;
                                        s = u = "only" === d && !s && "nextSibling"
                                    }
                                    return !0
                                }
                                if (s = [y ? l.firstChild : l.lastChild], y && f) {
                                    p = (a = (r = (i = l[S] || (l[S] = {}))[d] || [])[0] === E && r[1]) && r[2], o = a && l.childNodes[a];
                                    while (o = ++a && o && o[u] || (p = a = 0) || s.pop())
                                        if (1 === o.nodeType && ++p && o === e) {
                                            i[d] = [E, a, p];
                                            break
                                        }
                                } else if (f && (p = a = (r = (i = e[S] || (e[S] = {}))[d] || [])[0] === E && r[1]), !1 === p)
                                    while (o = ++a && o && o[u] || (p = a = 0) || s.pop())
                                        if ((m ? fe(o, c) : 1 === o.nodeType) && ++p && (f && ((i = o[S] || (o[S] = {}))[d] = [E, p]), o === e)) break;
                                return (p -= g) === h || p % h == 0 && 0 <= p / h
                            }
                        }
                    },
                    PSEUDO: function(e, o) {
                        var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || I.error("unsupported pseudo: " + e);
                        return a[S] ? a(o) : 1 < a.length ? (t = [e, e, "", o], b.setFilters.hasOwnProperty(e.toLowerCase()) ? F(function(e, t) {
                            var n, r = a(e, o),
                                i = r.length;
                            while (i--) e[n = se.call(e, r[i])] = !(t[n] = r[i])
                        }) : function(e) {
                            return a(e, 0, t)
                        }) : a
                    }
                },
                pseudos: {
                    not: F(function(e) {
                        var r = [],
                            i = [],
                            s = ne(e.replace(ve, "$1"));
                        return s[S] ? F(function(e, t, n, r) {
                            var i, o = s(e, null, r, []),
                                a = e.length;
                            while (a--)(i = o[a]) && (e[a] = !(t[a] = i))
                        }) : function(e, t, n) {
                            return r[0] = e, s(r, null, n, i), r[0] = null, !i.pop()
                        }
                    }),
                    has: F(function(t) {
                        return function(e) {
                            return 0 < I(t, e).length
                        }
                    }),
                    contains: F(function(t) {
                        return t = t.replace(O, P),
                            function(e) {
                                return -1 < (e.textContent || ce.text(e)).indexOf(t)
                            }
                    }),
                    lang: F(function(n) {
                        return A.test(n || "") || I.error("unsupported lang: " + n), n = n.replace(O, P).toLowerCase(),
                            function(e) {
                                var t;
                                do {
                                    if (t = C ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-")
                                } while ((e = e.parentNode) && 1 === e.nodeType);
                                return !1
                            }
                    }),
                    target: function(e) {
                        var t = ie.location && ie.location.hash;
                        return t && t.slice(1) === e.id
                    },
                    root: function(e) {
                        return e === r
                    },
                    focus: function(e) {
                        return e === function() {
                            try {
                                return T.activeElement
                            } catch (e) {}
                        }() && T.hasFocus() && !!(e.type || e.href || ~e.tabIndex)
                    },
                    enabled: z(!1),
                    disabled: z(!0),
                    checked: function(e) {
                        return fe(e, "input") && !!e.checked || fe(e, "option") && !!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 !b.pseudos.empty(e)
                    },
                    header: function(e) {
                        return q.test(e.nodeName)
                    },
                    input: function(e) {
                        return N.test(e.nodeName)
                    },
                    button: function(e) {
                        return fe(e, "input") && "button" === e.type || fe(e, "button")
                    },
                    text: function(e) {
                        var t;
                        return fe(e, "input") && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
                    },
                    first: X(function() {
                        return [0]
                    }),
                    last: X(function(e, t) {
                        return [t - 1]
                    }),
                    eq: X(function(e, t, n) {
                        return [n < 0 ? n + t : n]
                    }),
                    even: X(function(e, t) {
                        for (var n = 0; n < t; n += 2) e.push(n);
                        return e
                    }),
                    odd: X(function(e, t) {
                        for (var n = 1; n < t; n += 2) e.push(n);
                        return e
                    }),
                    lt: X(function(e, t, n) {
                        var r;
                        for (r = n < 0 ? n + t : t < n ? t : n; 0 <= --r;) e.push(r);
                        return e
                    }),
                    gt: X(function(e, t, n) {
                        for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
                        return e
                    })
                }
            }).pseudos.nth = b.pseudos.eq, {
                radio: !0,
                checkbox: !0,
                file: !0,
                password: !0,
                image: !0
            }) b.pseudos[e] = B(e);
        for (e in {
                submit: !0,
                reset: !0
            }) b.pseudos[e] = _(e);

        function G() {}

        function Y(e, t) {
            var n, r, i, o, a, s, u, l = c[e + " "];
            if (l) return t ? 0 : l.slice(0);
            a = e, s = [], u = b.preFilter;
            while (a) {
                for (o in n && !(r = y.exec(a)) || (r && (a = a.slice(r[0].length) || a), s.push(i = [])), n = !1, (r = m.exec(a)) && (n = r.shift(), i.push({
                        value: n,
                        type: r[0].replace(ve, " ")
                    }), a = a.slice(n.length)), b.filter) !(r = D[o].exec(a)) || u[o] && !(r = u[o](r)) || (n = r.shift(), i.push({
                    value: n,
                    type: o,
                    matches: r
                }), a = a.slice(n.length));
                if (!n) break
            }
            return t ? a.length : a ? I.error(e) : c(e, s).slice(0)
        }

        function Q(e) {
            for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
            return r
        }

        function J(a, e, t) {
            var s = e.dir,
                u = e.next,
                l = u || s,
                c = t && "parentNode" === l,
                f = n++;
            return e.first ? function(e, t, n) {
                while (e = e[s])
                    if (1 === e.nodeType || c) return a(e, t, n);
                return !1
            } : function(e, t, n) {
                var r, i, o = [E, f];
                if (n) {
                    while (e = e[s])
                        if ((1 === e.nodeType || c) && a(e, t, n)) return !0
                } else
                    while (e = e[s])
                        if (1 === e.nodeType || c)
                            if (i = e[S] || (e[S] = {}), u && fe(e, u)) e = e[s] || e;
                            else {
                                if ((r = i[l]) && r[0] === E && r[1] === f) return o[2] = r[2];
                                if ((i[l] = o)[2] = a(e, t, n)) return !0
                            } return !1
            }
        }

        function K(i) {
            return 1 < i.length ? function(e, t, n) {
                var r = i.length;
                while (r--)
                    if (!i[r](e, t, n)) return !1;
                return !0
            } : i[0]
        }

        function Z(e, t, n, r, i) {
            for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++)(o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s)));
            return a
        }

        function ee(d, h, g, v, y, e) {
            return v && !v[S] && (v = ee(v)), y && !y[S] && (y = ee(y, e)), F(function(e, t, n, r) {
                var i, o, a, s, u = [],
                    l = [],
                    c = t.length,
                    f = e || function(e, t, n) {
                        for (var r = 0, i = t.length; r < i; r++) I(e, t[r], n);
                        return n
                    }(h || "*", n.nodeType ? [n] : n, []),
                    p = !d || !e && h ? f : Z(f, u, d, n, r);
                if (g ? g(p, s = y || (e ? d : c || v) ? [] : t, n, r) : s = p, v) {
                    i = Z(s, l), v(i, [], n, r), o = i.length;
                    while (o--)(a = i[o]) && (s[l[o]] = !(p[l[o]] = a))
                }
                if (e) {
                    if (y || d) {
                        if (y) {
                            i = [], o = s.length;
                            while (o--)(a = s[o]) && i.push(p[o] = a);
                            y(null, s = [], i, r)
                        }
                        o = s.length;
                        while (o--)(a = s[o]) && -1 < (i = y ? se.call(e, a) : u[o]) && (e[i] = !(t[i] = a))
                    }
                } else s = Z(s === t ? s.splice(c, s.length) : s), y ? y(null, t, s, r) : k.apply(t, s)
            })
        }

        function te(e) {
            for (var i, t, n, r = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = J(function(e) {
                    return e === i
                }, a, !0), l = J(function(e) {
                    return -1 < se.call(i, e)
                }, a, !0), c = [function(e, t, n) {
                    var r = !o && (n || t != w) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n));
                    return i = null, r
                }]; s < r; s++)
                if (t = b.relative[e[s].type]) c = [J(K(c), t)];
                else {
                    if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) {
                        for (n = ++s; n < r; n++)
                            if (b.relative[e[n].type]) break;
                        return ee(1 < s && K(c), 1 < s && Q(e.slice(0, s - 1).concat({
                            value: " " === e[s - 2].type ? "*" : ""
                        })).replace(ve, "$1"), t, s < n && te(e.slice(s, n)), n < r && te(e = e.slice(n)), n < r && Q(e))
                    }
                    c.push(t)
                }
            return K(c)
        }

        function ne(e, t) {
            var n, v, y, m, x, r, i = [],
                o = [],
                a = u[e + " "];
            if (!a) {
                t || (t = Y(e)), n = t.length;
                while (n--)(a = te(t[n]))[S] ? i.push(a) : o.push(a);
                (a = u(e, (v = o, m = 0 < (y = i).length, x = 0 < v.length, r = function(e, t, n, r, i) {
                    var o, a, s, u = 0,
                        l = "0",
                        c = e && [],
                        f = [],
                        p = w,
                        d = e || x && b.find.TAG("*", i),
                        h = E += null == p ? 1 : Math.random() || .1,
                        g = d.length;
                    for (i && (w = t == T || t || i); l !== g && null != (o = d[l]); l++) {
                        if (x && o) {
                            a = 0, t || o.ownerDocument == T || (V(o), n = !C);
                            while (s = v[a++])
                                if (s(o, t || T, n)) {
                                    k.call(r, o);
                                    break
                                }
                            i && (E = h)
                        }
                        m && ((o = !s && o) && u--, e && c.push(o))
                    }
                    if (u += l, m && l !== u) {
                        a = 0;
                        while (s = y[a++]) s(c, f, t, n);
                        if (e) {
                            if (0 < u)
                                while (l--) c[l] || f[l] || (f[l] = pe.call(r));
                            f = Z(f)
                        }
                        k.apply(r, f), i && !e && 0 < f.length && 1 < u + y.length && ce.uniqueSort(r)
                    }
                    return i && (E = h, w = p), c
                }, m ? F(r) : r))).selector = e
            }
            return a
        }

        function re(e, t, n, r) {
            var i, o, a, s, u, l = "function" == typeof e && e,
                c = !r && Y(e = l.selector || e);
            if (n = n || [], 1 === c.length) {
                if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && 9 === t.nodeType && C && b.relative[o[1].type]) {
                    if (!(t = (b.find.ID(a.matches[0].replace(O, P), t) || [])[0])) return n;
                    l && (t = t.parentNode), e = e.slice(o.shift().value.length)
                }
                i = D.needsContext.test(e) ? 0 : o.length;
                while (i--) {
                    if (a = o[i], b.relative[s = a.type]) break;
                    if ((u = b.find[s]) && (r = u(a.matches[0].replace(O, P), H.test(o[0].type) && U(t.parentNode) || t))) {
                        if (o.splice(i, 1), !(e = r.length && Q(o))) return k.apply(n, r), n;
                        break
                    }
                }
            }
            return (l || ne(e, c))(r, t, !C, n, !t || H.test(e) && U(t.parentNode) || t), n
        }
        G.prototype = b.filters = b.pseudos, b.setFilters = new G, le.sortStable = S.split("").sort(l).join("") === S, V(), le.sortDetached = $(function(e) {
            return 1 & e.compareDocumentPosition(T.createElement("fieldset"))
        }), ce.find = I, ce.expr[":"] = ce.expr.pseudos, ce.unique = ce.uniqueSort, I.compile = ne, I.select = re, I.setDocument = V, I.tokenize = Y, I.escape = ce.escapeSelector, I.getText = ce.text, I.isXML = ce.isXMLDoc, I.selectors = ce.expr, I.support = ce.support, I.uniqueSort = ce.uniqueSort
    }();
    var d = function(e, t, n) {
            var r = [],
                i = void 0 !== n;
            while ((e = e[t]) && 9 !== e.nodeType)
                if (1 === e.nodeType) {
                    if (i && ce(e).is(n)) break;
                    r.push(e)
                }
            return r
        },
        h = function(e, t) {
            for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
            return n
        },
        b = ce.expr.match.needsContext,
        w = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;

    function T(e, n, r) {
        return v(n) ? ce.grep(e, function(e, t) {
            return !!n.call(e, t, e) !== r
        }) : n.nodeType ? ce.grep(e, function(e) {
            return e === n !== r
        }) : "string" != typeof n ? ce.grep(e, function(e) {
            return -1 < se.call(n, e) !== r
        }) : ce.filter(n, e, r)
    }
    ce.filter = function(e, t, n) {
        var r = t[0];
        return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? ce.find.matchesSelector(r, e) ? [r] : [] : ce.find.matches(e, ce.grep(t, function(e) {
            return 1 === e.nodeType
        }))
    }, ce.fn.extend({
        find: function(e) {
            var t, n, r = this.length,
                i = this;
            if ("string" != typeof e) return this.pushStack(ce(e).filter(function() {
                for (t = 0; t < r; t++)
                    if (ce.contains(i[t], this)) return !0
            }));
            for (n = this.pushStack([]), t = 0; t < r; t++) ce.find(e, i[t], n);
            return 1 < r ? ce.uniqueSort(n) : n
        },
        filter: function(e) {
            return this.pushStack(T(this, e || [], !1))
        },
        not: function(e) {
            return this.pushStack(T(this, e || [], !0))
        },
        is: function(e) {
            return !!T(this, "string" == typeof e && b.test(e) ? ce(e) : e || [], !1).length
        }
    });
    var k, S = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
    (ce.fn.init = function(e, t, n) {
        var r, i;
        if (!e) return this;
        if (n = n || k, "string" == typeof e) {
            if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : S.exec(e)) || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
            if (r[1]) {
                if (t = t instanceof ce ? t[0] : t, ce.merge(this, ce.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : C, !0)), w.test(r[1]) && ce.isPlainObject(t))
                    for (r in t) v(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
                return this
            }
            return (i = C.getElementById(r[2])) && (this[0] = i, this.length = 1), this
        }
        return e.nodeType ? (this[0] = e, this.length = 1, this) : v(e) ? void 0 !== n.ready ? n.ready(e) : e(ce) : ce.makeArray(e, this)
    }).prototype = ce.fn, k = ce(C);
    var E = /^(?:parents|prev(?:Until|All))/,
        j = {
            children: !0,
            contents: !0,
            next: !0,
            prev: !0
        };

    function A(e, t) {
        while ((e = e[t]) && 1 !== e.nodeType);
        return e
    }
    ce.fn.extend({
        has: function(e) {
            var t = ce(e, this),
                n = t.length;
            return this.filter(function() {
                for (var e = 0; e < n; e++)
                    if (ce.contains(this, t[e])) return !0
            })
        },
        closest: function(e, t) {
            var n, r = 0,
                i = this.length,
                o = [],
                a = "string" != typeof e && ce(e);
            if (!b.test(e))
                for (; r < i; r++)
                    for (n = this[r]; n && n !== t; n = n.parentNode)
                        if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && ce.find.matchesSelector(n, e))) {
                            o.push(n);
                            break
                        }
            return this.pushStack(1 < o.length ? ce.uniqueSort(o) : o)
        },
        index: function(e) {
            return e ? "string" == typeof e ? se.call(ce(e), this[0]) : se.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
        },
        add: function(e, t) {
            return this.pushStack(ce.uniqueSort(ce.merge(this.get(), ce(e, t))))
        },
        addBack: function(e) {
            return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
        }
    }), ce.each({
        parent: function(e) {
            var t = e.parentNode;
            return t && 11 !== t.nodeType ? t : null
        },
        parents: function(e) {
            return d(e, "parentNode")
        },
        parentsUntil: function(e, t, n) {
            return d(e, "parentNode", n)
        },
        next: function(e) {
            return A(e, "nextSibling")
        },
        prev: function(e) {
            return A(e, "previousSibling")
        },
        nextAll: function(e) {
            return d(e, "nextSibling")
        },
        prevAll: function(e) {
            return d(e, "previousSibling")
        },
        nextUntil: function(e, t, n) {
            return d(e, "nextSibling", n)
        },
        prevUntil: function(e, t, n) {
            return d(e, "previousSibling", n)
        },
        siblings: function(e) {
            return h((e.parentNode || {}).firstChild, e)
        },
        children: function(e) {
            return h(e.firstChild)
        },
        contents: function(e) {
            return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (fe(e, "template") && (e = e.content || e), ce.merge([], e.childNodes))
        }
    }, function(r, i) {
        ce.fn[r] = function(e, t) {
            var n = ce.map(this, i, e);
            return "Until" !== r.slice(-5) && (t = e), t && "string" == typeof t && (n = ce.filter(t, n)), 1 < this.length && (j[r] || ce.uniqueSort(n), E.test(r) && n.reverse()), this.pushStack(n)
        }
    });
    var D = /[^\x20\t\r\n\f]+/g;

    function N(e) {
        return e
    }

    function q(e) {
        throw e
    }

    function L(e, t, n, r) {
        var i;
        try {
            e && v(i = e.promise) ? i.call(e).done(t).fail(n) : e && v(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r))
        } catch (e) {
            n.apply(void 0, [e])
        }
    }
    ce.Callbacks = function(r) {
        var e, n;
        r = "string" == typeof r ? (e = r, n = {}, ce.each(e.match(D) || [], function(e, t) {
            n[t] = !0
        }), n) : ce.extend({}, r);
        var i, t, o, a, s = [],
            u = [],
            l = -1,
            c = function() {
                for (a = a || r.once, o = i = !0; u.length; l = -1) {
                    t = u.shift();
                    while (++l < s.length) !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && (l = s.length, t = !1)
                }
                r.memory || (t = !1), i = !1, a && (s = t ? [] : "")
            },
            f = {
                add: function() {
                    return s && (t && !i && (l = s.length - 1, u.push(t)), function n(e) {
                        ce.each(e, function(e, t) {
                            v(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== x(t) && n(t)
                        })
                    }(arguments), t && !i && c()), this
                },
                remove: function() {
                    return ce.each(arguments, function(e, t) {
                        var n;
                        while (-1 < (n = ce.inArray(t, s, n))) s.splice(n, 1), n <= l && l--
                    }), this
                },
                has: function(e) {
                    return e ? -1 < ce.inArray(e, s) : 0 < s.length
                },
                empty: function() {
                    return s && (s = []), this
                },
                disable: function() {
                    return a = u = [], s = t = "", this
                },
                disabled: function() {
                    return !s
                },
                lock: function() {
                    return a = u = [], t || i || (s = t = ""), this
                },
                locked: function() {
                    return !!a
                },
                fireWith: function(e, t) {
                    return a || (t = [e, (t = t || []).slice ? t.slice() : t], u.push(t), i || c()), this
                },
                fire: function() {
                    return f.fireWith(this, arguments), this
                },
                fired: function() {
                    return !!o
                }
            };
        return f
    }, ce.extend({
        Deferred: function(e) {
            var o = [
                    ["notify", "progress", ce.Callbacks("memory"), ce.Callbacks("memory"), 2],
                    ["resolve", "done", ce.Callbacks("once memory"), ce.Callbacks("once memory"), 0, "resolved"],
                    ["reject", "fail", ce.Callbacks("once memory"), ce.Callbacks("once memory"), 1, "rejected"]
                ],
                i = "pending",
                a = {
                    state: function() {
                        return i
                    },
                    always: function() {
                        return s.done(arguments).fail(arguments), this
                    },
                    "catch": function(e) {
                        return a.then(null, e)
                    },
                    pipe: function() {
                        var i = arguments;
                        return ce.Deferred(function(r) {
                            ce.each(o, function(e, t) {
                                var n = v(i[t[4]]) && i[t[4]];
                                s[t[1]](function() {
                                    var e = n && n.apply(this, arguments);
                                    e && v(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments)
                                })
                            }), i = null
                        }).promise()
                    },
                    then: function(t, n, r) {
                        var u = 0;

                        function l(i, o, a, s) {
                            return function() {
                                var n = this,
                                    r = arguments,
                                    e = function() {
                                        var e, t;
                                        if (!(i < u)) {
                                            if ((e = a.apply(n, r)) === o.promise()) throw new TypeError("Thenable self-resolution");
                                            t = e && ("object" == typeof e || "function" == typeof e) && e.then, v(t) ? s ? t.call(e, l(u, o, N, s), l(u, o, q, s)) : (u++, t.call(e, l(u, o, N, s), l(u, o, q, s), l(u, o, N, o.notifyWith))) : (a !== N && (n = void 0, r = [e]), (s || o.resolveWith)(n, r))
                                        }
                                    },
                                    t = s ? e : function() {
                                        try {
                                            e()
                                        } catch (e) {
                                            ce.Deferred.exceptionHook && ce.Deferred.exceptionHook(e, t.error), u <= i + 1 && (a !== q && (n = void 0, r = [e]), o.rejectWith(n, r))
                                        }
                                    };
                                i ? t() : (ce.Deferred.getErrorHook ? t.error = ce.Deferred.getErrorHook() : ce.Deferred.getStackHook && (t.error = ce.Deferred.getStackHook()), ie.setTimeout(t))
                            }
                        }
                        return ce.Deferred(function(e) {
                            o[0][3].add(l(0, e, v(r) ? r : N, e.notifyWith)), o[1][3].add(l(0, e, v(t) ? t : N)), o[2][3].add(l(0, e, v(n) ? n : q))
                        }).promise()
                    },
                    promise: function(e) {
                        return null != e ? ce.extend(e, a) : a
                    }
                },
                s = {};
            return ce.each(o, function(e, t) {
                var n = t[2],
                    r = t[5];
                a[t[1]] = n.add, r && n.add(function() {
                    i = r
                }, o[3 - e][2].disable, o[3 - e][3].disable, o[0][2].lock, o[0][3].lock), n.add(t[3].fire), s[t[0]] = function() {
                    return s[t[0] + "With"](this === s ? void 0 : this, arguments), this
                }, s[t[0] + "With"] = n.fireWith
            }), a.promise(s), e && e.call(s, s), s
        },
        when: function(e) {
            var n = arguments.length,
                t = n,
                r = Array(t),
                i = ae.call(arguments),
                o = ce.Deferred(),
                a = function(t) {
                    return function(e) {
                        r[t] = this, i[t] = 1 < arguments.length ? ae.call(arguments) : e, --n || o.resolveWith(r, i)
                    }
                };
            if (n <= 1 && (L(e, o.done(a(t)).resolve, o.reject, !n), "pending" === o.state() || v(i[t] && i[t].then))) return o.then();
            while (t--) L(i[t], a(t), o.reject);
            return o.promise()
        }
    });
    var H = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
    ce.Deferred.exceptionHook = function(e, t) {
        ie.console && ie.console.warn && e && H.test(e.name) && ie.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t)
    }, ce.readyException = function(e) {
        ie.setTimeout(function() {
            throw e
        })
    };
    var O = ce.Deferred();

    function P() {
        C.removeEventListener("DOMContentLoaded", P), ie.removeEventListener("load", P), ce.ready()
    }
    ce.fn.ready = function(e) {
        return O.then(e)["catch"](function(e) {
            ce.readyException(e)
        }), this
    }, ce.extend({
        isReady: !1,
        readyWait: 1,
        ready: function(e) {
            (!0 === e ? --ce.readyWait : ce.isReady) || (ce.isReady = !0) !== e && 0 < --ce.readyWait || O.resolveWith(C, [ce])
        }
    }), ce.ready.then = O.then, "complete" === C.readyState || "loading" !== C.readyState && !C.documentElement.doScroll ? ie.setTimeout(ce.ready) : (C.addEventListener("DOMContentLoaded", P), ie.addEventListener("load", P));
    var M = function(e, t, n, r, i, o, a) {
            var s = 0,
                u = e.length,
                l = null == n;
            if ("object" === x(n))
                for (s in i = !0, n) M(e, t, s, n[s], !0, o, a);
            else if (void 0 !== r && (i = !0, v(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function(e, t, n) {
                    return l.call(ce(e), n)
                })), t))
                for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
            return i ? e : l ? t.call(e) : u ? t(e[0], n) : o
        },
        R = /^-ms-/,
        I = /-([a-z])/g;

    function W(e, t) {
        return t.toUpperCase()
    }

    function F(e) {
        return e.replace(R, "ms-").replace(I, W)
    }
    var $ = function(e) {
        return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
    };

    function B() {
        this.expando = ce.expando + B.uid++
    }
    B.uid = 1, B.prototype = {
        cache: function(e) {
            var t = e[this.expando];
            return t || (t = {}, $(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
                value: t,
                configurable: !0
            }))), t
        },
        set: function(e, t, n) {
            var r, i = this.cache(e);
            if ("string" == typeof t) i[F(t)] = n;
            else
                for (r in t) i[F(r)] = t[r];
            return i
        },
        get: function(e, t) {
            return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][F(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, r = e[this.expando];
            if (void 0 !== r) {
                if (void 0 !== t) {
                    n = (t = Array.isArray(t) ? t.map(F) : (t = F(t)) in r ? [t] : t.match(D) || []).length;
                    while (n--) delete r[t[n]]
                }(void 0 === t || ce.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
            }
        },
        hasData: function(e) {
            var t = e[this.expando];
            return void 0 !== t && !ce.isEmptyObject(t)
        }
    };
    var _ = new B,
        z = new B,
        X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
        U = /[A-Z]/g;

    function V(e, t, n) {
        var r, i;
        if (void 0 === n && 1 === e.nodeType)
            if (r = "data-" + t.replace(U, "-$&").toLowerCase(), "string" == typeof(n = e.getAttribute(r))) {
                try {
                    n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : X.test(i) ? JSON.parse(i) : i)
                } catch (e) {}
                z.set(e, t, n)
            } else n = void 0;
        return n
    }
    ce.extend({
        hasData: function(e) {
            return z.hasData(e) || _.hasData(e)
        },
        data: function(e, t, n) {
            return z.access(e, t, n)
        },
        removeData: function(e, t) {
            z.remove(e, t)
        },
        _data: function(e, t, n) {
            return _.access(e, t, n)
        },
        _removeData: function(e, t) {
            _.remove(e, t)
        }
    }), ce.fn.extend({
        data: function(n, e) {
            var t, r, i, o = this[0],
                a = o && o.attributes;
            if (void 0 === n) {
                if (this.length && (i = z.get(o), 1 === o.nodeType && !_.get(o, "hasDataAttrs"))) {
                    t = a.length;
                    while (t--) a[t] && 0 === (r = a[t].name).indexOf("data-") && (r = F(r.slice(5)), V(o, r, i[r]));
                    _.set(o, "hasDataAttrs", !0)
                }
                return i
            }
            return "object" == typeof n ? this.each(function() {
                z.set(this, n)
            }) : M(this, function(e) {
                var t;
                if (o && void 0 === e) return void 0 !== (t = z.get(o, n)) ? t : void 0 !== (t = V(o, n)) ? t : void 0;
                this.each(function() {
                    z.set(this, n, e)
                })
            }, null, e, 1 < arguments.length, null, !0)
        },
        removeData: function(e) {
            return this.each(function() {
                z.remove(this, e)
            })
        }
    }), ce.extend({
        queue: function(e, t, n) {
            var r;
            if (e) return t = (t || "fx") + "queue", r = _.get(e, t), n && (!r || Array.isArray(n) ? r = _.access(e, t, ce.makeArray(n)) : r.push(n)), r || []
        },
        dequeue: function(e, t) {
            t = t || "fx";
            var n = ce.queue(e, t),
                r = n.length,
                i = n.shift(),
                o = ce._queueHooks(e, t);
            "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, function() {
                ce.dequeue(e, t)
            }, o)), !r && o && o.empty.fire()
        },
        _queueHooks: function(e, t) {
            var n = t + "queueHooks";
            return _.get(e, n) || _.access(e, n, {
                empty: ce.Callbacks("once memory").add(function() {
                    _.remove(e, [t + "queue", n])
                })
            })
        }
    }), ce.fn.extend({
        queue: function(t, n) {
            var e = 2;
            return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? ce.queue(this[0], t) : void 0 === n ? this : this.each(function() {
                var e = ce.queue(this, t, n);
                ce._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && ce.dequeue(this, t)
            })
        },
        dequeue: function(e) {
            return this.each(function() {
                ce.dequeue(this, e)
            })
        },
        clearQueue: function(e) {
            return this.queue(e || "fx", [])
        },
        promise: function(e, t) {
            var n, r = 1,
                i = ce.Deferred(),
                o = this,
                a = this.length,
                s = function() {
                    --r || i.resolveWith(o, [o])
                };
            "string" != typeof e && (t = e, e = void 0), e = e || "fx";
            while (a--)(n = _.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s));
            return s(), i.promise(t)
        }
    });
    var G = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
        Y = new RegExp("^(?:([+-])=|)(" + G + ")([a-z%]*)$", "i"),
        Q = ["Top", "Right", "Bottom", "Left"],
        J = C.documentElement,
        K = function(e) {
            return ce.contains(e.ownerDocument, e)
        },
        Z = {
            composed: !0
        };
    J.getRootNode && (K = function(e) {
        return ce.contains(e.ownerDocument, e) || e.getRootNode(Z) === e.ownerDocument
    });
    var ee = function(e, t) {
        return "none" === (e = t || e).style.display || "" === e.style.display && K(e) && "none" === ce.css(e, "display")
    };

    function te(e, t, n, r) {
        var i, o, a = 20,
            s = r ? function() {
                return r.cur()
            } : function() {
                return ce.css(e, t, "")
            },
            u = s(),
            l = n && n[3] || (ce.cssNumber[t] ? "" : "px"),
            c = e.nodeType && (ce.cssNumber[t] || "px" !== l && +u) && Y.exec(ce.css(e, t));
        if (c && c[3] !== l) {
            u /= 2, l = l || c[3], c = +u || 1;
            while (a--) ce.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o;
            c *= 2, ce.style(e, t, c + l), n = n || []
        }
        return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i
    }
    var ne = {};

    function re(e, t) {
        for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++)(r = e[c]).style && (n = r.style.display, t ? ("none" === n && (l[c] = _.get(r, "display") || null, l[c] || (r.style.display = "")), "" === r.style.display && ee(r) && (l[c] = (u = a = o = void 0, a = (i = r).ownerDocument, s = i.nodeName, (u = ne[s]) || (o = a.body.appendChild(a.createElement(s)), u = ce.css(o, "display"), o.parentNode.removeChild(o), "none" === u && (u = "block"), ne[s] = u)))) : "none" !== n && (l[c] = "none", _.set(r, "display", n)));
        for (c = 0; c < f; c++) null != l[c] && (e[c].style.display = l[c]);
        return e
    }
    ce.fn.extend({
        show: function() {
            return re(this, !0)
        },
        hide: function() {
            return re(this)
        },
        toggle: function(e) {
            return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
                ee(this) ? ce(this).show() : ce(this).hide()
            })
        }
    });
    var xe, be, we = /^(?:checkbox|radio)$/i,
        Te = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
        Ce = /^$|^module$|\/(?:java|ecma)script/i;
    xe = C.createDocumentFragment().appendChild(C.createElement("div")), (be = C.createElement("input")).setAttribute("type", "radio"), be.setAttribute("checked", "checked"), be.setAttribute("name", "t"), xe.appendChild(be), le.checkClone = xe.cloneNode(!0).cloneNode(!0).lastChild.checked, xe.innerHTML = "<textarea>x</textarea>", le.noCloneChecked = !!xe.cloneNode(!0).lastChild.defaultValue, xe.innerHTML = "<option></option>", le.option = !!xe.lastChild;
    var ke = {
        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 Se(e, t) {
        var n;
        return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && fe(e, t) ? ce.merge([e], n) : n
    }

    function Ee(e, t) {
        for (var n = 0, r = e.length; n < r; n++) _.set(e[n], "globalEval", !t || _.get(t[n], "globalEval"))
    }
    ke.tbody = ke.tfoot = ke.colgroup = ke.caption = ke.thead, ke.th = ke.td, le.option || (ke.optgroup = ke.option = [1, "<select multiple='multiple'>", "</select>"]);
    var je = /<|&#?\w+;/;

    function Ae(e, t, n, r, i) {
        for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++)
            if ((o = e[d]) || 0 === o)
                if ("object" === x(o)) ce.merge(p, o.nodeType ? [o] : o);
                else if (je.test(o)) {
            a = a || f.appendChild(t.createElement("div")), s = (Te.exec(o) || ["", ""])[1].toLowerCase(), u = ke[s] || ke._default, a.innerHTML = u[1] + ce.htmlPrefilter(o) + u[2], c = u[0];
            while (c--) a = a.lastChild;
            ce.merge(p, a.childNodes), (a = f.firstChild).textContent = ""
        } else p.push(t.createTextNode(o));
        f.textContent = "", d = 0;
        while (o = p[d++])
            if (r && -1 < ce.inArray(o, r)) i && i.push(o);
            else if (l = K(o), a = Se(f.appendChild(o), "script"), l && Ee(a), n) {
            c = 0;
            while (o = a[c++]) Ce.test(o.type || "") && n.push(o)
        }
        return f
    }
    var De = /^([^.]*)(?:\.(.+)|)/;

    function Ne() {
        return !0
    }

    function qe() {
        return !1
    }

    function Le(e, t, n, r, i, o) {
        var a, s;
        if ("object" == typeof t) {
            for (s in "string" != typeof n && (r = r || n, n = void 0), t) Le(e, s, n, r, t[s], o);
            return e
        }
        if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = qe;
        else if (!i) return e;
        return 1 === o && (a = i, (i = function(e) {
            return ce().off(e), a.apply(this, arguments)
        }).guid = a.guid || (a.guid = ce.guid++)), e.each(function() {
            ce.event.add(this, t, i, r, n)
        })
    }

    function He(e, r, t) {
        t ? (_.set(e, r, !1), ce.event.add(e, r, {
            namespace: !1,
            handler: function(e) {
                var t, n = _.get(this, r);
                if (1 & e.isTrigger && this[r]) {
                    if (n)(ce.event.special[r] || {}).delegateType && e.stopPropagation();
                    else if (n = ae.call(arguments), _.set(this, r, n), this[r](), t = _.get(this, r), _.set(this, r, !1), n !== t) return e.stopImmediatePropagation(), e.preventDefault(), t
                } else n && (_.set(this, r, ce.event.trigger(n[0], n.slice(1), this)), e.stopPropagation(), e.isImmediatePropagationStopped = Ne)
            }
        })) : void 0 === _.get(e, r) && ce.event.add(e, r, Ne)
    }
    ce.event = {
        global: {},
        add: function(t, e, n, r, i) {
            var o, a, s, u, l, c, f, p, d, h, g, v = _.get(t);
            if ($(t)) {
                n.handler && (n = (o = n).handler, i = o.selector), i && ce.find.matchesSelector(J, i), n.guid || (n.guid = ce.guid++), (u = v.events) || (u = v.events = Object.create(null)), (a = v.handle) || (a = v.handle = function(e) {
                    return "undefined" != typeof ce && ce.event.triggered !== e.type ? ce.event.dispatch.apply(t, arguments) : void 0
                }), l = (e = (e || "").match(D) || [""]).length;
                while (l--) d = g = (s = De.exec(e[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = ce.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = ce.event.special[d] || {}, c = ce.extend({
                    type: d,
                    origType: g,
                    data: r,
                    handler: n,
                    guid: n.guid,
                    selector: i,
                    needsContext: i && ce.expr.match.needsContext.test(i),
                    namespace: h.join(".")
                }, o), (p = u[d]) || ((p = u[d] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(t, r, h, a) || t.addEventListener && t.addEventListener(d, a)), f.add && (f.add.call(t, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), ce.event.global[d] = !0)
            }
        },
        remove: function(e, t, n, r, i) {
            var o, a, s, u, l, c, f, p, d, h, g, v = _.hasData(e) && _.get(e);
            if (v && (u = v.events)) {
                l = (t = (t || "").match(D) || [""]).length;
                while (l--)
                    if (d = g = (s = De.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d) {
                        f = ce.event.special[d] || {}, p = u[d = (r ? f.delegateType : f.bindType) || d] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length;
                        while (o--) c = p[o], !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c));
                        a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, v.handle) || ce.removeEvent(e, d, v.handle), delete u[d])
                    } else
                        for (d in u) ce.event.remove(e, d + t[l], n, r, !0);
                ce.isEmptyObject(u) && _.remove(e, "handle events")
            }
        },
        dispatch: function(e) {
            var t, n, r, i, o, a, s = new Array(arguments.length),
                u = ce.event.fix(e),
                l = (_.get(this, "events") || Object.create(null))[u.type] || [],
                c = ce.event.special[u.type] || {};
            for (s[0] = u, t = 1; t < arguments.length; t++) s[t] = arguments[t];
            if (u.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, u)) {
                a = ce.event.handlers.call(this, u, l), t = 0;
                while ((i = a[t++]) && !u.isPropagationStopped()) {
                    u.currentTarget = i.elem, n = 0;
                    while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped()) u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace) || (u.handleObj = o, u.data = o.data, void 0 !== (r = ((ce.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && !1 === (u.result = r) && (u.preventDefault(), u.stopPropagation()))
                }
                return c.postDispatch && c.postDispatch.call(this, u), u.result
            }
        },
        handlers: function(e, t) {
            var n, r, i, o, a, s = [],
                u = t.delegateCount,
                l = e.target;
            if (u && l.nodeType && !("click" === e.type && 1 <= e.button))
                for (; l !== this; l = l.parentNode || this)
                    if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) {
                        for (o = [], a = {}, n = 0; n < u; n++) void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? -1 < ce(i, this).index(l) : ce.find(i, this, null, [l]).length), a[i] && o.push(r);
                        o.length && s.push({
                            elem: l,
                            handlers: o
                        })
                    }
            return l = this, u < t.length && s.push({
                elem: l,
                handlers: t.slice(u)
            }), s
        },
        addProp: function(t, e) {
            Object.defineProperty(ce.Event.prototype, t, {
                enumerable: !0,
                configurable: !0,
                get: v(e) ? function() {
                    if (this.originalEvent) return e(this.originalEvent)
                } : function() {
                    if (this.originalEvent) return this.originalEvent[t]
                },
                set: function(e) {
                    Object.defineProperty(this, t, {
                        enumerable: !0,
                        configurable: !0,
                        writable: !0,
                        value: e
                    })
                }
            })
        },
        fix: function(e) {
            return e[ce.expando] ? e : new ce.Event(e)
        },
        special: {
            load: {
                noBubble: !0
            },
            click: {
                setup: function(e) {
                    var t = this || e;
                    return we.test(t.type) && t.click && fe(t, "input") && He(t, "click", !0), !1
                },
                trigger: function(e) {
                    var t = this || e;
                    return we.test(t.type) && t.click && fe(t, "input") && He(t, "click"), !0
                },
                _default: function(e) {
                    var t = e.target;
                    return we.test(t.type) && t.click && fe(t, "input") && _.get(t, "click") || fe(t, "a")
                }
            },
            beforeunload: {
                postDispatch: function(e) {
                    void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
                }
            }
        }
    }, ce.removeEvent = function(e, t, n) {
        e.removeEventListener && e.removeEventListener(t, n)
    }, ce.Event = function(e, t) {
        if (!(this instanceof ce.Event)) return new ce.Event(e, t);
        e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ne : qe, 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 && ce.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[ce.expando] = !0
    }, ce.Event.prototype = {
        constructor: ce.Event,
        isDefaultPrevented: qe,
        isPropagationStopped: qe,
        isImmediatePropagationStopped: qe,
        isSimulated: !1,
        preventDefault: function() {
            var e = this.originalEvent;
            this.isDefaultPrevented = Ne, e && !this.isSimulated && e.preventDefault()
        },
        stopPropagation: function() {
            var e = this.originalEvent;
            this.isPropagationStopped = Ne, e && !this.isSimulated && e.stopPropagation()
        },
        stopImmediatePropagation: function() {
            var e = this.originalEvent;
            this.isImmediatePropagationStopped = Ne, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()
        }
    }, ce.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
    }, ce.event.addProp), ce.each({
        focus: "focusin",
        blur: "focusout"
    }, function(r, i) {
        function o(e) {
            if (C.documentMode) {
                var t = _.get(this, "handle"),
                    n = ce.event.fix(e);
                n.type = "focusin" === e.type ? "focus" : "blur", n.isSimulated = !0, t(e), n.target === n.currentTarget && t(n)
            } else ce.event.simulate(i, e.target, ce.event.fix(e))
        }
        ce.event.special[r] = {
            setup: function() {
                var e;
                if (He(this, r, !0), !C.documentMode) return !1;
                (e = _.get(this, i)) || this.addEventListener(i, o), _.set(this, i, (e || 0) + 1)
            },
            trigger: function() {
                return He(this, r), !0
            },
            teardown: function() {
                var e;
                if (!C.documentMode) return !1;
                (e = _.get(this, i) - 1) ? _.set(this, i, e): (this.removeEventListener(i, o), _.remove(this, i))
            },
            _default: function(e) {
                return _.get(e.target, r)
            },
            delegateType: i
        }, ce.event.special[i] = {
            setup: function() {
                var e = this.ownerDocument || this.document || this,
                    t = C.documentMode ? this : e,
                    n = _.get(t, i);
                n || (C.documentMode ? this.addEventListener(i, o) : e.addEventListener(r, o, !0)), _.set(t, i, (n || 0) + 1)
            },
            teardown: function() {
                var e = this.ownerDocument || this.document || this,
                    t = C.documentMode ? this : e,
                    n = _.get(t, i) - 1;
                n ? _.set(t, i, n) : (C.documentMode ? this.removeEventListener(i, o) : e.removeEventListener(r, o, !0), _.remove(t, i))
            }
        }
    }), ce.each({
        mouseenter: "mouseover",
        mouseleave: "mouseout",
        pointerenter: "pointerover",
        pointerleave: "pointerout"
    }, function(e, i) {
        ce.event.special[e] = {
            delegateType: i,
            bindType: i,
            handle: function(e) {
                var t, n = e.relatedTarget,
                    r = e.handleObj;
                return n && (n === this || ce.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t
            }
        }
    }), ce.fn.extend({
        on: function(e, t, n, r) {
            return Le(this, e, t, n, r)
        },
        one: function(e, t, n, r) {
            return Le(this, e, t, n, r, 1)
        },
        off: function(e, t, n) {
            var r, i;
            if (e && e.preventDefault && e.handleObj) return r = e.handleObj, ce(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this;
            if ("object" == typeof e) {
                for (i in e) this.off(i, t, e[i]);
                return this
            }
            return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = qe), this.each(function() {
                ce.event.remove(this, e, n, t)
            })
        }
    });
    var Oe = /<script|<style|<link/i,
        Pe = /checked\s*(?:[^=]|=\s*.checked.)/i,
        Me = /^\s*<!\[CDATA\[|\]\]>\s*$/g;

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

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

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

    function Fe(e, t) {
        var n, r, i, o, a, s;
        if (1 === t.nodeType) {
            if (_.hasData(e) && (s = _.get(e).events))
                for (i in _.remove(t, "handle events"), s)
                    for (n = 0, r = s[i].length; n < r; n++) ce.event.add(t, i, s[i][n]);
            z.hasData(e) && (o = z.access(e), a = ce.extend({}, o), z.set(t, a))
        }
    }

    function $e(n, r, i, o) {
        r = g(r);
        var e, t, a, s, u, l, c = 0,
            f = n.length,
            p = f - 1,
            d = r[0],
            h = v(d);
        if (h || 1 < f && "string" == typeof d && !le.checkClone && Pe.test(d)) return n.each(function(e) {
            var t = n.eq(e);
            h && (r[0] = d.call(this, e, t.html())), $e(t, r, i, o)
        });
        if (f && (t = (e = Ae(r, n[0].ownerDocument, !1, n, o)).firstChild, 1 === e.childNodes.length && (e = t), t || o)) {
            for (s = (a = ce.map(Se(e, "script"), Ie)).length; c < f; c++) u = e, c !== p && (u = ce.clone(u, !0, !0), s && ce.merge(a, Se(u, "script"))), i.call(n[c], u, c);
            if (s)
                for (l = a[a.length - 1].ownerDocument, ce.map(a, We), c = 0; c < s; c++) u = a[c], Ce.test(u.type || "") && !_.access(u, "globalEval") && ce.contains(l, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? ce._evalUrl && !u.noModule && ce._evalUrl(u.src, {
                    nonce: u.nonce || u.getAttribute("nonce")
                }, l) : m(u.textContent.replace(Me, ""), u, l))
        }
        return n
    }

    function Be(e, t, n) {
        for (var r, i = t ? ce.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || ce.cleanData(Se(r)), r.parentNode && (n && K(r) && Ee(Se(r, "script")), r.parentNode.removeChild(r));
        return e
    }
    ce.extend({
        htmlPrefilter: function(e) {
            return e
        },
        clone: function(e, t, n) {
            var r, i, o, a, s, u, l, c = e.cloneNode(!0),
                f = K(e);
            if (!(le.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || ce.isXMLDoc(e)))
                for (a = Se(c), r = 0, i = (o = Se(e)).length; r < i; r++) s = o[r], u = a[r], void 0, "input" === (l = u.nodeName.toLowerCase()) && we.test(s.type) ? u.checked = s.checked : "input" !== l && "textarea" !== l || (u.defaultValue = s.defaultValue);
            if (t)
                if (n)
                    for (o = o || Se(e), a = a || Se(c), r = 0, i = o.length; r < i; r++) Fe(o[r], a[r]);
                else Fe(e, c);
            return 0 < (a = Se(c, "script")).length && Ee(a, !f && Se(e, "script")), c
        },
        cleanData: function(e) {
            for (var t, n, r, i = ce.event.special, o = 0; void 0 !== (n = e[o]); o++)
                if ($(n)) {
                    if (t = n[_.expando]) {
                        if (t.events)
                            for (r in t.events) i[r] ? ce.event.remove(n, r) : ce.removeEvent(n, r, t.handle);
                        n[_.expando] = void 0
                    }
                    n[z.expando] && (n[z.expando] = void 0)
                }
        }
    }), ce.fn.extend({
        detach: function(e) {
            return Be(this, e, !0)
        },
        remove: function(e) {
            return Be(this, e)
        },
        text: function(e) {
            return M(this, function(e) {
                return void 0 === e ? ce.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 $e(this, arguments, function(e) {
                1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Re(this, e).appendChild(e)
            })
        },
        prepend: function() {
            return $e(this, arguments, function(e) {
                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                    var t = Re(this, e);
                    t.insertBefore(e, t.firstChild)
                }
            })
        },
        before: function() {
            return $e(this, arguments, function(e) {
                this.parentNode && this.parentNode.insertBefore(e, this)
            })
        },
        after: function() {
            return $e(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 && (ce.cleanData(Se(e, !1)), e.textContent = "");
            return this
        },
        clone: function(e, t) {
            return e = null != e && e, t = null == t ? e : t, this.map(function() {
                return ce.clone(this, e, t)
            })
        },
        html: function(e) {
            return M(this, function(e) {
                var t = this[0] || {},
                    n = 0,
                    r = this.length;
                if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
                if ("string" == typeof e && !Oe.test(e) && !ke[(Te.exec(e) || ["", ""])[1].toLowerCase()]) {
                    e = ce.htmlPrefilter(e);
                    try {
                        for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (ce.cleanData(Se(t, !1)), t.innerHTML = e);
                        t = 0
                    } catch (e) {}
                }
                t && this.empty().append(e)
            }, null, e, arguments.length)
        },
        replaceWith: function() {
            var n = [];
            return $e(this, arguments, function(e) {
                var t = this.parentNode;
                ce.inArray(this, n) < 0 && (ce.cleanData(Se(this)), t && t.replaceChild(e, this))
            }, n)
        }
    }), ce.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function(e, a) {
        ce.fn[e] = function(e) {
            for (var t, n = [], r = ce(e), i = r.length - 1, o = 0; o <= i; o++) t = o === i ? this : this.clone(!0), ce(r[o])[a](t), s.apply(n, t.get());
            return this.pushStack(n)
        }
    });
    var _e = new RegExp("^(" + G + ")(?!px)[a-z%]+$", "i"),
        ze = /^--/,
        Xe = function(e) {
            var t = e.ownerDocument.defaultView;
            return t && t.opener || (t = ie), t.getComputedStyle(e)
        },
        Ue = function(e, t, n) {
            var r, i, o = {};
            for (i in t) o[i] = e.style[i], e.style[i] = t[i];
            for (i in r = n.call(e), t) e.style[i] = o[i];
            return r
        },
        Ve = new RegExp(Q.join("|"), "i");

    function Ge(e, t, n) {
        var r, i, o, a, s = ze.test(t),
            u = e.style;
        return (n = n || Xe(e)) && (a = n.getPropertyValue(t) || n[t], s && a && (a = a.replace(ve, "$1") || void 0), "" !== a || K(e) || (a = ce.style(e, t)), !le.pixelBoxStyles() && _e.test(a) && Ve.test(t) && (r = u.width, i = u.minWidth, o = u.maxWidth, u.minWidth = u.maxWidth = u.width = a, a = n.width, u.width = r, u.minWidth = i, u.maxWidth = o)), void 0 !== a ? a + "" : a
    }

    function Ye(e, t) {
        return {
            get: function() {
                if (!e()) return (this.get = t).apply(this, arguments);
                delete this.get
            }
        }
    }! function() {
        function e() {
            if (l) {
                u.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", l.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", J.appendChild(u).appendChild(l);
                var e = ie.getComputedStyle(l);
                n = "1%" !== e.top, s = 12 === t(e.marginLeft), l.style.right = "60%", o = 36 === t(e.right), r = 36 === t(e.width), l.style.position = "absolute", i = 12 === t(l.offsetWidth / 3), J.removeChild(u), l = null
            }
        }

        function t(e) {
            return Math.round(parseFloat(e))
        }
        var n, r, i, o, a, s, u = C.createElement("div"),
            l = C.createElement("div");
        l.style && (l.style.backgroundClip = "content-box", l.cloneNode(!0).style.backgroundClip = "", le.clearCloneStyle = "content-box" === l.style.backgroundClip, ce.extend(le, {
            boxSizingReliable: function() {
                return e(), r
            },
            pixelBoxStyles: function() {
                return e(), o
            },
            pixelPosition: function() {
                return e(), n
            },
            reliableMarginLeft: function() {
                return e(), s
            },
            scrollboxSize: function() {
                return e(), i
            },
            reliableTrDimensions: function() {
                var e, t, n, r;
                return null == a && (e = C.createElement("table"), t = C.createElement("tr"), n = C.createElement("div"), e.style.cssText = "position:absolute;left:-11111px;border-collapse:separate", t.style.cssText = "box-sizing:content-box;border:1px solid", t.style.height = "1px", n.style.height = "9px", n.style.display = "block", J.appendChild(e).appendChild(t).appendChild(n), r = ie.getComputedStyle(t), a = parseInt(r.height, 10) + parseInt(r.borderTopWidth, 10) + parseInt(r.borderBottomWidth, 10) === t.offsetHeight, J.removeChild(e)), a
            }
        }))
    }();
    var Qe = ["Webkit", "Moz", "ms"],
        Je = C.createElement("div").style,
        Ke = {};

    function Ze(e) {
        var t = ce.cssProps[e] || Ke[e];
        return t || (e in Je ? e : Ke[e] = function(e) {
            var t = e[0].toUpperCase() + e.slice(1),
                n = Qe.length;
            while (n--)
                if ((e = Qe[n] + t) in Je) return e
        }(e) || e)
    }
    var et = /^(none|table(?!-c[ea]).+)/,
        tt = {
            position: "absolute",
            visibility: "hidden",
            display: "block"
        },
        nt = {
            letterSpacing: "0",
            fontWeight: "400"
        };

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

    function it(e, t, n, r, i, o) {
        var a = "width" === t ? 1 : 0,
            s = 0,
            u = 0,
            l = 0;
        if (n === (r ? "border" : "content")) return 0;
        for (; a < 4; a += 2) "margin" === n && (l += ce.css(e, n + Q[a], !0, i)), r ? ("content" === n && (u -= ce.css(e, "padding" + Q[a], !0, i)), "margin" !== n && (u -= ce.css(e, "border" + Q[a] + "Width", !0, i))) : (u += ce.css(e, "padding" + Q[a], !0, i), "padding" !== n ? u += ce.css(e, "border" + Q[a] + "Width", !0, i) : s += ce.css(e, "border" + Q[a] + "Width", !0, i));
        return !r && 0 <= o && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5)) || 0), u + l
    }

    function ot(e, t, n) {
        var r = Xe(e),
            i = (!le.boxSizingReliable() || n) && "border-box" === ce.css(e, "boxSizing", !1, r),
            o = i,
            a = Ge(e, t, r),
            s = "offset" + t[0].toUpperCase() + t.slice(1);
        if (_e.test(a)) {
            if (!n) return a;
            a = "auto"
        }
        return (!le.boxSizingReliable() && i || !le.reliableTrDimensions() && fe(e, "tr") || "auto" === a || !parseFloat(a) && "inline" === ce.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === ce.css(e, "boxSizing", !1, r), (o = s in e) && (a = e[s])), (a = parseFloat(a) || 0) + it(e, t, n || (i ? "border" : "content"), o, r, a) + "px"
    }

    function at(e, t, n, r, i) {
        return new at.prototype.init(e, t, n, r, i)
    }
    ce.extend({
        cssHooks: {
            opacity: {
                get: function(e, t) {
                    if (t) {
                        var n = Ge(e, "opacity");
                        return "" === n ? "1" : n
                    }
                }
            }
        },
        cssNumber: {
            animationIterationCount: !0,
            aspectRatio: !0,
            borderImageSlice: !0,
            columnCount: !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,
            scale: !0,
            widows: !0,
            zIndex: !0,
            zoom: !0,
            fillOpacity: !0,
            floodOpacity: !0,
            stopOpacity: !0,
            strokeMiterlimit: !0,
            strokeOpacity: !0
        },
        cssProps: {},
        style: function(e, t, n, r) {
            if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
                var i, o, a, s = F(t),
                    u = ze.test(t),
                    l = e.style;
                if (u || (t = Ze(s)), a = ce.cssHooks[t] || ce.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t];
                "string" === (o = typeof n) && (i = Y.exec(n)) && i[1] && (n = te(e, t, i), o = "number"), null != n && n == n && ("number" !== o || u || (n += i && i[3] || (ce.cssNumber[s] ? "" : "px")), le.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, r)) || (u ? l.setProperty(t, n) : l[t] = n))
            }
        },
        css: function(e, t, n, r) {
            var i, o, a, s = F(t);
            return ze.test(t) || (t = Ze(s)), (a = ce.cssHooks[t] || ce.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = Ge(e, t, r)), "normal" === i && t in nt && (i = nt[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i
        }
    }), ce.each(["height", "width"], function(e, u) {
        ce.cssHooks[u] = {
            get: function(e, t, n) {
                if (t) return !et.test(ce.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? ot(e, u, n) : Ue(e, tt, function() {
                    return ot(e, u, n)
                })
            },
            set: function(e, t, n) {
                var r, i = Xe(e),
                    o = !le.scrollboxSize() && "absolute" === i.position,
                    a = (o || n) && "border-box" === ce.css(e, "boxSizing", !1, i),
                    s = n ? it(e, u, n, a, i) : 0;
                return a && o && (s -= Math.ceil(e["offset" + u[0].toUpperCase() + u.slice(1)] - parseFloat(i[u]) - it(e, u, "border", !1, i) - .5)), s && (r = Y.exec(t)) && "px" !== (r[3] || "px") && (e.style[u] = t, t = ce.css(e, u)), rt(0, t, s)
            }
        }
    }), ce.cssHooks.marginLeft = Ye(le.reliableMarginLeft, function(e, t) {
        if (t) return (parseFloat(Ge(e, "marginLeft")) || e.getBoundingClientRect().left - Ue(e, {
            marginLeft: 0
        }, function() {
            return e.getBoundingClientRect().left
        })) + "px"
    }), ce.each({
        margin: "",
        padding: "",
        border: "Width"
    }, function(i, o) {
        ce.cssHooks[i + o] = {
            expand: function(e) {
                for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++) n[i + Q[t] + o] = r[t] || r[t - 2] || r[0];
                return n
            }
        }, "margin" !== i && (ce.cssHooks[i + o].set = rt)
    }), ce.fn.extend({
        css: function(e, t) {
            return M(this, function(e, t, n) {
                var r, i, o = {},
                    a = 0;
                if (Array.isArray(t)) {
                    for (r = Xe(e), i = t.length; a < i; a++) o[t[a]] = ce.css(e, t[a], !1, r);
                    return o
                }
                return void 0 !== n ? ce.style(e, t, n) : ce.css(e, t)
            }, e, t, 1 < arguments.length)
        }
    }), ((ce.Tween = at).prototype = {
        constructor: at,
        init: function(e, t, n, r, i, o) {
            this.elem = e, this.prop = n, this.easing = i || ce.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (ce.cssNumber[n] ? "" : "px")
        },
        cur: function() {
            var e = at.propHooks[this.prop];
            return e && e.get ? e.get(this) : at.propHooks._default.get(this)
        },
        run: function(e) {
            var t, n = at.propHooks[this.prop];
            return this.options.duration ? this.pos = t = ce.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) : at.propHooks._default.set(this), this
        }
    }).init.prototype = at.prototype, (at.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 = ce.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0
            },
            set: function(e) {
                ce.fx.step[e.prop] ? ce.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !ce.cssHooks[e.prop] && null == e.elem.style[Ze(e.prop)] ? e.elem[e.prop] = e.now : ce.style(e.elem, e.prop, e.now + e.unit)
            }
        }
    }).scrollTop = at.propHooks.scrollLeft = {
        set: function(e) {
            e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
        }
    }, ce.easing = {
        linear: function(e) {
            return e
        },
        swing: function(e) {
            return .5 - Math.cos(e * Math.PI) / 2
        },
        _default: "swing"
    }, ce.fx = at.prototype.init, ce.fx.step = {};
    var st, ut, lt, ct, ft = /^(?:toggle|show|hide)$/,
        pt = /queueHooks$/;

    function dt() {
        ut && (!1 === C.hidden && ie.requestAnimationFrame ? ie.requestAnimationFrame(dt) : ie.setTimeout(dt, ce.fx.interval), ce.fx.tick())
    }

    function ht() {
        return ie.setTimeout(function() {
            st = void 0
        }), st = Date.now()
    }

    function gt(e, t) {
        var n, r = 0,
            i = {
                height: e
            };
        for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = Q[r])] = i["padding" + n] = e;
        return t && (i.opacity = i.width = e), i
    }

    function vt(e, t, n) {
        for (var r, i = (yt.tweeners[t] || []).concat(yt.tweeners["*"]), o = 0, a = i.length; o < a; o++)
            if (r = i[o].call(n, t, e)) return r
    }

    function yt(o, e, t) {
        var n, a, r = 0,
            i = yt.prefilters.length,
            s = ce.Deferred().always(function() {
                delete u.elem
            }),
            u = function() {
                if (a) return !1;
                for (var e = st || ht(), t = Math.max(0, l.startTime + l.duration - e), n = 1 - (t / l.duration || 0), r = 0, i = l.tweens.length; r < i; r++) l.tweens[r].run(n);
                return s.notifyWith(o, [l, n, t]), n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l]), !1)
            },
            l = s.promise({
                elem: o,
                props: ce.extend({}, e),
                opts: ce.extend(!0, {
                    specialEasing: {},
                    easing: ce.easing._default
                }, t),
                originalProperties: e,
                originalOptions: t,
                startTime: st || ht(),
                duration: t.duration,
                tweens: [],
                createTween: function(e, t) {
                    var n = ce.Tween(o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing);
                    return l.tweens.push(n), n
                },
                stop: function(e) {
                    var t = 0,
                        n = e ? l.tweens.length : 0;
                    if (a) return this;
                    for (a = !0; t < n; t++) l.tweens[t].run(1);
                    return e ? (s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]), this
                }
            }),
            c = l.props;
        for (! function(e, t) {
                var n, r, i, o, a;
                for (n in e)
                    if (i = t[r = F(n)], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = ce.cssHooks[r]) && "expand" in a)
                        for (n in o = a.expand(o), delete e[r], o) n in e || (e[n] = o[n], t[n] = i);
                    else t[r] = i
            }(c, l.opts.specialEasing); r < i; r++)
            if (n = yt.prefilters[r].call(l, o, c, l.opts)) return v(n.stop) && (ce._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), n;
        return ce.map(c, vt, l), v(l.opts.start) && l.opts.start.call(o, l), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), ce.fx.timer(ce.extend(u, {
            elem: o,
            anim: l,
            queue: l.opts.queue
        })), l
    }
    ce.Animation = ce.extend(yt, {
        tweeners: {
            "*": [function(e, t) {
                var n = this.createTween(e, t);
                return te(n.elem, e, Y.exec(t), n), n
            }]
        },
        tweener: function(e, t) {
            v(e) ? (t = e, e = ["*"]) : e = e.match(D);
            for (var n, r = 0, i = e.length; r < i; r++) n = e[r], yt.tweeners[n] = yt.tweeners[n] || [], yt.tweeners[n].unshift(t)
        },
        prefilters: [function(e, t, n) {
            var r, i, o, a, s, u, l, c, f = "width" in t || "height" in t,
                p = this,
                d = {},
                h = e.style,
                g = e.nodeType && ee(e),
                v = _.get(e, "fxshow");
            for (r in n.queue || (null == (a = ce._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function() {
                    a.unqueued || s()
                }), a.unqueued++, p.always(function() {
                    p.always(function() {
                        a.unqueued--, ce.queue(e, "fx").length || a.empty.fire()
                    })
                })), t)
                if (i = t[r], ft.test(i)) {
                    if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) {
                        if ("show" !== i || !v || void 0 === v[r]) continue;
                        g = !0
                    }
                    d[r] = v && v[r] || ce.style(e, r)
                }
            if ((u = !ce.isEmptyObject(t)) || !ce.isEmptyObject(d))
                for (r in f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (l = v && v.display) && (l = _.get(e, "display")), "none" === (c = ce.css(e, "display")) && (l ? c = l : (re([e], !0), l = e.style.display || l, c = ce.css(e, "display"), re([e]))), ("inline" === c || "inline-block" === c && null != l) && "none" === ce.css(e, "float") && (u || (p.done(function() {
                        h.display = l
                    }), null == l && (c = h.display, l = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", p.always(function() {
                        h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2]
                    })), u = !1, d) u || (v ? "hidden" in v && (g = v.hidden) : v = _.access(e, "fxshow", {
                    display: l
                }), o && (v.hidden = !g), g && re([e], !0), p.done(function() {
                    for (r in g || re([e]), _.remove(e, "fxshow"), d) ce.style(e, r, d[r])
                })), u = vt(g ? v[r] : 0, r, p), r in v || (v[r] = u.start, g && (u.end = u.start, u.start = 0))
        }],
        prefilter: function(e, t) {
            t ? yt.prefilters.unshift(e) : yt.prefilters.push(e)
        }
    }), ce.speed = function(e, t, n) {
        var r = e && "object" == typeof e ? ce.extend({}, e) : {
            complete: n || !n && t || v(e) && e,
            duration: e,
            easing: n && t || t && !v(t) && t
        };
        return ce.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in ce.fx.speeds ? r.duration = ce.fx.speeds[r.duration] : r.duration = ce.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function() {
            v(r.old) && r.old.call(this), r.queue && ce.dequeue(this, r.queue)
        }, r
    }, ce.fn.extend({
        fadeTo: function(e, t, n, r) {
            return this.filter(ee).css("opacity", 0).show().end().animate({
                opacity: t
            }, e, n, r)
        },
        animate: function(t, e, n, r) {
            var i = ce.isEmptyObject(t),
                o = ce.speed(e, n, r),
                a = function() {
                    var e = yt(this, ce.extend({}, t), o);
                    (i || _.get(this, "finish")) && e.stop(!0)
                };
            return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
        },
        stop: function(i, e, o) {
            var a = function(e) {
                var t = e.stop;
                delete e.stop, t(o)
            };
            return "string" != typeof i && (o = e, e = i, i = void 0), e && this.queue(i || "fx", []), this.each(function() {
                var e = !0,
                    t = null != i && i + "queueHooks",
                    n = ce.timers,
                    r = _.get(this);
                if (t) r[t] && r[t].stop && a(r[t]);
                else
                    for (t in r) r[t] && r[t].stop && pt.test(t) && a(r[t]);
                for (t = n.length; t--;) n[t].elem !== this || null != i && n[t].queue !== i || (n[t].anim.stop(o), e = !1, n.splice(t, 1));
                !e && o || ce.dequeue(this, i)
            })
        },
        finish: function(a) {
            return !1 !== a && (a = a || "fx"), this.each(function() {
                var e, t = _.get(this),
                    n = t[a + "queue"],
                    r = t[a + "queueHooks"],
                    i = ce.timers,
                    o = n ? n.length : 0;
                for (t.finish = !0, ce.queue(this, a, []), r && r.stop && r.stop.call(this, !0), e = i.length; e--;) i[e].elem === this && i[e].queue === a && (i[e].anim.stop(!0), i.splice(e, 1));
                for (e = 0; e < o; e++) n[e] && n[e].finish && n[e].finish.call(this);
                delete t.finish
            })
        }
    }), ce.each(["toggle", "show", "hide"], function(e, r) {
        var i = ce.fn[r];
        ce.fn[r] = function(e, t, n) {
            return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(gt(r, !0), e, t, n)
        }
    }), ce.each({
        slideDown: gt("show"),
        slideUp: gt("hide"),
        slideToggle: gt("toggle"),
        fadeIn: {
            opacity: "show"
        },
        fadeOut: {
            opacity: "hide"
        },
        fadeToggle: {
            opacity: "toggle"
        }
    }, function(e, r) {
        ce.fn[e] = function(e, t, n) {
            return this.animate(r, e, t, n)
        }
    }), ce.timers = [], ce.fx.tick = function() {
        var e, t = 0,
            n = ce.timers;
        for (st = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1);
        n.length || ce.fx.stop(), st = void 0
    }, ce.fx.timer = function(e) {
        ce.timers.push(e), ce.fx.start()
    }, ce.fx.interval = 13, ce.fx.start = function() {
        ut || (ut = !0, dt())
    }, ce.fx.stop = function() {
        ut = null
    }, ce.fx.speeds = {
        slow: 600,
        fast: 200,
        _default: 400
    }, ce.fn.delay = function(r, e) {
        return r = ce.fx && ce.fx.speeds[r] || r, e = e || "fx", this.queue(e, function(e, t) {
            var n = ie.setTimeout(e, r);
            t.stop = function() {
                ie.clearTimeout(n)
            }
        })
    }, lt = C.createElement("input"), ct = C.createElement("select").appendChild(C.createElement("option")), lt.type = "checkbox", le.checkOn = "" !== lt.value, le.optSelected = ct.selected, (lt = C.createElement("input")).value = "t", lt.type = "radio", le.radioValue = "t" === lt.value;
    var mt, xt = ce.expr.attrHandle;
    ce.fn.extend({
        attr: function(e, t) {
            return M(this, ce.attr, e, t, 1 < arguments.length)
        },
        removeAttr: function(e) {
            return this.each(function() {
                ce.removeAttr(this, e)
            })
        }
    }), ce.extend({
        attr: function(e, t, n) {
            var r, i, o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? ce.prop(e, t, n) : (1 === o && ce.isXMLDoc(e) || (i = ce.attrHooks[t.toLowerCase()] || (ce.expr.match.bool.test(t) ? mt : void 0)), void 0 !== n ? null === n ? void ce.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : null == (r = ce.find.attr(e, t)) ? void 0 : r)
        },
        attrHooks: {
            type: {
                set: function(e, t) {
                    if (!le.radioValue && "radio" === t && fe(e, "input")) {
                        var n = e.value;
                        return e.setAttribute("type", t), n && (e.value = n), t
                    }
                }
            }
        },
        removeAttr: function(e, t) {
            var n, r = 0,
                i = t && t.match(D);
            if (i && 1 === e.nodeType)
                while (n = i[r++]) e.removeAttribute(n)
        }
    }), mt = {
        set: function(e, t, n) {
            return !1 === t ? ce.removeAttr(e, n) : e.setAttribute(n, n), n
        }
    }, ce.each(ce.expr.match.bool.source.match(/\w+/g), function(e, t) {
        var a = xt[t] || ce.find.attr;
        xt[t] = function(e, t, n) {
            var r, i, o = t.toLowerCase();
            return n || (i = xt[o], xt[o] = r, r = null != a(e, t, n) ? o : null, xt[o] = i), r
        }
    });
    var bt = /^(?:input|select|textarea|button)$/i,
        wt = /^(?:a|area)$/i;

    function Tt(e) {
        return (e.match(D) || []).join(" ")
    }

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

    function kt(e) {
        return Array.isArray(e) ? e : "string" == typeof e && e.match(D) || []
    }
    ce.fn.extend({
        prop: function(e, t) {
            return M(this, ce.prop, e, t, 1 < arguments.length)
        },
        removeProp: function(e) {
            return this.each(function() {
                delete this[ce.propFix[e] || e]
            })
        }
    }), ce.extend({
        prop: function(e, t, n) {
            var r, i, o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o) return 1 === o && ce.isXMLDoc(e) || (t = ce.propFix[t] || t, i = ce.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]
        },
        propHooks: {
            tabIndex: {
                get: function(e) {
                    var t = ce.find.attr(e, "tabindex");
                    return t ? parseInt(t, 10) : bt.test(e.nodeName) || wt.test(e.nodeName) && e.href ? 0 : -1
                }
            }
        },
        propFix: {
            "for": "htmlFor",
            "class": "className"
        }
    }), le.optSelected || (ce.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)
        }
    }), ce.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
        ce.propFix[this.toLowerCase()] = this
    }), ce.fn.extend({
        addClass: function(t) {
            var e, n, r, i, o, a;
            return v(t) ? this.each(function(e) {
                ce(this).addClass(t.call(this, e, Ct(this)))
            }) : (e = kt(t)).length ? this.each(function() {
                if (r = Ct(this), n = 1 === this.nodeType && " " + Tt(r) + " ") {
                    for (o = 0; o < e.length; o++) i = e[o], n.indexOf(" " + i + " ") < 0 && (n += i + " ");
                    a = Tt(n), r !== a && this.setAttribute("class", a)
                }
            }) : this
        },
        removeClass: function(t) {
            var e, n, r, i, o, a;
            return v(t) ? this.each(function(e) {
                ce(this).removeClass(t.call(this, e, Ct(this)))
            }) : arguments.length ? (e = kt(t)).length ? this.each(function() {
                if (r = Ct(this), n = 1 === this.nodeType && " " + Tt(r) + " ") {
                    for (o = 0; o < e.length; o++) {
                        i = e[o];
                        while (-1 < n.indexOf(" " + i + " ")) n = n.replace(" " + i + " ", " ")
                    }
                    a = Tt(n), r !== a && this.setAttribute("class", a)
                }
            }) : this : this.attr("class", "")
        },
        toggleClass: function(t, n) {
            var e, r, i, o, a = typeof t,
                s = "string" === a || Array.isArray(t);
            return v(t) ? this.each(function(e) {
                ce(this).toggleClass(t.call(this, e, Ct(this), n), n)
            }) : "boolean" == typeof n && s ? n ? this.addClass(t) : this.removeClass(t) : (e = kt(t), this.each(function() {
                if (s)
                    for (o = ce(this), i = 0; i < e.length; i++) r = e[i], o.hasClass(r) ? o.removeClass(r) : o.addClass(r);
                else void 0 !== t && "boolean" !== a || ((r = Ct(this)) && _.set(this, "__className__", r), this.setAttribute && this.setAttribute("class", r || !1 === t ? "" : _.get(this, "__className__") || ""))
            }))
        },
        hasClass: function(e) {
            var t, n, r = 0;
            t = " " + e + " ";
            while (n = this[r++])
                if (1 === n.nodeType && -1 < (" " + Tt(Ct(n)) + " ").indexOf(t)) return !0;
            return !1
        }
    });
    var St = /\r/g;
    ce.fn.extend({
        val: function(n) {
            var r, e, i, t = this[0];
            return arguments.length ? (i = v(n), this.each(function(e) {
                var t;
                1 === this.nodeType && (null == (t = i ? n.call(this, e, ce(this).val()) : n) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = ce.map(t, function(e) {
                    return null == e ? "" : e + ""
                })), (r = ce.valHooks[this.type] || ce.valHooks[this.nodeName.toLowerCase()]) && "set" in r && void 0 !== r.set(this, t, "value") || (this.value = t))
            })) : t ? (r = ce.valHooks[t.type] || ce.valHooks[t.nodeName.toLowerCase()]) && "get" in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof(e = t.value) ? e.replace(St, "") : null == e ? "" : e : void 0
        }
    }), ce.extend({
        valHooks: {
            option: {
                get: function(e) {
                    var t = ce.find.attr(e, "value");
                    return null != t ? t : Tt(ce.text(e))
                }
            },
            select: {
                get: function(e) {
                    var t, n, r, i = e.options,
                        o = e.selectedIndex,
                        a = "select-one" === e.type,
                        s = a ? null : [],
                        u = a ? o + 1 : i.length;
                    for (r = o < 0 ? u : a ? o : 0; r < u; r++)
                        if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !fe(n.parentNode, "optgroup"))) {
                            if (t = ce(n).val(), a) return t;
                            s.push(t)
                        }
                    return s
                },
                set: function(e, t) {
                    var n, r, i = e.options,
                        o = ce.makeArray(t),
                        a = i.length;
                    while (a--)((r = i[a]).selected = -1 < ce.inArray(ce.valHooks.option.get(r), o)) && (n = !0);
                    return n || (e.selectedIndex = -1), o
                }
            }
        }
    }), ce.each(["radio", "checkbox"], function() {
        ce.valHooks[this] = {
            set: function(e, t) {
                if (Array.isArray(t)) return e.checked = -1 < ce.inArray(ce(e).val(), t)
            }
        }, le.checkOn || (ce.valHooks[this].get = function(e) {
            return null === e.getAttribute("value") ? "on" : e.value
        })
    });
    var Et = ie.location,
        jt = {
            guid: Date.now()
        },
        At = /\?/;
    ce.parseXML = function(e) {
        var t, n;
        if (!e || "string" != typeof e) return null;
        try {
            t = (new ie.DOMParser).parseFromString(e, "text/xml")
        } catch (e) {}
        return n = t && t.getElementsByTagName("parsererror")[0], t && !n || ce.error("Invalid XML: " + (n ? ce.map(n.childNodes, function(e) {
            return e.textContent
        }).join("\n") : e)), t
    };
    var Dt = /^(?:focusinfocus|focusoutblur)$/,
        Nt = function(e) {
            e.stopPropagation()
        };
    ce.extend(ce.event, {
        trigger: function(e, t, n, r) {
            var i, o, a, s, u, l, c, f, p = [n || C],
                d = ue.call(e, "type") ? e.type : e,
                h = ue.call(e, "namespace") ? e.namespace.split(".") : [];
            if (o = f = a = n = n || C, 3 !== n.nodeType && 8 !== n.nodeType && !Dt.test(d + ce.event.triggered) && (-1 < d.indexOf(".") && (d = (h = d.split(".")).shift(), h.sort()), u = d.indexOf(":") < 0 && "on" + d, (e = e[ce.expando] ? e : new ce.Event(d, "object" == typeof e && e)).isTrigger = r ? 2 : 3, e.namespace = h.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : ce.makeArray(t, [e]), c = ce.event.special[d] || {}, r || !c.trigger || !1 !== c.trigger.apply(n, t))) {
                if (!r && !c.noBubble && !y(n)) {
                    for (s = c.delegateType || d, Dt.test(s + d) || (o = o.parentNode); o; o = o.parentNode) p.push(o), a = o;
                    a === (n.ownerDocument || C) && p.push(a.defaultView || a.parentWindow || ie)
                }
                i = 0;
                while ((o = p[i++]) && !e.isPropagationStopped()) f = o, e.type = 1 < i ? s : c.bindType || d, (l = (_.get(o, "events") || Object.create(null))[e.type] && _.get(o, "handle")) && l.apply(o, t), (l = u && o[u]) && l.apply && $(o) && (e.result = l.apply(o, t), !1 === e.result && e.preventDefault());
                return e.type = d, r || e.isDefaultPrevented() || c._default && !1 !== c._default.apply(p.pop(), t) || !$(n) || u && v(n[d]) && !y(n) && ((a = n[u]) && (n[u] = null), ce.event.triggered = d, e.isPropagationStopped() && f.addEventListener(d, Nt), n[d](), e.isPropagationStopped() && f.removeEventListener(d, Nt), ce.event.triggered = void 0, a && (n[u] = a)), e.result
            }
        },
        simulate: function(e, t, n) {
            var r = ce.extend(new ce.Event, n, {
                type: e,
                isSimulated: !0
            });
            ce.event.trigger(r, null, t)
        }
    }), ce.fn.extend({
        trigger: function(e, t) {
            return this.each(function() {
                ce.event.trigger(e, t, this)
            })
        },
        triggerHandler: function(e, t) {
            var n = this[0];
            if (n) return ce.event.trigger(e, t, n, !0)
        }
    });
    var qt = /\[\]$/,
        Lt = /\r?\n/g,
        Ht = /^(?:submit|button|image|reset|file)$/i,
        Ot = /^(?:input|select|textarea|keygen)/i;

    function Pt(n, e, r, i) {
        var t;
        if (Array.isArray(e)) ce.each(e, function(e, t) {
            r || qt.test(n) ? i(n, t) : Pt(n + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, r, i)
        });
        else if (r || "object" !== x(e)) i(n, e);
        else
            for (t in e) Pt(n + "[" + t + "]", e[t], r, i)
    }
    ce.param = function(e, t) {
        var n, r = [],
            i = function(e, t) {
                var n = v(t) ? t() : t;
                r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n)
            };
        if (null == e) return "";
        if (Array.isArray(e) || e.jquery && !ce.isPlainObject(e)) ce.each(e, function() {
            i(this.name, this.value)
        });
        else
            for (n in e) Pt(n, e[n], t, i);
        return r.join("&")
    }, ce.fn.extend({
        serialize: function() {
            return ce.param(this.serializeArray())
        },
        serializeArray: function() {
            return this.map(function() {
                var e = ce.prop(this, "elements");
                return e ? ce.makeArray(e) : this
            }).filter(function() {
                var e = this.type;
                return this.name && !ce(this).is(":disabled") && Ot.test(this.nodeName) && !Ht.test(e) && (this.checked || !we.test(e))
            }).map(function(e, t) {
                var n = ce(this).val();
                return null == n ? null : Array.isArray(n) ? ce.map(n, function(e) {
                    return {
                        name: t.name,
                        value: e.replace(Lt, "\r\n")
                    }
                }) : {
                    name: t.name,
                    value: n.replace(Lt, "\r\n")
                }
            }).get()
        }
    });
    var Mt = /%20/g,
        Rt = /#.*$/,
        It = /([?&])_=[^&]*/,
        Wt = /^(.*?):[ \t]*([^\r\n]*)$/gm,
        Ft = /^(?:GET|HEAD)$/,
        $t = /^\/\//,
        Bt = {},
        _t = {},
        zt = "*/".concat("*"),
        Xt = C.createElement("a");

    function Ut(o) {
        return function(e, t) {
            "string" != typeof e && (t = e, e = "*");
            var n, r = 0,
                i = e.toLowerCase().match(D) || [];
            if (v(t))
                while (n = i[r++]) "+" === n[0] ? (n = n.slice(1) || "*", (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t)
        }
    }

    function Vt(t, i, o, a) {
        var s = {},
            u = t === _t;

        function l(e) {
            var r;
            return s[e] = !0, ce.each(t[e] || [], function(e, t) {
                var n = t(i, o, a);
                return "string" != typeof n || u || s[n] ? u ? !(r = n) : void 0 : (i.dataTypes.unshift(n), l(n), !1)
            }), r
        }
        return l(i.dataTypes[0]) || !s["*"] && l("*")
    }

    function Gt(e, t) {
        var n, r, i = ce.ajaxSettings.flatOptions || {};
        for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
        return r && ce.extend(!0, e, r), e
    }
    Xt.href = Et.href, ce.extend({
        active: 0,
        lastModified: {},
        etag: {},
        ajaxSettings: {
            url: Et.href,
            type: "GET",
            isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),
            global: !0,
            processData: !0,
            async: !0,
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            accepts: {
                "*": zt,
                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": ce.parseXML
            },
            flatOptions: {
                url: !0,
                context: !0
            }
        },
        ajaxSetup: function(e, t) {
            return t ? Gt(Gt(e, ce.ajaxSettings), t) : Gt(ce.ajaxSettings, e)
        },
        ajaxPrefilter: Ut(Bt),
        ajaxTransport: Ut(_t),
        ajax: function(e, t) {
            "object" == typeof e && (t = e, e = void 0), t = t || {};
            var c, f, p, n, d, r, h, g, i, o, v = ce.ajaxSetup({}, t),
                y = v.context || v,
                m = v.context && (y.nodeType || y.jquery) ? ce(y) : ce.event,
                x = ce.Deferred(),
                b = ce.Callbacks("once memory"),
                w = v.statusCode || {},
                a = {},
                s = {},
                u = "canceled",
                T = {
                    readyState: 0,
                    getResponseHeader: function(e) {
                        var t;
                        if (h) {
                            if (!n) {
                                n = {};
                                while (t = Wt.exec(p)) n[t[1].toLowerCase() + " "] = (n[t[1].toLowerCase() + " "] || []).concat(t[2])
                            }
                            t = n[e.toLowerCase() + " "]
                        }
                        return null == t ? null : t.join(", ")
                    },
                    getAllResponseHeaders: function() {
                        return h ? p : null
                    },
                    setRequestHeader: function(e, t) {
                        return null == h && (e = s[e.toLowerCase()] = s[e.toLowerCase()] || e, a[e] = t), this
                    },
                    overrideMimeType: function(e) {
                        return null == h && (v.mimeType = e), this
                    },
                    statusCode: function(e) {
                        var t;
                        if (e)
                            if (h) T.always(e[T.status]);
                            else
                                for (t in e) w[t] = [w[t], e[t]];
                        return this
                    },
                    abort: function(e) {
                        var t = e || u;
                        return c && c.abort(t), l(0, t), this
                    }
                };
            if (x.promise(T), v.url = ((e || v.url || Et.href) + "").replace($t, Et.protocol + "//"), v.type = t.method || t.type || v.method || v.type, v.dataTypes = (v.dataType || "*").toLowerCase().match(D) || [""], null == v.crossDomain) {
                r = C.createElement("a");
                try {
                    r.href = v.url, r.href = r.href, v.crossDomain = Xt.protocol + "//" + Xt.host != r.protocol + "//" + r.host
                } catch (e) {
                    v.crossDomain = !0
                }
            }
            if (v.data && v.processData && "string" != typeof v.data && (v.data = ce.param(v.data, v.traditional)), Vt(Bt, v, t, T), h) return T;
            for (i in (g = ce.event && v.global) && 0 == ce.active++ && ce.event.trigger("ajaxStart"), v.type = v.type.toUpperCase(), v.hasContent = !Ft.test(v.type), f = v.url.replace(Rt, ""), v.hasContent ? v.data && v.processData && 0 === (v.contentType || "").indexOf("application/x-www-form-urlencoded") && (v.data = v.data.replace(Mt, "+")) : (o = v.url.slice(f.length), v.data && (v.processData || "string" == typeof v.data) && (f += (At.test(f) ? "&" : "?") + v.data, delete v.data), !1 === v.cache && (f = f.replace(It, "$1"), o = (At.test(f) ? "&" : "?") + "_=" + jt.guid++ + o), v.url = f + o), v.ifModified && (ce.lastModified[f] && T.setRequestHeader("If-Modified-Since", ce.lastModified[f]), ce.etag[f] && T.setRequestHeader("If-None-Match", ce.etag[f])), (v.data && v.hasContent && !1 !== v.contentType || t.contentType) && T.setRequestHeader("Content-Type", v.contentType), T.setRequestHeader("Accept", v.dataTypes[0] && v.accepts[v.dataTypes[0]] ? v.accepts[v.dataTypes[0]] + ("*" !== v.dataTypes[0] ? ", " + zt + "; q=0.01" : "") : v.accepts["*"]), v.headers) T.setRequestHeader(i, v.headers[i]);
            if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h)) return T.abort();
            if (u = "abort", b.add(v.complete), T.done(v.success), T.fail(v.error), c = Vt(_t, v, t, T)) {
                if (T.readyState = 1, g && m.trigger("ajaxSend", [T, v]), h) return T;
                v.async && 0 < v.timeout && (d = ie.setTimeout(function() {
                    T.abort("timeout")
                }, v.timeout));
                try {
                    h = !1, c.send(a, l)
                } catch (e) {
                    if (h) throw e;
                    l(-1, e)
                }
            } else l(-1, "No Transport");

            function l(e, t, n, r) {
                var i, o, a, s, u, l = t;
                h || (h = !0, d && ie.clearTimeout(d), c = void 0, p = r || "", T.readyState = 0 < e ? 4 : 0, i = 200 <= e && e < 300 || 304 === e, n && (s = function(e, t, n) {
                    var r, i, o, a, s = e.contents,
                        u = e.dataTypes;
                    while ("*" === u[0]) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
                    if (r)
                        for (i in s)
                            if (s[i] && s[i].test(r)) {
                                u.unshift(i);
                                break
                            }
                    if (u[0] in n) o = u[0];
                    else {
                        for (i in n) {
                            if (!u[0] || e.converters[i + " " + u[0]]) {
                                o = i;
                                break
                            }
                            a || (a = i)
                        }
                        o = o || a
                    }
                    if (o) return o !== u[0] && u.unshift(o), n[o]
                }(v, T, n)), !i && -1 < ce.inArray("script", v.dataTypes) && ce.inArray("json", v.dataTypes) < 0 && (v.converters["text script"] = function() {}), s = function(e, t, n, r) {
                    var i, o, a, s, u, l = {},
                        c = e.dataTypes.slice();
                    if (c[1])
                        for (a in e.converters) l[a.toLowerCase()] = e.converters[a];
                    o = c.shift();
                    while (o)
                        if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift())
                            if ("*" === o) o = u;
                            else if ("*" !== u && u !== o) {
                        if (!(a = l[u + " " + o] || l["* " + o]))
                            for (i in l)
                                if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) {
                                    !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], c.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 " + u + " to " + o
                                }
                            }
                    }
                    return {
                        state: "success",
                        data: t
                    }
                }(v, s, T, i), i ? (v.ifModified && ((u = T.getResponseHeader("Last-Modified")) && (ce.lastModified[f] = u), (u = T.getResponseHeader("etag")) && (ce.etag[f] = u)), 204 === e || "HEAD" === v.type ? l = "nocontent" : 304 === e ? l = "notmodified" : (l = s.state, o = s.data, i = !(a = s.error))) : (a = l, !e && l || (l = "error", e < 0 && (e = 0))), T.status = e, T.statusText = (t || l) + "", i ? x.resolveWith(y, [o, l, T]) : x.rejectWith(y, [T, l, a]), T.statusCode(w), w = void 0, g && m.trigger(i ? "ajaxSuccess" : "ajaxError", [T, v, i ? o : a]), b.fireWith(y, [T, l]), g && (m.trigger("ajaxComplete", [T, v]), --ce.active || ce.event.trigger("ajaxStop")))
            }
            return T
        },
        getJSON: function(e, t, n) {
            return ce.get(e, t, n, "json")
        },
        getScript: function(e, t) {
            return ce.get(e, void 0, t, "script")
        }
    }), ce.each(["get", "post"], function(e, i) {
        ce[i] = function(e, t, n, r) {
            return v(t) && (r = r || n, n = t, t = void 0), ce.ajax(ce.extend({
                url: e,
                type: i,
                dataType: r,
                data: t,
                success: n
            }, ce.isPlainObject(e) && e))
        }
    }), ce.ajaxPrefilter(function(e) {
        var t;
        for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "")
    }), ce._evalUrl = function(e, t, n) {
        return ce.ajax({
            url: e,
            type: "GET",
            dataType: "script",
            cache: !0,
            async: !1,
            global: !1,
            converters: {
                "text script": function() {}
            },
            dataFilter: function(e) {
                ce.globalEval(e, t, n)
            }
        })
    }, ce.fn.extend({
        wrapAll: function(e) {
            var t;
            return this[0] && (v(e) && (e = e.call(this[0])), t = ce(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
                var e = this;
                while (e.firstElementChild) e = e.firstElementChild;
                return e
            }).append(this)), this
        },
        wrapInner: function(n) {
            return v(n) ? this.each(function(e) {
                ce(this).wrapInner(n.call(this, e))
            }) : this.each(function() {
                var e = ce(this),
                    t = e.contents();
                t.length ? t.wrapAll(n) : e.append(n)
            })
        },
        wrap: function(t) {
            var n = v(t);
            return this.each(function(e) {
                ce(this).wrapAll(n ? t.call(this, e) : t)
            })
        },
        unwrap: function(e) {
            return this.parent(e).not("body").each(function() {
                ce(this).replaceWith(this.childNodes)
            }), this
        }
    }), ce.expr.pseudos.hidden = function(e) {
        return !ce.expr.pseudos.visible(e)
    }, ce.expr.pseudos.visible = function(e) {
        return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
    }, ce.ajaxSettings.xhr = function() {
        try {
            return new ie.XMLHttpRequest
        } catch (e) {}
    };
    var Yt = {
            0: 200,
            1223: 204
        },
        Qt = ce.ajaxSettings.xhr();
    le.cors = !!Qt && "withCredentials" in Qt, le.ajax = Qt = !!Qt, ce.ajaxTransport(function(i) {
        var o, a;
        if (le.cors || Qt && !i.crossDomain) return {
            send: function(e, t) {
                var n, r = i.xhr();
                if (r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields)
                    for (n in i.xhrFields) r[n] = i.xhrFields[n];
                for (n in i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType), i.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"), e) r.setRequestHeader(n, e[n]);
                o = function(e) {
                    return function() {
                        o && (o = a = r.onload = r.onerror = r.onabort = r.ontimeout = r.onreadystatechange = null, "abort" === e ? r.abort() : "error" === e ? "number" != typeof r.status ? t(0, "error") : t(r.status, r.statusText) : t(Yt[r.status] || r.status, r.statusText, "text" !== (r.responseType || "text") || "string" != typeof r.responseText ? {
                            binary: r.response
                        } : {
                            text: r.responseText
                        }, r.getAllResponseHeaders()))
                    }
                }, r.onload = o(), a = r.onerror = r.ontimeout = o("error"), void 0 !== r.onabort ? r.onabort = a : r.onreadystatechange = function() {
                    4 === r.readyState && ie.setTimeout(function() {
                        o && a()
                    })
                }, o = o("abort");
                try {
                    r.send(i.hasContent && i.data || null)
                } catch (e) {
                    if (o) throw e
                }
            },
            abort: function() {
                o && o()
            }
        }
    }), ce.ajaxPrefilter(function(e) {
        e.crossDomain && (e.contents.script = !1)
    }), ce.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 ce.globalEval(e), e
            }
        }
    }), ce.ajaxPrefilter("script", function(e) {
        void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET")
    }), ce.ajaxTransport("script", function(n) {
        var r, i;
        if (n.crossDomain || n.scriptAttrs) return {
            send: function(e, t) {
                r = ce("<script>").attr(n.scriptAttrs || {}).prop({
                    charset: n.scriptCharset,
                    src: n.url
                }).on("load error", i = function(e) {
                    r.remove(), i = null, e && t("error" === e.type ? 404 : 200, e.type)
                }), C.head.appendChild(r[0])
            },
            abort: function() {
                i && i()
            }
        }
    });
    var Jt, Kt = [],
        Zt = /(=)\?(?=&|$)|\?\?/;
    ce.ajaxSetup({
        jsonp: "callback",
        jsonpCallback: function() {
            var e = Kt.pop() || ce.expando + "_" + jt.guid++;
            return this[e] = !0, e
        }
    }), ce.ajaxPrefilter("json jsonp", function(e, t, n) {
        var r, i, o, a = !1 !== e.jsonp && (Zt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Zt.test(e.data) && "data");
        if (a || "jsonp" === e.dataTypes[0]) return r = e.jsonpCallback = v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, a ? e[a] = e[a].replace(Zt, "$1" + r) : !1 !== e.jsonp && (e.url += (At.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function() {
            return o || ce.error(r + " was not called"), o[0]
        }, e.dataTypes[0] = "json", i = ie[r], ie[r] = function() {
            o = arguments
        }, n.always(function() {
            void 0 === i ? ce(ie).removeProp(r) : ie[r] = i, e[r] && (e.jsonpCallback = t.jsonpCallback, Kt.push(r)), o && v(i) && i(o[0]), o = i = void 0
        }), "script"
    }), le.createHTMLDocument = ((Jt = C.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === Jt.childNodes.length), ce.parseHTML = function(e, t, n) {
        return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t, t = !1), t || (le.createHTMLDocument ? ((r = (t = C.implementation.createHTMLDocument("")).createElement("base")).href = C.location.href, t.head.appendChild(r)) : t = C), o = !n && [], (i = w.exec(e)) ? [t.createElement(i[1])] : (i = Ae([e], t, o), o && o.length && ce(o).remove(), ce.merge([], i.childNodes)));
        var r, i, o
    }, ce.fn.load = function(e, t, n) {
        var r, i, o, a = this,
            s = e.indexOf(" ");
        return -1 < s && (r = Tt(e.slice(s)), e = e.slice(0, s)), v(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), 0 < a.length && ce.ajax({
            url: e,
            type: i || "GET",
            dataType: "html",
            data: t
        }).done(function(e) {
            o = arguments, a.html(r ? ce("<div>").append(ce.parseHTML(e)).find(r) : e)
        }).always(n && function(e, t) {
            a.each(function() {
                n.apply(this, o || [e.responseText, t, e])
            })
        }), this
    }, ce.expr.pseudos.animated = function(t) {
        return ce.grep(ce.timers, function(e) {
            return t === e.elem
        }).length
    }, ce.offset = {
        setOffset: function(e, t, n) {
            var r, i, o, a, s, u, l = ce.css(e, "position"),
                c = ce(e),
                f = {};
            "static" === l && (e.style.position = "relative"), s = c.offset(), o = ce.css(e, "top"), u = ce.css(e, "left"), ("absolute" === l || "fixed" === l) && -1 < (o + u).indexOf("auto") ? (a = (r = c.position()).top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(u) || 0), v(t) && (t = t.call(e, n, ce.extend({}, s))), null != t.top && (f.top = t.top - s.top + a), null != t.left && (f.left = t.left - s.left + i), "using" in t ? t.using.call(e, f) : c.css(f)
        }
    }, ce.fn.extend({
        offset: function(t) {
            if (arguments.length) return void 0 === t ? this : this.each(function(e) {
                ce.offset.setOffset(this, t, e)
            });
            var e, n, r = this[0];
            return r ? r.getClientRects().length ? (e = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, {
                top: e.top + n.pageYOffset,
                left: e.left + n.pageXOffset
            }) : {
                top: 0,
                left: 0
            } : void 0
        },
        position: function() {
            if (this[0]) {
                var e, t, n, r = this[0],
                    i = {
                        top: 0,
                        left: 0
                    };
                if ("fixed" === ce.css(r, "position")) t = r.getBoundingClientRect();
                else {
                    t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement;
                    while (e && (e === n.body || e === n.documentElement) && "static" === ce.css(e, "position")) e = e.parentNode;
                    e && e !== r && 1 === e.nodeType && ((i = ce(e).offset()).top += ce.css(e, "borderTopWidth", !0), i.left += ce.css(e, "borderLeftWidth", !0))
                }
                return {
                    top: t.top - i.top - ce.css(r, "marginTop", !0),
                    left: t.left - i.left - ce.css(r, "marginLeft", !0)
                }
            }
        },
        offsetParent: function() {
            return this.map(function() {
                var e = this.offsetParent;
                while (e && "static" === ce.css(e, "position")) e = e.offsetParent;
                return e || J
            })
        }
    }), ce.each({
        scrollLeft: "pageXOffset",
        scrollTop: "pageYOffset"
    }, function(t, i) {
        var o = "pageYOffset" === i;
        ce.fn[t] = function(e) {
            return M(this, function(e, t, n) {
                var r;
                if (y(e) ? r = e : 9 === e.nodeType && (r = e.defaultView), void 0 === n) return r ? r[i] : e[t];
                r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : e[t] = n
            }, t, e, arguments.length)
        }
    }), ce.each(["top", "left"], function(e, n) {
        ce.cssHooks[n] = Ye(le.pixelPosition, function(e, t) {
            if (t) return t = Ge(e, n), _e.test(t) ? ce(e).position()[n] + "px" : t
        })
    }), ce.each({
        Height: "height",
        Width: "width"
    }, function(a, s) {
        ce.each({
            padding: "inner" + a,
            content: s,
            "": "outer" + a
        }, function(r, o) {
            ce.fn[o] = function(e, t) {
                var n = arguments.length && (r || "boolean" != typeof e),
                    i = r || (!0 === e || !0 === t ? "margin" : "border");
                return M(this, function(e, t, n) {
                    var r;
                    return y(e) ? 0 === o.indexOf("outer") ? e["inner" + a] : e.document.documentElement["client" + a] : 9 === e.nodeType ? (r = e.documentElement, Math.max(e.body["scroll" + a], r["scroll" + a], e.body["offset" + a], r["offset" + a], r["client" + a])) : void 0 === n ? ce.css(e, t, i) : ce.style(e, t, n, i)
                }, s, n ? e : void 0, n)
            }
        })
    }), ce.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
        ce.fn[t] = function(e) {
            return this.on(t, e)
        }
    }), ce.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, r) {
            return this.on(t, e, n, r)
        },
        undelegate: function(e, t, n) {
            return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
        },
        hover: function(e, t) {
            return this.on("mouseenter", e).on("mouseleave", t || e)
        }
    }), ce.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, n) {
        ce.fn[n] = function(e, t) {
            return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n)
        }
    });
    var en = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
    ce.proxy = function(e, t) {
        var n, r, i;
        if ("string" == typeof t && (n = e[t], t = e, e = n), v(e)) return r = ae.call(arguments, 2), (i = function() {
            return e.apply(t || this, r.concat(ae.call(arguments)))
        }).guid = e.guid = e.guid || ce.guid++, i
    }, ce.holdReady = function(e) {
        e ? ce.readyWait++ : ce.ready(!0)
    }, ce.isArray = Array.isArray, ce.parseJSON = JSON.parse, ce.nodeName = fe, ce.isFunction = v, ce.isWindow = y, ce.camelCase = F, ce.type = x, ce.now = Date.now, ce.isNumeric = function(e) {
        var t = ce.type(e);
        return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
    }, ce.trim = function(e) {
        return null == e ? "" : (e + "").replace(en, "$1")
    }, "function" == typeof define && define.amd && define("jquery", [], function() {
        return ce
    });
    var tn = ie.jQuery,
        nn = ie.$;
    return ce.noConflict = function(e) {
        return ie.$ === ce && (ie.$ = nn), e && ie.jQuery === ce && (ie.jQuery = tn), ce
    }, "undefined" == typeof e && (ie.jQuery = ie.$ = ce), ce
});

/*!
 * Bootstrap v5.0.2 (https://getbootstrap.com/)
 * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */
! function(t, e) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).bootstrap = e()
}(this, (function() {
    "use strict";
    const t = {
            find: (t, e = document.documentElement) => [].concat(...Element.prototype.querySelectorAll.call(e, t)),
            findOne: (t, e = document.documentElement) => Element.prototype.querySelector.call(e, t),
            children: (t, e) => [].concat(...t.children).filter(t => t.matches(e)),
            parents(t, e) {
                const i = [];
                let n = t.parentNode;
                for (; n && n.nodeType === Node.ELEMENT_NODE && 3 !== n.nodeType;) n.matches(e) && i.push(n), n = n.parentNode;
                return i
            },
            prev(t, e) {
                let i = t.previousElementSibling;
                for (; i;) {
                    if (i.matches(e)) return [i];
                    i = i.previousElementSibling
                }
                return []
            },
            next(t, e) {
                let i = t.nextElementSibling;
                for (; i;) {
                    if (i.matches(e)) return [i];
                    i = i.nextElementSibling
                }
                return []
            }
        },
        e = t => {
            do {
                t += Math.floor(1e6 * Math.random())
            } while (document.getElementById(t));
            return t
        },
        i = t => {
            let e = t.getAttribute("data-bs-target");
            if (!e || "#" === e) {
                let i = t.getAttribute("href");
                if (!i || !i.includes("#") && !i.startsWith(".")) return null;
                i.includes("#") && !i.startsWith("#") && (i = "#" + i.split("#")[1]), e = i && "#" !== i ? i.trim() : null
            }
            return e
        },
        n = t => {
            const e = i(t);
            return e && document.querySelector(e) ? e : null
        },
        s = t => {
            const e = i(t);
            return e ? document.querySelector(e) : null
        },
        o = t => {
            t.dispatchEvent(new Event("transitionend"))
        },
        r = t => !(!t || "object" != typeof t) && (void 0 !== t.jquery && (t = t[0]), void 0 !== t.nodeType),
        a = e => r(e) ? e.jquery ? e[0] : e : "string" == typeof e && e.length > 0 ? t.findOne(e) : null,
        l = (t, e, i) => {
            Object.keys(i).forEach(n => {
                const s = i[n],
                    o = e[n],
                    a = o && r(o) ? "element" : null == (l = o) ? "" + l : {}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();
                var l;
                if (!new RegExp(s).test(a)) throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)
            })
        },
        c = t => !(!r(t) || 0 === t.getClientRects().length) && "visible" === getComputedStyle(t).getPropertyValue("visibility"),
        h = t => !t || t.nodeType !== Node.ELEMENT_NODE || !!t.classList.contains("disabled") || (void 0 !== t.disabled ? t.disabled : t.hasAttribute("disabled") && "false" !== t.getAttribute("disabled")),
        d = t => {
            if (!document.documentElement.attachShadow) return null;
            if ("function" == typeof t.getRootNode) {
                const e = t.getRootNode();
                return e instanceof ShadowRoot ? e : null
            }
            return t instanceof ShadowRoot ? t : t.parentNode ? d(t.parentNode) : null
        },
        u = () => {},
        f = t => t.offsetHeight,
        p = () => {
            const {
                jQuery: t
            } = window;
            return t && !document.body.hasAttribute("data-bs-no-jquery") ? t : null
        },
        m = [],
        g = () => "rtl" === document.documentElement.dir,
        _ = t => {
            var e;
            e = () => {
                const e = p();
                if (e) {
                    const i = t.NAME,
                        n = e.fn[i];
                    e.fn[i] = t.jQueryInterface, e.fn[i].Constructor = t, e.fn[i].noConflict = () => (e.fn[i] = n, t.jQueryInterface)
                }
            }, "loading" === document.readyState ? (m.length || document.addEventListener("DOMContentLoaded", () => {
                m.forEach(t => t())
            }), m.push(e)) : e()
        },
        b = t => {
            "function" == typeof t && t()
        },
        v = (t, e, i = !0) => {
            if (!i) return void b(t);
            const n = (t => {
                if (!t) return 0;
                let {
                    transitionDuration: e,
                    transitionDelay: i
                } = window.getComputedStyle(t);
                const n = Number.parseFloat(e),
                    s = Number.parseFloat(i);
                return n || s ? (e = e.split(",")[0], i = i.split(",")[0], 1e3 * (Number.parseFloat(e) + Number.parseFloat(i))) : 0
            })(e) + 5;
            let s = !1;
            const r = ({
                target: i
            }) => {
                i === e && (s = !0, e.removeEventListener("transitionend", r), b(t))
            };
            e.addEventListener("transitionend", r), setTimeout(() => {
                s || o(e)
            }, n)
        },
        y = (t, e, i, n) => {
            let s = t.indexOf(e);
            if (-1 === s) return t[!i && n ? t.length - 1 : 0];
            const o = t.length;
            return s += i ? 1 : -1, n && (s = (s + o) % o), t[Math.max(0, Math.min(s, o - 1))]
        },
        w = /[^.]*(?=\..*)\.|.*/,
        E = /\..*/,
        A = /::\d+$/,
        T = {};
    let O = 1;
    const C = {
            mouseenter: "mouseover",
            mouseleave: "mouseout"
        },
        k = /^(mouseenter|mouseleave)/i,
        L = 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 x(t, e) {
        return e && `${e}::${O++}` || t.uidEvent || O++
    }

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

    function S(t, e, i = null) {
        const n = Object.keys(t);
        for (let s = 0, o = n.length; s < o; s++) {
            const o = t[n[s]];
            if (o.originalHandler === e && o.delegationSelector === i) return o
        }
        return null
    }

    function I(t, e, i) {
        const n = "string" == typeof e,
            s = n ? i : e;
        let o = M(t);
        return L.has(o) || (o = t), [n, s, o]
    }

    function N(t, e, i, n, s) {
        if ("string" != typeof e || !t) return;
        if (i || (i = n, n = null), k.test(e)) {
            const t = t => function(e) {
                if (!e.relatedTarget || e.relatedTarget !== e.delegateTarget && !e.delegateTarget.contains(e.relatedTarget)) return t.call(this, e)
            };
            n ? n = t(n) : i = t(i)
        }
        const [o, r, a] = I(e, i, n), l = D(t), c = l[a] || (l[a] = {}), h = S(c, r, o ? i : null);
        if (h) return void(h.oneOff = h.oneOff && s);
        const d = x(r, e.replace(w, "")),
            u = o ? function(t, e, i) {
                return function n(s) {
                    const o = t.querySelectorAll(e);
                    for (let {
                            target: r
                        } = s; r && r !== this; r = r.parentNode)
                        for (let a = o.length; a--;)
                            if (o[a] === r) return s.delegateTarget = r, n.oneOff && P.off(t, s.type, e, i), i.apply(r, [s]);
                    return null
                }
            }(t, i, n) : function(t, e) {
                return function i(n) {
                    return n.delegateTarget = t, i.oneOff && P.off(t, n.type, e), e.apply(t, [n])
                }
            }(t, i);
        u.delegationSelector = o ? i : null, u.originalHandler = r, u.oneOff = s, u.uidEvent = d, c[d] = u, t.addEventListener(a, u, o)
    }

    function j(t, e, i, n, s) {
        const o = S(e[i], n, s);
        o && (t.removeEventListener(i, o, Boolean(s)), delete e[i][o.uidEvent])
    }

    function M(t) {
        return t = t.replace(E, ""), C[t] || t
    }
    const P = {
            on(t, e, i, n) {
                N(t, e, i, n, !1)
            },
            one(t, e, i, n) {
                N(t, e, i, n, !0)
            },
            off(t, e, i, n) {
                if ("string" != typeof e || !t) return;
                const [s, o, r] = I(e, i, n), a = r !== e, l = D(t), c = e.startsWith(".");
                if (void 0 !== o) {
                    if (!l || !l[r]) return;
                    return void j(t, l, r, o, s ? i : null)
                }
                c && Object.keys(l).forEach(i => {
                    ! function(t, e, i, n) {
                        const s = e[i] || {};
                        Object.keys(s).forEach(o => {
                            if (o.includes(n)) {
                                const n = s[o];
                                j(t, e, i, n.originalHandler, n.delegationSelector)
                            }
                        })
                    }(t, l, i, e.slice(1))
                });
                const h = l[r] || {};
                Object.keys(h).forEach(i => {
                    const n = i.replace(A, "");
                    if (!a || e.includes(n)) {
                        const e = h[i];
                        j(t, l, r, e.originalHandler, e.delegationSelector)
                    }
                })
            },
            trigger(t, e, i) {
                if ("string" != typeof e || !t) return null;
                const n = p(),
                    s = M(e),
                    o = e !== s,
                    r = L.has(s);
                let a, l = !0,
                    c = !0,
                    h = !1,
                    d = null;
                return o && n && (a = n.Event(e, i), n(t).trigger(a), l = !a.isPropagationStopped(), c = !a.isImmediatePropagationStopped(), h = a.isDefaultPrevented()), r ? (d = document.createEvent("HTMLEvents"), d.initEvent(s, l, !0)) : d = new CustomEvent(e, {
                    bubbles: l,
                    cancelable: !0
                }), void 0 !== i && Object.keys(i).forEach(t => {
                    Object.defineProperty(d, t, {
                        get: () => i[t]
                    })
                }), h && d.preventDefault(), c && t.dispatchEvent(d), d.defaultPrevented && void 0 !== a && a.preventDefault(), d
            }
        },
        H = new Map;
    var R = {
        set(t, e, i) {
            H.has(t) || H.set(t, new Map);
            const n = H.get(t);
            n.has(e) || 0 === n.size ? n.set(e, i) : console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)
        },
        get: (t, e) => H.has(t) && H.get(t).get(e) || null,
        remove(t, e) {
            if (!H.has(t)) return;
            const i = H.get(t);
            i.delete(e), 0 === i.size && H.delete(t)
        }
    };
    class B {
        constructor(t) {
            (t = a(t)) && (this._element = t, R.set(this._element, this.constructor.DATA_KEY, this))
        }
        dispose() {
            R.remove(this._element, this.constructor.DATA_KEY), P.off(this._element, this.constructor.EVENT_KEY), Object.getOwnPropertyNames(this).forEach(t => {
                this[t] = null
            })
        }
        _queueCallback(t, e, i = !0) {
            v(t, e, i)
        }
        static getInstance(t) {
            return R.get(t, this.DATA_KEY)
        }
        static getOrCreateInstance(t, e = {}) {
            return this.getInstance(t) || new this(t, "object" == typeof e ? e : null)
        }
        static get VERSION() {
            return "5.0.2"
        }
        static get NAME() {
            throw new Error('You have to implement the static method "NAME", for each component!')
        }
        static get DATA_KEY() {
            return "bs." + this.NAME
        }
        static get EVENT_KEY() {
            return "." + this.DATA_KEY
        }
    }
    class W extends B {
        static get NAME() {
            return "alert"
        }
        close(t) {
            const e = t ? this._getRootElement(t) : this._element,
                i = this._triggerCloseEvent(e);
            null === i || i.defaultPrevented || this._removeElement(e)
        }
        _getRootElement(t) {
            return s(t) || t.closest(".alert")
        }
        _triggerCloseEvent(t) {
            return P.trigger(t, "close.bs.alert")
        }
        _removeElement(t) {
            t.classList.remove("show");
            const e = t.classList.contains("fade");
            this._queueCallback(() => this._destroyElement(t), t, e)
        }
        _destroyElement(t) {
            t.remove(), P.trigger(t, "closed.bs.alert")
        }
        static jQueryInterface(t) {
            return this.each((function() {
                const e = W.getOrCreateInstance(this);
                "close" === t && e[t](this)
            }))
        }
        static handleDismiss(t) {
            return function(e) {
                e && e.preventDefault(), t.close(this)
            }
        }
    }
    P.on(document, "click.bs.alert.data-api", '[data-bs-dismiss="alert"]', W.handleDismiss(new W)), _(W);
    class q extends B {
        static get NAME() {
            return "button"
        }
        toggle() {
            this._element.setAttribute("aria-pressed", this._element.classList.toggle("active"))
        }
        static jQueryInterface(t) {
            return this.each((function() {
                const e = q.getOrCreateInstance(this);
                "toggle" === t && e[t]()
            }))
        }
    }

    function z(t) {
        return "true" === t || "false" !== t && (t === Number(t).toString() ? Number(t) : "" === t || "null" === t ? null : t)
    }

    function $(t) {
        return t.replace(/[A-Z]/g, t => "-" + t.toLowerCase())
    }
    P.on(document, "click.bs.button.data-api", '[data-bs-toggle="button"]', t => {
        t.preventDefault();
        const e = t.target.closest('[data-bs-toggle="button"]');
        q.getOrCreateInstance(e).toggle()
    }), _(q);
    const U = {
            setDataAttribute(t, e, i) {
                t.setAttribute("data-bs-" + $(e), i)
            },
            removeDataAttribute(t, e) {
                t.removeAttribute("data-bs-" + $(e))
            },
            getDataAttributes(t) {
                if (!t) return {};
                const e = {};
                return Object.keys(t.dataset).filter(t => t.startsWith("bs")).forEach(i => {
                    let n = i.replace(/^bs/, "");
                    n = n.charAt(0).toLowerCase() + n.slice(1, n.length), e[n] = z(t.dataset[i])
                }), e
            },
            getDataAttribute: (t, e) => z(t.getAttribute("data-bs-" + $(e))),
            offset(t) {
                const e = t.getBoundingClientRect();
                return {
                    top: e.top + document.body.scrollTop,
                    left: e.left + document.body.scrollLeft
                }
            },
            position: t => ({
                top: t.offsetTop,
                left: t.offsetLeft
            })
        },
        F = {
            interval: 5e3,
            keyboard: !0,
            slide: !1,
            pause: "hover",
            wrap: !0,
            touch: !0
        },
        V = {
            interval: "(number|boolean)",
            keyboard: "boolean",
            slide: "(boolean|string)",
            pause: "(string|boolean)",
            wrap: "boolean",
            touch: "boolean"
        },
        K = "next",
        X = "prev",
        Y = "left",
        Q = "right",
        G = {
            ArrowLeft: Q,
            ArrowRight: Y
        };
    class Z extends B {
        constructor(e, i) {
            super(e), this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(i), this._indicatorsElement = t.findOne(".carousel-indicators", this._element), this._touchSupported = "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0, this._pointerEvent = Boolean(window.PointerEvent), this._addEventListeners()
        }
        static get Default() {
            return F
        }
        static get NAME() {
            return "carousel"
        }
        next() {
            this._slide(K)
        }
        nextWhenVisible() {
            !document.hidden && c(this._element) && this.next()
        }
        prev() {
            this._slide(X)
        }
        pause(e) {
            e || (this._isPaused = !0), t.findOne(".carousel-item-next, .carousel-item-prev", this._element) && (o(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
        }
        cycle(t) {
            t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config && this._config.interval && !this._isPaused && (this._updateInterval(), this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
        }
        to(e) {
            this._activeElement = t.findOne(".active.carousel-item", this._element);
            const i = this._getItemIndex(this._activeElement);
            if (e > this._items.length - 1 || e < 0) return;
            if (this._isSliding) return void P.one(this._element, "slid.bs.carousel", () => this.to(e));
            if (i === e) return this.pause(), void this.cycle();
            const n = e > i ? K : X;
            this._slide(n, this._items[e])
        }
        _getConfig(t) {
            return t = { ...F,
                ...U.getDataAttributes(this._element),
                ..."object" == typeof t ? t : {}
            }, l("carousel", t, V), t
        }
        _handleSwipe() {
            const t = Math.abs(this.touchDeltaX);
            if (t <= 40) return;
            const e = t / this.touchDeltaX;
            this.touchDeltaX = 0, e && this._slide(e > 0 ? Q : Y)
        }
        _addEventListeners() {
            this._config.keyboard && P.on(this._element, "keydown.bs.carousel", t => this._keydown(t)), "hover" === this._config.pause && (P.on(this._element, "mouseenter.bs.carousel", t => this.pause(t)), P.on(this._element, "mouseleave.bs.carousel", t => this.cycle(t))), this._config.touch && this._touchSupported && this._addTouchEventListeners()
        }
        _addTouchEventListeners() {
            const e = t => {
                    !this._pointerEvent || "pen" !== t.pointerType && "touch" !== t.pointerType ? this._pointerEvent || (this.touchStartX = t.touches[0].clientX) : this.touchStartX = t.clientX
                },
                i = t => {
                    this.touchDeltaX = t.touches && t.touches.length > 1 ? 0 : t.touches[0].clientX - this.touchStartX
                },
                n = t => {
                    !this._pointerEvent || "pen" !== t.pointerType && "touch" !== t.pointerType || (this.touchDeltaX = t.clientX - this.touchStartX), this._handleSwipe(), "hover" === this._config.pause && (this.pause(), this.touchTimeout && clearTimeout(this.touchTimeout), this.touchTimeout = setTimeout(t => this.cycle(t), 500 + this._config.interval))
                };
            t.find(".carousel-item img", this._element).forEach(t => {
                P.on(t, "dragstart.bs.carousel", t => t.preventDefault())
            }), this._pointerEvent ? (P.on(this._element, "pointerdown.bs.carousel", t => e(t)), P.on(this._element, "pointerup.bs.carousel", t => n(t)), this._element.classList.add("pointer-event")) : (P.on(this._element, "touchstart.bs.carousel", t => e(t)), P.on(this._element, "touchmove.bs.carousel", t => i(t)), P.on(this._element, "touchend.bs.carousel", t => n(t)))
        }
        _keydown(t) {
            if (/input|textarea/i.test(t.target.tagName)) return;
            const e = G[t.key];
            e && (t.preventDefault(), this._slide(e))
        }
        _getItemIndex(e) {
            return this._items = e && e.parentNode ? t.find(".carousel-item", e.parentNode) : [], this._items.indexOf(e)
        }
        _getItemByOrder(t, e) {
            const i = t === K;
            return y(this._items, e, i, this._config.wrap)
        }
        _triggerSlideEvent(e, i) {
            const n = this._getItemIndex(e),
                s = this._getItemIndex(t.findOne(".active.carousel-item", this._element));
            return P.trigger(this._element, "slide.bs.carousel", {
                relatedTarget: e,
                direction: i,
                from: s,
                to: n
            })
        }
        _setActiveIndicatorElement(e) {
            if (this._indicatorsElement) {
                const i = t.findOne(".active", this._indicatorsElement);
                i.classList.remove("active"), i.removeAttribute("aria-current");
                const n = t.find("[data-bs-target]", this._indicatorsElement);
                for (let t = 0; t < n.length; t++)
                    if (Number.parseInt(n[t].getAttribute("data-bs-slide-to"), 10) === this._getItemIndex(e)) {
                        n[t].classList.add("active"), n[t].setAttribute("aria-current", "true");
                        break
                    }
            }
        }
        _updateInterval() {
            const e = this._activeElement || t.findOne(".active.carousel-item", this._element);
            if (!e) return;
            const i = Number.parseInt(e.getAttribute("data-bs-interval"), 10);
            i ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = i) : this._config.interval = this._config.defaultInterval || this._config.interval
        }
        _slide(e, i) {
            const n = this._directionToOrder(e),
                s = t.findOne(".active.carousel-item", this._element),
                o = this._getItemIndex(s),
                r = i || this._getItemByOrder(n, s),
                a = this._getItemIndex(r),
                l = Boolean(this._interval),
                c = n === K,
                h = c ? "carousel-item-start" : "carousel-item-end",
                d = c ? "carousel-item-next" : "carousel-item-prev",
                u = this._orderToDirection(n);
            if (r && r.classList.contains("active")) return void(this._isSliding = !1);
            if (this._isSliding) return;
            if (this._triggerSlideEvent(r, u).defaultPrevented) return;
            if (!s || !r) return;
            this._isSliding = !0, l && this.pause(), this._setActiveIndicatorElement(r), this._activeElement = r;
            const p = () => {
                P.trigger(this._element, "slid.bs.carousel", {
                    relatedTarget: r,
                    direction: u,
                    from: o,
                    to: a
                })
            };
            if (this._element.classList.contains("slide")) {
                r.classList.add(d), f(r), s.classList.add(h), r.classList.add(h);
                const t = () => {
                    r.classList.remove(h, d), r.classList.add("active"), s.classList.remove("active", d, h), this._isSliding = !1, setTimeout(p, 0)
                };
                this._queueCallback(t, s, !0)
            } else s.classList.remove("active"), r.classList.add("active"), this._isSliding = !1, p();
            l && this.cycle()
        }
        _directionToOrder(t) {
            return [Q, Y].includes(t) ? g() ? t === Y ? X : K : t === Y ? K : X : t
        }
        _orderToDirection(t) {
            return [K, X].includes(t) ? g() ? t === X ? Y : Q : t === X ? Q : Y : t
        }
        static carouselInterface(t, e) {
            const i = Z.getOrCreateInstance(t, e);
            let {
                _config: n
            } = i;
            "object" == typeof e && (n = { ...n,
                ...e
            });
            const s = "string" == typeof e ? e : n.slide;
            if ("number" == typeof e) i.to(e);
            else if ("string" == typeof s) {
                if (void 0 === i[s]) throw new TypeError(`No method named "${s}"`);
                i[s]()
            } else n.interval && n.ride && (i.pause(), i.cycle())
        }
        static jQueryInterface(t) {
            return this.each((function() {
                Z.carouselInterface(this, t)
            }))
        }
        static dataApiClickHandler(t) {
            const e = s(this);
            if (!e || !e.classList.contains("carousel")) return;
            const i = { ...U.getDataAttributes(e),
                    ...U.getDataAttributes(this)
                },
                n = this.getAttribute("data-bs-slide-to");
            n && (i.interval = !1), Z.carouselInterface(e, i), n && Z.getInstance(e).to(n), t.preventDefault()
        }
    }
    P.on(document, "click.bs.carousel.data-api", "[data-bs-slide], [data-bs-slide-to]", Z.dataApiClickHandler), P.on(window, "load.bs.carousel.data-api", () => {
        const e = t.find('[data-bs-ride="carousel"]');
        for (let t = 0, i = e.length; t < i; t++) Z.carouselInterface(e[t], Z.getInstance(e[t]))
    }), _(Z);
    const J = {
            toggle: !0,
            parent: ""
        },
        tt = {
            toggle: "boolean",
            parent: "(string|element)"
        };
    class et extends B {
        constructor(e, i) {
            super(e), this._isTransitioning = !1, this._config = this._getConfig(i), this._triggerArray = t.find(`[data-bs-toggle="collapse"][href="#${this._element.id}"],[data-bs-toggle="collapse"][data-bs-target="#${this._element.id}"]`);
            const s = t.find('[data-bs-toggle="collapse"]');
            for (let e = 0, i = s.length; e < i; e++) {
                const i = s[e],
                    o = n(i),
                    r = t.find(o).filter(t => t === this._element);
                null !== o && r.length && (this._selector = o, this._triggerArray.push(i))
            }
            this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle()
        }
        static get Default() {
            return J
        }
        static get NAME() {
            return "collapse"
        }
        toggle() {
            this._element.classList.contains("show") ? this.hide() : this.show()
        }
        show() {
            if (this._isTransitioning || this._element.classList.contains("show")) return;
            let e, i;
            this._parent && (e = t.find(".show, .collapsing", this._parent).filter(t => "string" == typeof this._config.parent ? t.getAttribute("data-bs-parent") === this._config.parent : t.classList.contains("collapse")), 0 === e.length && (e = null));
            const n = t.findOne(this._selector);
            if (e) {
                const t = e.find(t => n !== t);
                if (i = t ? et.getInstance(t) : null, i && i._isTransitioning) return
            }
            if (P.trigger(this._element, "show.bs.collapse").defaultPrevented) return;
            e && e.forEach(t => {
                n !== t && et.collapseInterface(t, "hide"), i || R.set(t, "bs.collapse", null)
            });
            const s = this._getDimension();
            this._element.classList.remove("collapse"), this._element.classList.add("collapsing"), this._element.style[s] = 0, this._triggerArray.length && this._triggerArray.forEach(t => {
                t.classList.remove("collapsed"), t.setAttribute("aria-expanded", !0)
            }), this.setTransitioning(!0);
            const o = "scroll" + (s[0].toUpperCase() + s.slice(1));
            this._queueCallback(() => {
                this._element.classList.remove("collapsing"), this._element.classList.add("collapse", "show"), this._element.style[s] = "", this.setTransitioning(!1), P.trigger(this._element, "shown.bs.collapse")
            }, this._element, !0), this._element.style[s] = this._element[o] + "px"
        }
        hide() {
            if (this._isTransitioning || !this._element.classList.contains("show")) return;
            if (P.trigger(this._element, "hide.bs.collapse").defaultPrevented) return;
            const t = this._getDimension();
            this._element.style[t] = this._element.getBoundingClientRect()[t] + "px", f(this._element), this._element.classList.add("collapsing"), this._element.classList.remove("collapse", "show");
            const e = this._triggerArray.length;
            if (e > 0)
                for (let t = 0; t < e; t++) {
                    const e = this._triggerArray[t],
                        i = s(e);
                    i && !i.classList.contains("show") && (e.classList.add("collapsed"), e.setAttribute("aria-expanded", !1))
                }
            this.setTransitioning(!0), this._element.style[t] = "", this._queueCallback(() => {
                this.setTransitioning(!1), this._element.classList.remove("collapsing"), this._element.classList.add("collapse"), P.trigger(this._element, "hidden.bs.collapse")
            }, this._element, !0)
        }
        setTransitioning(t) {
            this._isTransitioning = t
        }
        _getConfig(t) {
            return (t = { ...J,
                ...t
            }).toggle = Boolean(t.toggle), l("collapse", t, tt), t
        }
        _getDimension() {
            return this._element.classList.contains("width") ? "width" : "height"
        }
        _getParent() {
            let {
                parent: e
            } = this._config;
            e = a(e);
            const i = `[data-bs-toggle="collapse"][data-bs-parent="${e}"]`;
            return t.find(i, e).forEach(t => {
                const e = s(t);
                this._addAriaAndCollapsedClass(e, [t])
            }), e
        }
        _addAriaAndCollapsedClass(t, e) {
            if (!t || !e.length) return;
            const i = t.classList.contains("show");
            e.forEach(t => {
                i ? t.classList.remove("collapsed") : t.classList.add("collapsed"), t.setAttribute("aria-expanded", i)
            })
        }
        static collapseInterface(t, e) {
            let i = et.getInstance(t);
            const n = { ...J,
                ...U.getDataAttributes(t),
                ..."object" == typeof e && e ? e : {}
            };
            if (!i && n.toggle && "string" == typeof e && /show|hide/.test(e) && (n.toggle = !1), i || (i = new et(t, n)), "string" == typeof e) {
                if (void 0 === i[e]) throw new TypeError(`No method named "${e}"`);
                i[e]()
            }
        }
        static jQueryInterface(t) {
            return this.each((function() {
                et.collapseInterface(this, t)
            }))
        }
    }
    P.on(document, "click.bs.collapse.data-api", '[data-bs-toggle="collapse"]', (function(e) {
        ("A" === e.target.tagName || e.delegateTarget && "A" === e.delegateTarget.tagName) && e.preventDefault();
        const i = U.getDataAttributes(this),
            s = n(this);
        t.find(s).forEach(t => {
            const e = et.getInstance(t);
            let n;
            e ? (null === e._parent && "string" == typeof i.parent && (e._config.parent = i.parent, e._parent = e._getParent()), n = "toggle") : n = i, et.collapseInterface(t, n)
        })
    })), _(et);
    var it = "top",
        nt = "bottom",
        st = "right",
        ot = "left",
        rt = [it, nt, st, ot],
        at = rt.reduce((function(t, e) {
            return t.concat([e + "-start", e + "-end"])
        }), []),
        lt = [].concat(rt, ["auto"]).reduce((function(t, e) {
            return t.concat([e, e + "-start", e + "-end"])
        }), []),
        ct = ["beforeRead", "read", "afterRead", "beforeMain", "main", "afterMain", "beforeWrite", "write", "afterWrite"];

    function ht(t) {
        return t ? (t.nodeName || "").toLowerCase() : null
    }

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

    function ut(t) {
        return t instanceof dt(t).Element || t instanceof Element
    }

    function ft(t) {
        return t instanceof dt(t).HTMLElement || t instanceof HTMLElement
    }

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

    function gt(t) {
        return t.split("-")[0]
    }

    function _t(t) {
        var e = t.getBoundingClientRect();
        return {
            width: e.width,
            height: e.height,
            top: e.top,
            right: e.right,
            bottom: e.bottom,
            left: e.left,
            x: e.left,
            y: e.top
        }
    }

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

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

    function yt(t) {
        return dt(t).getComputedStyle(t)
    }

    function wt(t) {
        return ["table", "td", "th"].indexOf(ht(t)) >= 0
    }

    function Et(t) {
        return ((ut(t) ? t.ownerDocument : t.document) || window.document).documentElement
    }

    function At(t) {
        return "html" === ht(t) ? t : t.assignedSlot || t.parentNode || (pt(t) ? t.host : null) || Et(t)
    }

    function Tt(t) {
        return ft(t) && "fixed" !== yt(t).position ? t.offsetParent : null
    }

    function Ot(t) {
        for (var e = dt(t), i = Tt(t); i && wt(i) && "static" === yt(i).position;) i = Tt(i);
        return i && ("html" === ht(i) || "body" === ht(i) && "static" === yt(i).position) ? e : i || function(t) {
            var e = -1 !== navigator.userAgent.toLowerCase().indexOf("firefox");
            if (-1 !== navigator.userAgent.indexOf("Trident") && ft(t) && "fixed" === yt(t).position) return null;
            for (var i = At(t); ft(i) && ["html", "body"].indexOf(ht(i)) < 0;) {
                var n = yt(i);
                if ("none" !== n.transform || "none" !== n.perspective || "paint" === n.contain || -1 !== ["transform", "perspective"].indexOf(n.willChange) || e && "filter" === n.willChange || e && n.filter && "none" !== n.filter) return i;
                i = i.parentNode
            }
            return null
        }(t) || e
    }

    function Ct(t) {
        return ["top", "bottom"].indexOf(t) >= 0 ? "x" : "y"
    }
    var kt = Math.max,
        Lt = Math.min,
        xt = Math.round;

    function Dt(t, e, i) {
        return kt(t, Lt(e, i))
    }

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

    function It(t, e) {
        return e.reduce((function(e, i) {
            return e[i] = t, e
        }), {})
    }
    var Nt = {
            name: "arrow",
            enabled: !0,
            phase: "main",
            fn: function(t) {
                var e, i = t.state,
                    n = t.name,
                    s = t.options,
                    o = i.elements.arrow,
                    r = i.modifiersData.popperOffsets,
                    a = gt(i.placement),
                    l = Ct(a),
                    c = [ot, st].indexOf(a) >= 0 ? "height" : "width";
                if (o && r) {
                    var h = function(t, e) {
                            return St("number" != typeof(t = "function" == typeof t ? t(Object.assign({}, e.rects, {
                                placement: e.placement
                            })) : t) ? t : It(t, rt))
                        }(s.padding, i),
                        d = bt(o),
                        u = "y" === l ? it : ot,
                        f = "y" === l ? nt : st,
                        p = i.rects.reference[c] + i.rects.reference[l] - r[l] - i.rects.popper[c],
                        m = r[l] - i.rects.reference[l],
                        g = Ot(o),
                        _ = g ? "y" === l ? g.clientHeight || 0 : g.clientWidth || 0 : 0,
                        b = p / 2 - m / 2,
                        v = h[u],
                        y = _ - d[c] - h[f],
                        w = _ / 2 - d[c] / 2 + b,
                        E = Dt(v, w, y),
                        A = l;
                    i.modifiersData[n] = ((e = {})[A] = E, e.centerOffset = E - w, e)
                }
            },
            effect: function(t) {
                var e = t.state,
                    i = t.options.element,
                    n = void 0 === i ? "[data-popper-arrow]" : i;
                null != n && ("string" != typeof n || (n = e.elements.popper.querySelector(n))) && vt(e.elements.popper, n) && (e.elements.arrow = n)
            },
            requires: ["popperOffsets"],
            requiresIfExists: ["preventOverflow"]
        },
        jt = {
            top: "auto",
            right: "auto",
            bottom: "auto",
            left: "auto"
        };

    function Mt(t) {
        var e, i = t.popper,
            n = t.popperRect,
            s = t.placement,
            o = t.offsets,
            r = t.position,
            a = t.gpuAcceleration,
            l = t.adaptive,
            c = t.roundOffsets,
            h = !0 === c ? function(t) {
                var e = t.x,
                    i = t.y,
                    n = window.devicePixelRatio || 1;
                return {
                    x: xt(xt(e * n) / n) || 0,
                    y: xt(xt(i * n) / n) || 0
                }
            }(o) : "function" == typeof c ? c(o) : o,
            d = h.x,
            u = void 0 === d ? 0 : d,
            f = h.y,
            p = void 0 === f ? 0 : f,
            m = o.hasOwnProperty("x"),
            g = o.hasOwnProperty("y"),
            _ = ot,
            b = it,
            v = window;
        if (l) {
            var y = Ot(i),
                w = "clientHeight",
                E = "clientWidth";
            y === dt(i) && "static" !== yt(y = Et(i)).position && (w = "scrollHeight", E = "scrollWidth"), y = y, s === it && (b = nt, p -= y[w] - n.height, p *= a ? 1 : -1), s === ot && (_ = st, u -= y[E] - n.width, u *= a ? 1 : -1)
        }
        var A, T = Object.assign({
            position: r
        }, l && jt);
        return a ? Object.assign({}, T, ((A = {})[b] = g ? "0" : "", A[_] = m ? "0" : "", A.transform = (v.devicePixelRatio || 1) < 2 ? "translate(" + u + "px, " + p + "px)" : "translate3d(" + u + "px, " + p + "px, 0)", A)) : Object.assign({}, T, ((e = {})[b] = g ? p + "px" : "", e[_] = m ? u + "px" : "", e.transform = "", e))
    }
    var Pt = {
            name: "computeStyles",
            enabled: !0,
            phase: "beforeWrite",
            fn: function(t) {
                var e = t.state,
                    i = t.options,
                    n = i.gpuAcceleration,
                    s = void 0 === n || n,
                    o = i.adaptive,
                    r = void 0 === o || o,
                    a = i.roundOffsets,
                    l = void 0 === a || a,
                    c = {
                        placement: gt(e.placement),
                        popper: e.elements.popper,
                        popperRect: e.rects.popper,
                        gpuAcceleration: s
                    };
                null != e.modifiersData.popperOffsets && (e.styles.popper = Object.assign({}, e.styles.popper, Mt(Object.assign({}, c, {
                    offsets: e.modifiersData.popperOffsets,
                    position: e.options.strategy,
                    adaptive: r,
                    roundOffsets: l
                })))), null != e.modifiersData.arrow && (e.styles.arrow = Object.assign({}, e.styles.arrow, Mt(Object.assign({}, c, {
                    offsets: e.modifiersData.arrow,
                    position: "absolute",
                    adaptive: !1,
                    roundOffsets: l
                })))), e.attributes.popper = Object.assign({}, e.attributes.popper, {
                    "data-popper-placement": e.placement
                })
            },
            data: {}
        },
        Ht = {
            passive: !0
        },
        Rt = {
            name: "eventListeners",
            enabled: !0,
            phase: "write",
            fn: function() {},
            effect: function(t) {
                var e = t.state,
                    i = t.instance,
                    n = t.options,
                    s = n.scroll,
                    o = void 0 === s || s,
                    r = n.resize,
                    a = void 0 === r || r,
                    l = dt(e.elements.popper),
                    c = [].concat(e.scrollParents.reference, e.scrollParents.popper);
                return o && c.forEach((function(t) {
                        t.addEventListener("scroll", i.update, Ht)
                    })), a && l.addEventListener("resize", i.update, Ht),
                    function() {
                        o && c.forEach((function(t) {
                            t.removeEventListener("scroll", i.update, Ht)
                        })), a && l.removeEventListener("resize", i.update, Ht)
                    }
            },
            data: {}
        },
        Bt = {
            left: "right",
            right: "left",
            bottom: "top",
            top: "bottom"
        };

    function Wt(t) {
        return t.replace(/left|right|bottom|top/g, (function(t) {
            return Bt[t]
        }))
    }
    var qt = {
        start: "end",
        end: "start"
    };

    function zt(t) {
        return t.replace(/start|end/g, (function(t) {
            return qt[t]
        }))
    }

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

    function Ut(t) {
        return _t(Et(t)).left + $t(t).scrollLeft
    }

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

    function Vt(t, e) {
        var i;
        void 0 === e && (e = []);
        var n = function t(e) {
                return ["html", "body", "#document"].indexOf(ht(e)) >= 0 ? e.ownerDocument.body : ft(e) && Ft(e) ? e : t(At(e))
            }(t),
            s = n === (null == (i = t.ownerDocument) ? void 0 : i.body),
            o = dt(n),
            r = s ? [o].concat(o.visualViewport || [], Ft(n) ? n : []) : n,
            a = e.concat(r);
        return s ? a : a.concat(Vt(At(r)))
    }

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

    function Xt(t, e) {
        return "viewport" === e ? Kt(function(t) {
            var e = dt(t),
                i = Et(t),
                n = e.visualViewport,
                s = i.clientWidth,
                o = i.clientHeight,
                r = 0,
                a = 0;
            return n && (s = n.width, o = n.height, /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || (r = n.offsetLeft, a = n.offsetTop)), {
                width: s,
                height: o,
                x: r + Ut(t),
                y: a
            }
        }(t)) : ft(e) ? function(t) {
            var e = _t(t);
            return e.top = e.top + t.clientTop, e.left = e.left + t.clientLeft, e.bottom = e.top + t.clientHeight, e.right = e.left + t.clientWidth, e.width = t.clientWidth, e.height = t.clientHeight, e.x = e.left, e.y = e.top, e
        }(e) : Kt(function(t) {
            var e, i = Et(t),
                n = $t(t),
                s = null == (e = t.ownerDocument) ? void 0 : e.body,
                o = kt(i.scrollWidth, i.clientWidth, s ? s.scrollWidth : 0, s ? s.clientWidth : 0),
                r = kt(i.scrollHeight, i.clientHeight, s ? s.scrollHeight : 0, s ? s.clientHeight : 0),
                a = -n.scrollLeft + Ut(t),
                l = -n.scrollTop;
            return "rtl" === yt(s || i).direction && (a += kt(i.clientWidth, s ? s.clientWidth : 0) - o), {
                width: o,
                height: r,
                x: a,
                y: l
            }
        }(Et(t)))
    }

    function Yt(t) {
        return t.split("-")[1]
    }

    function Qt(t) {
        var e, i = t.reference,
            n = t.element,
            s = t.placement,
            o = s ? gt(s) : null,
            r = s ? Yt(s) : null,
            a = i.x + i.width / 2 - n.width / 2,
            l = i.y + i.height / 2 - n.height / 2;
        switch (o) {
            case it:
                e = {
                    x: a,
                    y: i.y - n.height
                };
                break;
            case nt:
                e = {
                    x: a,
                    y: i.y + i.height
                };
                break;
            case st:
                e = {
                    x: i.x + i.width,
                    y: l
                };
                break;
            case ot:
                e = {
                    x: i.x - n.width,
                    y: l
                };
                break;
            default:
                e = {
                    x: i.x,
                    y: i.y
                }
        }
        var c = o ? Ct(o) : null;
        if (null != c) {
            var h = "y" === c ? "height" : "width";
            switch (r) {
                case "start":
                    e[c] = e[c] - (i[h] / 2 - n[h] / 2);
                    break;
                case "end":
                    e[c] = e[c] + (i[h] / 2 - n[h] / 2)
            }
        }
        return e
    }

    function Gt(t, e) {
        void 0 === e && (e = {});
        var i = e,
            n = i.placement,
            s = void 0 === n ? t.placement : n,
            o = i.boundary,
            r = void 0 === o ? "clippingParents" : o,
            a = i.rootBoundary,
            l = void 0 === a ? "viewport" : a,
            c = i.elementContext,
            h = void 0 === c ? "popper" : c,
            d = i.altBoundary,
            u = void 0 !== d && d,
            f = i.padding,
            p = void 0 === f ? 0 : f,
            m = St("number" != typeof p ? p : It(p, rt)),
            g = "popper" === h ? "reference" : "popper",
            _ = t.elements.reference,
            b = t.rects.popper,
            v = t.elements[u ? g : h],
            y = function(t, e, i) {
                var n = "clippingParents" === e ? function(t) {
                        var e = Vt(At(t)),
                            i = ["absolute", "fixed"].indexOf(yt(t).position) >= 0 && ft(t) ? Ot(t) : t;
                        return ut(i) ? e.filter((function(t) {
                            return ut(t) && vt(t, i) && "body" !== ht(t)
                        })) : []
                    }(t) : [].concat(e),
                    s = [].concat(n, [i]),
                    o = s[0],
                    r = s.reduce((function(e, i) {
                        var n = Xt(t, i);
                        return e.top = kt(n.top, e.top), e.right = Lt(n.right, e.right), e.bottom = Lt(n.bottom, e.bottom), e.left = kt(n.left, e.left), e
                    }), Xt(t, o));
                return r.width = r.right - r.left, r.height = r.bottom - r.top, r.x = r.left, r.y = r.top, r
            }(ut(v) ? v : v.contextElement || Et(t.elements.popper), r, l),
            w = _t(_),
            E = Qt({
                reference: w,
                element: b,
                strategy: "absolute",
                placement: s
            }),
            A = Kt(Object.assign({}, b, E)),
            T = "popper" === h ? A : w,
            O = {
                top: y.top - T.top + m.top,
                bottom: T.bottom - y.bottom + m.bottom,
                left: y.left - T.left + m.left,
                right: T.right - y.right + m.right
            },
            C = t.modifiersData.offset;
        if ("popper" === h && C) {
            var k = C[s];
            Object.keys(O).forEach((function(t) {
                var e = [st, nt].indexOf(t) >= 0 ? 1 : -1,
                    i = [it, nt].indexOf(t) >= 0 ? "y" : "x";
                O[t] += k[i] * e
            }))
        }
        return O
    }

    function Zt(t, e) {
        void 0 === e && (e = {});
        var i = e,
            n = i.placement,
            s = i.boundary,
            o = i.rootBoundary,
            r = i.padding,
            a = i.flipVariations,
            l = i.allowedAutoPlacements,
            c = void 0 === l ? lt : l,
            h = Yt(n),
            d = h ? a ? at : at.filter((function(t) {
                return Yt(t) === h
            })) : rt,
            u = d.filter((function(t) {
                return c.indexOf(t) >= 0
            }));
        0 === u.length && (u = d);
        var f = u.reduce((function(e, i) {
            return e[i] = Gt(t, {
                placement: i,
                boundary: s,
                rootBoundary: o,
                padding: r
            })[gt(i)], e
        }), {});
        return Object.keys(f).sort((function(t, e) {
            return f[t] - f[e]
        }))
    }
    var Jt = {
        name: "flip",
        enabled: !0,
        phase: "main",
        fn: function(t) {
            var e = t.state,
                i = t.options,
                n = t.name;
            if (!e.modifiersData[n]._skip) {
                for (var s = i.mainAxis, o = void 0 === s || s, r = i.altAxis, a = void 0 === r || r, l = i.fallbackPlacements, c = i.padding, h = i.boundary, d = i.rootBoundary, u = i.altBoundary, f = i.flipVariations, p = void 0 === f || f, m = i.allowedAutoPlacements, g = e.options.placement, _ = gt(g), b = l || (_ !== g && p ? function(t) {
                        if ("auto" === gt(t)) return [];
                        var e = Wt(t);
                        return [zt(t), e, zt(e)]
                    }(g) : [Wt(g)]), v = [g].concat(b).reduce((function(t, i) {
                        return t.concat("auto" === gt(i) ? Zt(e, {
                            placement: i,
                            boundary: h,
                            rootBoundary: d,
                            padding: c,
                            flipVariations: p,
                            allowedAutoPlacements: m
                        }) : i)
                    }), []), y = e.rects.reference, w = e.rects.popper, E = new Map, A = !0, T = v[0], O = 0; O < v.length; O++) {
                    var C = v[O],
                        k = gt(C),
                        L = "start" === Yt(C),
                        x = [it, nt].indexOf(k) >= 0,
                        D = x ? "width" : "height",
                        S = Gt(e, {
                            placement: C,
                            boundary: h,
                            rootBoundary: d,
                            altBoundary: u,
                            padding: c
                        }),
                        I = x ? L ? st : ot : L ? nt : it;
                    y[D] > w[D] && (I = Wt(I));
                    var N = Wt(I),
                        j = [];
                    if (o && j.push(S[k] <= 0), a && j.push(S[I] <= 0, S[N] <= 0), j.every((function(t) {
                            return t
                        }))) {
                        T = C, A = !1;
                        break
                    }
                    E.set(C, j)
                }
                if (A)
                    for (var M = function(t) {
                            var e = v.find((function(e) {
                                var i = E.get(e);
                                if (i) return i.slice(0, t).every((function(t) {
                                    return t
                                }))
                            }));
                            if (e) return T = e, "break"
                        }, P = p ? 3 : 1; P > 0 && "break" !== M(P); P--);
                e.placement !== T && (e.modifiersData[n]._skip = !0, e.placement = T, e.reset = !0)
            }
        },
        requiresIfExists: ["offset"],
        data: {
            _skip: !1
        }
    };

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

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

    function re(t, e, i) {
        void 0 === i && (i = !1);
        var n, s, o = Et(e),
            r = _t(t),
            a = ft(e),
            l = {
                scrollLeft: 0,
                scrollTop: 0
            },
            c = {
                x: 0,
                y: 0
            };
        return (a || !a && !i) && (("body" !== ht(e) || Ft(o)) && (l = (n = e) !== dt(n) && ft(n) ? {
            scrollLeft: (s = n).scrollLeft,
            scrollTop: s.scrollTop
        } : $t(n)), ft(e) ? ((c = _t(e)).x += e.clientLeft, c.y += e.clientTop) : o && (c.x = Ut(o))), {
            x: r.left + l.scrollLeft - c.x,
            y: r.top + l.scrollTop - c.y,
            width: r.width,
            height: r.height
        }
    }
    var ae = {
        placement: "bottom",
        modifiers: [],
        strategy: "absolute"
    };

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

    function ce(t) {
        void 0 === t && (t = {});
        var e = t,
            i = e.defaultModifiers,
            n = void 0 === i ? [] : i,
            s = e.defaultOptions,
            o = void 0 === s ? ae : s;
        return function(t, e, i) {
            void 0 === i && (i = o);
            var s, r, a = {
                    placement: "bottom",
                    orderedModifiers: [],
                    options: Object.assign({}, ae, o),
                    modifiersData: {},
                    elements: {
                        reference: t,
                        popper: e
                    },
                    attributes: {},
                    styles: {}
                },
                l = [],
                c = !1,
                h = {
                    state: a,
                    setOptions: function(i) {
                        d(), a.options = Object.assign({}, o, a.options, i), a.scrollParents = {
                            reference: ut(t) ? Vt(t) : t.contextElement ? Vt(t.contextElement) : [],
                            popper: Vt(e)
                        };
                        var s, r, c = function(t) {
                            var e = function(t) {
                                var e = new Map,
                                    i = new Set,
                                    n = [];
                                return t.forEach((function(t) {
                                    e.set(t.name, t)
                                })), t.forEach((function(t) {
                                    i.has(t.name) || function t(s) {
                                        i.add(s.name), [].concat(s.requires || [], s.requiresIfExists || []).forEach((function(n) {
                                            if (!i.has(n)) {
                                                var s = e.get(n);
                                                s && t(s)
                                            }
                                        })), n.push(s)
                                    }(t)
                                })), n
                            }(t);
                            return ct.reduce((function(t, i) {
                                return t.concat(e.filter((function(t) {
                                    return t.phase === i
                                })))
                            }), [])
                        }((s = [].concat(n, a.options.modifiers), r = s.reduce((function(t, e) {
                            var i = t[e.name];
                            return t[e.name] = i ? Object.assign({}, i, e, {
                                options: Object.assign({}, i.options, e.options),
                                data: Object.assign({}, i.data, e.data)
                            }) : e, t
                        }), {}), Object.keys(r).map((function(t) {
                            return r[t]
                        }))));
                        return a.orderedModifiers = c.filter((function(t) {
                            return t.enabled
                        })), a.orderedModifiers.forEach((function(t) {
                            var e = t.name,
                                i = t.options,
                                n = void 0 === i ? {} : i,
                                s = t.effect;
                            if ("function" == typeof s) {
                                var o = s({
                                    state: a,
                                    name: e,
                                    instance: h,
                                    options: n
                                });
                                l.push(o || function() {})
                            }
                        })), h.update()
                    },
                    forceUpdate: function() {
                        if (!c) {
                            var t = a.elements,
                                e = t.reference,
                                i = t.popper;
                            if (le(e, i)) {
                                a.rects = {
                                    reference: re(e, Ot(i), "fixed" === a.options.strategy),
                                    popper: bt(i)
                                }, a.reset = !1, a.placement = a.options.placement, a.orderedModifiers.forEach((function(t) {
                                    return a.modifiersData[t.name] = Object.assign({}, t.data)
                                }));
                                for (var n = 0; n < a.orderedModifiers.length; n++)
                                    if (!0 !== a.reset) {
                                        var s = a.orderedModifiers[n],
                                            o = s.fn,
                                            r = s.options,
                                            l = void 0 === r ? {} : r,
                                            d = s.name;
                                        "function" == typeof o && (a = o({
                                            state: a,
                                            options: l,
                                            name: d,
                                            instance: h
                                        }) || a)
                                    } else a.reset = !1, n = -1
                            }
                        }
                    },
                    update: (s = function() {
                        return new Promise((function(t) {
                            h.forceUpdate(), t(a)
                        }))
                    }, function() {
                        return r || (r = new Promise((function(t) {
                            Promise.resolve().then((function() {
                                r = void 0, t(s())
                            }))
                        }))), r
                    }),
                    destroy: function() {
                        d(), c = !0
                    }
                };
            if (!le(t, e)) return h;

            function d() {
                l.forEach((function(t) {
                    return t()
                })), l = []
            }
            return h.setOptions(i).then((function(t) {
                !c && i.onFirstUpdate && i.onFirstUpdate(t)
            })), h
        }
    }
    var he = ce(),
        de = ce({
            defaultModifiers: [Rt, se, Pt, mt]
        }),
        ue = ce({
            defaultModifiers: [Rt, se, Pt, mt, ne, Jt, oe, Nt, ie]
        }),
        fe = Object.freeze({
            __proto__: null,
            popperGenerator: ce,
            detectOverflow: Gt,
            createPopperBase: he,
            createPopper: ue,
            createPopperLite: de,
            top: it,
            bottom: nt,
            right: st,
            left: ot,
            auto: "auto",
            basePlacements: rt,
            start: "start",
            end: "end",
            clippingParents: "clippingParents",
            viewport: "viewport",
            popper: "popper",
            reference: "reference",
            variationPlacements: at,
            placements: lt,
            beforeRead: "beforeRead",
            read: "read",
            afterRead: "afterRead",
            beforeMain: "beforeMain",
            main: "main",
            afterMain: "afterMain",
            beforeWrite: "beforeWrite",
            write: "write",
            afterWrite: "afterWrite",
            modifierPhases: ct,
            applyStyles: mt,
            arrow: Nt,
            computeStyles: Pt,
            eventListeners: Rt,
            flip: Jt,
            hide: ie,
            offset: ne,
            popperOffsets: se,
            preventOverflow: oe
        });
    const pe = new RegExp("ArrowUp|ArrowDown|Escape"),
        me = g() ? "top-end" : "top-start",
        ge = g() ? "top-start" : "top-end",
        _e = g() ? "bottom-end" : "bottom-start",
        be = g() ? "bottom-start" : "bottom-end",
        ve = g() ? "left-start" : "right-start",
        ye = g() ? "right-start" : "left-start",
        we = {
            offset: [0, 2],
            boundary: "clippingParents",
            reference: "toggle",
            display: "dynamic",
            popperConfig: null,
            autoClose: !0
        },
        Ee = {
            offset: "(array|string|function)",
            boundary: "(string|element)",
            reference: "(string|element|object)",
            display: "string",
            popperConfig: "(null|object|function)",
            autoClose: "(boolean|string)"
        };
    class Ae extends B {
        constructor(t, e) {
            super(t), this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners()
        }
        static get Default() {
            return we
        }
        static get DefaultType() {
            return Ee
        }
        static get NAME() {
            return "dropdown"
        }
        toggle() {
            h(this._element) || (this._element.classList.contains("show") ? this.hide() : this.show())
        }
        show() {
            if (h(this._element) || this._menu.classList.contains("show")) return;
            const t = Ae.getParentFromElement(this._element),
                e = {
                    relatedTarget: this._element
                };
            if (!P.trigger(this._element, "show.bs.dropdown", e).defaultPrevented) {
                if (this._inNavbar) U.setDataAttribute(this._menu, "popper", "none");
                else {
                    if (void 0 === fe) throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");
                    let e = this._element;
                    "parent" === this._config.reference ? e = t : r(this._config.reference) ? e = a(this._config.reference) : "object" == typeof this._config.reference && (e = this._config.reference);
                    const i = this._getPopperConfig(),
                        n = i.modifiers.find(t => "applyStyles" === t.name && !1 === t.enabled);
                    this._popper = ue(e, this._menu, i), n && U.setDataAttribute(this._menu, "popper", "static")
                }
                "ontouchstart" in document.documentElement && !t.closest(".navbar-nav") && [].concat(...document.body.children).forEach(t => P.on(t, "mouseover", u)), this._element.focus(), this._element.setAttribute("aria-expanded", !0), this._menu.classList.toggle("show"), this._element.classList.toggle("show"), P.trigger(this._element, "shown.bs.dropdown", e)
            }
        }
        hide() {
            if (h(this._element) || !this._menu.classList.contains("show")) return;
            const t = {
                relatedTarget: this._element
            };
            this._completeHide(t)
        }
        dispose() {
            this._popper && this._popper.destroy(), super.dispose()
        }
        update() {
            this._inNavbar = this._detectNavbar(), this._popper && this._popper.update()
        }
        _addEventListeners() {
            P.on(this._element, "click.bs.dropdown", t => {
                t.preventDefault(), this.toggle()
            })
        }
        _completeHide(t) {
            P.trigger(this._element, "hide.bs.dropdown", t).defaultPrevented || ("ontouchstart" in document.documentElement && [].concat(...document.body.children).forEach(t => P.off(t, "mouseover", u)), this._popper && this._popper.destroy(), this._menu.classList.remove("show"), this._element.classList.remove("show"), this._element.setAttribute("aria-expanded", "false"), U.removeDataAttribute(this._menu, "popper"), P.trigger(this._element, "hidden.bs.dropdown", t))
        }
        _getConfig(t) {
            if (t = { ...this.constructor.Default,
                    ...U.getDataAttributes(this._element),
                    ...t
                }, l("dropdown", t, this.constructor.DefaultType), "object" == typeof t.reference && !r(t.reference) && "function" != typeof t.reference.getBoundingClientRect) throw new TypeError("dropdown".toUpperCase() + ': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');
            return t
        }
        _getMenuElement() {
            return t.next(this._element, ".dropdown-menu")[0]
        }
        _getPlacement() {
            const t = this._element.parentNode;
            if (t.classList.contains("dropend")) return ve;
            if (t.classList.contains("dropstart")) return ye;
            const e = "end" === getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();
            return t.classList.contains("dropup") ? e ? ge : me : e ? be : _e
        }
        _detectNavbar() {
            return null !== this._element.closest(".navbar")
        }
        _getOffset() {
            const {
                offset: t
            } = this._config;
            return "string" == typeof t ? t.split(",").map(t => Number.parseInt(t, 10)) : "function" == typeof t ? e => t(e, this._element) : t
        }
        _getPopperConfig() {
            const t = {
                placement: this._getPlacement(),
                modifiers: [{
                    name: "preventOverflow",
                    options: {
                        boundary: this._config.boundary
                    }
                }, {
                    name: "offset",
                    options: {
                        offset: this._getOffset()
                    }
                }]
            };
            return "static" === this._config.display && (t.modifiers = [{
                name: "applyStyles",
                enabled: !1
            }]), { ...t,
                ..."function" == typeof this._config.popperConfig ? this._config.popperConfig(t) : this._config.popperConfig
            }
        }
        _selectMenuItem({
            key: e,
            target: i
        }) {
            const n = t.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", this._menu).filter(c);
            n.length && y(n, i, "ArrowDown" === e, !n.includes(i)).focus()
        }
        static dropdownInterface(t, e) {
            const i = Ae.getOrCreateInstance(t, e);
            if ("string" == typeof e) {
                if (void 0 === i[e]) throw new TypeError(`No method named "${e}"`);
                i[e]()
            }
        }
        static jQueryInterface(t) {
            return this.each((function() {
                Ae.dropdownInterface(this, t)
            }))
        }
        static clearMenus(e) {
            if (e && (2 === e.button || "keyup" === e.type && "Tab" !== e.key)) return;
            const i = t.find('[data-bs-toggle="dropdown"]');
            for (let t = 0, n = i.length; t < n; t++) {
                const n = Ae.getInstance(i[t]);
                if (!n || !1 === n._config.autoClose) continue;
                if (!n._element.classList.contains("show")) continue;
                const s = {
                    relatedTarget: n._element
                };
                if (e) {
                    const t = e.composedPath(),
                        i = t.includes(n._menu);
                    if (t.includes(n._element) || "inside" === n._config.autoClose && !i || "outside" === n._config.autoClose && i) continue;
                    if (n._menu.contains(e.target) && ("keyup" === e.type && "Tab" === e.key || /input|select|option|textarea|form/i.test(e.target.tagName))) continue;
                    "click" === e.type && (s.clickEvent = e)
                }
                n._completeHide(s)
            }
        }
        static getParentFromElement(t) {
            return s(t) || t.parentNode
        }
        static dataApiKeydownHandler(e) {
            if (/input|textarea/i.test(e.target.tagName) ? "Space" === e.key || "Escape" !== e.key && ("ArrowDown" !== e.key && "ArrowUp" !== e.key || e.target.closest(".dropdown-menu")) : !pe.test(e.key)) return;
            const i = this.classList.contains("show");
            if (!i && "Escape" === e.key) return;
            if (e.preventDefault(), e.stopPropagation(), h(this)) return;
            const n = () => this.matches('[data-bs-toggle="dropdown"]') ? this : t.prev(this, '[data-bs-toggle="dropdown"]')[0];
            return "Escape" === e.key ? (n().focus(), void Ae.clearMenus()) : "ArrowUp" === e.key || "ArrowDown" === e.key ? (i || n().click(), void Ae.getInstance(n())._selectMenuItem(e)) : void(i && "Space" !== e.key || Ae.clearMenus())
        }
    }
    P.on(document, "keydown.bs.dropdown.data-api", '[data-bs-toggle="dropdown"]', Ae.dataApiKeydownHandler), P.on(document, "keydown.bs.dropdown.data-api", ".dropdown-menu", Ae.dataApiKeydownHandler), P.on(document, "click.bs.dropdown.data-api", Ae.clearMenus), P.on(document, "keyup.bs.dropdown.data-api", Ae.clearMenus), P.on(document, "click.bs.dropdown.data-api", '[data-bs-toggle="dropdown"]', (function(t) {
        t.preventDefault(), Ae.dropdownInterface(this)
    })), _(Ae);
    class Te {
        constructor() {
            this._element = document.body
        }
        getWidth() {
            const t = document.documentElement.clientWidth;
            return Math.abs(window.innerWidth - t)
        }
        hide() {
            const t = this.getWidth();
            this._disableOverFlow(), this._setElementAttributes(this._element, "paddingRight", e => e + t), this._setElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", "paddingRight", e => e + t), this._setElementAttributes(".sticky-top", "marginRight", e => e - t)
        }
        _disableOverFlow() {
            this._saveInitialAttribute(this._element, "overflow"), this._element.style.overflow = "hidden"
        }
        _setElementAttributes(t, e, i) {
            const n = this.getWidth();
            this._applyManipulationCallback(t, t => {
                if (t !== this._element && window.innerWidth > t.clientWidth + n) return;
                this._saveInitialAttribute(t, e);
                const s = window.getComputedStyle(t)[e];
                t.style[e] = i(Number.parseFloat(s)) + "px"
            })
        }
        reset() {
            this._resetElementAttributes(this._element, "overflow"), this._resetElementAttributes(this._element, "paddingRight"), this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", "paddingRight"), this._resetElementAttributes(".sticky-top", "marginRight")
        }
        _saveInitialAttribute(t, e) {
            const i = t.style[e];
            i && U.setDataAttribute(t, e, i)
        }
        _resetElementAttributes(t, e) {
            this._applyManipulationCallback(t, t => {
                const i = U.getDataAttribute(t, e);
                void 0 === i ? t.style.removeProperty(e) : (U.removeDataAttribute(t, e), t.style[e] = i)
            })
        }
        _applyManipulationCallback(e, i) {
            r(e) ? i(e) : t.find(e, this._element).forEach(i)
        }
        isOverflowing() {
            return this.getWidth() > 0
        }
    }
    const Oe = {
            isVisible: !0,
            isAnimated: !1,
            rootElement: "body",
            clickCallback: null
        },
        Ce = {
            isVisible: "boolean",
            isAnimated: "boolean",
            rootElement: "(element|string)",
            clickCallback: "(function|null)"
        };
    class ke {
        constructor(t) {
            this._config = this._getConfig(t), this._isAppended = !1, this._element = null
        }
        show(t) {
            this._config.isVisible ? (this._append(), this._config.isAnimated && f(this._getElement()), this._getElement().classList.add("show"), this._emulateAnimation(() => {
                b(t)
            })) : b(t)
        }
        hide(t) {
            this._config.isVisible ? (this._getElement().classList.remove("show"), this._emulateAnimation(() => {
                this.dispose(), b(t)
            })) : b(t)
        }
        _getElement() {
            if (!this._element) {
                const t = document.createElement("div");
                t.className = "modal-backdrop", this._config.isAnimated && t.classList.add("fade"), this._element = t
            }
            return this._element
        }
        _getConfig(t) {
            return (t = { ...Oe,
                ..."object" == typeof t ? t : {}
            }).rootElement = a(t.rootElement), l("backdrop", t, Ce), t
        }
        _append() {
            this._isAppended || (this._config.rootElement.appendChild(this._getElement()), P.on(this._getElement(), "mousedown.bs.backdrop", () => {
                b(this._config.clickCallback)
            }), this._isAppended = !0)
        }
        dispose() {
            this._isAppended && (P.off(this._element, "mousedown.bs.backdrop"), this._element.remove(), this._isAppended = !1)
        }
        _emulateAnimation(t) {
            v(t, this._getElement(), this._config.isAnimated)
        }
    }
    const Le = {
            backdrop: !0,
            keyboard: !0,
            focus: !0
        },
        xe = {
            backdrop: "(boolean|string)",
            keyboard: "boolean",
            focus: "boolean"
        };
    class De extends B {
        constructor(e, i) {
            super(e), this._config = this._getConfig(i), this._dialog = t.findOne(".modal-dialog", this._element), this._backdrop = this._initializeBackDrop(), this._isShown = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollBar = new Te
        }
        static get Default() {
            return Le
        }
        static get NAME() {
            return "modal"
        }
        toggle(t) {
            return this._isShown ? this.hide() : this.show(t)
        }
        show(t) {
            this._isShown || this._isTransitioning || P.trigger(this._element, "show.bs.modal", {
                relatedTarget: t
            }).defaultPrevented || (this._isShown = !0, this._isAnimated() && (this._isTransitioning = !0), this._scrollBar.hide(), document.body.classList.add("modal-open"), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), P.on(this._element, "click.dismiss.bs.modal", '[data-bs-dismiss="modal"]', t => this.hide(t)), P.on(this._dialog, "mousedown.dismiss.bs.modal", () => {
                P.one(this._element, "mouseup.dismiss.bs.modal", t => {
                    t.target === this._element && (this._ignoreBackdropClick = !0)
                })
            }), this._showBackdrop(() => this._showElement(t)))
        }
        hide(t) {
            if (t && ["A", "AREA"].includes(t.target.tagName) && t.preventDefault(), !this._isShown || this._isTransitioning) return;
            if (P.trigger(this._element, "hide.bs.modal").defaultPrevented) return;
            this._isShown = !1;
            const e = this._isAnimated();
            e && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), P.off(document, "focusin.bs.modal"), this._element.classList.remove("show"), P.off(this._element, "click.dismiss.bs.modal"), P.off(this._dialog, "mousedown.dismiss.bs.modal"), this._queueCallback(() => this._hideModal(), this._element, e)
        }
        dispose() {
            [window, this._dialog].forEach(t => P.off(t, ".bs.modal")), this._backdrop.dispose(), super.dispose(), P.off(document, "focusin.bs.modal")
        }
        handleUpdate() {
            this._adjustDialog()
        }
        _initializeBackDrop() {
            return new ke({
                isVisible: Boolean(this._config.backdrop),
                isAnimated: this._isAnimated()
            })
        }
        _getConfig(t) {
            return t = { ...Le,
                ...U.getDataAttributes(this._element),
                ..."object" == typeof t ? t : {}
            }, l("modal", t, xe), t
        }
        _showElement(e) {
            const i = this._isAnimated(),
                n = t.findOne(".modal-body", this._dialog);
            this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.scrollTop = 0, n && (n.scrollTop = 0), i && f(this._element), this._element.classList.add("show"), this._config.focus && this._enforceFocus(), this._queueCallback(() => {
                this._config.focus && this._element.focus(), this._isTransitioning = !1, P.trigger(this._element, "shown.bs.modal", {
                    relatedTarget: e
                })
            }, this._dialog, i)
        }
        _enforceFocus() {
            P.off(document, "focusin.bs.modal"), P.on(document, "focusin.bs.modal", t => {
                document === t.target || this._element === t.target || this._element.contains(t.target) || this._element.focus()
            })
        }
        _setEscapeEvent() {
            this._isShown ? P.on(this._element, "keydown.dismiss.bs.modal", t => {
                this._config.keyboard && "Escape" === t.key ? (t.preventDefault(), this.hide()) : this._config.keyboard || "Escape" !== t.key || this._triggerBackdropTransition()
            }) : P.off(this._element, "keydown.dismiss.bs.modal")
        }
        _setResizeEvent() {
            this._isShown ? P.on(window, "resize.bs.modal", () => this._adjustDialog()) : P.off(window, "resize.bs.modal")
        }
        _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("modal-open"), this._resetAdjustments(), this._scrollBar.reset(), P.trigger(this._element, "hidden.bs.modal")
            })
        }
        _showBackdrop(t) {
            P.on(this._element, "click.dismiss.bs.modal", t => {
                this._ignoreBackdropClick ? this._ignoreBackdropClick = !1 : t.target === t.currentTarget && (!0 === this._config.backdrop ? this.hide() : "static" === this._config.backdrop && this._triggerBackdropTransition())
            }), this._backdrop.show(t)
        }
        _isAnimated() {
            return this._element.classList.contains("fade")
        }
        _triggerBackdropTransition() {
            if (P.trigger(this._element, "hidePrevented.bs.modal").defaultPrevented) return;
            const {
                classList: t,
                scrollHeight: e,
                style: i
            } = this._element, n = e > document.documentElement.clientHeight;
            !n && "hidden" === i.overflowY || t.contains("modal-static") || (n || (i.overflowY = "hidden"), t.add("modal-static"), this._queueCallback(() => {
                t.remove("modal-static"), n || this._queueCallback(() => {
                    i.overflowY = ""
                }, this._dialog)
            }, this._dialog), this._element.focus())
        }
        _adjustDialog() {
            const t = this._element.scrollHeight > document.documentElement.clientHeight,
                e = this._scrollBar.getWidth(),
                i = e > 0;
            (!i && t && !g() || i && !t && g()) && (this._element.style.paddingLeft = e + "px"), (i && !t && !g() || !i && t && g()) && (this._element.style.paddingRight = e + "px")
        }
        _resetAdjustments() {
            this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
        }
        static jQueryInterface(t, e) {
            return this.each((function() {
                const i = De.getOrCreateInstance(this, t);
                if ("string" == typeof t) {
                    if (void 0 === i[t]) throw new TypeError(`No method named "${t}"`);
                    i[t](e)
                }
            }))
        }
    }
    P.on(document, "click.bs.modal.data-api", '[data-bs-toggle="modal"]', (function(t) {
        const e = s(this);
        ["A", "AREA"].includes(this.tagName) && t.preventDefault(), P.one(e, "show.bs.modal", t => {
            t.defaultPrevented || P.one(e, "hidden.bs.modal", () => {
                c(this) && this.focus()
            })
        }), De.getOrCreateInstance(e).toggle(this)
    })), _(De);
    const Se = {
            backdrop: !0,
            keyboard: !0,
            scroll: !1
        },
        Ie = {
            backdrop: "boolean",
            keyboard: "boolean",
            scroll: "boolean"
        };
    class Ne extends B {
        constructor(t, e) {
            super(t), this._config = this._getConfig(e), this._isShown = !1, this._backdrop = this._initializeBackDrop(), this._addEventListeners()
        }
        static get NAME() {
            return "offcanvas"
        }
        static get Default() {
            return Se
        }
        toggle(t) {
            return this._isShown ? this.hide() : this.show(t)
        }
        show(t) {
            this._isShown || P.trigger(this._element, "show.bs.offcanvas", {
                relatedTarget: t
            }).defaultPrevented || (this._isShown = !0, this._element.style.visibility = "visible", this._backdrop.show(), this._config.scroll || ((new Te).hide(), this._enforceFocusOnElement(this._element)), this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.classList.add("show"), this._queueCallback(() => {
                P.trigger(this._element, "shown.bs.offcanvas", {
                    relatedTarget: t
                })
            }, this._element, !0))
        }
        hide() {
            this._isShown && (P.trigger(this._element, "hide.bs.offcanvas").defaultPrevented || (P.off(document, "focusin.bs.offcanvas"), this._element.blur(), this._isShown = !1, this._element.classList.remove("show"), this._backdrop.hide(), this._queueCallback(() => {
                this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._element.style.visibility = "hidden", this._config.scroll || (new Te).reset(), P.trigger(this._element, "hidden.bs.offcanvas")
            }, this._element, !0)))
        }
        dispose() {
            this._backdrop.dispose(), super.dispose(), P.off(document, "focusin.bs.offcanvas")
        }
        _getConfig(t) {
            return t = { ...Se,
                ...U.getDataAttributes(this._element),
                ..."object" == typeof t ? t : {}
            }, l("offcanvas", t, Ie), t
        }
        _initializeBackDrop() {
            return new ke({
                isVisible: this._config.backdrop,
                isAnimated: !0,
                rootElement: this._element.parentNode,
                clickCallback: () => this.hide()
            })
        }
        _enforceFocusOnElement(t) {
            P.off(document, "focusin.bs.offcanvas"), P.on(document, "focusin.bs.offcanvas", e => {
                document === e.target || t === e.target || t.contains(e.target) || t.focus()
            }), t.focus()
        }
        _addEventListeners() {
            P.on(this._element, "click.dismiss.bs.offcanvas", '[data-bs-dismiss="offcanvas"]', () => this.hide()), P.on(this._element, "keydown.dismiss.bs.offcanvas", t => {
                this._config.keyboard && "Escape" === t.key && this.hide()
            })
        }
        static jQueryInterface(t) {
            return this.each((function() {
                const e = Ne.getOrCreateInstance(this, t);
                if ("string" == typeof t) {
                    if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method named "${t}"`);
                    e[t](this)
                }
            }))
        }
    }
    P.on(document, "click.bs.offcanvas.data-api", '[data-bs-toggle="offcanvas"]', (function(e) {
        const i = s(this);
        if (["A", "AREA"].includes(this.tagName) && e.preventDefault(), h(this)) return;
        P.one(i, "hidden.bs.offcanvas", () => {
            c(this) && this.focus()
        });
        const n = t.findOne(".offcanvas.show");
        n && n !== i && Ne.getInstance(n).hide(), Ne.getOrCreateInstance(i).toggle(this)
    })), P.on(window, "load.bs.offcanvas.data-api", () => t.find(".offcanvas.show").forEach(t => Ne.getOrCreateInstance(t).show())), _(Ne);
    const je = new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]),
        Me = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,
        Pe = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,
        He = (t, e) => {
            const i = t.nodeName.toLowerCase();
            if (e.includes(i)) return !je.has(i) || Boolean(Me.test(t.nodeValue) || Pe.test(t.nodeValue));
            const n = e.filter(t => t instanceof RegExp);
            for (let t = 0, e = n.length; t < e; t++)
                if (n[t].test(i)) return !0;
            return !1
        };

    function Re(t, e, i) {
        if (!t.length) return t;
        if (i && "function" == typeof i) return i(t);
        const n = (new window.DOMParser).parseFromString(t, "text/html"),
            s = Object.keys(e),
            o = [].concat(...n.body.querySelectorAll("*"));
        for (let t = 0, i = o.length; t < i; t++) {
            const i = o[t],
                n = i.nodeName.toLowerCase();
            if (!s.includes(n)) {
                i.remove();
                continue
            }
            const r = [].concat(...i.attributes),
                a = [].concat(e["*"] || [], e[n] || []);
            r.forEach(t => {
                He(t, a) || i.removeAttribute(t.nodeName)
            })
        }
        return n.body.innerHTML
    }
    const Be = new RegExp("(^|\\s)bs-tooltip\\S+", "g"),
        We = new Set(["sanitize", "allowList", "sanitizeFn"]),
        qe = {
            animation: "boolean",
            template: "string",
            title: "(string|element|function)",
            trigger: "string",
            delay: "(number|object)",
            html: "boolean",
            selector: "(string|boolean)",
            placement: "(string|function)",
            offset: "(array|string|function)",
            container: "(string|element|boolean)",
            fallbackPlacements: "array",
            boundary: "(string|element)",
            customClass: "(string|function)",
            sanitize: "boolean",
            sanitizeFn: "(null|function)",
            allowList: "object",
            popperConfig: "(null|object|function)"
        },
        ze = {
            AUTO: "auto",
            TOP: "top",
            RIGHT: g() ? "left" : "right",
            BOTTOM: "bottom",
            LEFT: g() ? "right" : "left"
        },
        $e = {
            animation: !0,
            template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
            trigger: "hover focus",
            title: "",
            delay: 0,
            html: !1,
            selector: !1,
            placement: "top",
            offset: [0, 0],
            container: !1,
            fallbackPlacements: ["top", "right", "bottom", "left"],
            boundary: "clippingParents",
            customClass: "",
            sanitize: !0,
            sanitizeFn: null,
            allowList: {
                "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
                a: ["target", "href", "title", "rel"],
                area: [],
                b: [],
                br: [],
                col: [],
                code: [],
                div: [],
                em: [],
                hr: [],
                h1: [],
                h2: [],
                h3: [],
                h4: [],
                h5: [],
                h6: [],
                i: [],
                img: ["src", "srcset", "alt", "title", "width", "height"],
                li: [],
                ol: [],
                p: [],
                pre: [],
                s: [],
                small: [],
                span: [],
                sub: [],
                sup: [],
                strong: [],
                u: [],
                ul: []
            },
            popperConfig: null
        },
        Ue = {
            HIDE: "hide.bs.tooltip",
            HIDDEN: "hidden.bs.tooltip",
            SHOW: "show.bs.tooltip",
            SHOWN: "shown.bs.tooltip",
            INSERTED: "inserted.bs.tooltip",
            CLICK: "click.bs.tooltip",
            FOCUSIN: "focusin.bs.tooltip",
            FOCUSOUT: "focusout.bs.tooltip",
            MOUSEENTER: "mouseenter.bs.tooltip",
            MOUSELEAVE: "mouseleave.bs.tooltip"
        };
    class Fe extends B {
        constructor(t, e) {
            if (void 0 === fe) throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");
            super(t), this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this._config = this._getConfig(e), this.tip = null, this._setListeners()
        }
        static get Default() {
            return $e
        }
        static get NAME() {
            return "tooltip"
        }
        static get Event() {
            return Ue
        }
        static get DefaultType() {
            return qe
        }
        enable() {
            this._isEnabled = !0
        }
        disable() {
            this._isEnabled = !1
        }
        toggleEnabled() {
            this._isEnabled = !this._isEnabled
        }
        toggle(t) {
            if (this._isEnabled)
                if (t) {
                    const e = this._initializeOnDelegatedTarget(t);
                    e._activeTrigger.click = !e._activeTrigger.click, e._isWithActiveTrigger() ? e._enter(null, e) : e._leave(null, e)
                } else {
                    if (this.getTipElement().classList.contains("show")) return void this._leave(null, this);
                    this._enter(null, this)
                }
        }
        dispose() {
            clearTimeout(this._timeout), P.off(this._element.closest(".modal"), "hide.bs.modal", this._hideModalHandler), this.tip && this.tip.remove(), this._popper && this._popper.destroy(), 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 t = P.trigger(this._element, this.constructor.Event.SHOW),
                i = d(this._element),
                n = null === i ? this._element.ownerDocument.documentElement.contains(this._element) : i.contains(this._element);
            if (t.defaultPrevented || !n) return;
            const s = this.getTipElement(),
                o = e(this.constructor.NAME);
            s.setAttribute("id", o), this._element.setAttribute("aria-describedby", o), this.setContent(), this._config.animation && s.classList.add("fade");
            const r = "function" == typeof this._config.placement ? this._config.placement.call(this, s, this._element) : this._config.placement,
                a = this._getAttachment(r);
            this._addAttachmentClass(a);
            const {
                container: l
            } = this._config;
            R.set(s, this.constructor.DATA_KEY, this), this._element.ownerDocument.documentElement.contains(this.tip) || (l.appendChild(s), P.trigger(this._element, this.constructor.Event.INSERTED)), this._popper ? this._popper.update() : this._popper = ue(this._element, s, this._getPopperConfig(a)), s.classList.add("show");
            const c = "function" == typeof this._config.customClass ? this._config.customClass() : this._config.customClass;
            c && s.classList.add(...c.split(" ")), "ontouchstart" in document.documentElement && [].concat(...document.body.children).forEach(t => {
                P.on(t, "mouseover", u)
            });
            const h = this.tip.classList.contains("fade");
            this._queueCallback(() => {
                const t = this._hoverState;
                this._hoverState = null, P.trigger(this._element, this.constructor.Event.SHOWN), "out" === t && this._leave(null, this)
            }, this.tip, h)
        }
        hide() {
            if (!this._popper) return;
            const t = this.getTipElement();
            if (P.trigger(this._element, this.constructor.Event.HIDE).defaultPrevented) return;
            t.classList.remove("show"), "ontouchstart" in document.documentElement && [].concat(...document.body.children).forEach(t => P.off(t, "mouseover", u)), this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1;
            const e = this.tip.classList.contains("fade");
            this._queueCallback(() => {
                this._isWithActiveTrigger() || ("show" !== this._hoverState && t.remove(), this._cleanTipClass(), this._element.removeAttribute("aria-describedby"), P.trigger(this._element, this.constructor.Event.HIDDEN), this._popper && (this._popper.destroy(), this._popper = null))
            }, this.tip, e), this._hoverState = ""
        }
        update() {
            null !== this._popper && this._popper.update()
        }
        isWithContent() {
            return Boolean(this.getTitle())
        }
        getTipElement() {
            if (this.tip) return this.tip;
            const t = document.createElement("div");
            return t.innerHTML = this._config.template, this.tip = t.children[0], this.tip
        }
        setContent() {
            const e = this.getTipElement();
            this.setElementContent(t.findOne(".tooltip-inner", e), this.getTitle()), e.classList.remove("fade", "show")
        }
        setElementContent(t, e) {
            if (null !== t) return r(e) ? (e = a(e), void(this._config.html ? e.parentNode !== t && (t.innerHTML = "", t.appendChild(e)) : t.textContent = e.textContent)) : void(this._config.html ? (this._config.sanitize && (e = Re(e, this._config.allowList, this._config.sanitizeFn)), t.innerHTML = e) : t.textContent = e)
        }
        getTitle() {
            let t = this._element.getAttribute("data-bs-original-title");
            return t || (t = "function" == typeof this._config.title ? this._config.title.call(this._element) : this._config.title), t
        }
        updateAttachment(t) {
            return "right" === t ? "end" : "left" === t ? "start" : t
        }
        _initializeOnDelegatedTarget(t, e) {
            const i = this.constructor.DATA_KEY;
            return (e = e || R.get(t.delegateTarget, i)) || (e = new this.constructor(t.delegateTarget, this._getDelegateConfig()), R.set(t.delegateTarget, i, e)), e
        }
        _getOffset() {
            const {
                offset: t
            } = this._config;
            return "string" == typeof t ? t.split(",").map(t => Number.parseInt(t, 10)) : "function" == typeof t ? e => t(e, this._element) : t
        }
        _getPopperConfig(t) {
            const e = {
                placement: t,
                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: "onChange",
                    enabled: !0,
                    phase: "afterWrite",
                    fn: t => this._handlePopperPlacementChange(t)
                }],
                onFirstUpdate: t => {
                    t.options.placement !== t.placement && this._handlePopperPlacementChange(t)
                }
            };
            return { ...e,
                ..."function" == typeof this._config.popperConfig ? this._config.popperConfig(e) : this._config.popperConfig
            }
        }
        _addAttachmentClass(t) {
            this.getTipElement().classList.add("bs-tooltip-" + this.updateAttachment(t))
        }
        _getAttachment(t) {
            return ze[t.toUpperCase()]
        }
        _setListeners() {
            this._config.trigger.split(" ").forEach(t => {
                if ("click" === t) P.on(this._element, this.constructor.Event.CLICK, this._config.selector, t => this.toggle(t));
                else if ("manual" !== t) {
                    const e = "hover" === t ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN,
                        i = "hover" === t ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT;
                    P.on(this._element, e, this._config.selector, t => this._enter(t)), P.on(this._element, i, this._config.selector, t => this._leave(t))
                }
            }), this._hideModalHandler = () => {
                this._element && this.hide()
            }, P.on(this._element.closest(".modal"), "hide.bs.modal", this._hideModalHandler), this._config.selector ? this._config = { ...this._config,
                trigger: "manual",
                selector: ""
            } : this._fixTitle()
        }
        _fixTitle() {
            const t = this._element.getAttribute("title"),
                e = typeof this._element.getAttribute("data-bs-original-title");
            (t || "string" !== e) && (this._element.setAttribute("data-bs-original-title", t || ""), !t || this._element.getAttribute("aria-label") || this._element.textContent || this._element.setAttribute("aria-label", t), this._element.setAttribute("title", ""))
        }
        _enter(t, e) {
            e = this._initializeOnDelegatedTarget(t, e), t && (e._activeTrigger["focusin" === t.type ? "focus" : "hover"] = !0), e.getTipElement().classList.contains("show") || "show" === e._hoverState ? e._hoverState = "show" : (clearTimeout(e._timeout), e._hoverState = "show", e._config.delay && e._config.delay.show ? e._timeout = setTimeout(() => {
                "show" === e._hoverState && e.show()
            }, e._config.delay.show) : e.show())
        }
        _leave(t, e) {
            e = this._initializeOnDelegatedTarget(t, e), t && (e._activeTrigger["focusout" === t.type ? "focus" : "hover"] = e._element.contains(t.relatedTarget)), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = "out", e._config.delay && e._config.delay.hide ? e._timeout = setTimeout(() => {
                "out" === e._hoverState && e.hide()
            }, e._config.delay.hide) : e.hide())
        }
        _isWithActiveTrigger() {
            for (const t in this._activeTrigger)
                if (this._activeTrigger[t]) return !0;
            return !1
        }
        _getConfig(t) {
            const e = U.getDataAttributes(this._element);
            return Object.keys(e).forEach(t => {
                We.has(t) && delete e[t]
            }), (t = { ...this.constructor.Default,
                ...e,
                ..."object" == typeof t && t ? t : {}
            }).container = !1 === t.container ? document.body : a(t.container), "number" == typeof t.delay && (t.delay = {
                show: t.delay,
                hide: t.delay
            }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), l("tooltip", t, this.constructor.DefaultType), t.sanitize && (t.template = Re(t.template, t.allowList, t.sanitizeFn)), t
        }
        _getDelegateConfig() {
            const t = {};
            if (this._config)
                for (const e in this._config) this.constructor.Default[e] !== this._config[e] && (t[e] = this._config[e]);
            return t
        }
        _cleanTipClass() {
            const t = this.getTipElement(),
                e = t.getAttribute("class").match(Be);
            null !== e && e.length > 0 && e.map(t => t.trim()).forEach(e => t.classList.remove(e))
        }
        _handlePopperPlacementChange(t) {
            const {
                state: e
            } = t;
            e && (this.tip = e.elements.popper, this._cleanTipClass(), this._addAttachmentClass(this._getAttachment(e.placement)))
        }
        static jQueryInterface(t) {
            return this.each((function() {
                const e = Fe.getOrCreateInstance(this, t);
                if ("string" == typeof t) {
                    if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
                    e[t]()
                }
            }))
        }
    }
    _(Fe);
    const Ve = new RegExp("(^|\\s)bs-popover\\S+", "g"),
        Ke = { ...Fe.Default,
            placement: "right",
            offset: [0, 8],
            trigger: "click",
            content: "",
            template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
        },
        Xe = { ...Fe.DefaultType,
            content: "(string|element|function)"
        },
        Ye = {
            HIDE: "hide.bs.popover",
            HIDDEN: "hidden.bs.popover",
            SHOW: "show.bs.popover",
            SHOWN: "shown.bs.popover",
            INSERTED: "inserted.bs.popover",
            CLICK: "click.bs.popover",
            FOCUSIN: "focusin.bs.popover",
            FOCUSOUT: "focusout.bs.popover",
            MOUSEENTER: "mouseenter.bs.popover",
            MOUSELEAVE: "mouseleave.bs.popover"
        };
    class Qe extends Fe {
        static get Default() {
            return Ke
        }
        static get NAME() {
            return "popover"
        }
        static get Event() {
            return Ye
        }
        static get DefaultType() {
            return Xe
        }
        isWithContent() {
            return this.getTitle() || this._getContent()
        }
        getTipElement() {
            return this.tip || (this.tip = super.getTipElement(), this.getTitle() || t.findOne(".popover-header", this.tip).remove(), this._getContent() || t.findOne(".popover-body", this.tip).remove()), this.tip
        }
        setContent() {
            const e = this.getTipElement();
            this.setElementContent(t.findOne(".popover-header", e), this.getTitle());
            let i = this._getContent();
            "function" == typeof i && (i = i.call(this._element)), this.setElementContent(t.findOne(".popover-body", e), i), e.classList.remove("fade", "show")
        }
        _addAttachmentClass(t) {
            this.getTipElement().classList.add("bs-popover-" + this.updateAttachment(t))
        }
        _getContent() {
            return this._element.getAttribute("data-bs-content") || this._config.content
        }
        _cleanTipClass() {
            const t = this.getTipElement(),
                e = t.getAttribute("class").match(Ve);
            null !== e && e.length > 0 && e.map(t => t.trim()).forEach(e => t.classList.remove(e))
        }
        static jQueryInterface(t) {
            return this.each((function() {
                const e = Qe.getOrCreateInstance(this, t);
                if ("string" == typeof t) {
                    if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
                    e[t]()
                }
            }))
        }
    }
    _(Qe);
    const Ge = {
            offset: 10,
            method: "auto",
            target: ""
        },
        Ze = {
            offset: "number",
            method: "string",
            target: "(string|element)"
        };
    class Je extends B {
        constructor(t, e) {
            super(t), this._scrollElement = "BODY" === this._element.tagName ? window : this._element, this._config = this._getConfig(e), this._selector = `${this._config.target} .nav-link, ${this._config.target} .list-group-item, ${this._config.target} .dropdown-item`, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, P.on(this._scrollElement, "scroll.bs.scrollspy", () => this._process()), this.refresh(), this._process()
        }
        static get Default() {
            return Ge
        }
        static get NAME() {
            return "scrollspy"
        }
        refresh() {
            const e = this._scrollElement === this._scrollElement.window ? "offset" : "position",
                i = "auto" === this._config.method ? e : this._config.method,
                s = "position" === i ? this._getScrollTop() : 0;
            this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), t.find(this._selector).map(e => {
                const o = n(e),
                    r = o ? t.findOne(o) : null;
                if (r) {
                    const t = r.getBoundingClientRect();
                    if (t.width || t.height) return [U[i](r).top + s, o]
                }
                return null
            }).filter(t => t).sort((t, e) => t[0] - e[0]).forEach(t => {
                this._offsets.push(t[0]), this._targets.push(t[1])
            })
        }
        dispose() {
            P.off(this._scrollElement, ".bs.scrollspy"), super.dispose()
        }
        _getConfig(t) {
            if ("string" != typeof(t = { ...Ge,
                    ...U.getDataAttributes(this._element),
                    ..."object" == typeof t && t ? t : {}
                }).target && r(t.target)) {
                let {
                    id: i
                } = t.target;
                i || (i = e("scrollspy"), t.target.id = i), t.target = "#" + i
            }
            return l("scrollspy", t, Ze), t
        }
        _getScrollTop() {
            return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
        }
        _getScrollHeight() {
            return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
        }
        _getOffsetHeight() {
            return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
        }
        _process() {
            const t = this._getScrollTop() + this._config.offset,
                e = this._getScrollHeight(),
                i = this._config.offset + e - this._getOffsetHeight();
            if (this._scrollHeight !== e && this.refresh(), t >= i) {
                const t = this._targets[this._targets.length - 1];
                this._activeTarget !== t && this._activate(t)
            } else {
                if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) return this._activeTarget = null, void this._clear();
                for (let e = this._offsets.length; e--;) this._activeTarget !== this._targets[e] && t >= this._offsets[e] && (void 0 === this._offsets[e + 1] || t < this._offsets[e + 1]) && this._activate(this._targets[e])
            }
        }
        _activate(e) {
            this._activeTarget = e, this._clear();
            const i = this._selector.split(",").map(t => `${t}[data-bs-target="${e}"],${t}[href="${e}"]`),
                n = t.findOne(i.join(","));
            n.classList.contains("dropdown-item") ? (t.findOne(".dropdown-toggle", n.closest(".dropdown")).classList.add("active"), n.classList.add("active")) : (n.classList.add("active"), t.parents(n, ".nav, .list-group").forEach(e => {
                t.prev(e, ".nav-link, .list-group-item").forEach(t => t.classList.add("active")), t.prev(e, ".nav-item").forEach(e => {
                    t.children(e, ".nav-link").forEach(t => t.classList.add("active"))
                })
            })), P.trigger(this._scrollElement, "activate.bs.scrollspy", {
                relatedTarget: e
            })
        }
        _clear() {
            t.find(this._selector).filter(t => t.classList.contains("active")).forEach(t => t.classList.remove("active"))
        }
        static jQueryInterface(t) {
            return this.each((function() {
                const e = Je.getOrCreateInstance(this, t);
                if ("string" == typeof t) {
                    if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
                    e[t]()
                }
            }))
        }
    }
    P.on(window, "load.bs.scrollspy.data-api", () => {
        t.find('[data-bs-spy="scroll"]').forEach(t => new Je(t))
    }), _(Je);
    class ti extends B {
        static get NAME() {
            return "tab"
        }
        show() {
            if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains("active")) return;
            let e;
            const i = s(this._element),
                n = this._element.closest(".nav, .list-group");
            if (n) {
                const i = "UL" === n.nodeName || "OL" === n.nodeName ? ":scope > li > .active" : ".active";
                e = t.find(i, n), e = e[e.length - 1]
            }
            const o = e ? P.trigger(e, "hide.bs.tab", {
                relatedTarget: this._element
            }) : null;
            if (P.trigger(this._element, "show.bs.tab", {
                    relatedTarget: e
                }).defaultPrevented || null !== o && o.defaultPrevented) return;
            this._activate(this._element, n);
            const r = () => {
                P.trigger(e, "hidden.bs.tab", {
                    relatedTarget: this._element
                }), P.trigger(this._element, "shown.bs.tab", {
                    relatedTarget: e
                })
            };
            i ? this._activate(i, i.parentNode, r) : r()
        }
        _activate(e, i, n) {
            const s = (!i || "UL" !== i.nodeName && "OL" !== i.nodeName ? t.children(i, ".active") : t.find(":scope > li > .active", i))[0],
                o = n && s && s.classList.contains("fade"),
                r = () => this._transitionComplete(e, s, n);
            s && o ? (s.classList.remove("show"), this._queueCallback(r, e, !0)) : r()
        }
        _transitionComplete(e, i, n) {
            if (i) {
                i.classList.remove("active");
                const e = t.findOne(":scope > .dropdown-menu .active", i.parentNode);
                e && e.classList.remove("active"), "tab" === i.getAttribute("role") && i.setAttribute("aria-selected", !1)
            }
            e.classList.add("active"), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !0), f(e), e.classList.contains("fade") && e.classList.add("show");
            let s = e.parentNode;
            if (s && "LI" === s.nodeName && (s = s.parentNode), s && s.classList.contains("dropdown-menu")) {
                const i = e.closest(".dropdown");
                i && t.find(".dropdown-toggle", i).forEach(t => t.classList.add("active")), e.setAttribute("aria-expanded", !0)
            }
            n && n()
        }
        static jQueryInterface(t) {
            return this.each((function() {
                const e = ti.getOrCreateInstance(this);
                if ("string" == typeof t) {
                    if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
                    e[t]()
                }
            }))
        }
    }
    P.on(document, "click.bs.tab.data-api", '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]', (function(t) {
        ["A", "AREA"].includes(this.tagName) && t.preventDefault(), h(this) || ti.getOrCreateInstance(this).show()
    })), _(ti);
    const ei = {
            animation: "boolean",
            autohide: "boolean",
            delay: "number"
        },
        ii = {
            animation: !0,
            autohide: !0,
            delay: 5e3
        };
    class ni extends B {
        constructor(t, e) {
            super(t), this._config = this._getConfig(e), this._timeout = null, this._hasMouseInteraction = !1, this._hasKeyboardInteraction = !1, this._setListeners()
        }
        static get DefaultType() {
            return ei
        }
        static get Default() {
            return ii
        }
        static get NAME() {
            return "toast"
        }
        show() {
            P.trigger(this._element, "show.bs.toast").defaultPrevented || (this._clearTimeout(), this._config.animation && this._element.classList.add("fade"), this._element.classList.remove("hide"), f(this._element), this._element.classList.add("showing"), this._queueCallback(() => {
                this._element.classList.remove("showing"), this._element.classList.add("show"), P.trigger(this._element, "shown.bs.toast"), this._maybeScheduleHide()
            }, this._element, this._config.animation))
        }
        hide() {
            this._element.classList.contains("show") && (P.trigger(this._element, "hide.bs.toast").defaultPrevented || (this._element.classList.remove("show"), this._queueCallback(() => {
                this._element.classList.add("hide"), P.trigger(this._element, "hidden.bs.toast")
            }, this._element, this._config.animation)))
        }
        dispose() {
            this._clearTimeout(), this._element.classList.contains("show") && this._element.classList.remove("show"), super.dispose()
        }
        _getConfig(t) {
            return t = { ...ii,
                ...U.getDataAttributes(this._element),
                ..."object" == typeof t && t ? t : {}
            }, l("toast", t, this.constructor.DefaultType), t
        }
        _maybeScheduleHide() {
            this._config.autohide && (this._hasMouseInteraction || this._hasKeyboardInteraction || (this._timeout = setTimeout(() => {
                this.hide()
            }, this._config.delay)))
        }
        _onInteraction(t, e) {
            switch (t.type) {
                case "mouseover":
                case "mouseout":
                    this._hasMouseInteraction = e;
                    break;
                case "focusin":
                case "focusout":
                    this._hasKeyboardInteraction = e
            }
            if (e) return void this._clearTimeout();
            const i = t.relatedTarget;
            this._element === i || this._element.contains(i) || this._maybeScheduleHide()
        }
        _setListeners() {
            P.on(this._element, "click.dismiss.bs.toast", '[data-bs-dismiss="toast"]', () => this.hide()), P.on(this._element, "mouseover.bs.toast", t => this._onInteraction(t, !0)), P.on(this._element, "mouseout.bs.toast", t => this._onInteraction(t, !1)), P.on(this._element, "focusin.bs.toast", t => this._onInteraction(t, !0)), P.on(this._element, "focusout.bs.toast", t => this._onInteraction(t, !1))
        }
        _clearTimeout() {
            clearTimeout(this._timeout), this._timeout = null
        }
        static jQueryInterface(t) {
            return this.each((function() {
                const e = ni.getOrCreateInstance(this, t);
                if ("string" == typeof t) {
                    if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
                    e[t](this)
                }
            }))
        }
    }
    return _(ni), {
        Alert: W,
        Button: q,
        Carousel: Z,
        Collapse: et,
        Dropdown: Ae,
        Modal: De,
        Offcanvas: Ne,
        Popover: Qe,
        ScrollSpy: Je,
        Tab: ti,
        Toast: ni,
        Tooltip: Fe
    }
}));

/*!
 * Isotope PACKAGED v3.0.5
 *
 * Licensed GPLv3 for open source use
 * or Isotope Commercial License for commercial use
 *
 * https://isotope.metafizzy.co
 * Copyright 2017 Metafizzy
 */

! function(t, e) {
    "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function(i) {
        return e(t, i)
    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("jquery")) : t.jQueryBridget = e(t, t.jQuery)
}(window, function(t, e) {
    "use strict";

    function i(i, s, a) {
        function u(t, e, o) {
            var n, s = "$()." + i + '("' + e + '")';
            return t.each(function(t, u) {
                var h = a.data(u, i);
                if (!h) return void r(i + " not initialized. Cannot call methods, i.e. " + s);
                var d = h[e];
                if (!d || "_" == e.charAt(0)) return void r(s + " is not a valid method");
                var l = d.apply(h, o);
                n = void 0 === n ? l : n
            }), void 0 !== n ? n : t
        }

        function h(t, e) {
            t.each(function(t, o) {
                var n = a.data(o, i);
                n ? (n.option(e), n._init()) : (n = new s(o, e), a.data(o, i, n))
            })
        }
        a = a || e || t.jQuery, a && (s.prototype.option || (s.prototype.option = function(t) {
            a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t))
        }), a.fn[i] = function(t) {
            if ("string" == typeof t) {
                var e = n.call(arguments, 1);
                return u(this, t, e)
            }
            return h(this, t), this
        }, o(a))
    }

    function o(t) {
        !t || t && t.bridget || (t.bridget = i)
    }
    var n = Array.prototype.slice,
        s = t.console,
        r = "undefined" == typeof s ? function() {} : function(t) {
            s.error(t)
        };
    return o(e || t.jQuery), i
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e()
}("undefined" != typeof window ? window : this, function() {
    function t() {}
    var e = t.prototype;
    return e.on = function(t, e) {
        if (t && e) {
            var i = this._events = this._events || {},
                o = i[t] = i[t] || [];
            return o.indexOf(e) == -1 && o.push(e), this
        }
    }, e.once = function(t, e) {
        if (t && e) {
            this.on(t, e);
            var i = this._onceEvents = this._onceEvents || {},
                o = i[t] = i[t] || {};
            return o[e] = !0, this
        }
    }, e.off = function(t, e) {
        var i = this._events && this._events[t];
        if (i && i.length) {
            var o = i.indexOf(e);
            return o != -1 && i.splice(o, 1), this
        }
    }, e.emitEvent = function(t, e) {
        var i = this._events && this._events[t];
        if (i && i.length) {
            i = i.slice(0), e = e || [];
            for (var o = this._onceEvents && this._onceEvents[t], n = 0; n < i.length; n++) {
                var s = i[n],
                    r = o && o[s];
                r && (this.off(t, s), delete o[s]), s.apply(this, e)
            }
            return this
        }
    }, e.allOff = function() {
        delete this._events, delete this._onceEvents
    }, t
}),
function(t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define("get-size/get-size", [], function() {
        return e()
    }) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e()
}(window, function() {
    "use strict";

    function t(t) {
        var e = parseFloat(t),
            i = t.indexOf("%") == -1 && !isNaN(e);
        return i && e
    }

    function e() {}

    function i() {
        for (var t = {
                width: 0,
                height: 0,
                innerWidth: 0,
                innerHeight: 0,
                outerWidth: 0,
                outerHeight: 0
            }, e = 0; e < h; e++) {
            var i = u[e];
            t[i] = 0
        }
        return t
    }

    function o(t) {
        var e = getComputedStyle(t);
        return e || a("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"), e
    }

    function n() {
        if (!d) {
            d = !0;
            var e = document.createElement("div");
            e.style.width = "200px", e.style.padding = "1px 2px 3px 4px", e.style.borderStyle = "solid", e.style.borderWidth = "1px 2px 3px 4px", e.style.boxSizing = "border-box";
            var i = document.body || document.documentElement;
            i.appendChild(e);
            var n = o(e);
            s.isBoxSizeOuter = r = 200 == t(n.width), i.removeChild(e)
        }
    }

    function s(e) {
        if (n(), "string" == typeof e && (e = document.querySelector(e)), e && "object" == typeof e && e.nodeType) {
            var s = o(e);
            if ("none" == s.display) return i();
            var a = {};
            a.width = e.offsetWidth, a.height = e.offsetHeight;
            for (var d = a.isBorderBox = "border-box" == s.boxSizing, l = 0; l < h; l++) {
                var f = u[l],
                    c = s[f],
                    m = parseFloat(c);
                a[f] = isNaN(m) ? 0 : m
            }
            var p = a.paddingLeft + a.paddingRight,
                y = a.paddingTop + a.paddingBottom,
                g = a.marginLeft + a.marginRight,
                v = a.marginTop + a.marginBottom,
                _ = a.borderLeftWidth + a.borderRightWidth,
                I = a.borderTopWidth + a.borderBottomWidth,
                z = d && r,
                x = t(s.width);
            x !== !1 && (a.width = x + (z ? 0 : p + _));
            var S = t(s.height);
            return S !== !1 && (a.height = S + (z ? 0 : y + I)), a.innerWidth = a.width - (p + _), a.innerHeight = a.height - (y + I), a.outerWidth = a.width + g, a.outerHeight = a.height + v, a
        }
    }
    var r, a = "undefined" == typeof console ? e : function(t) {
            console.error(t)
        },
        u = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"],
        h = u.length,
        d = !1;
    return s
}),
function(t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e()
}(window, function() {
    "use strict";
    var t = function() {
        var t = window.Element.prototype;
        if (t.matches) return "matches";
        if (t.matchesSelector) return "matchesSelector";
        for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) {
            var o = e[i],
                n = o + "MatchesSelector";
            if (t[n]) return n
        }
    }();
    return function(e, i) {
        return e[t](i)
    }
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function(i) {
        return e(t, i)
    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.matchesSelector)
}(window, function(t, e) {
    var i = {};
    i.extend = function(t, e) {
        for (var i in e) t[i] = e[i];
        return t
    }, i.modulo = function(t, e) {
        return (t % e + e) % e
    }, i.makeArray = function(t) {
        var e = [];
        if (Array.isArray(t)) e = t;
        else if (t && "object" == typeof t && "number" == typeof t.length)
            for (var i = 0; i < t.length; i++) e.push(t[i]);
        else e.push(t);
        return e
    }, i.removeFrom = function(t, e) {
        var i = t.indexOf(e);
        i != -1 && t.splice(i, 1)
    }, i.getParent = function(t, i) {
        for (; t.parentNode && t != document.body;)
            if (t = t.parentNode, e(t, i)) return t
    }, i.getQueryElement = function(t) {
        return "string" == typeof t ? document.querySelector(t) : t
    }, i.handleEvent = function(t) {
        var e = "on" + t.type;
        this[e] && this[e](t)
    }, i.filterFindElements = function(t, o) {
        t = i.makeArray(t);
        var n = [];
        return t.forEach(function(t) {
            if (t instanceof HTMLElement) {
                if (!o) return void n.push(t);
                e(t, o) && n.push(t);
                for (var i = t.querySelectorAll(o), s = 0; s < i.length; s++) n.push(i[s])
            }
        }), n
    }, i.debounceMethod = function(t, e, i) {
        var o = t.prototype[e],
            n = e + "Timeout";
        t.prototype[e] = function() {
            var t = this[n];
            t && clearTimeout(t);
            var e = arguments,
                s = this;
            this[n] = setTimeout(function() {
                o.apply(s, e), delete s[n]
            }, i || 100)
        }
    }, i.docReady = function(t) {
        var e = document.readyState;
        "complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t)
    }, i.toDashed = function(t) {
        return t.replace(/(.)([A-Z])/g, function(t, e, i) {
            return e + "-" + i
        }).toLowerCase()
    };
    var o = t.console;
    return i.htmlInit = function(e, n) {
        i.docReady(function() {
            var s = i.toDashed(n),
                r = "data-" + s,
                a = document.querySelectorAll("[" + r + "]"),
                u = document.querySelectorAll(".js-" + s),
                h = i.makeArray(a).concat(i.makeArray(u)),
                d = r + "-options",
                l = t.jQuery;
            h.forEach(function(t) {
                var i, s = t.getAttribute(r) || t.getAttribute(d);
                try {
                    i = s && JSON.parse(s)
                } catch (a) {
                    return void(o && o.error("Error parsing " + r + " on " + t.className + ": " + a))
                }
                var u = new e(t, i);
                l && l.data(t, n, u)
            })
        })
    }, i
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("get-size")) : (t.Outlayer = {}, t.Outlayer.Item = e(t.EvEmitter, t.getSize))
}(window, function(t, e) {
    "use strict";

    function i(t) {
        for (var e in t) return !1;
        return e = null, !0
    }

    function o(t, e) {
        t && (this.element = t, this.layout = e, this.position = {
            x: 0,
            y: 0
        }, this._create())
    }

    function n(t) {
        return t.replace(/([A-Z])/g, function(t) {
            return "-" + t.toLowerCase()
        })
    }
    var s = document.documentElement.style,
        r = "string" == typeof s.transition ? "transition" : "WebkitTransition",
        a = "string" == typeof s.transform ? "transform" : "WebkitTransform",
        u = {
            WebkitTransition: "webkitTransitionEnd",
            transition: "transitionend"
        }[r],
        h = {
            transform: a,
            transition: r,
            transitionDuration: r + "Duration",
            transitionProperty: r + "Property",
            transitionDelay: r + "Delay"
        },
        d = o.prototype = Object.create(t.prototype);
    d.constructor = o, d._create = function() {
        this._transn = {
            ingProperties: {},
            clean: {},
            onEnd: {}
        }, this.css({
            position: "absolute"
        })
    }, d.handleEvent = function(t) {
        var e = "on" + t.type;
        this[e] && this[e](t)
    }, d.getSize = function() {
        this.size = e(this.element)
    }, d.css = function(t) {
        var e = this.element.style;
        for (var i in t) {
            var o = h[i] || i;
            e[o] = t[i]
        }
    }, d.getPosition = function() {
        var t = getComputedStyle(this.element),
            e = this.layout._getOption("originLeft"),
            i = this.layout._getOption("originTop"),
            o = t[e ? "left" : "right"],
            n = t[i ? "top" : "bottom"],
            s = this.layout.size,
            r = o.indexOf("%") != -1 ? parseFloat(o) / 100 * s.width : parseInt(o, 10),
            a = n.indexOf("%") != -1 ? parseFloat(n) / 100 * s.height : parseInt(n, 10);
        r = isNaN(r) ? 0 : r, a = isNaN(a) ? 0 : a, r -= e ? s.paddingLeft : s.paddingRight, a -= i ? s.paddingTop : s.paddingBottom, this.position.x = r, this.position.y = a
    }, d.layoutPosition = function() {
        var t = this.layout.size,
            e = {},
            i = this.layout._getOption("originLeft"),
            o = this.layout._getOption("originTop"),
            n = i ? "paddingLeft" : "paddingRight",
            s = i ? "left" : "right",
            r = i ? "right" : "left",
            a = this.position.x + t[n];
        e[s] = this.getXValue(a), e[r] = "";
        var u = o ? "paddingTop" : "paddingBottom",
            h = o ? "top" : "bottom",
            d = o ? "bottom" : "top",
            l = this.position.y + t[u];
        e[h] = this.getYValue(l), e[d] = "", this.css(e), this.emitEvent("layout", [this])
    }, d.getXValue = function(t) {
        var e = this.layout._getOption("horizontal");
        return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + "%" : t + "px"
    }, d.getYValue = function(t) {
        var e = this.layout._getOption("horizontal");
        return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + "%" : t + "px"
    }, d._transitionTo = function(t, e) {
        this.getPosition();
        var i = this.position.x,
            o = this.position.y,
            n = parseInt(t, 10),
            s = parseInt(e, 10),
            r = n === this.position.x && s === this.position.y;
        if (this.setPosition(t, e), r && !this.isTransitioning) return void this.layoutPosition();
        var a = t - i,
            u = e - o,
            h = {};
        h.transform = this.getTranslate(a, u), this.transition({
            to: h,
            onTransitionEnd: {
                transform: this.layoutPosition
            },
            isCleaning: !0
        })
    }, d.getTranslate = function(t, e) {
        var i = this.layout._getOption("originLeft"),
            o = this.layout._getOption("originTop");
        return t = i ? t : -t, e = o ? e : -e, "translate3d(" + t + "px, " + e + "px, 0)"
    }, d.goTo = function(t, e) {
        this.setPosition(t, e), this.layoutPosition()
    }, d.moveTo = d._transitionTo, d.setPosition = function(t, e) {
        this.position.x = parseInt(t, 10), this.position.y = parseInt(e, 10)
    }, d._nonTransition = function(t) {
        this.css(t.to), t.isCleaning && this._removeStyles(t.to);
        for (var e in t.onTransitionEnd) t.onTransitionEnd[e].call(this)
    }, d.transition = function(t) {
        if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(t);
        var e = this._transn;
        for (var i in t.onTransitionEnd) e.onEnd[i] = t.onTransitionEnd[i];
        for (i in t.to) e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0);
        if (t.from) {
            this.css(t.from);
            var o = this.element.offsetHeight;
            o = null
        }
        this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0
    };
    var l = "opacity," + n(a);
    d.enableTransition = function() {
        if (!this.isTransitioning) {
            var t = this.layout.options.transitionDuration;
            t = "number" == typeof t ? t + "ms" : t, this.css({
                transitionProperty: l,
                transitionDuration: t,
                transitionDelay: this.staggerDelay || 0
            }), this.element.addEventListener(u, this, !1)
        }
    }, d.onwebkitTransitionEnd = function(t) {
        this.ontransitionend(t)
    }, d.onotransitionend = function(t) {
        this.ontransitionend(t)
    };
    var f = {
        "-webkit-transform": "transform"
    };
    d.ontransitionend = function(t) {
        if (t.target === this.element) {
            var e = this._transn,
                o = f[t.propertyName] || t.propertyName;
            if (delete e.ingProperties[o], i(e.ingProperties) && this.disableTransition(), o in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[o]), o in e.onEnd) {
                var n = e.onEnd[o];
                n.call(this), delete e.onEnd[o]
            }
            this.emitEvent("transitionEnd", [this])
        }
    }, d.disableTransition = function() {
        this.removeTransitionStyles(), this.element.removeEventListener(u, this, !1), this.isTransitioning = !1
    }, d._removeStyles = function(t) {
        var e = {};
        for (var i in t) e[i] = "";
        this.css(e)
    };
    var c = {
        transitionProperty: "",
        transitionDuration: "",
        transitionDelay: ""
    };
    return d.removeTransitionStyles = function() {
        this.css(c)
    }, d.stagger = function(t) {
        t = isNaN(t) ? 0 : t, this.staggerDelay = t + "ms"
    }, d.removeElem = function() {
        this.element.parentNode.removeChild(this.element), this.css({
            display: ""
        }), this.emitEvent("remove", [this])
    }, d.remove = function() {
        return r && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", function() {
            this.removeElem()
        }), void this.hide()) : void this.removeElem()
    }, d.reveal = function() {
        delete this.isHidden, this.css({
            display: ""
        });
        var t = this.layout.options,
            e = {},
            i = this.getHideRevealTransitionEndProperty("visibleStyle");
        e[i] = this.onRevealTransitionEnd, this.transition({
            from: t.hiddenStyle,
            to: t.visibleStyle,
            isCleaning: !0,
            onTransitionEnd: e
        })
    }, d.onRevealTransitionEnd = function() {
        this.isHidden || this.emitEvent("reveal")
    }, d.getHideRevealTransitionEndProperty = function(t) {
        var e = this.layout.options[t];
        if (e.opacity) return "opacity";
        for (var i in e) return i
    }, d.hide = function() {
        this.isHidden = !0, this.css({
            display: ""
        });
        var t = this.layout.options,
            e = {},
            i = this.getHideRevealTransitionEndProperty("hiddenStyle");
        e[i] = this.onHideTransitionEnd, this.transition({
            from: t.visibleStyle,
            to: t.hiddenStyle,
            isCleaning: !0,
            onTransitionEnd: e
        })
    }, d.onHideTransitionEnd = function() {
        this.isHidden && (this.css({
            display: "none"
        }), this.emitEvent("hide"))
    }, d.destroy = function() {
        this.css({
            position: "",
            left: "",
            right: "",
            top: "",
            bottom: "",
            transition: "",
            transform: ""
        })
    }, o
}),
function(t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function(i, o, n, s) {
        return e(t, i, o, n, s)
    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : t.Outlayer = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item)
}(window, function(t, e, i, o, n) {
    "use strict";

    function s(t, e) {
        var i = o.getQueryElement(t);
        if (!i) return void(u && u.error("Bad element for " + this.constructor.namespace + ": " + (i || t)));
        this.element = i, h && (this.$element = h(this.element)), this.options = o.extend({}, this.constructor.defaults), this.option(e);
        var n = ++l;
        this.element.outlayerGUID = n, f[n] = this, this._create();
        var s = this._getOption("initLayout");
        s && this.layout()
    }

    function r(t) {
        function e() {
            t.apply(this, arguments)
        }
        return e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e
    }

    function a(t) {
        if ("number" == typeof t) return t;
        var e = t.match(/(^\d*\.?\d*)(\w*)/),
            i = e && e[1],
            o = e && e[2];
        if (!i.length) return 0;
        i = parseFloat(i);
        var n = m[o] || 1;
        return i * n
    }
    var u = t.console,
        h = t.jQuery,
        d = function() {},
        l = 0,
        f = {};
    s.namespace = "outlayer", s.Item = n, s.defaults = {
        containerStyle: {
            position: "relative"
        },
        initLayout: !0,
        originLeft: !0,
        originTop: !0,
        resize: !0,
        resizeContainer: !0,
        transitionDuration: "0.4s",
        hiddenStyle: {
            opacity: 0,
            transform: "scale(0.001)"
        },
        visibleStyle: {
            opacity: 1,
            transform: "scale(1)"
        }
    };
    var c = s.prototype;
    o.extend(c, e.prototype), c.option = function(t) {
        o.extend(this.options, t)
    }, c._getOption = function(t) {
        var e = this.constructor.compatOptions[t];
        return e && void 0 !== this.options[e] ? this.options[e] : this.options[t]
    }, s.compatOptions = {
        initLayout: "isInitLayout",
        horizontal: "isHorizontal",
        layoutInstant: "isLayoutInstant",
        originLeft: "isOriginLeft",
        originTop: "isOriginTop",
        resize: "isResizeBound",
        resizeContainer: "isResizingContainer"
    }, c._create = function() {
        this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), o.extend(this.element.style, this.options.containerStyle);
        var t = this._getOption("resize");
        t && this.bindResize()
    }, c.reloadItems = function() {
        this.items = this._itemize(this.element.children)
    }, c._itemize = function(t) {
        for (var e = this._filterFindItemElements(t), i = this.constructor.Item, o = [], n = 0; n < e.length; n++) {
            var s = e[n],
                r = new i(s, this);
            o.push(r)
        }
        return o
    }, c._filterFindItemElements = function(t) {
        return o.filterFindElements(t, this.options.itemSelector)
    }, c.getItemElements = function() {
        return this.items.map(function(t) {
            return t.element
        })
    }, c.layout = function() {
        this._resetLayout(), this._manageStamps();
        var t = this._getOption("layoutInstant"),
            e = void 0 !== t ? t : !this._isLayoutInited;
        this.layoutItems(this.items, e), this._isLayoutInited = !0
    }, c._init = c.layout, c._resetLayout = function() {
        this.getSize()
    }, c.getSize = function() {
        this.size = i(this.element)
    }, c._getMeasurement = function(t, e) {
        var o, n = this.options[t];
        n ? ("string" == typeof n ? o = this.element.querySelector(n) : n instanceof HTMLElement && (o = n), this[t] = o ? i(o)[e] : n) : this[t] = 0
    }, c.layoutItems = function(t, e) {
        t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout()
    }, c._getItemsForLayout = function(t) {
        return t.filter(function(t) {
            return !t.isIgnored
        })
    }, c._layoutItems = function(t, e) {
        if (this._emitCompleteOnItems("layout", t), t && t.length) {
            var i = [];
            t.forEach(function(t) {
                var o = this._getItemLayoutPosition(t);
                o.item = t, o.isInstant = e || t.isLayoutInstant, i.push(o)
            }, this), this._processLayoutQueue(i)
        }
    }, c._getItemLayoutPosition = function() {
        return {
            x: 0,
            y: 0
        }
    }, c._processLayoutQueue = function(t) {
        this.updateStagger(), t.forEach(function(t, e) {
            this._positionItem(t.item, t.x, t.y, t.isInstant, e)
        }, this)
    }, c.updateStagger = function() {
        var t = this.options.stagger;
        return null === t || void 0 === t ? void(this.stagger = 0) : (this.stagger = a(t), this.stagger)
    }, c._positionItem = function(t, e, i, o, n) {
        o ? t.goTo(e, i) : (t.stagger(n * this.stagger), t.moveTo(e, i))
    }, c._postLayout = function() {
        this.resizeContainer()
    }, c.resizeContainer = function() {
        var t = this._getOption("resizeContainer");
        if (t) {
            var e = this._getContainerSize();
            e && (this._setContainerMeasure(e.width, !0), this._setContainerMeasure(e.height, !1))
        }
    }, c._getContainerSize = d, c._setContainerMeasure = function(t, e) {
        if (void 0 !== t) {
            var i = this.size;
            i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px"
        }
    }, c._emitCompleteOnItems = function(t, e) {
        function i() {
            n.dispatchEvent(t + "Complete", null, [e])
        }

        function o() {
            r++, r == s && i()
        }
        var n = this,
            s = e.length;
        if (!e || !s) return void i();
        var r = 0;
        e.forEach(function(e) {
            e.once(t, o)
        })
    }, c.dispatchEvent = function(t, e, i) {
        var o = e ? [e].concat(i) : i;
        if (this.emitEvent(t, o), h)
            if (this.$element = this.$element || h(this.element), e) {
                var n = h.Event(e);
                n.type = t, this.$element.trigger(n, i)
            } else this.$element.trigger(t, i)
    }, c.ignore = function(t) {
        var e = this.getItem(t);
        e && (e.isIgnored = !0)
    }, c.unignore = function(t) {
        var e = this.getItem(t);
        e && delete e.isIgnored
    }, c.stamp = function(t) {
        t = this._find(t), t && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this))
    }, c.unstamp = function(t) {
        t = this._find(t), t && t.forEach(function(t) {
            o.removeFrom(this.stamps, t), this.unignore(t)
        }, this)
    }, c._find = function(t) {
        if (t) return "string" == typeof t && (t = this.element.querySelectorAll(t)), t = o.makeArray(t)
    }, c._manageStamps = function() {
        this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this))
    }, c._getBoundingRect = function() {
        var t = this.element.getBoundingClientRect(),
            e = this.size;
        this._boundingRect = {
            left: t.left + e.paddingLeft + e.borderLeftWidth,
            top: t.top + e.paddingTop + e.borderTopWidth,
            right: t.right - (e.paddingRight + e.borderRightWidth),
            bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth)
        }
    }, c._manageStamp = d, c._getElementOffset = function(t) {
        var e = t.getBoundingClientRect(),
            o = this._boundingRect,
            n = i(t),
            s = {
                left: e.left - o.left - n.marginLeft,
                top: e.top - o.top - n.marginTop,
                right: o.right - e.right - n.marginRight,
                bottom: o.bottom - e.bottom - n.marginBottom
            };
        return s
    }, c.handleEvent = o.handleEvent, c.bindResize = function() {
        t.addEventListener("resize", this), this.isResizeBound = !0
    }, c.unbindResize = function() {
        t.removeEventListener("resize", this), this.isResizeBound = !1
    }, c.onresize = function() {
        this.resize()
    }, o.debounceMethod(s, "onresize", 100), c.resize = function() {
        this.isResizeBound && this.needsResizeLayout() && this.layout()
    }, c.needsResizeLayout = function() {
        var t = i(this.element),
            e = this.size && t;
        return e && t.innerWidth !== this.size.innerWidth
    }, c.addItems = function(t) {
        var e = this._itemize(t);
        return e.length && (this.items = this.items.concat(e)), e
    }, c.appended = function(t) {
        var e = this.addItems(t);
        e.length && (this.layoutItems(e, !0), this.reveal(e))
    }, c.prepended = function(t) {
        var e = this._itemize(t);
        if (e.length) {
            var i = this.items.slice(0);
            this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i)
        }
    }, c.reveal = function(t) {
        if (this._emitCompleteOnItems("reveal", t), t && t.length) {
            var e = this.updateStagger();
            t.forEach(function(t, i) {
                t.stagger(i * e), t.reveal()
            })
        }
    }, c.hide = function(t) {
        if (this._emitCompleteOnItems("hide", t), t && t.length) {
            var e = this.updateStagger();
            t.forEach(function(t, i) {
                t.stagger(i * e), t.hide()
            })
        }
    }, c.revealItemElements = function(t) {
        var e = this.getItems(t);
        this.reveal(e)
    }, c.hideItemElements = function(t) {
        var e = this.getItems(t);
        this.hide(e)
    }, c.getItem = function(t) {
        for (var e = 0; e < this.items.length; e++) {
            var i = this.items[e];
            if (i.element == t) return i
        }
    }, c.getItems = function(t) {
        t = o.makeArray(t);
        var e = [];
        return t.forEach(function(t) {
            var i = this.getItem(t);
            i && e.push(i)
        }, this), e
    }, c.remove = function(t) {
        var e = this.getItems(t);
        this._emitCompleteOnItems("remove", e), e && e.length && e.forEach(function(t) {
            t.remove(), o.removeFrom(this.items, t)
        }, this)
    }, c.destroy = function() {
        var t = this.element.style;
        t.height = "", t.position = "", t.width = "", this.items.forEach(function(t) {
            t.destroy()
        }), this.unbindResize();
        var e = this.element.outlayerGUID;
        delete f[e], delete this.element.outlayerGUID, h && h.removeData(this.element, this.constructor.namespace)
    }, s.data = function(t) {
        t = o.getQueryElement(t);
        var e = t && t.outlayerGUID;
        return e && f[e]
    }, s.create = function(t, e) {
        var i = r(s);
        return i.defaults = o.extend({}, s.defaults), o.extend(i.defaults, e), i.compatOptions = o.extend({}, s.compatOptions), i.namespace = t, i.data = s.data, i.Item = r(n), o.htmlInit(i, t), h && h.bridget && h.bridget(t, i), i
    };
    var m = {
        ms: 1,
        s: 1e3
    };
    return s.Item = n, s
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("isotope-layout/js/item", ["outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.Item = e(t.Outlayer))
}(window, function(t) {
    "use strict";

    function e() {
        t.Item.apply(this, arguments)
    }
    var i = e.prototype = Object.create(t.Item.prototype),
        o = i._create;
    i._create = function() {
        this.id = this.layout.itemGUID++, o.call(this), this.sortData = {}
    }, i.updateSortData = function() {
        if (!this.isIgnored) {
            this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random();
            var t = this.layout.options.getSortData,
                e = this.layout._sorters;
            for (var i in t) {
                var o = e[i];
                this.sortData[i] = o(this.element, this)
            }
        }
    };
    var n = i.destroy;
    return i.destroy = function() {
        n.apply(this, arguments), this.css({
            display: ""
        })
    }, e
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("isotope-layout/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("get-size"), require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.LayoutMode = e(t.getSize, t.Outlayer))
}(window, function(t, e) {
    "use strict";

    function i(t) {
        this.isotope = t, t && (this.options = t.options[this.namespace], this.element = t.element, this.items = t.filteredItems, this.size = t.size)
    }
    var o = i.prototype,
        n = ["_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout", "_getOption"];
    return n.forEach(function(t) {
        o[t] = function() {
            return e.prototype[t].apply(this.isotope, arguments)
        }
    }), o.needsVerticalResizeLayout = function() {
        var e = t(this.isotope.element),
            i = this.isotope.size && e;
        return i && e.innerHeight != this.isotope.size.innerHeight
    }, o._getMeasurement = function() {
        this.isotope._getMeasurement.apply(this, arguments)
    }, o.getColumnWidth = function() {
        this.getSegmentSize("column", "Width")
    }, o.getRowHeight = function() {
        this.getSegmentSize("row", "Height")
    }, o.getSegmentSize = function(t, e) {
        var i = t + e,
            o = "outer" + e;
        if (this._getMeasurement(i, o), !this[i]) {
            var n = this.getFirstItemSize();
            this[i] = n && n[o] || this.isotope.size["inner" + e]
        }
    }, o.getFirstItemSize = function() {
        var e = this.isotope.filteredItems[0];
        return e && e.element && t(e.element)
    }, o.layout = function() {
        this.isotope.layout.apply(this.isotope, arguments)
    }, o.getSize = function() {
        this.isotope.getSize(), this.size = this.isotope.size
    }, i.modes = {}, i.create = function(t, e) {
        function n() {
            i.apply(this, arguments)
        }
        return n.prototype = Object.create(o), n.prototype.constructor = n, e && (n.options = e), n.prototype.namespace = t, i.modes[t] = n, n
    }, i
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("masonry-layout/masonry", ["outlayer/outlayer", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer"), require("get-size")) : t.Masonry = e(t.Outlayer, t.getSize)
}(window, function(t, e) {
    var i = t.create("masonry");
    i.compatOptions.fitWidth = "isFitWidth";
    var o = i.prototype;
    return o._resetLayout = function() {
        this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = [];
        for (var t = 0; t < this.cols; t++) this.colYs.push(0);
        this.maxY = 0, this.horizontalColIndex = 0
    }, o.measureColumns = function() {
        if (this.getContainerWidth(), !this.columnWidth) {
            var t = this.items[0],
                i = t && t.element;
            this.columnWidth = i && e(i).outerWidth || this.containerWidth
        }
        var o = this.columnWidth += this.gutter,
            n = this.containerWidth + this.gutter,
            s = n / o,
            r = o - n % o,
            a = r && r < 1 ? "round" : "floor";
        s = Math[a](s), this.cols = Math.max(s, 1)
    }, o.getContainerWidth = function() {
        var t = this._getOption("fitWidth"),
            i = t ? this.element.parentNode : this.element,
            o = e(i);
        this.containerWidth = o && o.innerWidth
    }, o._getItemLayoutPosition = function(t) {
        t.getSize();
        var e = t.size.outerWidth % this.columnWidth,
            i = e && e < 1 ? "round" : "ceil",
            o = Math[i](t.size.outerWidth / this.columnWidth);
        o = Math.min(o, this.cols);
        for (var n = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", s = this[n](o, t), r = {
                x: this.columnWidth * s.col,
                y: s.y
            }, a = s.y + t.size.outerHeight, u = o + s.col, h = s.col; h < u; h++) this.colYs[h] = a;
        return r
    }, o._getTopColPosition = function(t) {
        var e = this._getTopColGroup(t),
            i = Math.min.apply(Math, e);
        return {
            col: e.indexOf(i),
            y: i
        }
    }, o._getTopColGroup = function(t) {
        if (t < 2) return this.colYs;
        for (var e = [], i = this.cols + 1 - t, o = 0; o < i; o++) e[o] = this._getColGroupY(o, t);
        return e
    }, o._getColGroupY = function(t, e) {
        if (e < 2) return this.colYs[t];
        var i = this.colYs.slice(t, t + e);
        return Math.max.apply(Math, i)
    }, o._getHorizontalColPosition = function(t, e) {
        var i = this.horizontalColIndex % this.cols,
            o = t > 1 && i + t > this.cols;
        i = o ? 0 : i;
        var n = e.size.outerWidth && e.size.outerHeight;
        return this.horizontalColIndex = n ? i + t : this.horizontalColIndex, {
            col: i,
            y: this._getColGroupY(i, t)
        }
    }, o._manageStamp = function(t) {
        var i = e(t),
            o = this._getElementOffset(t),
            n = this._getOption("originLeft"),
            s = n ? o.left : o.right,
            r = s + i.outerWidth,
            a = Math.floor(s / this.columnWidth);
        a = Math.max(0, a);
        var u = Math.floor(r / this.columnWidth);
        u -= r % this.columnWidth ? 0 : 1, u = Math.min(this.cols - 1, u);
        for (var h = this._getOption("originTop"), d = (h ? o.top : o.bottom) + i.outerHeight, l = a; l <= u; l++) this.colYs[l] = Math.max(d, this.colYs[l])
    }, o._getContainerSize = function() {
        this.maxY = Math.max.apply(Math, this.colYs);
        var t = {
            height: this.maxY
        };
        return this._getOption("fitWidth") && (t.width = this._getContainerFitWidth()), t
    }, o._getContainerFitWidth = function() {
        for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];) t++;
        return (this.cols - t) * this.columnWidth - this.gutter
    }, o.needsResizeLayout = function() {
        var t = this.containerWidth;
        return this.getContainerWidth(), t != this.containerWidth
    }, i
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/masonry", ["../layout-mode", "masonry-layout/masonry"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode"), require("masonry-layout")) : e(t.Isotope.LayoutMode, t.Masonry)
}(window, function(t, e) {
    "use strict";
    var i = t.create("masonry"),
        o = i.prototype,
        n = {
            _getElementOffset: !0,
            layout: !0,
            _getMeasurement: !0
        };
    for (var s in e.prototype) n[s] || (o[s] = e.prototype[s]);
    var r = o.measureColumns;
    o.measureColumns = function() {
        this.items = this.isotope.filteredItems, r.call(this)
    };
    var a = o._getOption;
    return o._getOption = function(t) {
        return "fitWidth" == t ? void 0 !== this.options.isFitWidth ? this.options.isFitWidth : this.options.fitWidth : a.apply(this.isotope, arguments)
    }, i
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/fit-rows", ["../layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
}(window, function(t) {
    "use strict";
    var e = t.create("fitRows"),
        i = e.prototype;
    return i._resetLayout = function() {
        this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth")
    }, i._getItemLayoutPosition = function(t) {
        t.getSize();
        var e = t.size.outerWidth + this.gutter,
            i = this.isotope.size.innerWidth + this.gutter;
        0 !== this.x && e + this.x > i && (this.x = 0, this.y = this.maxY);
        var o = {
            x: this.x,
            y: this.y
        };
        return this.maxY = Math.max(this.maxY, this.y + t.size.outerHeight), this.x += e, o
    }, i._getContainerSize = function() {
        return {
            height: this.maxY
        }
    }, e
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/vertical", ["../layout-mode"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
}(window, function(t) {
    "use strict";
    var e = t.create("vertical", {
            horizontalAlignment: 0
        }),
        i = e.prototype;
    return i._resetLayout = function() {
        this.y = 0
    }, i._getItemLayoutPosition = function(t) {
        t.getSize();
        var e = (this.isotope.size.innerWidth - t.size.outerWidth) * this.options.horizontalAlignment,
            i = this.y;
        return this.y += t.size.outerHeight, {
            x: e,
            y: i
        }
    }, i._getContainerSize = function() {
        return {
            height: this.y
        }
    }, e
}),
function(t, e) {
    "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size", "desandro-matches-selector/matches-selector", "fizzy-ui-utils/utils", "isotope-layout/js/item", "isotope-layout/js/layout-mode", "isotope-layout/js/layout-modes/masonry", "isotope-layout/js/layout-modes/fit-rows", "isotope-layout/js/layout-modes/vertical"], function(i, o, n, s, r, a) {
        return e(t, i, o, n, s, r, a)
    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("outlayer"), require("get-size"), require("desandro-matches-selector"), require("fizzy-ui-utils"), require("isotope-layout/js/item"), require("isotope-layout/js/layout-mode"), require("isotope-layout/js/layout-modes/masonry"), require("isotope-layout/js/layout-modes/fit-rows"), require("isotope-layout/js/layout-modes/vertical")) : t.Isotope = e(t, t.Outlayer, t.getSize, t.matchesSelector, t.fizzyUIUtils, t.Isotope.Item, t.Isotope.LayoutMode)
}(window, function(t, e, i, o, n, s, r) {
    function a(t, e) {
        return function(i, o) {
            for (var n = 0; n < t.length; n++) {
                var s = t[n],
                    r = i.sortData[s],
                    a = o.sortData[s];
                if (r > a || r < a) {
                    var u = void 0 !== e[s] ? e[s] : e,
                        h = u ? 1 : -1;
                    return (r > a ? 1 : -1) * h
                }
            }
            return 0
        }
    }
    var u = t.jQuery,
        h = String.prototype.trim ? function(t) {
            return t.trim()
        } : function(t) {
            return t.replace(/^\s+|\s+$/g, "")
        },
        d = e.create("isotope", {
            layoutMode: "masonry",
            isJQueryFiltering: !0,
            sortAscending: !0
        });
    d.Item = s, d.LayoutMode = r;
    var l = d.prototype;
    l._create = function() {
        this.itemGUID = 0, this._sorters = {}, this._getSorters(), e.prototype._create.call(this), this.modes = {}, this.filteredItems = this.items, this.sortHistory = ["original-order"];
        for (var t in r.modes) this._initLayoutMode(t)
    }, l.reloadItems = function() {
        this.itemGUID = 0, e.prototype.reloadItems.call(this)
    }, l._itemize = function() {
        for (var t = e.prototype._itemize.apply(this, arguments), i = 0; i < t.length; i++) {
            var o = t[i];
            o.id = this.itemGUID++
        }
        return this._updateItemsSortData(t), t
    }, l._initLayoutMode = function(t) {
        var e = r.modes[t],
            i = this.options[t] || {};
        this.options[t] = e.options ? n.extend(e.options, i) : i, this.modes[t] = new e(this)
    }, l.layout = function() {
        return !this._isLayoutInited && this._getOption("initLayout") ? void this.arrange() : void this._layout()
    }, l._layout = function() {
        var t = this._getIsInstant();
        this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, t), this._isLayoutInited = !0
    }, l.arrange = function(t) {
        this.option(t), this._getIsInstant();
        var e = this._filter(this.items);
        this.filteredItems = e.matches, this._bindArrangeComplete(), this._isInstant ? this._noTransition(this._hideReveal, [e]) : this._hideReveal(e), this._sort(), this._layout()
    }, l._init = l.arrange, l._hideReveal = function(t) {
        this.reveal(t.needReveal), this.hide(t.needHide)
    }, l._getIsInstant = function() {
        var t = this._getOption("layoutInstant"),
            e = void 0 !== t ? t : !this._isLayoutInited;
        return this._isInstant = e, e
    }, l._bindArrangeComplete = function() {
        function t() {
            e && i && o && n.dispatchEvent("arrangeComplete", null, [n.filteredItems])
        }
        var e, i, o, n = this;
        this.once("layoutComplete", function() {
            e = !0, t()
        }), this.once("hideComplete", function() {
            i = !0, t()
        }), this.once("revealComplete", function() {
            o = !0, t()
        })
    }, l._filter = function(t) {
        var e = this.options.filter;
        e = e || "*";
        for (var i = [], o = [], n = [], s = this._getFilterTest(e), r = 0; r < t.length; r++) {
            var a = t[r];
            if (!a.isIgnored) {
                var u = s(a);
                u && i.push(a), u && a.isHidden ? o.push(a) : u || a.isHidden || n.push(a)
            }
        }
        return {
            matches: i,
            needReveal: o,
            needHide: n
        }
    }, l._getFilterTest = function(t) {
        return u && this.options.isJQueryFiltering ? function(e) {
            return u(e.element).is(t)
        } : "function" == typeof t ? function(e) {
            return t(e.element)
        } : function(e) {
            return o(e.element, t)
        }
    }, l.updateSortData = function(t) {
        var e;
        t ? (t = n.makeArray(t), e = this.getItems(t)) : e = this.items, this._getSorters(), this._updateItemsSortData(e)
    }, l._getSorters = function() {
        var t = this.options.getSortData;
        for (var e in t) {
            var i = t[e];
            this._sorters[e] = f(i)
        }
    }, l._updateItemsSortData = function(t) {
        for (var e = t && t.length, i = 0; e && i < e; i++) {
            var o = t[i];
            o.updateSortData()
        }
    };
    var f = function() {
        function t(t) {
            if ("string" != typeof t) return t;
            var i = h(t).split(" "),
                o = i[0],
                n = o.match(/^\[(.+)\]$/),
                s = n && n[1],
                r = e(s, o),
                a = d.sortDataParsers[i[1]];
            return t = a ? function(t) {
                return t && a(r(t))
            } : function(t) {
                return t && r(t)
            }
        }

        function e(t, e) {
            return t ? function(e) {
                return e.getAttribute(t)
            } : function(t) {
                var i = t.querySelector(e);
                return i && i.textContent
            }
        }
        return t
    }();
    d.sortDataParsers = {
        parseInt: function(t) {
            return parseInt(t, 10)
        },
        parseFloat: function(t) {
            return parseFloat(t)
        }
    }, l._sort = function() {
        if (this.options.sortBy) {
            var t = n.makeArray(this.options.sortBy);
            this._getIsSameSortBy(t) || (this.sortHistory = t.concat(this.sortHistory));
            var e = a(this.sortHistory, this.options.sortAscending);
            this.filteredItems.sort(e)
        }
    }, l._getIsSameSortBy = function(t) {
        for (var e = 0; e < t.length; e++)
            if (t[e] != this.sortHistory[e]) return !1;
        return !0
    }, l._mode = function() {
        var t = this.options.layoutMode,
            e = this.modes[t];
        if (!e) throw new Error("No layout mode: " + t);
        return e.options = this.options[t], e
    }, l._resetLayout = function() {
        e.prototype._resetLayout.call(this), this._mode()._resetLayout()
    }, l._getItemLayoutPosition = function(t) {
        return this._mode()._getItemLayoutPosition(t)
    }, l._manageStamp = function(t) {
        this._mode()._manageStamp(t)
    }, l._getContainerSize = function() {
        return this._mode()._getContainerSize()
    }, l.needsResizeLayout = function() {
        return this._mode().needsResizeLayout()
    }, l.appended = function(t) {
        var e = this.addItems(t);
        if (e.length) {
            var i = this._filterRevealAdded(e);
            this.filteredItems = this.filteredItems.concat(i)
        }
    }, l.prepended = function(t) {
        var e = this._itemize(t);
        if (e.length) {
            this._resetLayout(), this._manageStamps();
            var i = this._filterRevealAdded(e);
            this.layoutItems(this.filteredItems), this.filteredItems = i.concat(this.filteredItems), this.items = e.concat(this.items)
        }
    }, l._filterRevealAdded = function(t) {
        var e = this._filter(t);
        return this.hide(e.needHide), this.reveal(e.matches), this.layoutItems(e.matches, !0), e.matches
    }, l.insert = function(t) {
        var e = this.addItems(t);
        if (e.length) {
            var i, o, n = e.length;
            for (i = 0; i < n; i++) o = e[i], this.element.appendChild(o.element);
            var s = this._filter(e).matches;
            for (i = 0; i < n; i++) e[i].isLayoutInstant = !0;
            for (this.arrange(), i = 0; i < n; i++) delete e[i].isLayoutInstant;
            this.reveal(s)
        }
    };
    var c = l.remove;
    return l.remove = function(t) {
        t = n.makeArray(t);
        var e = this.getItems(t);
        c.call(this, t);
        for (var i = e && e.length, o = 0; i && o < i; o++) {
            var s = e[o];
            n.removeFrom(this.filteredItems, s)
        }
    }, l.shuffle = function() {
        for (var t = 0; t < this.items.length; t++) {
            var e = this.items[t];
            e.sortData.random = Math.random()
        }
        this.options.sortBy = "random", this._sort(), this._layout()
    }, l._noTransition = function(t, e) {
        var i = this.options.transitionDuration;
        this.options.transitionDuration = 0;
        var o = t.apply(this, e);
        return this.options.transitionDuration = i, o
    }, l.getFilteredItemElements = function() {
        return this.filteredItems.map(function(t) {
            return t.element
        })
    }, d
});

/*!
 * MDB5
 *   Version: FREE 3.3.0
 * 
 * 
 *   Copyright: Material Design for Bootstrap
 *   https://mdbootstrap.com/
 * 
 *   Read the license: https://mdbootstrap.com/general/license/
 * 
 * 
 *   Documentation: https://mdbootstrap.com/docs/standard/
 * 
 *   Support: https://mdbootstrap.com/support/
 * 
 *   Contact: office@mdbootstrap.com
 * 
 */
! function(t, e) {
    "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define("mdb", [], e) : "object" == typeof exports ? exports.mdb = e() : t.mdb = e()
}(this, function() {
    return r = {}, o.m = n = [function(t, e, n) {
        var r, o = n(7),
            i = n(93),
            c = n(122),
            a = n(18);
        for (r in i) {
            var u = o[r],
                s = u && u.prototype;
            if (s && s.forEach !== c) try {
                a(s, "forEach", c)
            } catch (t) {
                s.forEach = c
            }
        }
    }, function(t, e) {
        t.exports = function(t) {
            try {
                return !!t()
            } catch (t) {
                return !0
            }
        }
    }, function(t, e, n) {
        var s = n(7),
            l = n(36).f,
            f = n(18),
            p = n(19),
            d = n(55),
            h = n(115),
            y = n(44);
        t.exports = function(t, e) {
            var n, r, o, i = t.target,
                c = t.global,
                a = t.stat,
                u = c ? s : a ? s[i] || d(i, {}) : (s[i] || {}).prototype;
            if (u)
                for (n in e) {
                    if (r = e[n], o = t.noTargetGet ? (o = l(u, n)) && o.value : u[n], !y(c ? n : i + (a ? "." : "#") + n, t.forced) && void 0 !== o) {
                        if (typeof r == typeof o) continue;
                        h(r, o)
                    }(t.sham || o && o.sham) && f(r, "sham", !0), p(u, n, r, t)
                }
        }
    }, function(t, e, n) {
        var r = n(7),
            o = n(84),
            i = n(14),
            c = n(58),
            a = n(91),
            n = n(118),
            u = o("wks"),
            s = r.Symbol,
            l = n ? s : s && s.withoutSetter || c;
        t.exports = function(t) {
            return i(u, t) || (a && i(s, t) ? u[t] = s[t] : u[t] = l("Symbol." + t)), u[t]
        }
    }, function(t, e, n) {
        var r = n(2),
            o = n(1),
            i = n(23),
            c = n(64),
            n = n(92);
        r({
            target: "Object",
            stat: !0,
            forced: o(function() {
                c(1)
            }),
            sham: !n
        }, {
            getPrototypeOf: function(t) {
                return c(i(t))
            }
        })
    }, function(t, e, n) {
        n(2)({
            target: "Object",
            stat: !0
        }, {
            setPrototypeOf: n(65)
        })
    }, function(t, e, n) {
        "use strict";
        var r = n(2),
            o = n(45).find,
            i = n(62),
            n = "find",
            c = !0;
        n in [] && Array(1)[n](function() {
            c = !1
        }), r({
            target: "Array",
            proto: !0,
            forced: c
        }, {
            find: function(t) {
                return o(this, t, 1 < arguments.length ? arguments[1] : void 0)
            }
        }), i(n)
    }, function(n, t, e) {
        ! function(t) {
            function e(t) {
                return t && t.Math == Math && t
            }
            n.exports = e("object" == typeof globalThis && globalThis) || e("object" == typeof window && window) || e("object" == typeof self && self) || e("object" == typeof t && t) || function() {
                return this
            }() || Function("return this")()
        }.call(this, e(113))
    }, function(t, e, n) {
        "use strict";
        var r = n(2),
            n = n(51);
        r({
            target: "RegExp",
            proto: !0,
            forced: /./.exec !== n
        }, {
            exec: n
        })
    }, function(t, e, n) {
        var r = n(11);
        t.exports = function(t) {
            if (!r(t)) throw TypeError(String(t) + " is not an object");
            return t
        }
    }, function(t, e, n) {
        "use strict";
        var r = n(2),
            o = n(1),
            s = n(61),
            l = n(11),
            f = n(23),
            p = n(16),
            d = n(66),
            h = n(90),
            i = n(48),
            c = n(3),
            n = n(95),
            y = c("isConcatSpreadable"),
            g = 9007199254740991,
            v = "Maximum allowed index exceeded",
            o = 51 <= n || !o(function() {
                var t = [];
                return t[y] = !1, t.concat()[0] !== t
            }),
            i = i("concat");
        r({
            target: "Array",
            proto: !0,
            forced: !o || !i
        }, {
            concat: function(t) {
                for (var e, n, r, o = f(this), i = h(o, 0), c = 0, a = -1, u = arguments.length; a < u; a++)
                    if (function(t) {
                            if (!l(t)) return !1;
                            var e = t[y];
                            return void 0 !== e ? !!e : s(t)
                        }(r = -1 === a ? o : arguments[a])) {
                        if (n = p(r.length), g < c + n) throw TypeError(v);
                        for (e = 0; e < n; e++, c++) e in r && d(i, c, r[e])
                    } else {
                        if (g <= c) throw TypeError(v);
                        d(i, c++, r)
                    }
                return i.length = c, i
            }
        })
    }, function(t, e) {
        t.exports = function(t) {
            return "object" == typeof t ? null !== t : "function" == typeof t
        }
    }, function(t, e, n) {
        var r = n(13),
            o = n(81),
            i = n(9),
            c = n(39),
            a = Object.defineProperty;
        e.f = r ? a : function(t, e, n) {
            if (i(t), e = c(e, !0), i(n), o) try {
                return a(t, e, n)
            } catch (t) {}
            if ("get" in n || "set" in n) throw TypeError("Accessors not supported");
            return "value" in n && (t[e] = n.value), t
        }
    }, function(t, e, n) {
        n = n(1);
        t.exports = !n(function() {
            return 7 != Object.defineProperty({}, 1, {
                get: function() {
                    return 7
                }
            })[1]
        })
    }, function(t, e) {
        var n = {}.hasOwnProperty;
        t.exports = function(t, e) {
            return n.call(t, e)
        }
    }, function(t, e, n) {
        "use strict";

        function r(t) {
            var e, n, r, o, i, c, a, u = f(t, !1);
            if ("string" == typeof u && 2 < u.length)
                if (43 === (e = (u = v(u)).charCodeAt(0)) || 45 === e) {
                    if (88 === (t = u.charCodeAt(2)) || 120 === t) return NaN
                } else if (48 === e) {
                switch (u.charCodeAt(1)) {
                    case 66:
                    case 98:
                        n = 2, r = 49;
                        break;
                    case 79:
                    case 111:
                        n = 8, r = 55;
                        break;
                    default:
                        return +u
                }
                for (i = (o = u.slice(2)).length, c = 0; c < i; c++)
                    if ((a = o.charCodeAt(c)) < 48 || r < a) return NaN;
                return parseInt(o, n)
            }
            return +u
        }
        var o = n(13),
            i = n(7),
            c = n(44),
            a = n(19),
            u = n(14),
            s = n(29),
            l = n(68),
            f = n(39),
            p = n(1),
            d = n(47),
            h = n(59).f,
            y = n(36).f,
            g = n(12).f,
            v = n(49).trim,
            m = "Number",
            b = i[m],
            _ = b.prototype,
            w = s(d(_)) == m;
        if (c(m, !b(" 0o1") || !b("0b1") || b("+0x1"))) {
            for (var O, E = function(t) {
                    var t = arguments.length < 1 ? 0 : t,
                        e = this;
                    return e instanceof E && (w ? p(function() {
                        _.valueOf.call(e)
                    }) : s(e) != m) ? l(new b(r(t)), e, E) : r(t)
                }, j = o ? h(b) : "MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","), k = 0; j.length > k; k++) u(b, O = j[k]) && !u(E, O) && g(E, O, y(b, O));
            (E.prototype = _).constructor = E, a(i, m, E)
        }
    }, function(t, e, n) {
        var r = n(43),
            o = Math.min;
        t.exports = function(t) {
            return 0 < t ? o(r(t), 9007199254740991) : 0
        }
    }, function(t, e) {
        t.exports = function(t) {
            if (null == t) throw TypeError("Can't call method on " + t);
            return t
        }
    }, function(t, e, n) {
        var r = n(13),
            o = n(12),
            i = n(37);
        t.exports = r ? function(t, e, n) {
            return o.f(t, e, i(1, n))
        } : function(t, e, n) {
            return t[e] = n, t
        }
    }, function(t, e, n) {
        var a = n(7),
            u = n(18),
            s = n(14),
            l = n(55),
            r = n(83),
            n = n(31),
            o = n.get,
            f = n.enforce,
            p = String(String).split("String");
        (t.exports = function(t, e, n, r) {
            var o = !!r && !!r.unsafe,
                i = !!r && !!r.enumerable,
                c = !!r && !!r.noTargetGet;
            "function" == typeof n && ("string" != typeof e || s(n, "name") || u(n, "name", e), (r = f(n)).source || (r.source = p.join("string" == typeof e ? e : ""))), t !== a ? (o ? !c && t[e] && (i = !0) : delete t[e], i ? t[e] = n : u(t, e, n)) : i ? t[e] = n : l(e, n)
        })(Function.prototype, "toString", function() {
            return "function" == typeof this && o(this).source || r(this)
        })
    }, function(t, e, n) {
        var r = n(2),
            o = n(23),
            i = n(63);
        r({
            target: "Object",
            stat: !0,
            forced: n(1)(function() {
                i(1)
            })
        }, {
            keys: function(t) {
                return i(o(t))
            }
        })
    }, function(t, e, n) {
        "use strict";
        var r = n(19),
            o = n(9),
            i = n(1),
            c = n(71),
            a = "toString",
            u = RegExp.prototype,
            s = u[a],
            n = i(function() {
                return "/a/b" != s.call({
                    source: "a",
                    flags: "b"
                })
            }),
            i = s.name != a;
        (n || i) && r(RegExp.prototype, a, function() {
            var t = o(this),
                e = String(t.source),
                n = t.flags;
            return "/" + e + "/" + String(void 0 === n && t instanceof RegExp && !("flags" in u) ? c.call(t) : n)
        }, {
            unsafe: !0
        })
    }, function(t, e, n) {
        "use strict";
        var r = n(74),
            l = n(70),
            v = n(9),
            f = n(17),
            m = n(130),
            b = n(75),
            _ = n(16),
            w = n(76),
            p = n(51),
            n = n(1),
            d = [].push,
            O = Math.min,
            E = 4294967295,
            j = !n(function() {
                return !RegExp(E, "y")
            });
        r("split", 2, function(o, h, y) {
            var g = "c" == "abbc".split(/(b)*/)[1] || 4 != "test".split(/(?:)/, -1).length || 2 != "ab".split(/(?:ab)*/).length || 4 != ".".split(/(.?)(.?)/).length || 1 < ".".split(/()()/).length || "".split(/.?/).length ? function(t, e) {
                var n = String(f(this)),
                    r = void 0 === e ? E : e >>> 0;
                if (0 == r) return [];
                if (void 0 === t) return [n];
                if (!l(t)) return h.call(n, t, r);
                for (var o, i, c, a = [], e = (t.ignoreCase ? "i" : "") + (t.multiline ? "m" : "") + (t.unicode ? "u" : "") + (t.sticky ? "y" : ""), u = 0, s = new RegExp(t.source, e + "g");
                    (o = p.call(s, n)) && !(u < (i = s.lastIndex) && (a.push(n.slice(u, o.index)), 1 < o.length && o.index < n.length && d.apply(a, o.slice(1)), c = o[0].length, u = i, a.length >= r));) s.lastIndex === o.index && s.lastIndex++;
                return u === n.length ? !c && s.test("") || a.push("") : a.push(n.slice(u)), a.length > r ? a.slice(0, r) : a
            } : "0".split(void 0, 0).length ? function(t, e) {
                return void 0 === t && 0 === e ? [] : h.call(this, t, e)
            } : h;
            return [function(t, e) {
                var n = f(this),
                    r = null == t ? void 0 : t[o];
                return void 0 !== r ? r.call(t, n, e) : g.call(String(n), t, e)
            }, function(t, e) {
                var n = y(g, t, this, e, g !== h);
                if (n.done) return n.value;
                var r = v(t),
                    o = String(this),
                    n = m(r, RegExp),
                    i = r.unicode,
                    t = (r.ignoreCase ? "i" : "") + (r.multiline ? "m" : "") + (r.unicode ? "u" : "") + (j ? "y" : "g"),
                    c = new n(j ? r : "^(?:" + r.source + ")", t),
                    a = void 0 === e ? E : e >>> 0;
                if (0 == a) return [];
                if (0 === o.length) return null === w(c, o) ? [o] : [];
                for (var u = 0, s = 0, l = []; s < o.length;) {
                    c.lastIndex = j ? s : 0;
                    var f, p = w(c, j ? o : o.slice(s));
                    if (null === p || (f = O(_(c.lastIndex + (j ? 0 : s)), o.length)) === u) s = b(o, s, i);
                    else {
                        if (l.push(o.slice(u, s)), l.length === a) return l;
                        for (var d = 1; d <= p.length - 1; d++)
                            if (l.push(p[d]), l.length === a) return l;
                        s = u = f
                    }
                }
                return l.push(o.slice(u)), l
            }]
        }, !j)
    }, function(t, e, n) {
        var r = n(17);
        t.exports = function(t) {
            return Object(r(t))
        }
    }, function(t, e, n) {
        "use strict";
        var r = n(2),
            o = n(45).filter;
        r({
            target: "Array",
            proto: !0,
            forced: !n(48)("filter")
        }, {
            filter: function(t) {
                return o(this, t, 1 < arguments.length ? arguments[1] : void 0)
            }
        })
    }, function(t, e, n) {
        "use strict";
        var r = n(2),
            o = n(45).map;
        r({
            target: "Array",
            proto: !0,
            forced: !n(48)("map")
        }, {
            map: function(t) {
                return o(this, t, 1 < arguments.length ? arguments[1] : void 0)
            }
        })
    }, function(t, e, n) {
        var r = n(67),
            o = n(19),
            n = n(128);
        r || o(Object.prototype, "toString", n, {
            unsafe: !0
        })
    }, function(t, e, n) {
        var r = n(13),
            o = n(7),
            i = n(44),
            c = n(68),
            a = n(12).f,
            u = n(59).f,
            s = n(70),
            l = n(71),
            f = n(101),
            p = n(19),
            d = n(1),
            h = n(31).set,
            y = n(102),
            g = n(3)("match"),
            v = o.RegExp,
            m = v.prototype,
            b = /a/g,
            _ = /a/g,
            w = new v(b) !== b,
            O = f.UNSUPPORTED_Y;
        if (r && i("RegExp", !w || O || d(function() {
                return _[g] = !1, v(b) != b || v(_) == _ || "/a/i" != v(b, "i")
            }))) {
            for (var E = function(t, e) {
                    var n, r = this instanceof E,
                        o = s(t),
                        i = void 0 === e;
                    if (!r && o && t.constructor === E && i) return t;
                    w ? o && !i && (t = t.source) : t instanceof E && (i && (e = l.call(t)), t = t.source), O && (n = !!e && -1 < e.indexOf("y")) && (e = e.replace(/y/g, ""));
                    r = c(w ? new v(t, e) : v(t, e), r ? this : m, E);
                    return O && n && h(r, {
                        sticky: n
                    }), r
                }, j = u(v), k = 0; j.length > k;) ! function(e) {
                e in E || a(E, e, {
                    configurable: !0,
                    get: function() {
                        return v[e]
                    },
                    set: function(t) {
                        v[e] = t
                    }
                })
            }(j[k++]);
            (m.constructor = E).prototype = m, p(o, "RegExp", E)
        }
        y("RegExp")
    }, function(t, e, n) {
        var r = n(38),
            o = n(17);
        t.exports = function(t) {
            return r(o(t))
        }
    }, function(t, e) {
        var n = {}.toString;
        t.exports = function(t) {
            return n.call(t).slice(8, -1)
        }
    }, function(t, e, n) {
        "use strict";
        var r = n(74),
            l = n(9),
            f = n(16),
            o = n(17),
            p = n(75),
            d = n(76);
        r("match", 1, function(r, u, s) {
            return [function(t) {
                var e = o(this),
                    n = null == t ? void 0 : t[r];
                return void 0 !== n ? n.call(t, e) : new RegExp(t)[r](String(e))
            }, function(t) {
                var e = s(u, t, this);
                if (e.done) return e.value;
                var n = l(t),
                    r = String(this);
                if (!n.global) return d(n, r);
                for (var o = n.unicode, i = [], c = n.lastIndex = 0; null !== (a = d(n, r));) {
                    var a = String(a[0]);
                    "" === (i[c] = a) && (n.lastIndex = p(r, f(n.lastIndex), o)), c++
                }
                return 0 === c ? null : i
            }]
        })
    }, function(t, e, n) {
        var r, o, i, c, a, u, s, l, f = n(114),
            p = n(7),
            d = n(11),
            h = n(18),
            y = n(14),
            g = n(56),
            v = n(57),
            n = n(41),
            p = p.WeakMap;
        s = f ? (r = g.state || (g.state = new p), o = r.get, i = r.has, c = r.set, a = function(t, e) {
            return e.facade = t, c.call(r, t, e), e
        }, u = function(t) {
            return o.call(r, t) || {}
        }, function(t) {
            return i.call(r, t)
        }) : (n[l = v("state")] = !0, a = function(t, e) {
            return e.facade = t, h(t, l, e), e
        }, u = function(t) {
            return y(t, l) ? t[l] : {}
        }, function(t) {
            return y(t, l)
        }), t.exports = {
            set: a,
            get: u,
            has: s,
            enforce: function(t) {
                return s(t) ? u(t) : a(t, {})
            },
            getterFor: function(n) {
                return function(t) {
                    var e;
                    if (!d(t) || (e = u(t)).type !== n) throw TypeError("Incompatible receiver, " + n + " required");
                    return e
                }
            }
        }
    }, function(t, e) {
        t.exports = {}
    }, function(t, e, n) {
        "use strict";
        var r = n(2),
            o = n(49).trim;
        r({
            target: "String",
            proto: !0,
            forced: n(131)("trim")
        }, {
            trim: function() {
                return o(this)
            }
        })
    }, function(t, e, n) {
        "use strict";
        var r = n(2),
            s = n(11),
            l = n(61),
            f = n(87),
            p = n(16),
            d = n(28),
            h = n(66),
            o = n(3),
            n = n(48)("slice"),
            y = o("species"),
            g = [].slice,
            v = Math.max;
        r({
            target: "Array",
            proto: !0,
            forced: !n
        }, {
            slice: function(t, e) {
                var n, r, o, i = d(this),
                    c = p(i.length),
                    a = f(t, c),
                    u = f(void 0 === e ? c : e, c);
                if (l(i) && ((n = "function" == typeof(n = i.constructor) && (n === Array || l(n.prototype)) || s(n) && null === (n = n[y]) ? void 0 : n) === Array || void 0 === n)) return g.call(i, a, u);
                for (r = new(void 0 === n ? Array : n)(v(u - a, 0)), o = 0; a < u; a++, o++) a in i && h(r, o, i[a]);
                return r.length = o, r
            }
        })
    }, function(t, e, n) {
        "use strict";
        var r = n(74),
            k = n(9),
            S = n(16),
            x = n(43),
            i = n(17),
            P = n(75),
            T = n(132),
            D = n(76),
            A = Math.max,
            C = Math.min;
        r("replace", 2, function(o, _, w, t) {
            var O = t.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,
                E = t.REPLACE_KEEPS_$0,
                j = O ? "$" : "$0";
            return [function(t, e) {
                var n = i(this),
                    r = null == t ? void 0 : t[o];
                return void 0 !== r ? r.call(t, n, e) : _.call(String(n), t, e)
            }, function(t, e) {
                if (!O && E || "string" == typeof e && -1 === e.indexOf(j)) {
                    var n = w(_, t, this, e);
                    if (n.done) return n.value
                }
                var r = k(t),
                    o = String(this),
                    i = "function" == typeof e;
                i || (e = String(e));
                var c, a = r.global;
                a && (c = r.unicode, r.lastIndex = 0);
                for (var u = [];;) {
                    var s = D(r, o);
                    if (null === s) break;
                    if (u.push(s), !a) break;
                    "" === String(s[0]) && (r.lastIndex = P(o, S(r.lastIndex), c))
                }
                for (var l, f = "", p = 0, d = 0; d < u.length; d++) {
                    for (var s = u[d], h = String(s[0]), y = A(C(x(s.index), o.length), 0), g = [], v = 1; v < s.length; v++) g.push(void 0 === (l = s[v]) ? l : String(l));
                    var m, b = s.groups,
                        b = i ? (m = [h].concat(g, y, o), void 0 !== b && m.push(b), String(e.apply(void 0, m))) : T(h, o, y, g, b, e);
                    p <= y && (f += o.slice(p, y) + b, p = y + h.length)
                }
                return f + o.slice(p)
            }]
        })
    }, function(t, e, n) {
        var r = n(13),
            o = n(80),
            i = n(37),
            c = n(28),
            a = n(39),
            u = n(14),
            s = n(81),
            l = Object.getOwnPropertyDescriptor;
        e.f = r ? l : function(t, e) {
            if (t = c(t), e = a(e, !0), s) try {
                return l(t, e)
            } catch (t) {}
            if (u(t, e)) return i(!o.f.call(t, e), t[e])
        }
    }, function(t, e) {
        t.exports = function(t, e) {
            return {
                enumerable: !(1 & t),
                configurable: !(2 & t),
                writable: !(4 & t),
                value: e
            }
        }
    }, function(t, e, n) {
        var r = n(1),
            o = n(29),
            i = "".split;
        t.exports = r(function() {
            return !Object("z").propertyIsEnumerable(0)
        }) ? function(t) {
            return "String" == o(t) ? i.call(t, "") : Object(t)
        } : Object
    }, function(t, e, n) {
        var o = n(11);
        t.exports = function(t, e) {
            if (!o(t)) return t;
            var n, r;
            if (e && "function" == typeof(n = t.toString) && !o(r = n.call(t))) return r;
            if ("function" == typeof(n = t.valueOf) && !o(r = n.call(t))) return r;
            if (!e && "function" == typeof(n = t.toString) && !o(r = n.call(t))) return r;
            throw TypeError("Can't convert object to primitive value")
        }
    }, function(t, e) {
        t.exports = !1
    }, function(t, e) {
        t.exports = {}
    }, function(t, e, n) {
        function r(t) {
            return "function" == typeof t ? t : void 0
        }
        var o = n(117),
            i = n(7);
        t.exports = function(t, e) {
            return arguments.length < 2 ? r(o[t]) || r(i[t]) : o[t] && o[t][e] || i[t] && i[t][e]
        }
    }, function(t, e) {
        var n = Math.ceil,
            r = Math.floor;
        t.exports = function(t) {
            return isNaN(t = +t) ? 0 : (0 < t ? r : n)(t)
        }
    }, function(t, e, n) {
        var r = n(1),
            o = /#|\.prototype\./,
            n = function(t, e) {
                t = c[i(t)];
                return t == u || t != a && ("function" == typeof e ? r(e) : !!e)
            },
            i = n.normalize = function(t) {
                return String(t).replace(o, ".").toLowerCase()
            },
            c = n.data = {},
            a = n.NATIVE = "N",
            u = n.POLYFILL = "P";
        t.exports = n
    }, function(t, e, n) {
        var _ = n(46),
            w = n(38),
            O = n(23),
            E = n(16),
            j = n(90),
            k = [].push,
            n = function(p) {
                var d = 1 == p,
                    h = 2 == p,
                    y = 3 == p,
                    g = 4 == p,
                    v = 6 == p,
                    m = 7 == p,
                    b = 5 == p || v;
                return function(t, e, n, r) {
                    for (var o, i, c = O(t), a = w(c), u = _(e, n, 3), s = E(a.length), l = 0, r = r || j, f = d ? r(t, s) : h || m ? r(t, 0) : void 0; l < s; l++)
                        if ((b || l in a) && (i = u(o = a[l], l, c), p))
                            if (d) f[l] = i;
                            else if (i) switch (p) {
                        case 3:
                            return !0;
                        case 5:
                            return o;
                        case 6:
                            return l;
                        case 2:
                            k.call(f, o)
                    } else switch (p) {
                        case 4:
                            return !1;
                        case 7:
                            k.call(f, o)
                    }
                    return v ? -1 : y || g ? g : f
                }
            };
        t.exports = {
            forEach: n(0),
            map: n(1),
            filter: n(2),
            some: n(3),
            every: n(4),
            find: n(5),
            findIndex: n(6),
            filterOut: n(7)
        }
    }, function(t, e, n) {
        var i = n(89);
        t.exports = function(r, o, t) {
            if (i(r), void 0 === o) return r;
            switch (t) {
                case 0:
                    return function() {
                        return r.call(o)
                    };
                case 1:
                    return function(t) {
                        return r.call(o, t)
                    };
                case 2:
                    return function(t, e) {
                        return r.call(o, t, e)
                    };
                case 3:
                    return function(t, e, n) {
                        return r.call(o, t, e, n)
                    }
            }
            return function() {
                return r.apply(o, arguments)
            }
        }
    }, function(t, e, n) {
        function r() {}

        function o(t) {
            return "<script>" + t + "</" + d + ">"
        }
        var i, c = n(9),
            a = n(119),
            u = n(60),
            s = n(41),
            l = n(120),
            f = n(82),
            n = n(57),
            p = "prototype",
            d = "script",
            h = n("IE_PROTO"),
            y = function() {
                try {
                    i = document.domain && new ActiveXObject("htmlfile")
                } catch (t) {}
                var t;
                y = i ? function(t) {
                    t.write(o("")), t.close();
                    var e = t.parentWindow.Object;
                    return t = null, e
                }(i) : ((t = f("iframe")).style.display = "none", l.appendChild(t), t.src = String("javascript:"), (t = t.contentWindow.document).open(), t.write(o("document.F=Object")), t.close(), t.F);
                for (var e = u.length; e--;) delete y[p][u[e]];
                return y()
            };
        s[h] = !0, t.exports = Object.create || function(t, e) {
            var n;
            return null !== t ? (r[p] = c(t), n = new r, r[p] = null, n[h] = t) : n = y(), void 0 === e ? n : a(n, e)
        }
    }, function(t, e, n) {
        var r = n(1),
            o = n(3),
            i = n(95),
            c = o("species");
        t.exports = function(e) {
            return 51 <= i || !r(function() {
                var t = [];
                return (t.constructor = {})[c] = function() {
                    return {
                        foo: 1
                    }
                }, 1 !== t[e](Boolean).foo
            })
        }
    }, function(t, e, n) {
        var r = n(17),
            n = "[" + n(50) + "]",
            o = RegExp("^" + n + n + "*"),
            i = RegExp(n + n + "*$"),
            n = function(e) {
                return function(t) {
                    t = String(r(t));
                    return 1 & e && (t = t.replace(o, "")), t = 2 & e ? t.replace(i, "") : t
                }
            };
        t.exports = {
            start: n(1),
            end: n(2),
            trim: n(3)
        }
    }, function(t, e) {
        t.exports = "\t\n\v\f\r                 \u2028\u2029\ufeff"
    }, function(t, e, n) {
        "use strict";
        var r, f = n(71),
            o = n(101),
            p = RegExp.prototype.exec,
            d = String.prototype.replace,
            i = p,
            h = (r = /a/, n = /b*/g, p.call(r, "a"), p.call(n, "a"), 0 !== r.lastIndex || 0 !== n.lastIndex),
            y = o.UNSUPPORTED_Y || o.BROKEN_CARET,
            g = void 0 !== /()??/.exec("")[1];
        (h || g || y) && (i = function(t) {
            var e, n, r, o, i = this,
                c = y && i.sticky,
                a = f.call(i),
                u = i.source,
                s = 0,
                l = t;
            return c && (-1 === (a = a.replace("y", "")).indexOf("g") && (a += "g"), l = String(t).slice(i.lastIndex), 0 < i.lastIndex && (!i.multiline || i.multiline && "\n" !== t[i.lastIndex - 1]) && (u = "(?: " + u + ")", l = " " + l, s++), n = new RegExp("^(?:" + u + ")", a)), g && (n = new RegExp("^" + u + "$(?!\\s)", a)), h && (e = i.lastIndex), r = p.call(c ? n : i, l), c ? r ? (r.input = r.input.slice(s), r[0] = r[0].slice(s), r.index = i.lastIndex, i.lastIndex += r[0].length) : i.lastIndex = 0 : h && r && (i.lastIndex = i.global ? r.index + r[0].length : e), g && r && 1 < r.length && d.call(r[0], n, function() {
                for (o = 1; o < arguments.length - 2; o++) void 0 === arguments[o] && (r[o] = void 0)
            }), r
        }), t.exports = i
    }, function(t, e, n) {
        "use strict";
        var r = n(103).charAt,
            o = n(31),
            n = n(72),
            i = "String Iterator",
            c = o.set,
            a = o.getterFor(i);
        n(String, "String", function(t) {
            c(this, {
                type: i,
                string: String(t),
                index: 0
            })
        }, function() {
            var t = a(this),
                e = t.string,
                n = t.index;
            return n >= e.length ? {
                value: void 0,
                done: !0
            } : (n = r(e, n), t.index += n.length, {
                value: n,
                done: !1
            })
        })
    }, function(t, e, n) {
        "use strict";
        var r = n(28),
            o = n(62),
            i = n(32),
            c = n(31),
            n = n(72),
            a = "Array Iterator",
            u = c.set,
            s = c.getterFor(a);
        t.exports = n(Array, "Array", function(t, e) {
            u(this, {
                type: a,
                target: r(t),
                index: 0,
                kind: e
            })
        }, function() {
            var t = s(this),
                e = t.target,
                n = t.kind,
                r = t.index++;
            return !e || r >= e.length ? {
                value: t.target = void 0,
                done: !0
            } : "keys" == n ? {
                value: r,
                done: !1
            } : "values" == n ? {
                value: e[r],
                done: !1
            } : {
                value: [r, e[r]],
                done: !1
            }
        }, "values"), i.Arguments = i.Array, o("keys"), o("values"), o("entries")
    }, function(t, e, n) {
        var r = n(2),
            n = n(139);
        r({
            target: "Number",
            stat: !0,
            forced: Number.parseInt != n
        }, {
            parseInt: n
        })
    }, function(t, e, n) {
        var r = n(7),
            o = n(18);
        t.exports = function(e, n) {
            try {
                o(r, e, n)
            } catch (t) {
                r[e] = n
            }
            return n
        }
    }, function(t, e, n) {
        var r = n(7),
            o = n(55),
            n = "__core-js_shared__",
            n = r[n] || o(n, {});
        t.exports = n
    }, function(t, e, n) {
        var r = n(84),
            o = n(58),
            i = r("keys");
        t.exports = function(t) {
            return i[t] || (i[t] = o(t))
        }
    }, function(t, e) {
        var n = 0,
            r = Math.random();
        t.exports = function(t) {
            return "Symbol(" + String(void 0 === t ? "" : t) + ")_" + (++n + r).toString(36)
        }
    }, function(t, e, n) {
        var r = n(85),
            o = n(60).concat("length", "prototype");
        e.f = Object.getOwnPropertyNames || function(t) {
            return r(t, o)
        }
    }, function(t, e) {
        t.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"]
    }, function(t, e, n) {
        var r = n(29);
        t.exports = Array.isArray || function(t) {
            return "Array" == r(t)
        }
    }, function(t, e, n) {
        var r = n(3),
            o = n(47),
            n = n(12),
            i = r("unscopables"),
            c = Array.prototype;
        null == c[i] && n.f(c, i, {
            configurable: !0,
            value: o(null)
        }), t.exports = function(t) {
            c[i][t] = !0
        }
    }, function(t, e, n) {
        var r = n(85),
            o = n(60);
        t.exports = Object.keys || function(t) {
            return r(t, o)
        }
    }, function(t, e, n) {
        var r = n(14),
            o = n(23),
            i = n(57),
            n = n(92),
            c = i("IE_PROTO"),
            a = Object.prototype;
        t.exports = n ? Object.getPrototypeOf : function(t) {
            return t = o(t), r(t, c) ? t[c] : "function" == typeof t.constructor && t instanceof t.constructor ? t.constructor.prototype : t instanceof Object ? a : null
        }
    }, function(t, e, n) {
        var o = n(9),
            i = n(121);
        t.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() {
            var n, r = !1,
                t = {};
            try {
                (n = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set).call(t, []), r = t instanceof Array
            } catch (t) {}
            return function(t, e) {
                return o(t), i(e), r ? n.call(t, e) : t.__proto__ = e, t
            }
        }() : void 0)
    }, function(t, e, n) {
        "use strict";
        var r = n(39),
            o = n(12),
            i = n(37);
        t.exports = function(t, e, n) {
            e = r(e);
            e in t ? o.f(t, e, i(0, n)) : t[e] = n
        }
    }, function(t, e, n) {
        var r = {};
        r[n(3)("toStringTag")] = "z", t.exports = "[object z]" === String(r)
    }, function(t, e, n) {
        var i = n(11),
            c = n(65);
        t.exports = function(t, e, n) {
            var r, o;
            return c && "function" == typeof(r = e.constructor) && r !== n && i(o = r.prototype) && o !== n.prototype && c(t, o), t
        }
    }, function(t, e, n) {
        var r = n(2),
            n = n(127);
        r({
            target: "Number",
            stat: !0,
            forced: Number.parseFloat != n
        }, {
            parseFloat: n
        })
    }, function(t, e, n) {
        var r = n(11),
            o = n(29),
            i = n(3)("match");
        t.exports = function(t) {
            var e;
            return r(t) && (void 0 !== (e = t[i]) ? !!e : "RegExp" == o(t))
        }
    }, function(t, e, n) {
        "use strict";
        var r = n(9);
        t.exports = function() {
            var t = r(this),
                e = "";
            return t.global && (e += "g"), t.ignoreCase && (e += "i"), t.multiline && (e += "m"), t.dotAll && (e += "s"), t.unicode && (e += "u"), t.sticky && (e += "y"), e
        }
    }, function(t, e, n) {
        "use strict";

        function y() {
            return this
        }
        var g = n(2),
            v = n(129),
            m = n(64),
            b = n(65),
            _ = n(73),
            w = n(18),
            O = n(19),
            r = n(3),
            E = n(40),
            j = n(32),
            n = n(104),
            k = n.IteratorPrototype,
            S = n.BUGGY_SAFARI_ITERATORS,
            x = r("iterator"),
            P = "values",
            T = "entries";
        t.exports = function(t, e, n, r, o, i, c) {
            v(n, e, r);

            function a(t) {
                if (t === o && h) return h;
                if (!S && t in p) return p[t];
                switch (t) {
                    case "keys":
                    case P:
                    case T:
                        return function() {
                            return new n(this, t)
                        }
                }
                return function() {
                    return new n(this)
                }
            }
            var u, s, l = e + " Iterator",
                f = !1,
                p = t.prototype,
                d = p[x] || p["@@iterator"] || o && p[o],
                h = !S && d || a(o),
                r = "Array" == e && p.entries || d;
            if (r && (t = m(r.call(new t)), k !== Object.prototype && t.next && (E || m(t) === k || (b ? b(t, k) : "function" != typeof t[x] && w(t, x, y)), _(t, l, !0, !0), E && (j[l] = y))), o == P && d && d.name !== P && (f = !0, h = function() {
                    return d.call(this)
                }), E && !c || p[x] === h || w(p, x, h), j[e] = h, o)
                if (u = {
                        values: a(P),
                        keys: i ? h : a("keys"),
                        entries: a(T)
                    }, c)
                    for (s in u) !S && !f && s in p || O(p, s, u[s]);
                else g({
                    target: e,
                    proto: !0,
                    forced: S || f
                }, u);
            return u
        }
    }, function(t, e, n) {
        var r = n(12).f,
            o = n(14),
            i = n(3)("toStringTag");
        t.exports = function(t, e, n) {
            t && !o(t = n ? t : t.prototype, i) && r(t, i, {
                configurable: !0,
                value: e
            })
        }
    }, function(t, e, n) {
        "use strict";
        n(8);
        var s = n(19),
            l = n(1),
            f = n(3),
            p = n(51),
            d = n(18),
            h = f("species"),
            y = !l(function() {
                var t = /./;
                return t.exec = function() {
                    var t = [];
                    return t.groups = {
                        a: "7"
                    }, t
                }, "7" !== "".replace(t, "$<a>")
            }),
            g = "$0" === "a".replace(/./, "$0"),
            n = f("replace"),
            v = !!/./ [n] && "" === /./ [n]("a", "$0"),
            m = !l(function() {
                var t = /(?:)/,
                    e = t.exec;
                t.exec = function() {
                    return e.apply(this, arguments)
                };
                t = "ab".split(t);
                return 2 !== t.length || "a" !== t[0] || "b" !== t[1]
            });
        t.exports = function(n, t, e, r) {
            var i, o, c = f(n),
                a = !l(function() {
                    var t = {};
                    return t[c] = function() {
                        return 7
                    }, 7 != "" [n](t)
                }),
                u = a && !l(function() {
                    var t = !1,
                        e = /a/;
                    return "split" === n && ((e = {
                        constructor: {}
                    }).constructor[h] = function() {
                        return e
                    }, e.flags = "", e[c] = /./ [c]), e.exec = function() {
                        return t = !0, null
                    }, e[c](""), !t
                });
            a && u && ("replace" !== n || y && g && !v) && ("split" !== n || m) || (i = /./ [c], e = (u = e(c, "" [n], function(t, e, n, r, o) {
                return e.exec === p ? a && !o ? {
                    done: !0,
                    value: i.call(e, n, r)
                } : {
                    done: !0,
                    value: t.call(n, e, r)
                } : {
                    done: !1
                }
            }, {
                REPLACE_KEEPS_$0: g,
                REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: v
            }))[0], o = u[1], s(String.prototype, n, e), s(RegExp.prototype, c, 2 == t ? function(t, e) {
                return o.call(t, this, e)
            } : function(t) {
                return o.call(t, this)
            })), r && d(RegExp.prototype[c], "sham", !0)
        }
    }, function(t, e, n) {
        "use strict";
        var r = n(103).charAt;
        t.exports = function(t, e, n) {
            return e + (n ? r(t, e).length : 1)
        }
    }, function(t, e, n) {
        var r = n(29),
            o = n(51);
        t.exports = function(t, e) {
            var n = t.exec;
            if ("function" == typeof n) {
                n = n.call(t, e);
                if ("object" != typeof n) throw TypeError("RegExp exec method returned something other than an Object or null");
                return n
            }
            if ("RegExp" !== r(t)) throw TypeError("RegExp#exec called on incompatible receiver");
            return o.call(t, e)
        }
    }, function(t, e, n) {
        "use strict";
        var r = n(2),
            o = n(36).f,
            i = n(16),
            c = n(105),
            a = n(17),
            u = n(106),
            n = n(40),
            s = "".startsWith,
            l = Math.min,
            u = u("startsWith");
        r({
            target: "String",
            proto: !0,
            forced: !!(n || u || (!(o = o(String.prototype, "startsWith")) || o.writable)) && !u
        }, {
            startsWith: function(t) {
                var e = String(a(this));
                c(t);
                var n = i(l(1 < arguments.length ? arguments[1] : void 0, e.length)),
                    t = String(t);
                return s ? s.call(e, t, n) : e.slice(n, n + t.length) === t
            }
        })
    }, function(t, e, n) {
        "use strict";
        var r = n(135),
            n = n(137);
        t.exports = r("Set", function(t) {
            return function() {
                return t(this, arguments.length ? arguments[0] : void 0)
            }
        }, n)
    }, function(t, e, n) {
        var r, o = n(7),
            i = n(93),
            c = n(53),
            a = n(18),
            n = n(3),
            u = n("iterator"),
            s = n("toStringTag"),
            l = c.values;
        for (r in i) {
            var f = o[r],
                p = f && f.prototype;
            if (p) {
                if (p[u] !== l) try {
                    a(p, u, l)
                } catch (t) {
                    p[u] = l
                }
                if (p[s] || a(p, s, r), i[r])
                    for (var d in c)
                        if (p[d] !== c[d]) try {
                            a(p, d, c[d])
                        } catch (t) {
                            p[d] = c[d]
                        }
            }
        }
    }, function(t, e, n) {
        "use strict";
        var r = {}.propertyIsEnumerable,
            o = Object.getOwnPropertyDescriptor,
            i = o && !r.call({
                1: 2
            }, 1);
        e.f = i ? function(t) {
            t = o(this, t);
            return !!t && t.enumerable
        } : r
    }, function(t, e, n) {
        var r = n(13),
            o = n(1),
            i = n(82);
        t.exports = !r && !o(function() {
            return 7 != Object.defineProperty(i("div"), "a", {
                get: function() {
                    return 7
                }
            }).a
        })
    }, function(t, e, n) {
        var r = n(7),
            n = n(11),
            o = r.document,
            i = n(o) && n(o.createElement);
        t.exports = function(t) {
            return i ? o.createElement(t) : {}
        }
    }, function(t, e, n) {
        var n = n(56),
            r = Function.toString;
        "function" != typeof n.inspectSource && (n.inspectSource = function(t) {
            return r.call(t)
        }), t.exports = n.inspectSource
    }, function(t, e, n) {
        var r = n(40),
            o = n(56);
        (t.exports = function(t, e) {
            return o[t] || (o[t] = void 0 !== e ? e : {})
        })("versions", []).push({
            version: "3.9.0",
            mode: r ? "pure" : "global",
            copyright: "© 2021 Denis Pushkarev (zloirock.ru)"
        })
    }, function(t, e, n) {
        var c = n(14),
            a = n(28),
            u = n(86).indexOf,
            s = n(41);
        t.exports = function(t, e) {
            var n, r = a(t),
                o = 0,
                i = [];
            for (n in r) !c(s, n) && c(r, n) && i.push(n);
            for (; e.length > o;) c(r, n = e[o++]) && (~u(i, n) || i.push(n));
            return i
        }
    }, function(t, e, n) {
        var u = n(28),
            s = n(16),
            l = n(87),
            n = function(a) {
                return function(t, e, n) {
                    var r, o = u(t),
                        i = s(o.length),
                        c = l(n, i);
                    if (a && e != e) {
                        for (; c < i;)
                            if ((r = o[c++]) != r) return !0
                    } else
                        for (; c < i; c++)
                            if ((a || c in o) && o[c] === e) return a || c || 0;
                    return !a && -1
                }
            };
        t.exports = {
            includes: n(!0),
            indexOf: n(!1)
        }
    }, function(t, e, n) {
        var r = n(43),
            o = Math.max,
            i = Math.min;
        t.exports = function(t, e) {
            t = r(t);
            return t < 0 ? o(t + e, 0) : i(t, e)
        }
    }, function(t, e) {
        e.f = Object.getOwnPropertySymbols
    }, function(t, e) {
        t.exports = function(t) {
            if ("function" != typeof t) throw TypeError(String(t) + " is not a function");
            return t
        }
    }, function(t, e, n) {
        var r = n(11),
            o = n(61),
            i = n(3)("species");
        t.exports = function(t, e) {
            var n;
            return new(void 0 === (n = o(t) && ("function" == typeof(n = t.constructor) && (n === Array || o(n.prototype)) || r(n) && null === (n = n[i])) ? void 0 : n) ? Array : n)(0 === e ? 0 : e)
        }
    }, function(t, e, n) {
        n = n(1);
        t.exports = !!Object.getOwnPropertySymbols && !n(function() {
            return !String(Symbol())
        })
    }, function(t, e, n) {
        n = n(1);
        t.exports = !n(function() {
            function t() {}
            return t.prototype.constructor = null, Object.getPrototypeOf(new t) !== t.prototype
        })
    }, function(t, e) {
        t.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
        }
    }, function(t, e, n) {
        "use strict";
        var r = n(1);
        t.exports = function(t, e) {
            var n = [][t];
            return !!n && r(function() {
                n.call(null, e || function() {
                    throw 1
                }, 1)
            })
        }
    }, function(t, e, n) {
        var r, o, i = n(7),
            n = n(123),
            i = i.process,
            i = i && i.versions,
            i = i && i.v8;
        i ? o = (r = i.split("."))[0] + r[1] : n && (!(r = n.match(/Edge\/(\d+)/)) || 74 <= r[1]) && (r = n.match(/Chrome\/(\d+)/)) && (o = r[1]), t.exports = o && +o
    }, function(t, e, n) {
        var r = n(9);
        t.exports = function(t) {
            var e = t.return;
            if (void 0 !== e) return r(e.call(t)).value
        }
    }, function(t, e, n) {
        var r = n(3),
            o = n(32),
            i = r("iterator"),
            c = Array.prototype;
        t.exports = function(t) {
            return void 0 !== t && (o.Array === t || c[i] === t)
        }
    }, function(t, e, n) {
        var r = n(99),
            o = n(32),
            i = n(3)("iterator");
        t.exports = function(t) {
            if (null != t) return t[i] || t["@@iterator"] || o[r(t)]
        }
    }, function(t, e, n) {
        var r = n(67),
            o = n(29),
            i = n(3)("toStringTag"),
            c = "Arguments" == o(function() {
                return arguments
            }());
        t.exports = r ? o : function(t) {
            var e;
            return void 0 === t ? "Undefined" : null === t ? "Null" : "string" == typeof(t = function(t, e) {
                try {
                    return t[e]
                } catch (t) {}
            }(e = Object(t), i)) ? t : c ? o(e) : "Object" == (t = o(e)) && "function" == typeof e.callee ? "Arguments" : t
        }
    }, function(t, e, n) {
        var o = n(3)("iterator"),
            i = !1;
        try {
            var r = 0,
                c = {
                    next: function() {
                        return {
                            done: !!r++
                        }
                    },
                    return: function() {
                        i = !0
                    }
                };
            c[o] = function() {
                return this
            }, Array.from(c, function() {
                throw 2
            })
        } catch (t) {}
        t.exports = function(t, e) {
            if (!e && !i) return !1;
            var n = !1;
            try {
                var r = {};
                r[o] = function() {
                    return {
                        next: function() {
                            return {
                                done: n = !0
                            }
                        }
                    }
                }, t(r)
            } catch (t) {}
            return n
        }
    }, function(t, e, n) {
        "use strict";
        n = n(1);

        function r(t, e) {
            return RegExp(t, e)
        }
        e.UNSUPPORTED_Y = n(function() {
            var t = r("a", "y");
            return t.lastIndex = 2, null != t.exec("abcd")
        }), e.BROKEN_CARET = n(function() {
            var t = r("^r", "gy");
            return t.lastIndex = 2, null != t.exec("str")
        })
    }, function(t, e, n) {
        "use strict";
        var r = n(42),
            o = n(12),
            i = n(3),
            c = n(13),
            a = i("species");
        t.exports = function(t) {
            var e = r(t),
                t = o.f;
            c && e && !e[a] && t(e, a, {
                configurable: !0,
                get: function() {
                    return this
                }
            })
        }
    }, function(t, e, n) {
        var c = n(43),
            a = n(17),
            n = function(i) {
                return function(t, e) {
                    var n, r = String(a(t)),
                        o = c(e),
                        t = r.length;
                    return o < 0 || t <= o ? i ? "" : void 0 : (e = r.charCodeAt(o)) < 55296 || 56319 < e || o + 1 === t || (n = r.charCodeAt(o + 1)) < 56320 || 57343 < n ? i ? r.charAt(o) : e : i ? r.slice(o, o + 2) : n - 56320 + (e - 55296 << 10) + 65536
                }
            };
        t.exports = {
            codeAt: n(!1),
            charAt: n(!0)
        }
    }, function(t, e, n) {
        "use strict";
        var r, o = n(1),
            i = n(64),
            c = n(18),
            a = n(14),
            u = n(3),
            s = n(40),
            l = u("iterator"),
            n = !1;
        [].keys && ("next" in (u = [].keys()) ? (u = i(i(u))) !== Object.prototype && (r = u) : n = !0);
        o = null == r || o(function() {
            var t = {};
            return r[l].call(t) !== t
        });
        o && (r = {}), s && !o || a(r, l) || c(r, l, function() {
            return this
        }), t.exports = {
            IteratorPrototype: r,
            BUGGY_SAFARI_ITERATORS: n
        }
    }, function(t, e, n) {
        var r = n(70);
        t.exports = function(t) {
            if (r(t)) throw TypeError("The method doesn't accept regular expressions");
            return t
        }
    }, function(t, e, n) {
        var r = n(3)("match");
        t.exports = function(e) {
            var n = /./;
            try {
                "/./" [e](n)
            } catch (t) {
                try {
                    return n[r] = !1, "/./" [e](n)
                } catch (t) {}
            }
            return !1
        }
    }, function(t, e, n) {
        "use strict";
        var r = n(2),
            o = n(86).includes,
            n = n(62);
        r({
            target: "Array",
            proto: !0
        }, {
            includes: function(t) {
                return o(this, t, 1 < arguments.length ? arguments[1] : void 0)
            }
        }), n("includes")
    }, function(t, e, n) {
        function r(t) {
            a(t, l, {
                value: {
                    objectID: "O" + ++f,
                    weakData: {}
                }
            })
        }
        var o = n(41),
            i = n(11),
            c = n(14),
            a = n(12).f,
            u = n(58),
            s = n(136),
            l = u("meta"),
            f = 0,
            p = Object.isExtensible || function() {
                return !0
            },
            d = t.exports = {
                REQUIRED: !1,
                fastKey: function(t, e) {
                    if (!i(t)) return "symbol" == typeof t ? t : ("string" == typeof t ? "S" : "P") + t;
                    if (!c(t, l)) {
                        if (!p(t)) return "F";
                        if (!e) return "E";
                        r(t)
                    }
                    return t[l].objectID
                },
                getWeakData: function(t, e) {
                    if (!c(t, l)) {
                        if (!p(t)) return !0;
                        if (!e) return !1;
                        r(t)
                    }
                    return t[l].weakData
                },
                onFreeze: function(t) {
                    return s && d.REQUIRED && p(t) && !c(t, l) && r(t), t
                }
            };
        o[l] = !0
    }, function(t, e, n) {
        function g(t, e) {
            this.stopped = t, this.result = e
        }
        var v = n(9),
            m = n(97),
            b = n(16),
            _ = n(46),
            w = n(98),
            O = n(96);
        t.exports = function(t, e, n) {
            function r(t) {
                return i && O(i), new g(!0, t)
            }

            function o(t) {
                return p ? (v(t), h ? y(t[0], t[1], r) : y(t[0], t[1])) : h ? y(t, r) : y(t)
            }
            var i, c, a, u, s, l, f = n && n.that,
                p = !(!n || !n.AS_ENTRIES),
                d = !(!n || !n.IS_ITERATOR),
                h = !(!n || !n.INTERRUPTED),
                y = _(e, f, 1 + p + h);
            if (d) i = t;
            else {
                if ("function" != typeof(d = w(t))) throw TypeError("Target is not iterable");
                if (m(d)) {
                    for (c = 0, a = b(t.length); c < a; c++)
                        if ((u = o(t[c])) && u instanceof g) return u;
                    return new g(!1)
                }
                i = d.call(t)
            }
            for (s = i.next; !(l = s.call(i)).done;) {
                try {
                    u = o(l.value)
                } catch (t) {
                    throw O(i), t
                }
                if ("object" == typeof u && u && u instanceof g) return u
            }
            return new g(!1)
        }
    }, function(t, e) {
        t.exports = function(t, e, n) {
            if (!(t instanceof e)) throw TypeError("Incorrect " + (n ? n + " " : "") + "invocation");
            return t
        }
    }, function(t, e, n) {
        "use strict";
        var r = n(2),
            o = n(105),
            i = n(17);
        r({
            target: "String",
            proto: !0,
            forced: !n(106)("includes")
        }, {
            includes: function(t) {
                return !!~String(i(this)).indexOf(o(t), 1 < arguments.length ? arguments[1] : void 0)
            }
        })
    }, function(t, e, n) {
        "use strict";
        var r = n(2),
            o = n(38),
            i = n(28),
            n = n(94),
            c = [].join,
            o = o != Object,
            n = n("join", ",");
        r({
            target: "Array",
            proto: !0,
            forced: o || !n
        }, {
            join: function(t) {
                return c.call(i(this), void 0 === t ? "," : t)
            }
        })
    }, function(t, e) {
        var n = function() {
            return this
        }();
        try {
            n = n || new Function("return this")()
        } catch (t) {
            "object" == typeof window && (n = window)
        }
        t.exports = n
    }, function(t, e, n) {
        var r = n(7),
            n = n(83),
            r = r.WeakMap;
        t.exports = "function" == typeof r && /native code/.test(n(r))
    }, function(t, e, n) {
        var a = n(14),
            u = n(116),
            s = n(36),
            l = n(12);
        t.exports = function(t, e) {
            for (var n = u(e), r = l.f, o = s.f, i = 0; i < n.length; i++) {
                var c = n[i];
                a(t, c) || r(t, c, o(e, c))
            }
        }
    }, function(t, e, n) {
        var r = n(42),
            o = n(59),
            i = n(88),
            c = n(9);
        t.exports = r("Reflect", "ownKeys") || function(t) {
            var e = o.f(c(t)),
                n = i.f;
            return n ? e.concat(n(t)) : e
        }
    }, function(t, e, n) {
        n = n(7);
        t.exports = n
    }, function(t, e, n) {
        n = n(91);
        t.exports = n && !Symbol.sham && "symbol" == typeof Symbol.iterator
    }, function(t, e, n) {
        var r = n(13),
            c = n(12),
            a = n(9),
            u = n(63);
        t.exports = r ? Object.defineProperties : function(t, e) {
            a(t);
            for (var n, r = u(e), o = r.length, i = 0; i < o;) c.f(t, n = r[i++], e[n]);
            return t
        }
    }, function(t, e, n) {
        n = n(42);
        t.exports = n("document", "documentElement")
    }, function(t, e, n) {
        var r = n(11);
        t.exports = function(t) {
            if (!r(t) && null !== t) throw TypeError("Can't set " + String(t) + " as a prototype");
            return t
        }
    }, function(t, e, n) {
        "use strict";
        var r = n(45).forEach,
            n = n(94)("forEach");
        t.exports = n ? [].forEach : function(t) {
            return r(this, t, 1 < arguments.length ? arguments[1] : void 0)
        }
    }, function(t, e, n) {
        n = n(42);
        t.exports = n("navigator", "userAgent") || ""
    }, function(t, e, n) {
        var r = n(2),
            o = n(125);
        r({
            target: "Array",
            stat: !0,
            forced: !n(100)(function(t) {
                Array.from(t)
            })
        }, {
            from: o
        })
    }, function(t, e, n) {
        "use strict";
        var d = n(46),
            h = n(23),
            y = n(126),
            g = n(97),
            v = n(16),
            m = n(66),
            b = n(98);
        t.exports = function(t) {
            var e, n, r, o, i, c, a = h(t),
                u = "function" == typeof this ? this : Array,
                s = arguments.length,
                l = 1 < s ? arguments[1] : void 0,
                f = void 0 !== l,
                t = b(a),
                p = 0;
            if (f && (l = d(l, 2 < s ? arguments[2] : void 0, 2)), null == t || u == Array && g(t))
                for (n = new u(e = v(a.length)); p < e; p++) c = f ? l(a[p], p) : a[p], m(n, p, c);
            else
                for (i = (o = t.call(a)).next, n = new u; !(r = i.call(o)).done; p++) c = f ? y(o, l, [r.value, p], !0) : r.value, m(n, p, c);
            return n.length = p, n
        }
    }, function(t, e, n) {
        var o = n(9),
            i = n(96);
        t.exports = function(e, t, n, r) {
            try {
                return r ? t(o(n)[0], n[1]) : t(n)
            } catch (t) {
                throw i(e), t
            }
        }
    }, function(t, e, n) {
        var r = n(7),
            o = n(49).trim,
            n = n(50),
            i = r.parseFloat,
            n = 1 / i(n + "-0") != -1 / 0;
        t.exports = n ? function(t) {
            var e = o(String(t)),
                t = i(e);
            return 0 === t && "-" == e.charAt(0) ? -0 : t
        } : i
    }, function(t, e, n) {
        "use strict";
        var r = n(67),
            o = n(99);
        t.exports = r ? {}.toString : function() {
            return "[object " + o(this) + "]"
        }
    }, function(t, e, n) {
        "use strict";

        function r() {
            return this
        }
        var o = n(104).IteratorPrototype,
            i = n(47),
            c = n(37),
            a = n(73),
            u = n(32);
        t.exports = function(t, e, n) {
            e += " Iterator";
            return t.prototype = i(o, {
                next: c(1, n)
            }), a(t, e, !1, !0), u[e] = r, t
        }
    }, function(t, e, n) {
        var r = n(9),
            o = n(89),
            i = n(3)("species");
        t.exports = function(t, e) {
            var n, t = r(t).constructor;
            return void 0 === t || null == (n = r(t)[i]) ? e : o(n)
        }
    }, function(t, e, n) {
        var r = n(1),
            o = n(50);
        t.exports = function(t) {
            return r(function() {
                return !!o[t]() || "​…᠎" != "​…᠎" [t]() || o[t].name !== t
            })
        }
    }, function(t, e, n) {
        var r = n(23),
            p = Math.floor,
            o = "".replace,
            d = /\$([$&'`]|\d\d?|<[^>]*>)/g,
            h = /\$([$&'`]|\d\d?)/g;
        t.exports = function(i, c, a, u, s, t) {
            var l = a + i.length,
                f = u.length,
                e = h;
            return void 0 !== s && (s = r(s), e = d), o.call(t, e, function(t, e) {
                var n;
                switch (e.charAt(0)) {
                    case "$":
                        return "$";
                    case "&":
                        return i;
                    case "`":
                        return c.slice(0, a);
                    case "'":
                        return c.slice(l);
                    case "<":
                        n = s[e.slice(1, -1)];
                        break;
                    default:
                        var r = +e;
                        if (0 == r) return t;
                        if (f < r) {
                            var o = p(r / 10);
                            return 0 === o ? t : o <= f ? void 0 === u[o - 1] ? e.charAt(1) : u[o - 1] + e.charAt(1) : t
                        }
                        n = u[r - 1]
                }
                return void 0 === n ? "" : n
            })
        }
    }, function(t, e, n) {
        var r = n(2),
            n = n(134);
        r({
            target: "Object",
            stat: !0,
            forced: Object.assign !== n
        }, {
            assign: n
        })
    }, function(t, e, n) {
        "use strict";
        var p = n(13),
            r = n(1),
            d = n(63),
            h = n(88),
            y = n(80),
            g = n(23),
            v = n(38),
            o = Object.assign,
            i = Object.defineProperty;
        t.exports = !o || r(function() {
            if (p && 1 !== o({
                    b: 1
                }, o(i({}, "a", {
                    enumerable: !0,
                    get: function() {
                        i(this, "b", {
                            value: 3,
                            enumerable: !1
                        })
                    }
                }), {
                    b: 2
                })).b) return !0;
            var t = {},
                e = {},
                n = Symbol(),
                r = "abcdefghijklmnopqrst";
            return t[n] = 7, r.split("").forEach(function(t) {
                e[t] = t
            }), 7 != o({}, t)[n] || d(o({}, e)).join("") != r
        }) ? function(t, e) {
            for (var n = g(t), r = arguments.length, o = 1, i = h.f, c = y.f; o < r;)
                for (var a, u = v(arguments[o++]), s = i ? d(u).concat(i(u)) : d(u), l = s.length, f = 0; f < l;) a = s[f++], p && !c.call(u, a) || (n[a] = u[a]);
            return n
        } : o
    }, function(t, e, n) {
        "use strict";
        var g = n(2),
            v = n(7),
            m = n(44),
            b = n(19),
            _ = n(108),
            w = n(109),
            O = n(110),
            E = n(11),
            j = n(1),
            k = n(100),
            S = n(73),
            x = n(68);
        t.exports = function(n, t, e) {
            function r(t) {
                var n = d[t];
                b(d, t, "add" == t ? function(t) {
                    return n.call(this, 0 === t ? 0 : t), this
                } : "delete" == t ? function(t) {
                    return !(l && !E(t)) && n.call(this, 0 === t ? 0 : t)
                } : "get" == t ? function(t) {
                    return l && !E(t) ? void 0 : n.call(this, 0 === t ? 0 : t)
                } : "has" == t ? function(t) {
                    return !(l && !E(t)) && n.call(this, 0 === t ? 0 : t)
                } : function(t, e) {
                    return n.call(this, 0 === t ? 0 : t, e), this
                })
            }
            var o, i, c, a, u, s = -1 !== n.indexOf("Map"),
                l = -1 !== n.indexOf("Weak"),
                f = s ? "set" : "add",
                p = v[n],
                d = p && p.prototype,
                h = p,
                y = {};
            return m(n, "function" != typeof p || !(l || d.forEach && !j(function() {
                (new p).entries().next()
            }))) ? (h = e.getConstructor(t, n, s, f), _.REQUIRED = !0) : m(n, !0) && (i = (o = new h)[f](l ? {} : -0, 1) != o, c = j(function() {
                o.has(1)
            }), a = k(function(t) {
                new p(t)
            }), u = !l && j(function() {
                for (var t = new p, e = 5; e--;) t[f](e, e);
                return !t.has(-0)
            }), a || (((h = t(function(t, e) {
                O(t, h, n);
                t = x(new p, t, h);
                return null != e && w(e, t[f], {
                    that: t,
                    AS_ENTRIES: s
                }), t
            })).prototype = d).constructor = h), (c || u) && (r("delete"), r("has"), s && r("get")), (u || i) && r(f), l && d.clear && delete d.clear), y[n] = h, g({
                global: !0,
                forced: h != p
            }, y), S(h, n), l || e.setStrong(h, n, s), h
        }
    }, function(t, e, n) {
        n = n(1);
        t.exports = !n(function() {
            return Object.isExtensible(Object.preventExtensions({}))
        })
    }, function(t, e, n) {
        "use strict";
        var s = n(12).f,
            l = n(47),
            f = n(138),
            p = n(46),
            d = n(110),
            h = n(109),
            c = n(72),
            a = n(102),
            y = n(13),
            g = n(108).fastKey,
            n = n(31),
            v = n.set,
            m = n.getterFor;
        t.exports = {
            getConstructor: function(t, n, r, o) {
                function i(t, e, n) {
                    var r, o = a(t),
                        i = u(t, e);
                    return i ? i.value = n : (o.last = i = {
                        index: r = g(e, !0),
                        key: e,
                        value: n,
                        previous: n = o.last,
                        next: void 0,
                        removed: !1
                    }, o.first || (o.first = i), n && (n.next = i), y ? o.size++ : t.size++, "F" !== r && (o.index[r] = i)), t
                }
                var c = t(function(t, e) {
                        d(t, c, n), v(t, {
                            type: n,
                            index: l(null),
                            first: void 0,
                            last: void 0,
                            size: 0
                        }), y || (t.size = 0), null != e && h(e, t[o], {
                            that: t,
                            AS_ENTRIES: r
                        })
                    }),
                    a = m(n),
                    u = function(t, e) {
                        var n, r = a(t),
                            t = g(e);
                        if ("F" !== t) return r.index[t];
                        for (n = r.first; n; n = n.next)
                            if (n.key == e) return n
                    };
                return f(c.prototype, {
                    clear: function() {
                        for (var t = a(this), e = t.index, n = t.first; n;) n.removed = !0, n.previous && (n.previous = n.previous.next = void 0), delete e[n.index], n = n.next;
                        t.first = t.last = void 0, y ? t.size = 0 : this.size = 0
                    },
                    delete: function(t) {
                        var e, n = a(this),
                            r = u(this, t);
                        return r && (e = r.next, t = r.previous, delete n.index[r.index], r.removed = !0, t && (t.next = e), e && (e.previous = t), n.first == r && (n.first = e), n.last == r && (n.last = t), y ? n.size-- : this.size--), !!r
                    },
                    forEach: function(t) {
                        for (var e, n = a(this), r = p(t, 1 < arguments.length ? arguments[1] : void 0, 3); e = e ? e.next : n.first;)
                            for (r(e.value, e.key, this); e && e.removed;) e = e.previous
                    },
                    has: function(t) {
                        return !!u(this, t)
                    }
                }), f(c.prototype, r ? {
                    get: function(t) {
                        t = u(this, t);
                        return t && t.value
                    },
                    set: function(t, e) {
                        return i(this, 0 === t ? 0 : t, e)
                    }
                } : {
                    add: function(t) {
                        return i(this, t = 0 === t ? 0 : t, t)
                    }
                }), y && s(c.prototype, "size", {
                    get: function() {
                        return a(this).size
                    }
                }), c
            },
            setStrong: function(t, e, n) {
                var r = e + " Iterator",
                    o = m(e),
                    i = m(r);
                c(t, e, function(t, e) {
                    v(this, {
                        type: r,
                        target: t,
                        state: o(t),
                        kind: e,
                        last: void 0
                    })
                }, function() {
                    for (var t = i(this), e = t.kind, n = t.last; n && n.removed;) n = n.previous;
                    return t.target && (t.last = n = n ? n.next : t.state.first) ? "keys" == e ? {
                        value: n.key,
                        done: !1
                    } : "values" == e ? {
                        value: n.value,
                        done: !1
                    } : {
                        value: [n.key, n.value],
                        done: !1
                    } : {
                        value: t.target = void 0,
                        done: !0
                    }
                }, n ? "entries" : "values", !n, !0), a(e)
            }
        }
    }, function(t, e, n) {
        var o = n(19);
        t.exports = function(t, e, n) {
            for (var r in e) o(t, r, e[r], n);
            return t
        }
    }, function(t, e, n) {
        var r = n(7),
            o = n(49).trim,
            n = n(50),
            i = r.parseInt,
            c = /^[+-]?0[Xx]/,
            n = 8 !== i(n + "08") || 22 !== i(n + "0x16");
        t.exports = n ? function(t, e) {
            t = o(String(t));
            return i(t, e >>> 0 || (c.test(t) ? 16 : 10))
        } : i
    }, function(t, e) {
        function o(t) {
            if (r[t]) return r[t].exports;
            var e = r[t] = {
                i: t,
                l: !1,
                exports: {}
            };
            return n[t].call(e.exports, e, e.exports, o), e.l = !0, e.exports
        }
        var n, r;
        r = {}, o.m = n = [function(t, e, n) {
            "use strict";

            function r(t) {
                var e;
                t.hasAttribute("autocompleted") || (t.setAttribute("autocompleted", ""), e = new window.CustomEvent("onautocomplete", {
                    bubbles: !0,
                    cancelable: !0,
                    detail: null
                }), t.dispatchEvent(e) || (t.value = ""))
            }

            function o(t) {
                t.hasAttribute("autocompleted") && (t.removeAttribute("autocompleted"), t.dispatchEvent(new window.CustomEvent("onautocomplete", {
                    bubbles: !0,
                    cancelable: !1,
                    detail: null
                })))
            }
            n.r(e), n(1), n(5), document.addEventListener("animationstart", function(t) {
                ("onautofillstart" === t.animationName ? r : o)(t.target)
            }, !0), document.addEventListener("input", function(t) {
                ("insertReplacementText" !== t.inputType && "data" in t ? o : r)(t.target)
            }, !0)
        }, function(t, e, n) {
            var r = n(2),
                n = n(3),
                n = (r(n = "string" == typeof(n = n.__esModule ? n.default : n) ? [
                    [t.i, n, ""]
                ] : n, {
                    insert: "head",
                    singleton: !1
                }), n.locals || {});
            t.exports = n
        }, function(t, e, o) {
            "use strict";
            var n, r, i = (r = {}, function(t) {
                    if (void 0 === r[t]) {
                        var e = document.querySelector(t);
                        if (window.HTMLIFrameElement && e instanceof window.HTMLIFrameElement) try {
                            e = e.contentDocument.head
                        } catch (t) {
                            e = null
                        }
                        r[t] = e
                    }
                    return r[t]
                }),
                s = [];

            function l(t) {
                for (var e = -1, n = 0; n < s.length; n++)
                    if (s[n].identifier === t) {
                        e = n;
                        break
                    }
                return e
            }

            function a(t, e) {
                for (var n = {}, r = [], o = 0; o < t.length; o++) {
                    var i = t[o],
                        c = e.base ? i[0] + e.base : i[0],
                        a = n[c] || 0,
                        u = "".concat(c, " ").concat(a);
                    n[c] = a + 1;
                    a = l(u), i = {
                        css: i[1],
                        media: i[2],
                        sourceMap: i[3]
                    }; - 1 !== a ? (s[a].references++, s[a].updater(i)) : s.push({
                        identifier: u,
                        updater: function(e, t) {
                            var n, r, o; {
                                var i;
                                o = t.singleton ? (i = h++, n = d = d || f(t), r = p.bind(null, n, i, !1), p.bind(null, n, i, !0)) : (n = f(t), r = function(t, e, n) {
                                    var r = n.css,
                                        o = n.media,
                                        n = n.sourceMap;
                                    if (o ? t.setAttribute("media", o) : t.removeAttribute("media"), n && btoa && (r += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(n)))), " */")), t.styleSheet) t.styleSheet.cssText = r;
                                    else {
                                        for (; t.firstChild;) t.removeChild(t.firstChild);
                                        t.appendChild(document.createTextNode(r))
                                    }
                                }.bind(null, n, t), function() {
                                    null !== n.parentNode && n.parentNode.removeChild(n)
                                })
                            }
                            return r(e),
                                function(t) {
                                    t ? t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap || r(e = t) : o()
                                }
                        }(i, e),
                        references: 1
                    }), r.push(u)
                }
                return r
            }

            function f(t) {
                var e, n = document.createElement("style"),
                    r = t.attributes || {};
                if (void 0 !== r.nonce || (e = o.nc) && (r.nonce = e), Object.keys(r).forEach(function(t) {
                        n.setAttribute(t, r[t])
                    }), "function" == typeof t.insert) t.insert(n);
                else {
                    t = i(t.insert || "head");
                    if (!t) throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
                    t.appendChild(n)
                }
                return n
            }
            var c, u = (c = [], function(t, e) {
                return c[t] = e, c.filter(Boolean).join("\n")
            });

            function p(t, e, n, r) {
                n = n ? "" : r.media ? "@media ".concat(r.media, " {").concat(r.css, "}") : r.css;
                t.styleSheet ? t.styleSheet.cssText = u(e, n) : (r = document.createTextNode(n), (n = t.childNodes)[e] && t.removeChild(n[e]), n.length ? t.insertBefore(r, n[e]) : t.appendChild(r))
            }
            var d = null,
                h = 0;
            t.exports = function(t, i) {
                (i = i || {}).singleton || "boolean" == typeof i.singleton || (i.singleton = n = void 0 === n ? Boolean(window && document && document.all && !window.atob) : n);
                var c = a(t = t || [], i);
                return function(t) {
                    if (t = t || [], "[object Array]" === Object.prototype.toString.call(t)) {
                        for (var e = 0; e < c.length; e++) {
                            var n = l(c[e]);
                            s[n].references--
                        }
                        for (var t = a(t, i), r = 0; r < c.length; r++) {
                            var o = l(c[r]);
                            0 === s[o].references && (s[o].updater(), s.splice(o, 1))
                        }
                        c = t
                    }
                }
            }
        }, function(t, e, n) {
            (e = n(4)(!1)).push([t.i, "INPUT:-webkit-autofill,SELECT:-webkit-autofill,TEXTAREA:-webkit-autofill{animation-name:onautofillstart}INPUT:not(:-webkit-autofill),SELECT:not(:-webkit-autofill),TEXTAREA:not(:-webkit-autofill){animation-name:onautofillcancel}@keyframes onautofillstart{from{}}@keyframes onautofillcancel{from{}}\n", ""]), t.exports = e
        }, function(t, e, n) {
            "use strict";
            t.exports = function(i) {
                var u = [];
                return u.toString = function() {
                    return this.map(function(o) {
                        var t = function() {
                            var t = o[1] || "",
                                e = o[3];
                            if (!e) return t;
                            if (i && "function" == typeof btoa) {
                                var n = (n = btoa(unescape(encodeURIComponent(JSON.stringify(e)))), r = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(n), "/*# ".concat(r, " */")),
                                    r = e.sources.map(function(t) {
                                        return "/*# sourceURL=".concat(e.sourceRoot || "").concat(t, " */")
                                    });
                                return [t].concat(r).concat([n]).join("\n")
                            }
                            return [t].join("\n")
                        }();
                        return o[2] ? "@media ".concat(o[2], " {").concat(t, "}") : t
                    }).join("")
                }, u.i = function(t, e, n) {
                    "string" == typeof t && (t = [
                        [null, t, ""]
                    ]);
                    var r = {};
                    if (n)
                        for (var o = 0; o < this.length; o++) {
                            var i = this[o][0];
                            null != i && (r[i] = !0)
                        }
                    for (var c = 0; c < t.length; c++) {
                        var a = [].concat(t[c]);
                        n && r[a[0]] || (e && (a[2] ? a[2] = "".concat(e, " and ").concat(a[2]) : a[2] = e), u.push(a))
                    }
                }, u
            }
        }, function(t, e) {
            ! function() {
                if ("undefined" != typeof window) try {
                    var t = new window.CustomEvent("test", {
                        cancelable: !0
                    });
                    if (t.preventDefault(), !0 !== t.defaultPrevented) throw new Error("Could not prevent default")
                } catch (t) {
                    function e(t, e) {
                        var n, r;
                        return (e = e || {}).bubbles = !!e.bubbles, e.cancelable = !!e.cancelable, (n = document.createEvent("CustomEvent")).initCustomEvent(t, e.bubbles, e.cancelable, e.detail), r = n.preventDefault, n.preventDefault = function() {
                            r.call(this);
                            try {
                                Object.defineProperty(this, "defaultPrevented", {
                                    get: function() {
                                        return !0
                                    }
                                })
                            } catch (t) {
                                this.defaultPrevented = !0
                            }
                        }, n
                    }
                    e.prototype = window.Event.prototype, window.CustomEvent = e
                }
            }()
        }], o.c = r, o.d = function(t, e, n) {
            o.o(t, e) || Object.defineProperty(t, e, {
                enumerable: !0,
                get: n
            })
        }, o.r = function(t) {
            "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
                value: "Module"
            }), Object.defineProperty(t, "__esModule", {
                value: !0
            })
        }, o.t = function(e, t) {
            if (1 & t && (e = o(e)), 8 & t) return e;
            if (4 & t && "object" == typeof e && e && e.__esModule) return e;
            var n = Object.create(null);
            if (o.r(n), Object.defineProperty(n, "default", {
                    enumerable: !0,
                    value: e
                }), 2 & t && "string" != typeof e)
                for (var r in e) o.d(n, r, function(t) {
                    return e[t]
                }.bind(null, r));
            return n
        }, o.n = function(t) {
            var e = t && t.__esModule ? function() {
                return t.default
            } : function() {
                return t
            };
            return o.d(e, "a", e), e
        }, o.o = function(t, e) {
            return Object.prototype.hasOwnProperty.call(t, e)
        }, o.p = "", o(o.s = 0)
    }, function(t, e, n) {
        var r = n(13),
            o = n(12).f,
            n = Function.prototype,
            i = n.toString,
            c = /^\s*function ([^ (]*)/;
        !r || "name" in n || o(n, "name", {
            configurable: !0,
            get: function() {
                try {
                    return i.call(this).match(c)[1]
                } catch (t) {
                    return ""
                }
            }
        })
    }, , function(t, e, n) {
        "use strict";
        n.r(e), n.d(e, "Alert", function() {
            return Ge
        }), n.d(e, "Button", function() {
            return te
        }), n.d(e, "Carousel", function() {
            return Fn
        }), n.d(e, "Collapse", function() {
            return Te
        }), n.d(e, "Dropdown", function() {
            return al
        }), n.d(e, "Input", function() {
            return es
        }), n.d(e, "Modal", function() {
            return Br
        }), n.d(e, "Popover", function() {
            return xc
        }), n.d(e, "Ripple", function() {
            return wl
        }), n.d(e, "ScrollSpy", function() {
            return ca
        }), n.d(e, "Tab", function() {
            return Ha
        }), n.d(e, "Toast", function() {
            return Bu
        }), n.d(e, "Tooltip", function() {
            return ru
        }), n.d(e, "Range", function() {
            return Tl
        });
        var c = {};
        n.r(c), n.d(c, "top", function() {
            return Ur
        }), n.d(c, "bottom", function() {
            return Wr
        }), n.d(c, "right", function() {
            return Fr
        }), n.d(c, "left", function() {
            return Qr
        }), n.d(c, "auto", function() {
            return zr
        }), n.d(c, "basePlacements", function() {
            return Kr
        }), n.d(c, "start", function() {
            return Yr
        }), n.d(c, "end", function() {
            return qr
        }), n.d(c, "clippingParents", function() {
            return Vr
        }), n.d(c, "viewport", function() {
            return Xr
        }), n.d(c, "popper", function() {
            return $r
        }), n.d(c, "reference", function() {
            return Gr
        }), n.d(c, "variationPlacements", function() {
            return Jr
        }), n.d(c, "placements", function() {
            return Zr
        }), n.d(c, "beforeRead", function() {
            return to
        }), n.d(c, "read", function() {
            return eo
        }), n.d(c, "afterRead", function() {
            return no
        }), n.d(c, "beforeMain", function() {
            return ro
        }), n.d(c, "main", function() {
            return oo
        }), n.d(c, "afterMain", function() {
            return io
        }), n.d(c, "beforeWrite", function() {
            return co
        }), n.d(c, "write", function() {
            return ao
        }), n.d(c, "afterWrite", function() {
            return uo
        }), n.d(c, "modifierPhases", function() {
            return so
        }), n.d(c, "applyStyles", function() {
            return go
        }), n.d(c, "arrow", function() {
            return Lo
        }), n.d(c, "computeStyles", function() {
            return No
        }), n.d(c, "eventListeners", function() {
            return Ho
        }), n.d(c, "flip", function() {
            return ti
        }), n.d(c, "hide", function() {
            return ri
        }), n.d(c, "offset", function() {
            return oi
        }), n.d(c, "popperOffsets", function() {
            return ii
        }), n.d(c, "preventOverflow", function() {
            return ci
        }), n.d(c, "popperGenerator", function() {
            return fi
        }), n.d(c, "detectOverflow", function() {
            return Zo
        }), n.d(c, "createPopperBase", function() {
            return pi
        }), n.d(c, "createPopper", function() {
            return di
        }), n.d(c, "createPopperLite", function() {
            return hi
        });

        function i(t) {
            var e = t.getAttribute("data-mdb-target");
            return e = !e || "#" === e ? (t = t.getAttribute("href")) && "#" !== t ? t.trim() : null : e
        }

        function a(i, c, a) {
            Object.keys(a).forEach(function(t) {
                var e, n, r = a[t],
                    o = c[t],
                    e = o && ((n = o)[0] || n).nodeType ? "element" : null == (e = o) ? "".concat(e) : {}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();
                if (!new RegExp(r).test(e)) throw new Error("".concat(i.toUpperCase(), ": ") + 'Option "'.concat(t, '" provided type "').concat(e, '" ') + 'but expected type "'.concat(r, '".'))
            })
        }

        function r() {
            var t = window.jQuery;
            return t && !document.body.hasAttribute("data-mdb-no-jquery") ? t : null
        }

        function u(t) {
            "loading" === document.readyState ? document.addEventListener("DOMContentLoaded", t) : t()
        }

        function s(t) {
            return document.createElement(t)
        }
        n(6), n(4), n(5), n(0), n(10), n(124), n(15), n(69), n(20), n(26), n(27), n(8), n(21), n(52), n(30), n(22), n(33), document.documentElement.dir;
        var o, l, f = (o = {}, l = 1, {
                set: function(t, e, n) {
                    void 0 === t[e] && (t[e] = {
                        key: e,
                        id: l
                    }, l++), o[t[e].id] = n
                },
                get: function(t, e) {
                    if (!t || void 0 === t[e]) return null;
                    t = t[e];
                    return t.key === e ? o[t.id] : null
                },
                delete: function(t, e) {
                    var n;
                    void 0 === t[e] || (n = t[e]).key === e && (delete o[n.id], delete t[e])
                }
            }),
            p = {
                setData: function(t, e, n) {
                    f.set(t, e, n)
                },
                getData: function(t, e) {
                    return f.get(t, e)
                },
                removeData: function(t, e) {
                    f.delete(t, e)
                }
            };
        n(34), n(35);

        function y(t, e) {
            return function(t) {
                if (Array.isArray(t)) return t
            }(t) || function(t, e) {
                if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(t))) return;
                var n = [],
                    r = !0,
                    o = !1,
                    i = void 0;
                try {
                    for (var c, a = t[Symbol.iterator](); !(r = (c = a.next()).done) && (n.push(c.value), !e || n.length !== e); r = !0);
                } catch (t) {
                    o = !0, i = t
                } finally {
                    try {
                        r || null == a.return || a.return()
                    } finally {
                        if (o) throw i
                    }
                }
                return n
            }(t, e) || function(t, e) {
                if (!t) return;
                if ("string" == typeof t) return d(t, e);
                var n = Object.prototype.toString.call(t).slice(8, -1);
                "Object" === n && t.constructor && (n = t.constructor.name);
                if ("Map" === n || "Set" === n) return Array.from(t);
                if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return d(t, e)
            }(t, e) || function() {
                throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
            }()
        }

        function d(t, e) {
            (null == e || e > t.length) && (e = t.length);
            for (var n = 0, r = new Array(e); n < e; n++) r[n] = t[n];
            return r
        }
        var h = r(),
            g = /[^.]*(?=\..*)\.|.*/,
            v = /\..*/,
            m = /::\d+$/,
            b = {},
            _ = 1,
            w = {
                mouseenter: "mouseover",
                mouseleave: "mouseout"
            },
            O = ["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 E(t, e) {
            return e && "".concat(e, "::").concat(_++) || t.uidEvent || _++
        }

        function j(t) {
            var e = E(t);
            return t.uidEvent = e, b[e] = b[e] || {}, b[e]
        }

        function k(t, e, n) {
            for (var r = 2 < arguments.length && void 0 !== n ? n : null, o = Object.keys(t), i = 0, c = o.length; i < c; i++) {
                var a = t[o[i]];
                if (a.originalHandler === e && a.delegationSelector === r) return a
            }
            return null
        }

        function S(t, e, n) {
            var r = "string" == typeof e,
                o = r ? n : e,
                n = t.replace(v, ""),
                e = w[n];
            return e && (n = e), [r, o, n = !(-1 < O.indexOf(n)) ? t : n]
        }

        function x(t, e, n, r, o) {
            var i, c, a, u, s, l, f, p, d, h;
            "string" == typeof e && t && (n || (n = r, r = null), i = (u = y(S(e, n, r), 3))[0], c = u[1], a = u[2], (s = k(u = (s = j(t))[a] || (s[a] = {}), c, i ? n : null)) ? s.oneOff = s.oneOff && o : (e = E(c, e.replace(g, "")), (r = i ? (p = t, d = n, h = r, function t(e) {
                for (var n = p.querySelectorAll(d), r = e.target; r && r !== this; r = r.parentNode)
                    for (var o = n.length; o--;)
                        if (n[o] === r) return e.delegateTarget = r, t.oneOff && T.off(p, e.type, h), h.apply(r, [e]);
                return null
            }) : (l = t, f = n, function t(e) {
                return e.delegateTarget = l, t.oneOff && T.off(l, e.type, f), f.apply(l, [e])
            })).delegationSelector = i ? n : null, r.originalHandler = c, r.oneOff = o, u[r.uidEvent = e] = r, t.addEventListener(a, r, i)))
        }

        function P(t, e, n, r, o) {
            r = k(e[n], r, o);
            r && (t.removeEventListener(n, r, Boolean(o)), delete e[n][r.uidEvent])
        }
        var T = {
                on: function(t, e, n, r) {
                    x(t, e, n, r, !1)
                },
                one: function(t, e, n, r) {
                    x(t, e, n, r, !0)
                },
                off: function(c, a, t, e) {
                    if ("string" == typeof a && c) {
                        var n = y(S(a, t, e), 3),
                            r = n[0],
                            e = n[1],
                            o = n[2],
                            i = o !== a,
                            u = j(c),
                            n = "." === a.charAt(0);
                        if (void 0 !== e) return u && u[o] ? void P(c, u, o, e, r ? t : null) : void 0;
                        n && Object.keys(u).forEach(function(t) {
                            var e, n, r, o, i;
                            e = c, n = u, r = t, o = a.slice(1), i = n[r] || {}, Object.keys(i).forEach(function(t) {
                                -1 < t.indexOf(o) && P(e, n, r, (t = i[t]).originalHandler, t.delegationSelector)
                            })
                        });
                        var s = u[o] || {};
                        Object.keys(s).forEach(function(t) {
                            var e = t.replace(m, "");
                            (!i || -1 < a.indexOf(e)) && P(c, u, o, (t = s[t]).originalHandler, t.delegationSelector)
                        })
                    }
                },
                trigger: function(t, e, n) {
                    if ("string" != typeof e || !t) return null;
                    var r, o = e.replace(v, ""),
                        i = e !== o,
                        c = -1 < O.indexOf(o),
                        a = !0,
                        u = !0,
                        s = !1,
                        l = null;
                    return i && h && (r = h.Event(e, n), h(t).trigger(r), a = !r.isPropagationStopped(), u = !r.isImmediatePropagationStopped(), s = r.isDefaultPrevented()), c ? (l = document.createEvent("HTMLEvents")).initEvent(o, a, !0) : l = new CustomEvent(e, {
                        bubbles: a,
                        cancelable: !0
                    }), void 0 !== n && Object.keys(n).forEach(function(t) {
                        Object.defineProperty(l, t, {
                            get: function() {
                                return n[t]
                            }
                        })
                    }), s && l.preventDefault(), u && t.dispatchEvent(l), l.defaultPrevented && void 0 !== r && r.preventDefault(), l
                }
            },
            D = T;
        n(24), n(133), n(77);

        function A(e, t) {
            var n, r = Object.keys(e);
            return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(e), t && (n = n.filter(function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            })), r.push.apply(r, n)), r
        }

        function C(r) {
            for (var t = 1; t < arguments.length; t++) {
                var o = null != arguments[t] ? arguments[t] : {};
                t % 2 ? A(Object(o), !0).forEach(function(t) {
                    var e, n;
                    e = r, t = o[n = t], n in e ? Object.defineProperty(e, n, {
                        value: t,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0
                    }) : e[n] = t
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : A(Object(o)).forEach(function(t) {
                    Object.defineProperty(r, t, Object.getOwnPropertyDescriptor(o, t))
                })
            }
            return r
        }

        function L(t) {
            return "true" === t || "false" !== t && (t === Number(t).toString() ? Number(t) : "" === t || "null" === t ? null : t)
        }

        function R(t) {
            return t.replace(/[A-Z]/g, function(t) {
                return "-".concat(t.toLowerCase())
            })
        }
        var I = {
            setDataAttribute: function(t, e, n) {
                t.setAttribute("data-mdb-".concat(R(e)), n)
            },
            removeDataAttribute: function(t, e) {
                t.removeAttribute("data-mdb-".concat(R(e)))
            },
            getDataAttributes: function(t) {
                if (!t) return {};
                var n = C({}, t.dataset);
                return Object.keys(n).filter(function(t) {
                    return t.startsWith("mdb")
                }).forEach(function(t) {
                    var e = (e = t.replace(/^mdb/, "")).charAt(0).toLowerCase() + e.slice(1, e.length);
                    n[e] = L(n[t])
                }), n
            },
            getDataAttribute: function(t, e) {
                return L(t.getAttribute("data-mdb-".concat(R(e))))
            },
            offset: function(t) {
                t = t.getBoundingClientRect();
                return {
                    top: t.top + document.body.scrollTop,
                    left: t.left + document.body.scrollLeft
                }
            },
            position: function(t) {
                return {
                    top: t.offsetTop,
                    left: t.offsetLeft
                }
            },
            style: function(t, e) {
                Object.assign(t.style, e)
            },
            toggleClass: function(t, e) {
                t && (t.classList.contains(e) ? t.classList.remove(e) : t.classList.add(e))
            },
            addClass: function(t, e) {
                t.classList.contains(e) || t.classList.add(e)
            },
            addStyle: function(e, n) {
                Object.keys(n).forEach(function(t) {
                    e.style[t] = n[t]
                })
            },
            removeClass: function(t, e) {
                t.classList.contains(e) && t.classList.remove(e)
            },
            hasClass: function(t, e) {
                return t.classList.contains(e)
            }
        };

        function N(t) {
            return function(t) {
                if (Array.isArray(t)) return M(t)
            }(t) || function(t) {
                if ("undefined" != typeof Symbol && Symbol.iterator in Object(t)) return Array.from(t)
            }(t) || function(t, e) {
                if (!t) return;
                if ("string" == typeof t) return M(t, e);
                var n = Object.prototype.toString.call(t).slice(8, -1);
                "Object" === n && t.constructor && (n = t.constructor.name);
                if ("Map" === n || "Set" === n) return Array.from(t);
                if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return M(t, e)
            }(t) || function() {
                throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
            }()
        }

        function M(t, e) {
            (null == e || e > t.length) && (e = t.length);
            for (var n = 0, r = new Array(e); n < e; n++) r[n] = t[n];
            return r
        }

        function H(t) {
            for (; t += Math.floor(1e6 * Math.random()), document.getElementById(t););
            return t
        }

        function B(t) {
            var e = t.getAttribute("data-mdb-target");
            return e = !e || "#" === e ? (t = t.getAttribute("href")) && "#" !== t ? t.trim() : null : e
        }

        function U(t) {
            return (t = B(t)) ? document.querySelector(t) : null
        }

        function W(t) {
            if (!t) return 0;
            var e = (r = window.getComputedStyle(t)).transitionDuration,
                n = r.transitionDelay,
                t = Number.parseFloat(e),
                r = Number.parseFloat(n);
            return t || r ? (e = e.split(",")[0], n = n.split(",")[0], 1e3 * (Number.parseFloat(e) + Number.parseFloat(n))) : 0
        }

        function F(t) {
            t.dispatchEvent(new Event(tt))
        }

        function Q(t) {
            return (t[0] || t).nodeType
        }

        function z(e, t) {
            var n = !1,
                t = t + 5;
            e.addEventListener(tt, function t() {
                n = !0, e.removeEventListener(tt, t)
            }), setTimeout(function() {
                n || F(e)
            }, t)
        }

        function K(o, i, c) {
            Object.keys(c).forEach(function(t) {
                var e, n = c[t],
                    r = i[t],
                    e = r && Q(r) ? "element" : null == (e = r) ? "".concat(e) : {}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();
                if (!new RegExp(n).test(e)) throw new Error("".concat(o.toUpperCase(), ": ") + 'Option "'.concat(t, '" provided type "').concat(e, '" ') + 'but expected type "'.concat(n, '".'))
            })
        }

        function Y(t) {
            if (!t) return !1;
            if (t.style && t.parentNode && t.parentNode.style) {
                var e = getComputedStyle(t),
                    t = getComputedStyle(t.parentNode);
                return "none" !== e.display && "none" !== t.display && "hidden" !== e.visibility
            }
            return !1
        }

        function q(t) {
            return document.documentElement.attachShadow ? "function" != typeof t.getRootNode ? t instanceof ShadowRoot ? t : t.parentNode ? q(t.parentNode) : null : (t = t.getRootNode()) instanceof ShadowRoot ? t : null : null
        }

        function V() {
            return function() {}
        }

        function X(t) {
            return t.offsetHeight
        }

        function $() {
            var t = window.jQuery;
            return t && !document.body.hasAttribute("data-mdb-no-jquery") ? t : null
        }
        var G, J, Z = {
                closest: function(t, e) {
                    return t.closest(e)
                },
                matches: function(t, e) {
                    return t.matches(e)
                },
                find: function(t) {
                    var e, n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : document.documentElement;
                    return (e = []).concat.apply(e, N(Element.prototype.querySelectorAll.call(n, t)))
                },
                findOne: function(t) {
                    var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : document.documentElement;
                    return Element.prototype.querySelector.call(e, t)
                },
                children: function(t, e) {
                    var n;
                    return (n = []).concat.apply(n, N(t.children)).filter(function(t) {
                        return t.matches(e)
                    })
                },
                parents: function(t, e) {
                    for (var n = [], r = t.parentNode; r && r.nodeType === Node.ELEMENT_NODE && 3 !== r.nodeType;) this.matches(r, e) && n.push(r), r = r.parentNode;
                    return n
                },
                prev: function(t, e) {
                    for (var n = t.previousElementSibling; n;) {
                        if (n.matches(e)) return [n];
                        n = n.previousElementSibling
                    }
                    return []
                },
                next: function(t, e) {
                    for (var n = t.nextElementSibling; n;) {
                        if (this.matches(n, e)) return [n];
                        n = n.nextElementSibling
                    }
                    return []
                }
            },
            tt = "transitionend",
            et = function(t) {
                t = B(t);
                return t && document.querySelector(t) ? t : null
            },
            nt = "rtl" === document.documentElement.dir,
            rt = function(n, r) {
                var t;
                t = function() {
                    var t, e = $();
                    e && (t = e.fn[n], e.fn[n] = r.jQueryInterface, e.fn[n].Constructor = r, e.fn[n].noConflict = function() {
                        return e.fn[n] = t, r.jQueryInterface
                    })
                }, "loading" === document.readyState ? document.addEventListener("DOMContentLoaded", t) : t()
            },
            ot = (G = {}, J = 1, {
                set: function(t, e, n) {
                    void 0 === t.bsKey && (t.bsKey = {
                        key: e,
                        id: J
                    }, J++), G[t.bsKey.id] = n
                },
                get: function(t, e) {
                    if (!t || void 0 === t.bsKey) return null;
                    t = t.bsKey;
                    return t.key === e ? G[t.id] : null
                },
                delete: function(t, e) {
                    var n;
                    void 0 === t.bsKey || (n = t.bsKey).key === e && (delete G[n.id], delete t.bsKey)
                }
            }),
            it = {
                setData: function(t, e, n) {
                    ot.set(t, e, n)
                },
                getData: function(t, e) {
                    return ot.get(t, e)
                },
                removeData: function(t, e) {
                    ot.delete(t, e)
                }
            };
        n(107), n(53), n(78), n(111), n(79);

        function ct(t, e) {
            return function(t) {
                if (Array.isArray(t)) return t
            }(t) || function(t, e) {
                if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(t))) return;
                var n = [],
                    r = !0,
                    o = !1,
                    i = void 0;
                try {
                    for (var c, a = t[Symbol.iterator](); !(r = (c = a.next()).done) && (n.push(c.value), !e || n.length !== e); r = !0);
                } catch (t) {
                    o = !0, i = t
                } finally {
                    try {
                        r || null == a.return || a.return()
                    } finally {
                        if (o) throw i
                    }
                }
                return n
            }(t, e) || function(t, e) {
                if (!t) return;
                if ("string" == typeof t) return at(t, e);
                var n = Object.prototype.toString.call(t).slice(8, -1);
                "Object" === n && t.constructor && (n = t.constructor.name);
                if ("Map" === n || "Set" === n) return Array.from(t);
                if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return at(t, e)
            }(t, e) || function() {
                throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
            }()
        }

        function at(t, e) {
            (null == e || e > t.length) && (e = t.length);
            for (var n = 0, r = new Array(e); n < e; n++) r[n] = t[n];
            return r
        }
        var ut = /[^.]*(?=\..*)\.|.*/,
            st = /\..*/,
            lt = /::\d+$/,
            ft = {},
            pt = 1,
            dt = {
                mouseenter: "mouseover",
                mouseleave: "mouseout"
            },
            ht = 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 yt(t, e) {
            return e && "".concat(e, "::").concat(pt++) || t.uidEvent || pt++
        }

        function gt(t) {
            var e = yt(t);
            return t.uidEvent = e, ft[e] = ft[e] || {}, ft[e]
        }

        function vt(t, e, n) {
            for (var r = 2 < arguments.length && void 0 !== n ? n : null, o = Object.keys(t), i = 0, c = o.length; i < c; i++) {
                var a = t[o[i]];
                if (a.originalHandler === e && a.delegationSelector === r) return a
            }
            return null
        }

        function mt(t, e, n) {
            var r = "string" == typeof e,
                o = r ? n : e,
                n = t.replace(st, ""),
                e = dt[n];
            return e && (n = e), [r, o, n = !ht.has(n) ? t : n]
        }

        function bt(t, e, n, r, o) {
            var i, c, a, u, s, l, f, p, d, h;
            "string" == typeof e && t && (n || (n = r, r = null), i = (u = ct(mt(e, n, r), 3))[0], c = u[1], a = u[2], (s = vt(u = (s = gt(t))[a] || (s[a] = {}), c, i ? n : null)) ? s.oneOff = s.oneOff && o : (e = yt(c, e.replace(ut, "")), (r = i ? (p = t, d = n, h = r, function t(e) {
                for (var n = p.querySelectorAll(d), r = e.target; r && r !== this; r = r.parentNode)
                    for (var o = n.length; o--;)
                        if (n[o] === r) return e.delegateTarget = r, t.oneOff && wt.off(p, e.type, h), h.apply(r, [e]);
                return null
            }) : (l = t, f = n, function t(e) {
                return e.delegateTarget = l, t.oneOff && wt.off(l, e.type, f), f.apply(l, [e])
            })).delegationSelector = i ? n : null, r.originalHandler = c, r.oneOff = o, u[r.uidEvent = e] = r, t.addEventListener(a, r, i)))
        }

        function _t(t, e, n, r, o) {
            r = vt(e[n], r, o);
            r && (t.removeEventListener(n, r, Boolean(o)), delete e[n][r.uidEvent])
        }
        var wt = {
                on: function(t, e, n, r) {
                    bt(t, e, n, r, !1)
                },
                one: function(t, e, n, r) {
                    bt(t, e, n, r, !0)
                },
                off: function(c, a, t, e) {
                    if ("string" == typeof a && c) {
                        var n = ct(mt(a, t, e), 3),
                            r = n[0],
                            e = n[1],
                            o = n[2],
                            i = o !== a,
                            u = gt(c),
                            n = a.startsWith(".");
                        if (void 0 !== e) return u && u[o] ? void _t(c, u, o, e, r ? t : null) : void 0;
                        n && Object.keys(u).forEach(function(t) {
                            var e, n, r, o, i;
                            e = c, n = u, r = t, o = a.slice(1), i = n[r] || {}, Object.keys(i).forEach(function(t) {
                                t.includes(o) && _t(e, n, r, (t = i[t]).originalHandler, t.delegationSelector)
                            })
                        });
                        var s = u[o] || {};
                        Object.keys(s).forEach(function(t) {
                            var e = t.replace(lt, "");
                            i && !a.includes(e) || _t(c, u, o, (t = s[t]).originalHandler, t.delegationSelector)
                        })
                    }
                },
                trigger: function(t, e, n) {
                    if ("string" != typeof e || !t) return null;
                    var r, o = $(),
                        i = e.replace(st, ""),
                        c = e !== i,
                        a = ht.has(i),
                        u = !0,
                        s = !0,
                        l = !1,
                        f = null;
                    return c && o && (r = o.Event(e, n), o(t).trigger(r), u = !r.isPropagationStopped(), s = !r.isImmediatePropagationStopped(), l = r.isDefaultPrevented()), a ? (f = document.createEvent("HTMLEvents")).initEvent(i, u, !0) : f = new CustomEvent(e, {
                        bubbles: u,
                        cancelable: !0
                    }), void 0 !== n && Object.keys(n).forEach(function(t) {
                        Object.defineProperty(f, t, {
                            get: function() {
                                return n[t]
                            }
                        })
                    }), l && f.preventDefault(), s && t.dispatchEvent(f), f.defaultPrevented && void 0 !== r && r.preventDefault(), f
                }
            },
            Ot = wt;

        function Et(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }
        var jt = function() {
            function e(t) {
                ! function(t) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this), t && (this._element = t, it.setData(t, this.constructor.DATA_KEY, this))
            }
            var t, n, r;
            return t = e, r = [{
                key: "getInstance",
                value: function(t) {
                    return it.getData(t, this.DATA_KEY)
                }
            }, {
                key: "VERSION",
                get: function() {
                    return "5.0.0-beta2"
                }
            }], (n = [{
                key: "dispose",
                value: function() {
                    it.removeData(this._element, this.constructor.DATA_KEY), this._element = null
                }
            }]) && Et(t.prototype, n), r && Et(t, r), e
        }();

        function kt(t) {
            return (kt = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function St(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

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

        function Pt(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = Tt(n);
                return t = r ? (t = Tt(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== kt(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function Tt(t) {
            return (Tt = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var Dt = "bs.button",
            At = ".".concat(Dt),
            Ct = '[data-mdb-toggle="button"]',
            e = "click".concat(At).concat(".data-api"),
            Lt = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && xt(t, e)
                }(o, jt);
                var t, e, n, r = Pt(o);

                function o() {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), r.apply(this, arguments)
                }
                return t = o, n = [{
                    key: "DATA_KEY",
                    get: function() {
                        return Dt
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(e) {
                        return this.each(function() {
                            var t = (t = it.getData(this, Dt)) || new o(this);
                            "toggle" === e && t[e]()
                        })
                    }
                }], (e = [{
                    key: "toggle",
                    value: function() {
                        this._element.setAttribute("aria-pressed", this._element.classList.toggle("active"))
                    }
                }]) && St(t.prototype, e), n && St(t, n), o
            }();
        Ot.on(document, e, Ct, function(t) {
            t.preventDefault();
            t = t.target.closest(Ct);
            (it.getData(t, Dt) || new Lt(t)).toggle()
        }), rt("button", Lt);
        var Rt = Lt;

        function It(t) {
            return (It = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function Nt(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function Mt(t, e, n) {
            return (Mt = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = Wt(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function Bt(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = Wt(n);
                return t = r ? (t = Wt(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== It(t) && "function" != typeof t ? Ut(e) : t
            }
        }

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

        function Wt(t) {
            return (Wt = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var Ft = "button",
            Qt = "mdb.".concat(Ft),
            At = ".".concat(Qt),
            zt = "click".concat(At),
            Kt = "transitionend",
            Yt = "mouseenter",
            qt = "mouseleave",
            Vt = "hide".concat(At),
            Xt = "hidden".concat(At),
            $t = "show".concat(At),
            Gt = "shown".concat(At),
            Jt = "fixed-action-btn",
            Zt = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && Ht(t, e)
                }(o, Rt);
                var t, e, n, r = Bt(o);

                function o(t) {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (t = r.call(this, t))._fn = {}, t._element && (p.setData(t._element, Qt, Ut(t)), t._init()), t
                }
                return t = o, n = [{
                    key: "NAME",
                    get: function() {
                        return Ft
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(n, r) {
                        return this.each(function() {
                            var t = p.getData(this, Qt),
                                e = "object" === It(n) && n;
                            if ((t || !/dispose/.test(n)) && (t = t || new o(this), "string" == typeof n)) {
                                if (void 0 === t[n]) throw new TypeError('No method named "'.concat(n, '"'));
                                t[n](r)
                            }
                        })
                    }
                }], (e = [{
                    key: "_actionButton",
                    get: function() {
                        return Z.findOne(".fixed-action-btn:not(.smooth-scroll) > .btn-floating", this._element)
                    }
                }, {
                    key: "_buttonListElements",
                    get: function() {
                        return Z.find("ul .btn", this._element)
                    }
                }, {
                    key: "_buttonList",
                    get: function() {
                        return Z.findOne("ul", this._element)
                    }
                }, {
                    key: "_isTouchDevice",
                    get: function() {
                        return "ontouchstart" in document.documentElement
                    }
                }, {
                    key: "show",
                    value: function() {
                        I.hasClass(this._element, Jt) && (D.off(this._buttonList, Kt), D.trigger(this._element, $t), this._bindListOpenTransitionEnd(), I.addStyle(this._element, {
                            height: "".concat(this._fullContainerHeight, "px")
                        }), this._toggleVisibility(!0))
                    }
                }, {
                    key: "hide",
                    value: function() {
                        I.hasClass(this._element, Jt) && (D.off(this._buttonList, Kt), D.trigger(this._element, Vt), this._bindListHideTransitionEnd(), this._toggleVisibility(!1))
                    }
                }, {
                    key: "dispose",
                    value: function() {
                        I.hasClass(this._element, Jt) && (D.off(this._actionButton, zt), this._actionButton.removeEventListener(Yt, this._fn.mouseenter), this._element.removeEventListener(qt, this._fn.mouseleave)), Mt(Wt(o.prototype), "dispose", this).call(this)
                    }
                }, {
                    key: "_init",
                    value: function() {
                        I.hasClass(this._element, Jt) && (this._saveInitialHeights(), this._setInitialStyles(), this._bindInitialEvents())
                    }
                }, {
                    key: "_bindMouseEnter",
                    value: function() {
                        var t = this;
                        this._actionButton.addEventListener(Yt, this._fn.mouseenter = function() {
                            t._isTouchDevice || t.show()
                        })
                    }
                }, {
                    key: "_bindMouseLeave",
                    value: function() {
                        var t = this;
                        this._element.addEventListener(qt, this._fn.mouseleave = function() {
                            t.hide()
                        })
                    }
                }, {
                    key: "_bindClick",
                    value: function() {
                        var t = this;
                        D.on(this._actionButton, zt, function() {
                            I.hasClass(t._element, "active") ? t.hide() : t.show()
                        })
                    }
                }, {
                    key: "_bindListHideTransitionEnd",
                    value: function() {
                        var e = this;
                        D.on(this._buttonList, Kt, function(t) {
                            "transform" === t.propertyName && (D.off(e._buttonList, Kt), e._element.style.height = "".concat(e._initialContainerHeight, "px"), D.trigger(e._element, Xt))
                        })
                    }
                }, {
                    key: "_bindListOpenTransitionEnd",
                    value: function() {
                        var e = this;
                        D.on(this._buttonList, Kt, function(t) {
                            "transform" === t.propertyName && (D.off(e._buttonList, Kt), D.trigger(e._element, Gt))
                        })
                    }
                }, {
                    key: "_toggleVisibility",
                    value: function(t) {
                        var e = t ? "addClass" : "removeClass",
                            t = t ? "translate(0)" : "translateY(".concat(this._fullContainerHeight, "px)");
                        I.addStyle(this._buttonList, {
                            transform: t
                        }), this._buttonListElements && this._buttonListElements.forEach(function(t) {
                            return I[e](t, "shown")
                        }), I[e](this._element, "active")
                    }
                }, {
                    key: "_getHeight",
                    value: function(t) {
                        t = window.getComputedStyle(t);
                        return parseFloat(t.getPropertyValue("height"))
                    }
                }, {
                    key: "_saveInitialHeights",
                    value: function() {
                        this._initialContainerHeight = this._getHeight(this._element), this._initialListHeight = this._getHeight(this._buttonList), this._fullContainerHeight = this._initialContainerHeight + this._initialListHeight
                    }
                }, {
                    key: "_bindInitialEvents",
                    value: function() {
                        this._bindClick(), this._bindMouseEnter(), this._bindMouseLeave()
                    }
                }, {
                    key: "_setInitialStyles",
                    value: function() {
                        this._buttonList.style.marginBottom = "".concat(this._initialContainerHeight, "px"), this._buttonList.style.transform = "translateY(".concat(this._fullContainerHeight, "px)"), this._element.style.height = "".concat(this._initialContainerHeight, "px")
                    }
                }]) && Nt(t.prototype, e), n && Nt(t, n), o
            }();
        Z.find(".fixed-action-btn").forEach(function(t) {
            return Zt.getInstance(t) || new Zt(t)
        }), Z.find('[data-mdb-toggle="button"]').forEach(function(t) {
            return Zt.getInstance(t) || new Zt(t)
        }), u(function() {
            var t, e = r();
            e && (t = e.fn[Ft], e.fn[Ft] = Zt.jQueryInterface, e.fn[Ft].Constructor = Zt, e.fn[Ft].noConflict = function() {
                return e.fn[Ft] = t, Zt.jQueryInterface
            })
        });
        var te = Zt;

        function ee(t) {
            return "true" === t || "false" !== t && (t === Number(t).toString() ? Number(t) : "" === t || "null" === t ? null : t)
        }

        function ne(t) {
            return t.replace(/[A-Z]/g, function(t) {
                return "-".concat(t.toLowerCase())
            })
        }
        var re = {
            setDataAttribute: function(t, e, n) {
                t.setAttribute("data-mdb-".concat(ne(e)), n)
            },
            removeDataAttribute: function(t, e) {
                t.removeAttribute("data-mdb-".concat(ne(e)))
            },
            getDataAttributes: function(n) {
                if (!n) return {};
                var r = {};
                return Object.keys(n.dataset).filter(function(t) {
                    return t.startsWith("mdb")
                }).forEach(function(t) {
                    var e = (e = t.replace(/^mdb/, "")).charAt(0).toLowerCase() + e.slice(1, e.length);
                    r[e] = ee(n.dataset[t])
                }), r
            },
            getDataAttribute: function(t, e) {
                return ee(t.getAttribute("data-mdb-".concat(ne(e))))
            },
            offset: function(t) {
                t = t.getBoundingClientRect();
                return {
                    top: t.top + document.body.scrollTop,
                    left: t.left + document.body.scrollLeft
                }
            },
            position: function(t) {
                return {
                    top: t.offsetTop,
                    left: t.offsetLeft
                }
            }
        };

        function oe(t) {
            return function(t) {
                if (Array.isArray(t)) return ie(t)
            }(t) || function(t) {
                if ("undefined" != typeof Symbol && Symbol.iterator in Object(t)) return Array.from(t)
            }(t) || function(t, e) {
                if (!t) return;
                if ("string" == typeof t) return ie(t, e);
                var n = Object.prototype.toString.call(t).slice(8, -1);
                "Object" === n && t.constructor && (n = t.constructor.name);
                if ("Map" === n || "Set" === n) return Array.from(t);
                if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return ie(t, e)
            }(t) || function() {
                throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
            }()
        }

        function ie(t, e) {
            (null == e || e > t.length) && (e = t.length);
            for (var n = 0, r = new Array(e); n < e; n++) r[n] = t[n];
            return r
        }
        var ce = {
            matches: function(t, e) {
                return t.matches(e)
            },
            find: function(t) {
                var e, n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : document.documentElement;
                return (e = []).concat.apply(e, oe(Element.prototype.querySelectorAll.call(n, t)))
            },
            findOne: function(t) {
                var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : document.documentElement;
                return Element.prototype.querySelector.call(e, t)
            },
            children: function(t, e) {
                var n;
                return (n = []).concat.apply(n, oe(t.children)).filter(function(t) {
                    return t.matches(e)
                })
            },
            parents: function(t, e) {
                for (var n = [], r = t.parentNode; r && r.nodeType === Node.ELEMENT_NODE && 3 !== r.nodeType;) this.matches(r, e) && n.push(r), r = r.parentNode;
                return n
            },
            prev: function(t, e) {
                for (var n = t.previousElementSibling; n;) {
                    if (n.matches(e)) return [n];
                    n = n.previousElementSibling
                }
                return []
            },
            next: function(t, e) {
                for (var n = t.nextElementSibling; n;) {
                    if (this.matches(n, e)) return [n];
                    n = n.nextElementSibling
                }
                return []
            }
        };

        function ae(t) {
            return (ae = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function ue(e, t) {
            var n, r = Object.keys(e);
            return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(e), t && (n = n.filter(function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            })), r.push.apply(r, n)), r
        }

        function se(r) {
            for (var t = 1; t < arguments.length; t++) {
                var o = null != arguments[t] ? arguments[t] : {};
                t % 2 ? ue(Object(o), !0).forEach(function(t) {
                    var e, n;
                    e = r, t = o[n = t], n in e ? Object.defineProperty(e, n, {
                        value: t,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0
                    }) : e[n] = t
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : ue(Object(o)).forEach(function(t) {
                    Object.defineProperty(r, t, Object.getOwnPropertyDescriptor(o, t))
                })
            }
            return r
        }

        function le(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function fe(t, e, n) {
            return (fe = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = he(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function de(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = he(n);
                return t = r ? (t = he(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== ae(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function he(t) {
            return (he = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var ye = "collapse",
            ge = "bs.collapse",
            e = ".".concat(ge),
            ve = {
                toggle: !0,
                parent: ""
            },
            me = {
                toggle: "boolean",
                parent: "(string|element)"
            },
            be = "show".concat(e),
            _e = "shown".concat(e),
            we = "hide".concat(e),
            Oe = "hidden".concat(e),
            At = "click".concat(e).concat(".data-api"),
            Ee = "show",
            je = "collapse",
            ke = "collapsing",
            Se = "collapsed",
            xe = '[data-mdb-toggle="collapse"]',
            Pe = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && pe(t, e)
                }(l, jt);
                var t, e, n, s = de(l);

                function l(e, t) {
                    var n;
                    ! function(t) {
                        if (!(t instanceof l)) throw new TypeError("Cannot call a class as a function")
                    }(this), (n = s.call(this, e))._isTransitioning = !1, n._config = n._getConfig(t), n._triggerArray = ce.find("".concat(xe, '[href="#').concat(e.id, '"],') + "".concat(xe, '[data-mdb-target="#').concat(e.id, '"]'));
                    for (var r = ce.find(xe), o = 0, i = r.length; o < i; o++) {
                        var c = r[o],
                            a = et(c),
                            u = ce.find(a).filter(function(t) {
                                return t === e
                            });
                        null !== a && u.length && (n._selector = a, n._triggerArray.push(c))
                    }
                    return n._parent = n._config.parent ? n._getParent() : null, n._config.parent || n._addAriaAndCollapsedClass(n._element, n._triggerArray), n._config.toggle && n.toggle(), n
                }
                return t = l, n = [{
                    key: "Default",
                    get: function() {
                        return ve
                    }
                }, {
                    key: "DATA_KEY",
                    get: function() {
                        return ge
                    }
                }, {
                    key: "collapseInterface",
                    value: function(t, e) {
                        var n = it.getData(t, ge),
                            r = se(se(se({}, ve), re.getDataAttributes(t)), "object" === ae(e) && e ? e : {});
                        if (!n && r.toggle && "string" == typeof e && /show|hide/.test(e) && (r.toggle = !1), n = n || new l(t, r), "string" == typeof e) {
                            if (void 0 === n[e]) throw new TypeError('No method named "'.concat(e, '"'));
                            n[e]()
                        }
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(t) {
                        return this.each(function() {
                            l.collapseInterface(this, t)
                        })
                    }
                }], (e = [{
                    key: "toggle",
                    value: function() {
                        this._element.classList.contains(Ee) ? this.hide() : this.show()
                    }
                }, {
                    key: "show",
                    value: function() {
                        var e = this;
                        if (!this._isTransitioning && !this._element.classList.contains(Ee)) {
                            this._parent && 0 === (n = ce.find(".show, .collapsing", this._parent).filter(function(t) {
                                return "string" == typeof e._config.parent ? t.getAttribute("data-mdb-parent") === e._config.parent : t.classList.contains(je)
                            })).length && (n = null);
                            var t, n, r = ce.findOne(this._selector);
                            if (n) {
                                var o, i = n.find(function(t) {
                                    return r !== t
                                });
                                if ((o = i ? it.getData(i, ge) : null) && o._isTransitioning) return
                            }
                            Ot.trigger(this._element, be).defaultPrevented || (n && n.forEach(function(t) {
                                r !== t && l.collapseInterface(t, "hide"), o || it.setData(t, ge, null)
                            }), t = this._getDimension(), this._element.classList.remove(je), this._element.classList.add(ke), this._element.style[t] = 0, this._triggerArray.length && this._triggerArray.forEach(function(t) {
                                t.classList.remove(Se), t.setAttribute("aria-expanded", !0)
                            }), this.setTransitioning(!0), i = t[0].toUpperCase() + t.slice(1), n = "scroll".concat(i), i = W(this._element), Ot.one(this._element, "transitionend", function() {
                                e._element.classList.remove(ke), e._element.classList.add(je, Ee), e._element.style[t] = "", e.setTransitioning(!1), Ot.trigger(e._element, _e)
                            }), z(this._element, i), this._element.style[t] = "".concat(this._element[n], "px"))
                        }
                    }
                }, {
                    key: "hide",
                    value: function() {
                        var t = this;
                        if (!this._isTransitioning && this._element.classList.contains(Ee) && !Ot.trigger(this._element, we).defaultPrevented) {
                            var e = this._getDimension();
                            this._element.style[e] = "".concat(this._element.getBoundingClientRect()[e], "px"), X(this._element), this._element.classList.add(ke), this._element.classList.remove(je, Ee);
                            var n = this._triggerArray.length;
                            if (0 < n)
                                for (var r = 0; r < n; r++) {
                                    var o = this._triggerArray[r],
                                        i = U(o);
                                    i && !i.classList.contains(Ee) && (o.classList.add(Se), o.setAttribute("aria-expanded", !1))
                                }
                            this.setTransitioning(!0);
                            this._element.style[e] = "";
                            e = W(this._element);
                            Ot.one(this._element, "transitionend", function() {
                                t.setTransitioning(!1), t._element.classList.remove(ke), t._element.classList.add(je), Ot.trigger(t._element, Oe)
                            }), z(this._element, e)
                        }
                    }
                }, {
                    key: "setTransitioning",
                    value: function(t) {
                        this._isTransitioning = t
                    }
                }, {
                    key: "dispose",
                    value: function() {
                        fe(he(l.prototype), "dispose", this).call(this), this._config = null, this._parent = null, this._triggerArray = null, this._isTransitioning = null
                    }
                }, {
                    key: "_getConfig",
                    value: function(t) {
                        return (t = se(se({}, ve), t)).toggle = Boolean(t.toggle), K(ye, t, me), t
                    }
                }, {
                    key: "_getDimension",
                    value: function() {
                        return this._element.classList.contains("width") ? "width" : "height"
                    }
                }, {
                    key: "_getParent",
                    value: function() {
                        var n = this,
                            t = this._config.parent;
                        Q(t) ? void 0 === t.jquery && void 0 === t[0] || (t = t[0]) : t = ce.findOne(t);
                        var e = "".concat(xe, '[data-mdb-parent="').concat(t, '"]');
                        return ce.find(e, t).forEach(function(t) {
                            var e = U(t);
                            n._addAriaAndCollapsedClass(e, [t])
                        }), t
                    }
                }, {
                    key: "_addAriaAndCollapsedClass",
                    value: function(t, e) {
                        var n;
                        t && e.length && (n = t.classList.contains(Ee), e.forEach(function(t) {
                            n ? t.classList.remove(Se) : t.classList.add(Se), t.setAttribute("aria-expanded", n)
                        }))
                    }
                }]) && le(t.prototype, e), n && le(t, n), l
            }();
        Ot.on(document, At, xe, function(t) {
            ("A" === t.target.tagName || t.delegateTarget && "A" === t.delegateTarget.tagName) && t.preventDefault();
            var n = re.getDataAttributes(this),
                t = et(this);
            ce.find(t).forEach(function(t) {
                var e = it.getData(t, ge),
                    e = e ? (null === e._parent && "string" == typeof n.parent && (e._config.parent = n.parent, e._parent = e._getParent()), "toggle") : n;
                Pe.collapseInterface(t, e)
            })
        }), rt(ye, Pe);
        var Te = Pe;

        function De(t) {
            return (De = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function Ae(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

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

        function Le(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = Re(n);
                return t = r ? (t = Re(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== De(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function Re(t) {
            return (Re = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var Ie = "bs.alert",
            e = ".".concat(Ie),
            Ne = "close".concat(e),
            Me = "closed".concat(e),
            At = "click".concat(e).concat(".data-api"),
            e = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && Ce(t, e)
                }(o, jt);
                var t, e, n, r = Le(o);

                function o() {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), r.apply(this, arguments)
                }
                return t = o, n = [{
                    key: "DATA_KEY",
                    get: function() {
                        return Ie
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(e) {
                        return this.each(function() {
                            var t = (t = it.getData(this, Ie)) || new o(this);
                            "close" === e && t[e](this)
                        })
                    }
                }, {
                    key: "handleDismiss",
                    value: function(e) {
                        return function(t) {
                            t && t.preventDefault(), e.close(this)
                        }
                    }
                }], (e = [{
                    key: "close",
                    value: function(t) {
                        var e = t ? this._getRootElement(t) : this._element,
                            t = this._triggerCloseEvent(e);
                        null === t || t.defaultPrevented || this._removeElement(e)
                    }
                }, {
                    key: "_getRootElement",
                    value: function(t) {
                        return U(t) || t.closest(".".concat("alert"))
                    }
                }, {
                    key: "_triggerCloseEvent",
                    value: function(t) {
                        return Ot.trigger(t, Ne)
                    }
                }, {
                    key: "_removeElement",
                    value: function(t) {
                        var e, n = this;
                        t.classList.remove("show"), t.classList.contains("fade") ? (e = W(t), Ot.one(t, "transitionend", function() {
                            return n._destroyElement(t)
                        }), z(t, e)) : this._destroyElement(t)
                    }
                }, {
                    key: "_destroyElement",
                    value: function(t) {
                        t.parentNode && t.parentNode.removeChild(t), Ot.trigger(t, Me)
                    }
                }]) && Ae(t.prototype, e), n && Ae(t, n), o
            }();
        Ot.on(document, At, '[data-mdb-dismiss="alert"]', e.handleDismiss(new e)), rt("alert", e);
        var He = e;

        function Be(t) {
            return (Be = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function Ue(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function We(t, e, n) {
            return (We = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = ze(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function Qe(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = ze(n);
                return t = r ? (t = ze(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== Be(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function ze(t) {
            return (ze = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var Ke = "alert",
            At = "mdb.".concat(Ke),
            e = ".".concat(At),
            Ye = "close.bs.alert",
            qe = "closed.bs.alert",
            Ve = "close".concat(e),
            Xe = "closed".concat(e),
            $e = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && Fe(t, e)
                }(o, He);
                var t, e, n, r = Qe(o);

                function o(t) {
                    var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (e = r.call(this, t, e))._init(), e
                }
                return t = o, n = [{
                    key: "NAME",
                    get: function() {
                        return Ke
                    }
                }], (e = [{
                    key: "dispose",
                    value: function() {
                        D.off(this._element, Ye), D.off(this._element, qe), We(ze(o.prototype), "dispose", this).call(this)
                    }
                }, {
                    key: "_init",
                    value: function() {
                        this._bindCloseEvent(), this._bindClosedEvent()
                    }
                }, {
                    key: "_bindCloseEvent",
                    value: function() {
                        var t = this;
                        D.on(this._element, Ye, function() {
                            D.trigger(t._element, Ve)
                        })
                    }
                }, {
                    key: "_bindClosedEvent",
                    value: function() {
                        var t = this;
                        D.on(this._element, qe, function() {
                            D.trigger(t._element, Xe)
                        })
                    }
                }]) && Ue(t.prototype, e), n && Ue(t, n), o
            }();
        Z.find(".alert").forEach(function(t) {
            $e.getInstance(t) || new $e(t)
        }), u(function() {
            var t, e = r();
            e && (t = e.fn[Ke], e.fn[Ke] = $e.jQueryInterface, e.fn[Ke].Constructor = $e, e.fn[Ke].noConflict = function() {
                return e.fn[Ke] = t, $e.jQueryInterface
            })
        });
        var Ge = $e;
        n(54);

        function Je(t) {
            return (Je = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function Ze(e, t) {
            var n, r = Object.keys(e);
            return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(e), t && (n = n.filter(function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            })), r.push.apply(r, n)), r
        }

        function tn(r) {
            for (var t = 1; t < arguments.length; t++) {
                var o = null != arguments[t] ? arguments[t] : {};
                t % 2 ? Ze(Object(o), !0).forEach(function(t) {
                    var e, n;
                    e = r, t = o[n = t], n in e ? Object.defineProperty(e, n, {
                        value: t,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0
                    }) : e[n] = t
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : Ze(Object(o)).forEach(function(t) {
                    Object.defineProperty(r, t, Object.getOwnPropertyDescriptor(o, t))
                })
            }
            return r
        }

        function en(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function nn(t, e, n) {
            return (nn = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = cn(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function on(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = cn(n);
                return t = r ? (t = cn(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== Je(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function cn(t) {
            return (cn = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var an = "carousel",
            un = "bs.carousel",
            sn = ".".concat(un),
            At = ".data-api",
            ln = {
                interval: 5e3,
                keyboard: !0,
                slide: !1,
                pause: "hover",
                wrap: !0,
                touch: !0
            },
            fn = {
                interval: "(number|boolean)",
                keyboard: "boolean",
                slide: "(boolean|string)",
                pause: "(string|boolean)",
                wrap: "boolean",
                touch: "boolean"
            },
            pn = "next",
            dn = "prev",
            hn = "slide".concat(sn),
            yn = "slid".concat(sn),
            gn = "keydown".concat(sn),
            vn = "mouseenter".concat(sn),
            mn = "mouseleave".concat(sn),
            bn = "touchstart".concat(sn),
            _n = "touchmove".concat(sn),
            wn = "touchend".concat(sn),
            On = "pointerdown".concat(sn),
            En = "pointerup".concat(sn),
            jn = "dragstart".concat(sn),
            e = "load".concat(sn).concat(At),
            At = "click".concat(sn).concat(At),
            kn = "active",
            Sn = ".active.carousel-item",
            xn = ".carousel-indicators",
            Pn = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && rn(t, e)
                }(i, jt);
                var t, e, n, r = on(i);

                function i(t, e) {
                    return function(t) {
                        if (!(t instanceof i)) throw new TypeError("Cannot call a class as a function")
                    }(this), (t = r.call(this, t))._items = null, t._interval = null, t._activeElement = null, t._isPaused = !1, t._isSliding = !1, t.touchTimeout = null, t.touchStartX = 0, t.touchDeltaX = 0, t._config = t._getConfig(e), t._indicatorsElement = ce.findOne(xn, t._element), t._touchSupported = "ontouchstart" in document.documentElement || 0 < navigator.maxTouchPoints, t._pointerEvent = Boolean(window.PointerEvent), t._addEventListeners(), t
                }
                return t = i, n = [{
                    key: "Default",
                    get: function() {
                        return ln
                    }
                }, {
                    key: "DATA_KEY",
                    get: function() {
                        return un
                    }
                }, {
                    key: "carouselInterface",
                    value: function(t, e) {
                        var n = it.getData(t, un),
                            r = tn(tn({}, ln), re.getDataAttributes(t));
                        "object" === Je(e) && (r = tn(tn({}, r), e));
                        var o = "string" == typeof e ? e : r.slide,
                            n = n || new i(t, r);
                        if ("number" == typeof e) n.to(e);
                        else if ("string" == typeof o) {
                            if (void 0 === n[o]) throw new TypeError('No method named "'.concat(o, '"'));
                            n[o]()
                        } else r.interval && r.ride && (n.pause(), n.cycle())
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(t) {
                        return this.each(function() {
                            i.carouselInterface(this, t)
                        })
                    }
                }, {
                    key: "dataApiClickHandler",
                    value: function(t) {
                        var e, n, r = U(this);
                        r && r.classList.contains("carousel") && (e = tn(tn({}, re.getDataAttributes(r)), re.getDataAttributes(this)), (n = this.getAttribute("data-mdb-slide-to")) && (e.interval = !1), i.carouselInterface(r, e), n && it.getData(r, un).to(n), t.preventDefault())
                    }
                }], (e = [{
                    key: "next",
                    value: function() {
                        this._isSliding || this._slide(pn)
                    }
                }, {
                    key: "nextWhenVisible",
                    value: function() {
                        !document.hidden && Y(this._element) && this.next()
                    }
                }, {
                    key: "prev",
                    value: function() {
                        this._isSliding || this._slide(dn)
                    }
                }, {
                    key: "pause",
                    value: function(t) {
                        t || (this._isPaused = !0), ce.findOne(".carousel-item-next, .carousel-item-prev", this._element) && (F(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
                    }
                }, {
                    key: "cycle",
                    value: function(t) {
                        t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config && this._config.interval && !this._isPaused && (this._updateInterval(), this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
                    }
                }, {
                    key: "to",
                    value: function(t) {
                        var e = this;
                        this._activeElement = ce.findOne(Sn, this._element);
                        var n = this._getItemIndex(this._activeElement);
                        if (!(t > this._items.length - 1 || t < 0))
                            if (this._isSliding) Ot.one(this._element, yn, function() {
                                return e.to(t)
                            });
                            else {
                                if (n === t) return this.pause(), void this.cycle();
                                n = n < t ? pn : dn;
                                this._slide(n, this._items[t])
                            }
                    }
                }, {
                    key: "dispose",
                    value: function() {
                        nn(cn(i.prototype), "dispose", this).call(this), Ot.off(this._element, sn), this._items = null, this._config = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
                    }
                }, {
                    key: "_getConfig",
                    value: function(t) {
                        return t = tn(tn({}, ln), t), K(an, t, fn), t
                    }
                }, {
                    key: "_handleSwipe",
                    value: function() {
                        var t = Math.abs(this.touchDeltaX);
                        t <= 40 || (t = t / this.touchDeltaX, (this.touchDeltaX = 0) < t && (nt ? this.next() : this.prev()), t < 0 && (nt ? this.prev() : this.next()))
                    }
                }, {
                    key: "_addEventListeners",
                    value: function() {
                        var e = this;
                        this._config.keyboard && Ot.on(this._element, gn, function(t) {
                            return e._keydown(t)
                        }), "hover" === this._config.pause && (Ot.on(this._element, vn, function(t) {
                            return e.pause(t)
                        }), Ot.on(this._element, mn, function(t) {
                            return e.cycle(t)
                        })), this._config.touch && this._touchSupported && this._addTouchEventListeners()
                    }
                }, {
                    key: "_addTouchEventListeners",
                    value: function() {
                        function t(t) {
                            !n._pointerEvent || "pen" !== t.pointerType && "touch" !== t.pointerType ? n._pointerEvent || (n.touchStartX = t.touches[0].clientX) : n.touchStartX = t.clientX
                        }

                        function e(t) {
                            !n._pointerEvent || "pen" !== t.pointerType && "touch" !== t.pointerType || (n.touchDeltaX = t.clientX - n.touchStartX), n._handleSwipe(), "hover" === n._config.pause && (n.pause(), n.touchTimeout && clearTimeout(n.touchTimeout), n.touchTimeout = setTimeout(function(t) {
                                return n.cycle(t)
                            }, 500 + n._config.interval))
                        }
                        var n = this;
                        ce.find(".carousel-item img", this._element).forEach(function(t) {
                            Ot.on(t, jn, function(t) {
                                return t.preventDefault()
                            })
                        }), this._pointerEvent ? (Ot.on(this._element, On, t), Ot.on(this._element, En, e), this._element.classList.add("pointer-event")) : (Ot.on(this._element, bn, t), Ot.on(this._element, _n, function(t) {
                            (t = t).touches && 1 < t.touches.length ? n.touchDeltaX = 0 : n.touchDeltaX = t.touches[0].clientX - n.touchStartX
                        }), Ot.on(this._element, wn, e))
                    }
                }, {
                    key: "_keydown",
                    value: function(t) {
                        /input|textarea/i.test(t.target.tagName) || ("ArrowLeft" === t.key ? (t.preventDefault(), nt ? this.next() : this.prev()) : "ArrowRight" === t.key && (t.preventDefault(), nt ? this.prev() : this.next()))
                    }
                }, {
                    key: "_getItemIndex",
                    value: function(t) {
                        return this._items = t && t.parentNode ? ce.find(".carousel-item", t.parentNode) : [], this._items.indexOf(t)
                    }
                }, {
                    key: "_getItemByDirection",
                    value: function(t, e) {
                        var n = t === pn,
                            r = t === dn,
                            o = this._getItemIndex(e),
                            i = this._items.length - 1;
                        if ((r && 0 === o || n && o === i) && !this._config.wrap) return e;
                        t = (o + (t === dn ? -1 : 1)) % this._items.length;
                        return -1 == t ? this._items[this._items.length - 1] : this._items[t]
                    }
                }, {
                    key: "_triggerSlideEvent",
                    value: function(t, e) {
                        var n = this._getItemIndex(t),
                            r = this._getItemIndex(ce.findOne(Sn, this._element));
                        return Ot.trigger(this._element, hn, {
                            relatedTarget: t,
                            direction: e,
                            from: r,
                            to: n
                        })
                    }
                }, {
                    key: "_setActiveIndicatorElement",
                    value: function(t) {
                        if (this._indicatorsElement) {
                            var e = ce.findOne(".active", this._indicatorsElement);
                            e.classList.remove(kn), e.removeAttribute("aria-current");
                            for (var n = ce.find("[data-mdb-target]", this._indicatorsElement), r = 0; r < n.length; r++)
                                if (Number.parseInt(n[r].getAttribute("data-mdb-slide-to"), 10) === this._getItemIndex(t)) {
                                    n[r].classList.add(kn), n[r].setAttribute("aria-current", "true");
                                    break
                                }
                        }
                    }
                }, {
                    key: "_updateInterval",
                    value: function() {
                        var t = this._activeElement || ce.findOne(Sn, this._element);
                        t && ((t = Number.parseInt(t.getAttribute("data-mdb-interval"), 10)) ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = t) : this._config.interval = this._config.defaultInterval || this._config.interval)
                    }
                }, {
                    key: "_slide",
                    value: function(t, e) {
                        var n = this,
                            r = ce.findOne(Sn, this._element),
                            o = this._getItemIndex(r),
                            i = e || r && this._getItemByDirection(t, r),
                            c = this._getItemIndex(i),
                            e = Boolean(this._interval),
                            a = t === pn ? "carousel-item-start" : "carousel-item-end",
                            u = t === pn ? "carousel-item-next" : "carousel-item-prev",
                            s = t === pn ? "left" : "right";
                        i && i.classList.contains(kn) ? this._isSliding = !1 : this._triggerSlideEvent(i, s).defaultPrevented || r && i && (this._isSliding = !0, e && this.pause(), this._setActiveIndicatorElement(i), this._activeElement = i, this._element.classList.contains("slide") ? (i.classList.add(u), X(i), r.classList.add(a), i.classList.add(a), t = W(r), Ot.one(r, "transitionend", function() {
                            i.classList.remove(a, u), i.classList.add(kn), r.classList.remove(kn, u, a), n._isSliding = !1, setTimeout(function() {
                                Ot.trigger(n._element, yn, {
                                    relatedTarget: i,
                                    direction: s,
                                    from: o,
                                    to: c
                                })
                            }, 0)
                        }), z(r, t)) : (r.classList.remove(kn), i.classList.add(kn), this._isSliding = !1, Ot.trigger(this._element, yn, {
                            relatedTarget: i,
                            direction: s,
                            from: o,
                            to: c
                        })), e && this.cycle())
                    }
                }]) && en(t.prototype, e), n && en(t, n), i
            }();
        Ot.on(document, At, "[data-mdb-slide], [data-mdb-slide-to]", Pn.dataApiClickHandler), Ot.on(window, e, function() {
            for (var t = ce.find('[data-mdb-ride="carousel"]'), e = 0, n = t.length; e < n; e++) Pn.carouselInterface(t[e], it.getData(t[e], un))
        }), rt(an, Pn);
        var Tn = Pn;

        function Dn(t) {
            return (Dn = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function An(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function Cn(t, e, n) {
            return (Cn = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = In(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function Rn(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = In(n);
                return t = r ? (t = In(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== Dn(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function In(t) {
            return (In = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var Nn = "carousel",
            At = "mdb.".concat(Nn),
            e = ".".concat(At),
            Mn = "slide.bs.carousel",
            Hn = "slid.bs.carousel",
            Bn = "slide".concat(e),
            Un = "slid".concat(e),
            Wn = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && Ln(t, e)
                }(o, Tn);
                var t, e, n, r = Rn(o);

                function o(t, e) {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (e = r.call(this, t, e))._init(), e
                }
                return t = o, n = [{
                    key: "NAME",
                    get: function() {
                        return Nn
                    }
                }], (e = [{
                    key: "dispose",
                    value: function() {
                        D.off(this._element, Mn), D.off(this._element, Hn), Cn(In(o.prototype), "dispose", this).call(this)
                    }
                }, {
                    key: "_init",
                    value: function() {
                        this._bindSlideEvent(), this._bindSlidEvent()
                    }
                }, {
                    key: "_bindSlideEvent",
                    value: function() {
                        var e = this;
                        D.on(this._element, Mn, function(t) {
                            D.trigger(e._element, Bn, {
                                relatedTarget: t.relatedTarget,
                                direction: t.direction,
                                from: t.from,
                                to: t.to
                            })
                        })
                    }
                }, {
                    key: "_bindSlidEvent",
                    value: function() {
                        var e = this;
                        D.on(this._element, Hn, function(t) {
                            D.trigger(e._element, Un, {
                                relatedTarget: t.relatedTarget,
                                direction: t.direction,
                                from: t.from,
                                to: t.to
                            })
                        })
                    }
                }]) && An(t.prototype, e), n && An(t, n), o
            }();
        Z.find('[data-mdb-ride="carousel"]').forEach(function(t) {
            Wn.getInstance(t) || new Wn(t)
        }), u(function() {
            var t, e = r();
            e && (t = e.fn[Nn], e.fn[Nn] = Wn.jQueryInterface, e.fn[Nn].Constructor = Wn, e.fn[Nn].noConflict = function() {
                return e.fn[Nn] = t, Wn.jQueryInterface
            })
        });
        var Fn = Wn;

        function Qn(t) {
            return (Qn = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function zn(e, t) {
            var n, r = Object.keys(e);
            return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(e), t && (n = n.filter(function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            })), r.push.apply(r, n)), r
        }

        function Kn(r) {
            for (var t = 1; t < arguments.length; t++) {
                var o = null != arguments[t] ? arguments[t] : {};
                t % 2 ? zn(Object(o), !0).forEach(function(t) {
                    var e, n;
                    e = r, t = o[n = t], n in e ? Object.defineProperty(e, n, {
                        value: t,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0
                    }) : e[n] = t
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : zn(Object(o)).forEach(function(t) {
                    Object.defineProperty(r, t, Object.getOwnPropertyDescriptor(o, t))
                })
            }
            return r
        }

        function Yn(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function qn(t, e, n) {
            return (qn = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = $n(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function Xn(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = $n(n);
                return t = r ? (t = $n(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== Qn(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function $n(t) {
            return ($n = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var Gn = "bs.modal",
            Jn = ".".concat(Gn),
            Zn = {
                backdrop: !0,
                keyboard: !0,
                focus: !0
            },
            tr = {
                backdrop: "(boolean|string)",
                keyboard: "boolean",
                focus: "boolean"
            },
            er = "hide".concat(Jn),
            nr = "hidePrevented".concat(Jn),
            rr = "hidden".concat(Jn),
            or = "show".concat(Jn),
            ir = "shown".concat(Jn),
            cr = "focusin".concat(Jn),
            ar = "resize".concat(Jn),
            ur = "click.dismiss".concat(Jn),
            sr = "keydown.dismiss".concat(Jn),
            lr = "mouseup.dismiss".concat(Jn),
            fr = "mousedown.dismiss".concat(Jn),
            At = "click".concat(Jn).concat(".data-api"),
            pr = "modal-open",
            dr = "fade",
            hr = "show",
            yr = "modal-static",
            gr = ".modal-dialog",
            vr = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
            mr = ".sticky-top",
            br = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && Vn(t, e)
                }(o, jt);
                var t, e, n, r = Xn(o);

                function o(t, e) {
                    var n;
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (n = r.call(this, t))._config = n._getConfig(e), n._dialog = ce.findOne(gr, t), n._backdrop = null, n._isShown = !1, n._isBodyOverflowing = !1, n._ignoreBackdropClick = !1, n._isTransitioning = !1, n._scrollbarWidth = 0, n
                }
                return t = o, n = [{
                    key: "Default",
                    get: function() {
                        return Zn
                    }
                }, {
                    key: "DATA_KEY",
                    get: function() {
                        return Gn
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(n, r) {
                        return this.each(function() {
                            var t = it.getData(this, Gn),
                                e = Kn(Kn(Kn({}, Zn), re.getDataAttributes(this)), "object" === Qn(n) && n ? n : {}),
                                t = t || new o(this, e);
                            if ("string" == typeof n) {
                                if (void 0 === t[n]) throw new TypeError('No method named "'.concat(n, '"'));
                                t[n](r)
                            }
                        })
                    }
                }], (e = [{
                    key: "toggle",
                    value: function(t) {
                        return this._isShown ? this.hide() : this.show(t)
                    }
                }, {
                    key: "show",
                    value: function(t) {
                        var e, n = this;
                        this._isShown || this._isTransitioning || (this._element.classList.contains(dr) && (this._isTransitioning = !0), e = Ot.trigger(this._element, or, {
                            relatedTarget: t
                        }), this._isShown || e.defaultPrevented || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), Ot.on(this._element, ur, '[data-mdb-dismiss="modal"]', function(t) {
                            return n.hide(t)
                        }), Ot.on(this._dialog, fr, function() {
                            Ot.one(n._element, lr, function(t) {
                                t.target === n._element && (n._ignoreBackdropClick = !0)
                            })
                        }), this._showBackdrop(function() {
                            return n._showElement(t)
                        })))
                    }
                }, {
                    key: "hide",
                    value: function(t) {
                        var e = this;
                        t && t.preventDefault(), this._isShown && !this._isTransitioning && (Ot.trigger(this._element, er).defaultPrevented || (this._isShown = !1, (t = this._element.classList.contains(dr)) && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), Ot.off(document, cr), this._element.classList.remove(hr), Ot.off(this._element, ur), Ot.off(this._dialog, fr), t ? (t = W(this._element), Ot.one(this._element, "transitionend", function(t) {
                            return e._hideModal(t)
                        }), z(this._element, t)) : this._hideModal()))
                    }
                }, {
                    key: "dispose",
                    value: function() {
                        [window, this._element, this._dialog].forEach(function(t) {
                            return Ot.off(t, Jn)
                        }), qn($n(o.prototype), "dispose", this).call(this), Ot.off(document, cr), this._config = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null
                    }
                }, {
                    key: "handleUpdate",
                    value: function() {
                        this._adjustDialog()
                    }
                }, {
                    key: "_getConfig",
                    value: function(t) {
                        return t = Kn(Kn(Kn({}, Zn), re.getDataAttributes(this._element)), t), K("modal", t, tr), t
                    }
                }, {
                    key: "_showElement",
                    value: function(t) {
                        var e = this,
                            n = this._element.classList.contains(dr),
                            r = ce.findOne(".modal-body", this._dialog);
                        this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.scrollTop = 0, r && (r.scrollTop = 0), n && X(this._element), this._element.classList.add(hr), this._config.focus && this._enforceFocus();
                        r = function() {
                            e._config.focus && e._element.focus(), e._isTransitioning = !1, Ot.trigger(e._element, ir, {
                                relatedTarget: t
                            })
                        };
                        n ? (n = W(this._dialog), Ot.one(this._dialog, "transitionend", r), z(this._dialog, n)) : r()
                    }
                }, {
                    key: "_enforceFocus",
                    value: function() {
                        var e = this;
                        Ot.off(document, cr), Ot.on(document, cr, function(t) {
                            document === t.target || e._element === t.target || e._element.contains(t.target) || e._element.focus()
                        })
                    }
                }, {
                    key: "_setEscapeEvent",
                    value: function() {
                        var e = this;
                        this._isShown ? Ot.on(this._element, sr, function(t) {
                            e._config.keyboard && "Escape" === t.key ? (t.preventDefault(), e.hide()) : e._config.keyboard || "Escape" !== t.key || e._triggerBackdropTransition()
                        }) : Ot.off(this._element, sr)
                    }
                }, {
                    key: "_setResizeEvent",
                    value: function() {
                        var t = this;
                        this._isShown ? Ot.on(window, ar, function() {
                            return t._adjustDialog()
                        }) : Ot.off(window, ar)
                    }
                }, {
                    key: "_hideModal",
                    value: function() {
                        var t = this;
                        this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._isTransitioning = !1, this._showBackdrop(function() {
                            document.body.classList.remove(pr), t._resetAdjustments(), t._resetScrollbar(), Ot.trigger(t._element, rr)
                        })
                    }
                }, {
                    key: "_removeBackdrop",
                    value: function() {
                        this._backdrop.parentNode.removeChild(this._backdrop), this._backdrop = null
                    }
                }, {
                    key: "_showBackdrop",
                    value: function(t) {
                        var e, n = this,
                            r = this._element.classList.contains(dr) ? dr : "";
                        this._isShown && this._config.backdrop ? (this._backdrop = document.createElement("div"), this._backdrop.className = "modal-backdrop", r && this._backdrop.classList.add(r), document.body.appendChild(this._backdrop), Ot.on(this._element, ur, function(t) {
                            n._ignoreBackdropClick ? n._ignoreBackdropClick = !1 : t.target === t.currentTarget && ("static" === n._config.backdrop ? n._triggerBackdropTransition() : n.hide())
                        }), r && X(this._backdrop), this._backdrop.classList.add(hr), r ? (e = W(this._backdrop), Ot.one(this._backdrop, "transitionend", t), z(this._backdrop, e)) : t()) : !this._isShown && this._backdrop ? (this._backdrop.classList.remove(hr), r = function() {
                            n._removeBackdrop(), t()
                        }, this._element.classList.contains(dr) ? (e = W(this._backdrop), Ot.one(this._backdrop, "transitionend", r), z(this._backdrop, e)) : r()) : t()
                    }
                }, {
                    key: "_triggerBackdropTransition",
                    value: function() {
                        var t, e, n = this;
                        Ot.trigger(this._element, nr).defaultPrevented || ((t = this._element.scrollHeight > document.documentElement.clientHeight) || (this._element.style.overflowY = "hidden"), this._element.classList.add(yr), e = W(this._dialog), Ot.off(this._element, "transitionend"), Ot.one(this._element, "transitionend", function() {
                            n._element.classList.remove(yr), t || (Ot.one(n._element, "transitionend", function() {
                                n._element.style.overflowY = ""
                            }), z(n._element, e))
                        }), z(this._element, e), this._element.focus())
                    }
                }, {
                    key: "_adjustDialog",
                    value: function() {
                        var t = this._element.scrollHeight > document.documentElement.clientHeight;
                        (!this._isBodyOverflowing && t && !nt || this._isBodyOverflowing && !t && nt) && (this._element.style.paddingLeft = "".concat(this._scrollbarWidth, "px")), (this._isBodyOverflowing && !t && !nt || !this._isBodyOverflowing && t && nt) && (this._element.style.paddingRight = "".concat(this._scrollbarWidth, "px"))
                    }
                }, {
                    key: "_resetAdjustments",
                    value: function() {
                        this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
                    }
                }, {
                    key: "_checkScrollbar",
                    value: function() {
                        var t = document.body.getBoundingClientRect();
                        this._isBodyOverflowing = Math.round(t.left + t.right) < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
                    }
                }, {
                    key: "_setScrollbar",
                    value: function() {
                        var e = this;
                        this._isBodyOverflowing && (this._setElementAttributes(vr, "paddingRight", function(t) {
                            return t + e._scrollbarWidth
                        }), this._setElementAttributes(mr, "marginRight", function(t) {
                            return t - e._scrollbarWidth
                        }), this._setElementAttributes("body", "paddingRight", function(t) {
                            return t + e._scrollbarWidth
                        })), document.body.classList.add(pr)
                    }
                }, {
                    key: "_setElementAttributes",
                    value: function(t, r, o) {
                        ce.find(t).forEach(function(t) {
                            var e = t.style[r],
                                n = window.getComputedStyle(t)[r];
                            re.setDataAttribute(t, r, e), t.style[r] = o(Number.parseFloat(n)) + "px"
                        })
                    }
                }, {
                    key: "_resetScrollbar",
                    value: function() {
                        this._resetElementAttributes(vr, "paddingRight"), this._resetElementAttributes(mr, "marginRight"), this._resetElementAttributes("body", "paddingRight")
                    }
                }, {
                    key: "_resetElementAttributes",
                    value: function(t, n) {
                        ce.find(t).forEach(function(t) {
                            var e = re.getDataAttribute(t, n);
                            void 0 === e && t === document.body ? t.style[n] = "" : (re.removeDataAttribute(t, n), t.style[n] = e)
                        })
                    }
                }, {
                    key: "_getScrollbarWidth",
                    value: function() {
                        var t = document.createElement("div");
                        t.className = "modal-scrollbar-measure", document.body.appendChild(t);
                        var e = t.getBoundingClientRect().width - t.clientWidth;
                        return document.body.removeChild(t), e
                    }
                }]) && Yn(t.prototype, e), n && Yn(t, n), o
            }();
        Ot.on(document, At, '[data-mdb-toggle="modal"]', function(t) {
            var e = this,
                n = U(this);
            "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault(), Ot.one(n, or, function(t) {
                t.defaultPrevented || Ot.one(n, rr, function() {
                    Y(e) && e.focus()
                })
            });
            var r = it.getData(n, Gn);
            r || (t = Kn(Kn({}, re.getDataAttributes(n)), re.getDataAttributes(this)), r = new br(n, t)), r.toggle(this)
        }), rt("modal", br);
        var _r = br;

        function wr(t) {
            return (wr = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function Or(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function Er(t, e, n) {
            return (Er = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = Sr(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function kr(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = Sr(n);
                return t = r ? (t = Sr(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== wr(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function Sr(t) {
            return (Sr = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var xr = "modal",
            e = "mdb.".concat(xr),
            At = ".".concat(e),
            Pr = "hide.bs.modal",
            Tr = "hidePrevented.bs.modal",
            Dr = "hidden.bs.modal",
            Ar = "show.bs.modal",
            Cr = "shown.bs.modal",
            Lr = "hide".concat(At),
            Rr = "hidePrevented".concat(At),
            Ir = "hidden".concat(At),
            Nr = "show".concat(At),
            Mr = "shown".concat(At),
            Hr = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && jr(t, e)
                }(o, _r);
                var t, e, n, r = kr(o);

                function o(t, e) {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (e = r.call(this, t, e))._init(), e
                }
                return t = o, n = [{
                    key: "NAME",
                    get: function() {
                        return xr
                    }
                }], (e = [{
                    key: "dispose",
                    value: function() {
                        D.off(this._element, Ar), D.off(this._element, Cr), D.off(this._element, Pr), D.off(this._element, Dr), D.off(this._element, Tr), Er(Sr(o.prototype), "dispose", this).call(this)
                    }
                }, {
                    key: "_init",
                    value: function() {
                        this._bindShowEvent(), this._bindShownEvent(), this._bindHideEvent(), this._bindHiddenEvent(), this._bindHidePreventedEvent()
                    }
                }, {
                    key: "_bindShowEvent",
                    value: function() {
                        var e = this;
                        D.on(this._element, Ar, function(t) {
                            D.trigger(e._element, Nr, {
                                relatedTarget: t.relatedTarget
                            })
                        })
                    }
                }, {
                    key: "_bindShownEvent",
                    value: function() {
                        var e = this;
                        D.on(this._element, Cr, function(t) {
                            D.trigger(e._element, Mr, {
                                relatedTarget: t.relatedTarget
                            })
                        })
                    }
                }, {
                    key: "_bindHideEvent",
                    value: function() {
                        var t = this;
                        D.on(this._element, Pr, function() {
                            D.trigger(t._element, Lr)
                        })
                    }
                }, {
                    key: "_bindHiddenEvent",
                    value: function() {
                        var t = this;
                        D.on(this._element, Dr, function() {
                            D.trigger(t._element, Ir)
                        })
                    }
                }, {
                    key: "_bindHidePreventedEvent",
                    value: function() {
                        var t = this;
                        D.on(this._element, Tr, function() {
                            D.trigger(t._element, Rr)
                        })
                    }
                }]) && Or(t.prototype, e), n && Or(t, n), o
            }();
        Z.find('[data-mdb-toggle="modal"]').forEach(function(t) {
            t = function(t) {
                t = i(t);
                return t && document.querySelector(t) ? t : null
            }(t), t = Z.findOne(t), Hr.getInstance(t) || new Hr(t)
        }), u(function() {
            var t, e = r();
            e && (t = e.fn[xr], e.fn[xr] = Hr.jQueryInterface, e.fn[xr].Constructor = Hr, e.fn[xr].noConflict = function() {
                return e.fn[xr] = t, Hr.jQueryInterface
            })
        });
        var Br = Hr,
            Ur = (n(25), "top"),
            Wr = "bottom",
            Fr = "right",
            Qr = "left",
            zr = "auto",
            Kr = [Ur, Wr, Fr, Qr],
            Yr = "start",
            qr = "end",
            Vr = "clippingParents",
            Xr = "viewport",
            $r = "popper",
            Gr = "reference",
            Jr = Kr.reduce(function(t, e) {
                return t.concat([e + "-" + Yr, e + "-" + qr])
            }, []),
            Zr = [].concat(Kr, [zr]).reduce(function(t, e) {
                return t.concat([e, e + "-" + Yr, e + "-" + qr])
            }, []),
            to = "beforeRead",
            eo = "read",
            no = "afterRead",
            ro = "beforeMain",
            oo = "main",
            io = "afterMain",
            co = "beforeWrite",
            ao = "write",
            uo = "afterWrite",
            so = [to, eo, no, ro, oo, io, co, ao, uo];

        function lo(t) {
            return t ? (t.nodeName || "").toLowerCase() : null
        }

        function fo(t) {
            if ("[object Window]" === t.toString()) return t;
            t = t.ownerDocument;
            return t && t.defaultView || window
        }

        function po(t) {
            return t instanceof fo(t).Element || t instanceof Element
        }

        function ho(t) {
            return t instanceof fo(t).HTMLElement || t instanceof HTMLElement
        }

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

        function vo(t) {
            return t.split("-")[0]
        }

        function mo(t) {
            return {
                x: t.offsetLeft,
                y: t.offsetTop,
                width: t.offsetWidth,
                height: t.offsetHeight
            }
        }

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

        function _o(t) {
            return fo(t).getComputedStyle(t)
        }

        function wo(t) {
            return ((po(t) ? t.ownerDocument : t.document) || window.document).documentElement
        }

        function Oo(t) {
            return "html" === lo(t) ? t : t.assignedSlot || t.parentNode || (yo(t) ? t.host : null) || wo(t)
        }

        function Eo(t) {
            return ho(t) && "fixed" !== _o(t).position ? t.offsetParent : null
        }

        function jo(t) {
            for (var e = fo(t), n = Eo(t); n && 0 <= ["table", "td", "th"].indexOf(lo(n)) && "static" === _o(n).position;) n = Eo(n);
            return (!n || "html" !== lo(n) && ("body" !== lo(n) || "static" !== _o(n).position)) && (n || function(t) {
                for (var e = navigator.userAgent.toLowerCase().includes("firefox"), n = Oo(t); ho(n) && ["html", "body"].indexOf(lo(n)) < 0;) {
                    var r = _o(n);
                    if ("none" !== r.transform || "none" !== r.perspective || "paint" === r.contain || ["transform", "perspective"].includes(r.willChange) || e && "filter" === r.willChange || e && r.filter && "none" !== r.filter) return n;
                    n = n.parentNode
                }
                return null
            }(t)) || e
        }

        function ko(t) {
            return 0 <= ["top", "bottom"].indexOf(t) ? "x" : "y"
        }
        var So = Math.max,
            xo = Math.min,
            Po = Math.round;

        function To(t, e, n) {
            return So(t, xo(e, n))
        }

        function Do() {
            return {
                top: 0,
                right: 0,
                bottom: 0,
                left: 0
            }
        }

        function Ao(t) {
            return Object.assign({}, Do(), t)
        }

        function Co(n, t) {
            return t.reduce(function(t, e) {
                return t[e] = n, t
            }, {})
        }
        var Lo = {
                name: "arrow",
                enabled: !0,
                phase: "main",
                fn: function(t) {
                    var e, n, r, o = t.state,
                        i = t.name,
                        c = o.elements.arrow,
                        a = o.modifiersData.popperOffsets,
                        u = vo(o.placement),
                        s = ko(u),
                        l = 0 <= [Qr, Fr].indexOf(u) ? "height" : "width";
                    c && a && (e = o.modifiersData[i + "#persistent"].padding, n = mo(c), r = "y" === s ? Ur : Qr, t = "y" === s ? Wr : Fr, u = o.rects.reference[l] + o.rects.reference[s] - a[s] - o.rects.popper[l], a = a[s] - o.rects.reference[s], c = (c = jo(c)) ? "y" === s ? c.clientHeight || 0 : c.clientWidth || 0 : 0, a = u / 2 - a / 2, r = e[r], t = c - n[l] - e[t], t = To(r, a = c / 2 - n[l] / 2 + a, t), o.modifiersData[i] = ((i = {})[s] = t, i.centerOffset = t - a, i))
                },
                effect: function(t) {
                    var e = t.state,
                        n = t.options,
                        r = t.name,
                        t = void 0 === (t = n.element) ? "[data-popper-arrow]" : t,
                        n = void 0 === (n = n.padding) ? 0 : n;
                    null != t && ("string" != typeof t || (t = e.elements.popper.querySelector(t))) && bo(e.elements.popper, t) && (n = "function" == typeof n ? n(Object.assign({}, e.rects, {
                        placement: e.placement
                    })) : n, e.elements.arrow = t, e.modifiersData[r + "#persistent"] = {
                        padding: Ao("number" != typeof n ? n : Co(n, Kr))
                    })
                },
                requires: ["popperOffsets"],
                requiresIfExists: ["preventOverflow"]
            },
            Ro = {
                top: "auto",
                right: "auto",
                bottom: "auto",
                left: "auto"
            };

        function Io(t) {
            var e = t.popper,
                n = t.popperRect,
                r = t.placement,
                o = t.offsets,
                i = t.position,
                c = t.gpuAcceleration,
                a = t.adaptive,
                u = t.roundOffsets,
                s = !0 === u ? (d = (y = o).x, h = y.y, y = window.devicePixelRatio || 1, {
                    x: Po(Po(d * y) / y) || 0,
                    y: Po(Po(h * y) / y) || 0
                }) : "function" == typeof u ? u(o) : o,
                l = s.x,
                f = void 0 === l ? 0 : l,
                p = s.y,
                t = void 0 === p ? 0 : p,
                d = o.hasOwnProperty("x"),
                h = o.hasOwnProperty("y"),
                y = Qr,
                u = Ur,
                l = window;
            a && (s = "clientHeight", p = "clientWidth", (o = jo(e)) === fo(e) && "static" !== _o(o = wo(e)).position && (s = "scrollHeight", p = "scrollWidth"), r === Ur && (u = Wr, t -= o[s] - n.height, t *= c ? 1 : -1), r === Qr && (y = Fr, f -= o[p] - n.width, f *= c ? 1 : -1));
            var a = Object.assign({
                position: i
            }, a && Ro);
            return c ? Object.assign({}, a, ((c = {})[u] = h ? "0" : "", c[y] = d ? "0" : "", c.transform = (l.devicePixelRatio || 1) < 2 ? "translate(" + f + "px, " + t + "px)" : "translate3d(" + f + "px, " + t + "px, 0)", c)) : Object.assign({}, a, ((a = {})[u] = h ? t + "px" : "", a[y] = d ? f + "px" : "", a.transform = "", a))
        }
        var No = {
                name: "computeStyles",
                enabled: !0,
                phase: "beforeWrite",
                fn: function(t) {
                    var e = t.state,
                        n = t.options,
                        t = void 0 === (r = n.gpuAcceleration) || r,
                        r = void 0 === (r = n.adaptive) || r,
                        n = void 0 === (n = n.roundOffsets) || n,
                        t = {
                            placement: vo(e.placement),
                            popper: e.elements.popper,
                            popperRect: e.rects.popper,
                            gpuAcceleration: t
                        };
                    null != e.modifiersData.popperOffsets && (e.styles.popper = Object.assign({}, e.styles.popper, Io(Object.assign({}, t, {
                        offsets: e.modifiersData.popperOffsets,
                        position: e.options.strategy,
                        adaptive: r,
                        roundOffsets: n
                    })))), null != e.modifiersData.arrow && (e.styles.arrow = Object.assign({}, e.styles.arrow, Io(Object.assign({}, t, {
                        offsets: e.modifiersData.arrow,
                        position: "absolute",
                        adaptive: !1,
                        roundOffsets: n
                    })))), e.attributes.popper = Object.assign({}, e.attributes.popper, {
                        "data-popper-placement": e.placement
                    })
                },
                data: {}
            },
            Mo = {
                passive: !0
            };
        var Ho = {
                name: "eventListeners",
                enabled: !0,
                phase: "write",
                fn: function() {},
                effect: function(t) {
                    var e = t.state,
                        n = t.instance,
                        r = t.options,
                        o = void 0 === (t = r.scroll) || t,
                        i = void 0 === (r = r.resize) || r,
                        c = fo(e.elements.popper),
                        a = [].concat(e.scrollParents.reference, e.scrollParents.popper);
                    return o && a.forEach(function(t) {
                            t.addEventListener("scroll", n.update, Mo)
                        }), i && c.addEventListener("resize", n.update, Mo),
                        function() {
                            o && a.forEach(function(t) {
                                t.removeEventListener("scroll", n.update, Mo)
                            }), i && c.removeEventListener("resize", n.update, Mo)
                        }
                },
                data: {}
            },
            Bo = {
                left: "right",
                right: "left",
                bottom: "top",
                top: "bottom"
            };

        function Uo(t) {
            return t.replace(/left|right|bottom|top/g, function(t) {
                return Bo[t]
            })
        }
        var Wo = {
            start: "end",
            end: "start"
        };

        function Fo(t) {
            return t.replace(/start|end/g, function(t) {
                return Wo[t]
            })
        }

        function Qo(t) {
            t = t.getBoundingClientRect();
            return {
                width: t.width,
                height: t.height,
                top: t.top,
                right: t.right,
                bottom: t.bottom,
                left: t.left,
                x: t.left,
                y: t.top
            }
        }

        function zo(t) {
            t = fo(t);
            return {
                scrollLeft: t.pageXOffset,
                scrollTop: t.pageYOffset
            }
        }

        function Ko(t) {
            return Qo(wo(t)).left + zo(t).scrollLeft
        }

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

        function qo(t, e) {
            void 0 === e && (e = []);
            var n = function t(e) {
                    return 0 <= ["html", "body", "#document"].indexOf(lo(e)) ? e.ownerDocument.body : ho(e) && Yo(e) ? e : t(Oo(e))
                }(t),
                t = n === (null == (r = t.ownerDocument) ? void 0 : r.body),
                r = fo(n),
                n = t ? [r].concat(r.visualViewport || [], Yo(n) ? n : []) : n,
                e = e.concat(n);
            return t ? e : e.concat(qo(Oo(n)))
        }

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

        function Xo(t, e) {
            return e === Xr ? Vo((i = fo(o = t), c = wo(o), a = i.visualViewport, u = c.clientWidth, s = c.clientHeight, c = i = 0, a && (u = a.width, s = a.height, /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || (i = a.offsetLeft, c = a.offsetTop)), {
                width: u,
                height: s,
                x: i + Ko(o),
                y: c
            })) : ho(e) ? ((r = Qo(n = e)).top = r.top + n.clientTop, r.left = r.left + n.clientLeft, r.bottom = r.top + n.clientHeight, r.right = r.left + n.clientWidth, r.width = n.clientWidth, r.height = n.clientHeight, r.x = r.left, r.y = r.top, r) : Vo((o = wo(t), c = wo(o), e = zo(o), r = null == (n = o.ownerDocument) ? void 0 : n.body, t = So(c.scrollWidth, c.clientWidth, r ? r.scrollWidth : 0, r ? r.clientWidth : 0), n = So(c.scrollHeight, c.clientHeight, r ? r.scrollHeight : 0, r ? r.clientHeight : 0), o = -e.scrollLeft + Ko(o), e = -e.scrollTop, "rtl" === _o(r || c).direction && (o += So(c.clientWidth, r ? r.clientWidth : 0) - t), {
                width: t,
                height: n,
                x: o,
                y: e
            }));
            var n, r, o, i, c, a, u, s
        }

        function $o(n, t, e) {
            var r, o, i, t = "clippingParents" === t ? (o = qo(Oo(r = n)), po(i = 0 <= ["absolute", "fixed"].indexOf(_o(r).position) && ho(r) ? jo(r) : r) ? o.filter(function(t) {
                    return po(t) && bo(t, i) && "body" !== lo(t)
                }) : []) : [].concat(t),
                t = [].concat(t, [e]),
                e = t[0],
                e = t.reduce(function(t, e) {
                    e = Xo(n, e);
                    return t.top = So(e.top, t.top), t.right = xo(e.right, t.right), t.bottom = xo(e.bottom, t.bottom), t.left = So(e.left, t.left), t
                }, Xo(n, e));
            return e.width = e.right - e.left, e.height = e.bottom - e.top, e.x = e.left, e.y = e.top, e
        }

        function Go(t) {
            return t.split("-")[1]
        }

        function Jo(t) {
            var e, n = t.reference,
                r = t.element,
                o = t.placement,
                t = o ? vo(o) : null,
                o = o ? Go(o) : null,
                i = n.x + n.width / 2 - r.width / 2,
                c = n.y + n.height / 2 - r.height / 2;
            switch (t) {
                case Ur:
                    e = {
                        x: i,
                        y: n.y - r.height
                    };
                    break;
                case Wr:
                    e = {
                        x: i,
                        y: n.y + n.height
                    };
                    break;
                case Fr:
                    e = {
                        x: n.x + n.width,
                        y: c
                    };
                    break;
                case Qr:
                    e = {
                        x: n.x - r.width,
                        y: c
                    };
                    break;
                default:
                    e = {
                        x: n.x,
                        y: n.y
                    }
            }
            var a = t ? ko(t) : null;
            if (null != a) {
                var u = "y" === a ? "height" : "width";
                switch (o) {
                    case Yr:
                        e[a] = e[a] - (n[u] / 2 - r[u] / 2);
                        break;
                    case qr:
                        e[a] = e[a] + (n[u] / 2 - r[u] / 2)
                }
            }
            return e
        }

        function Zo(t, e) {
            var r, n = (e = void 0 === e ? {} : e).placement,
                o = void 0 === n ? t.placement : n,
                i = e.boundary,
                c = void 0 === i ? Vr : i,
                a = e.rootBoundary,
                u = void 0 === a ? Xr : a,
                s = e.elementContext,
                l = void 0 === s ? $r : s,
                n = e.altBoundary,
                i = void 0 !== n && n,
                a = e.padding,
                s = void 0 === a ? 0 : a,
                n = Ao("number" != typeof s ? s : Co(s, Kr)),
                e = l === $r ? Gr : $r,
                a = t.elements.reference,
                s = t.rects.popper,
                e = t.elements[i ? e : l],
                c = $o(po(e) ? e : e.contextElement || wo(t.elements.popper), c, u),
                u = Qo(a),
                a = Jo({
                    reference: u,
                    element: s,
                    strategy: "absolute",
                    placement: o
                }),
                a = Vo(Object.assign({}, s, a)),
                u = l === $r ? a : u,
                f = {
                    top: c.top - u.top + n.top,
                    bottom: u.bottom - c.bottom + n.bottom,
                    left: c.left - u.left + n.left,
                    right: u.right - c.right + n.right
                },
                t = t.modifiersData.offset;
            return l === $r && t && (r = t[o], Object.keys(f).forEach(function(t) {
                var e = 0 <= [Fr, Wr].indexOf(t) ? 1 : -1,
                    n = 0 <= [Ur, Wr].indexOf(t) ? "y" : "x";
                f[t] += r[n] * e
            })), f
        }
        var ti = {
            name: "flip",
            enabled: !0,
            phase: "main",
            fn: function(t) {
                var f = t.state,
                    e = t.options,
                    n = t.name;
                if (!f.modifiersData[n]._skip) {
                    for (var r = e.mainAxis, o = void 0 === r || r, t = e.altAxis, i = void 0 === t || t, r = e.fallbackPlacements, p = e.padding, d = e.boundary, h = e.rootBoundary, c = e.altBoundary, t = e.flipVariations, y = void 0 === t || t, g = e.allowedAutoPlacements, t = f.options.placement, e = vo(t), e = r || (e === t || !y ? [Uo(t)] : function(t) {
                            if (vo(t) === zr) return [];
                            var e = Uo(t);
                            return [Fo(t), e, Fo(e)]
                        }(t)), a = [t].concat(e).reduce(function(t, e) {
                            return t.concat(vo(e) === zr ? (n = f, o = (r = void 0 === (r = {
                                placement: e,
                                boundary: d,
                                rootBoundary: h,
                                padding: p,
                                flipVariations: y,
                                allowedAutoPlacements: g
                            }) ? {} : r).placement, i = r.boundary, c = r.rootBoundary, a = r.padding, t = r.flipVariations, u = void 0 === (r = r.allowedAutoPlacements) ? Zr : r, s = Go(o), o = s ? t ? Jr : Jr.filter(function(t) {
                                return Go(t) === s
                            }) : Kr, l = (t = 0 === (t = o.filter(function(t) {
                                return 0 <= u.indexOf(t)
                            })).length ? o : t).reduce(function(t, e) {
                                return t[e] = Zo(n, {
                                    placement: e,
                                    boundary: i,
                                    rootBoundary: c,
                                    padding: a
                                })[vo(e)], t
                            }, {}), Object.keys(l).sort(function(t, e) {
                                return l[t] - l[e]
                            })) : e);
                            var n, r, o, i, c, a, u, s, l
                        }, []), u = f.rects.reference, s = f.rects.popper, l = new Map, v = !0, m = a[0], b = 0; b < a.length; b++) {
                        var _ = a[b],
                            w = vo(_),
                            O = Go(_) === Yr,
                            E = 0 <= [Ur, Wr].indexOf(w),
                            j = E ? "width" : "height",
                            k = Zo(f, {
                                placement: _,
                                boundary: d,
                                rootBoundary: h,
                                altBoundary: c,
                                padding: p
                            }),
                            E = E ? O ? Fr : Qr : O ? Wr : Ur;
                        u[j] > s[j] && (E = Uo(E));
                        O = Uo(E), j = [];
                        if (o && j.push(k[w] <= 0), i && j.push(k[E] <= 0, k[O] <= 0), j.every(function(t) {
                                return t
                            })) {
                            m = _, v = !1;
                            break
                        }
                        l.set(_, j)
                    }
                    if (v)
                        for (var S = y ? 3 : 1; 0 < S; S--)
                            if ("break" === function(e) {
                                    var t = a.find(function(t) {
                                        t = l.get(t);
                                        if (t) return t.slice(0, e).every(function(t) {
                                            return t
                                        })
                                    });
                                    if (t) return m = t, "break"
                                }(S)) break;
                    f.placement !== m && (f.modifiersData[n]._skip = !0, f.placement = m, f.reset = !0)
                }
            },
            requiresIfExists: ["offset"],
            data: {
                _skip: !1
            }
        };

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

        function ni(e) {
            return [Ur, Fr, Wr, Qr].some(function(t) {
                return 0 <= e[t]
            })
        }
        var ri = {
            name: "hide",
            enabled: !0,
            phase: "main",
            requiresIfExists: ["preventOverflow"],
            fn: function(t) {
                var e = t.state,
                    n = t.name,
                    r = e.rects.reference,
                    o = e.rects.popper,
                    i = e.modifiersData.preventOverflow,
                    c = Zo(e, {
                        elementContext: "reference"
                    }),
                    t = Zo(e, {
                        altBoundary: !0
                    }),
                    r = ei(c, r),
                    t = ei(t, o, i),
                    o = ni(r),
                    i = ni(t);
                e.modifiersData[n] = {
                    referenceClippingOffsets: r,
                    popperEscapeOffsets: t,
                    isReferenceHidden: o,
                    hasPopperEscaped: i
                }, e.attributes.popper = Object.assign({}, e.attributes.popper, {
                    "data-popper-reference-hidden": o,
                    "data-popper-escaped": i
                })
            }
        };
        var oi = {
            name: "offset",
            enabled: !0,
            phase: "main",
            requires: ["popperOffsets"],
            fn: function(t) {
                var c = t.state,
                    e = t.options,
                    n = t.name,
                    a = void 0 === (r = e.offset) ? [0, 0] : r,
                    t = Zr.reduce(function(t, e) {
                        var n, r, o, i;
                        return t[e] = (n = e, r = c.rects, o = a, i = vo(n), e = 0 <= [Qr, Ur].indexOf(i) ? -1 : 1, o = (o = (n = "function" == typeof o ? o(Object.assign({}, r, {
                            placement: n
                        })) : o)[0]) || 0, n = ((n = n[1]) || 0) * e, 0 <= [Qr, Fr].indexOf(i) ? {
                            x: n,
                            y: o
                        } : {
                            x: o,
                            y: n
                        }), t
                    }, {}),
                    r = (e = t[c.placement]).x,
                    e = e.y;
                null != c.modifiersData.popperOffsets && (c.modifiersData.popperOffsets.x += r, c.modifiersData.popperOffsets.y += e), c.modifiersData[n] = t
            }
        };
        var ii = {
            name: "popperOffsets",
            enabled: !0,
            phase: "read",
            fn: function(t) {
                var e = t.state,
                    t = t.name;
                e.modifiersData[t] = Jo({
                    reference: e.rects.reference,
                    element: e.rects.popper,
                    strategy: "absolute",
                    placement: e.placement
                })
            },
            data: {}
        };
        var ci = {
            name: "preventOverflow",
            enabled: !0,
            phase: "main",
            fn: function(t) {
                var e = t.state,
                    n = t.options,
                    r = t.name,
                    o = void 0 === (O = n.mainAxis) || O,
                    i = void 0 !== (E = n.altAxis) && E,
                    c = n.boundary,
                    a = n.rootBoundary,
                    u = n.altBoundary,
                    s = n.padding,
                    l = n.tether,
                    f = void 0 === l || l,
                    p = n.tetherOffset,
                    d = void 0 === p ? 0 : p,
                    h = Zo(e, {
                        boundary: c,
                        rootBoundary: a,
                        padding: s,
                        altBoundary: u
                    }),
                    y = vo(e.placement),
                    g = Go(e.placement),
                    v = !g,
                    m = ko(y),
                    b = "x" === m ? "y" : "x",
                    _ = e.modifiersData.popperOffsets,
                    w = e.rects.reference,
                    t = e.rects.popper,
                    O = "function" == typeof d ? d(Object.assign({}, e.rects, {
                        placement: e.placement
                    })) : d,
                    E = {
                        x: 0,
                        y: 0
                    };
                _ && ((o || i) && (l = "y" === m ? Ur : Qr, n = "y" === m ? Wr : Fr, p = "y" === m ? "height" : "width", c = _[m], a = _[m] + h[l], s = _[m] - h[n], u = f ? -t[p] / 2 : 0, y = (g === Yr ? w : t)[p], d = g === Yr ? -t[p] : -w[p], g = e.elements.arrow, t = f && g ? mo(g) : {
                    width: 0,
                    height: 0
                }, l = (g = e.modifiersData["arrow#persistent"] ? e.modifiersData["arrow#persistent"].padding : Do())[l], n = g[n], t = To(0, w[p], t[p]), l = v ? w[p] / 2 - u - t - l - O : y - t - l - O, t = v ? -w[p] / 2 + u + t + n + O : d + t + n + O, O = (n = e.elements.arrow && jo(e.elements.arrow)) ? "y" === m ? n.clientTop || 0 : n.clientLeft || 0 : 0, n = e.modifiersData.offset ? e.modifiersData.offset[e.placement][m] : 0, O = _[m] + l - n - O, n = _[m] + t - n, o && (s = To(f ? xo(a, O) : a, c, f ? So(s, n) : s), _[m] = s, E[m] = s - c), i && (c = "x" === m ? Ur : Qr, i = "x" === m ? Wr : Fr, c = (m = _[b]) + h[c], i = m - h[i], i = To(f ? xo(c, O) : c, m, f ? So(i, n) : i), _[b] = i, E[b] = i - m)), e.modifiersData[r] = E)
            },
            requiresIfExists: ["offset"]
        };

        function ai(t, e, n) {
            void 0 === n && (n = !1);
            var r = wo(e),
                o = Qo(t),
                i = ho(e),
                c = {
                    scrollLeft: 0,
                    scrollTop: 0
                },
                t = {
                    x: 0,
                    y: 0
                };
            return !i && (i || n) || ("body" === lo(e) && !Yo(r) || (c = (i = e) !== fo(i) && ho(i) ? {
                scrollLeft: (n = i).scrollLeft,
                scrollTop: n.scrollTop
            } : zo(i)), ho(e) ? ((t = Qo(e)).x += e.clientLeft, t.y += e.clientTop) : r && (t.x = Ko(r))), {
                x: o.left + c.scrollLeft - t.x,
                y: o.top + c.scrollTop - t.y,
                width: o.width,
                height: o.height
            }
        }

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

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

        function fi(t) {
            var e = (t = void 0 === t ? {} : t).defaultModifiers,
                f = void 0 === e ? [] : e,
                t = t.defaultOptions,
                p = void 0 === t ? si : t;
            return function(r, o, e) {
                void 0 === e && (e = p);
                var n, i, c = {
                        placement: "bottom",
                        orderedModifiers: [],
                        options: Object.assign({}, si, p),
                        modifiersData: {},
                        elements: {
                            reference: r,
                            popper: o
                        },
                        attributes: {},
                        styles: {}
                    },
                    a = [],
                    u = !1,
                    s = {
                        state: c,
                        setOptions: function(t) {
                            l(), c.options = Object.assign({}, p, c.options, t), c.scrollParents = {
                                reference: po(r) ? qo(r) : r.contextElement ? qo(r.contextElement) : [],
                                popper: qo(o)
                            };
                            var n, e, t = (t = [].concat(f, c.options.modifiers), e = t.reduce(function(t, e) {
                                var n = t[e.name];
                                return t[e.name] = n ? Object.assign({}, n, e, {
                                    options: Object.assign({}, n.options, e.options),
                                    data: Object.assign({}, n.data, e.data)
                                }) : e, t
                            }, {}), t = Object.keys(e).map(function(t) {
                                return e[t]
                            }), n = ui(t), so.reduce(function(t, e) {
                                return t.concat(n.filter(function(t) {
                                    return t.phase === e
                                }))
                            }, []));
                            return c.orderedModifiers = t.filter(function(t) {
                                return t.enabled
                            }), c.orderedModifiers.forEach(function(t) {
                                var e = t.name,
                                    n = t.options,
                                    n = void 0 === n ? {} : n,
                                    t = t.effect;
                                "function" == typeof t && (n = t({
                                    state: c,
                                    name: e,
                                    instance: s,
                                    options: n
                                }), a.push(n || function() {}))
                            }), s.update()
                        },
                        forceUpdate: function() {
                            if (!u) {
                                var t = c.elements,
                                    e = t.reference,
                                    t = t.popper;
                                if (li(e, t)) {
                                    c.rects = {
                                        reference: ai(e, jo(t), "fixed" === c.options.strategy),
                                        popper: mo(t)
                                    }, c.reset = !1, c.placement = c.options.placement, c.orderedModifiers.forEach(function(t) {
                                        return c.modifiersData[t.name] = Object.assign({}, t.data)
                                    });
                                    for (var n, r, o, i = 0; i < c.orderedModifiers.length; i++) 0, !0 !== c.reset ? (n = (o = c.orderedModifiers[i]).fn, r = void 0 === (r = o.options) ? {} : r, o = o.name, "function" == typeof n && (c = n({
                                        state: c,
                                        options: r,
                                        name: o,
                                        instance: s
                                    }) || c)) : (c.reset = !1, i = -1)
                                }
                            }
                        },
                        update: (n = function() {
                            return new Promise(function(t) {
                                s.forceUpdate(), t(c)
                            })
                        }, function() {
                            return i = i || new Promise(function(t) {
                                Promise.resolve().then(function() {
                                    i = void 0, t(n())
                                })
                            })
                        }),
                        destroy: function() {
                            l(), u = !0
                        }
                    };
                return li(r, o) && s.setOptions(e).then(function(t) {
                    !u && e.onFirstUpdate && e.onFirstUpdate(t)
                }), s;

                function l() {
                    a.forEach(function(t) {
                        return t()
                    }), a = []
                }
            }
        }
        var pi = fi(),
            di = fi({
                defaultModifiers: [Ho, ii, No, go, oi, ti, ci, Lo, ri]
            }),
            hi = fi({
                defaultModifiers: [Ho, ii, No, go]
            });

        function yi(t) {
            return function(t) {
                if (Array.isArray(t)) return gi(t)
            }(t) || function(t) {
                if ("undefined" != typeof Symbol && Symbol.iterator in Object(t)) return Array.from(t)
            }(t) || function(t, e) {
                if (!t) return;
                if ("string" == typeof t) return gi(t, e);
                var n = Object.prototype.toString.call(t).slice(8, -1);
                "Object" === n && t.constructor && (n = t.constructor.name);
                if ("Map" === n || "Set" === n) return Array.from(t);
                if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return gi(t, e)
            }(t) || function() {
                throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
            }()
        }

        function gi(t, e) {
            (null == e || e > t.length) && (e = t.length);
            for (var n = 0, r = new Array(e); n < e; n++) r[n] = t[n];
            return r
        }
        var vi = new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]),
            mi = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,
            bi = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,
            e = {
                "*": ["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: []
            };

        function _i(t, i, e) {
            if (!t.length) return t;
            if (e && "function" == typeof e) return e(t);
            for (var e = (new window.DOMParser).parseFromString(t, "text/html"), c = Object.keys(i), a = (t = []).concat.apply(t, yi(e.body.querySelectorAll("*"))), n = function(t, e) {
                    var n = a[t],
                        r = n.nodeName.toLowerCase();
                    if (!c.includes(r)) return n.parentNode.removeChild(n), "continue";
                    var t = (t = []).concat.apply(t, yi(n.attributes)),
                        o = [].concat(i["*"] || [], i[r] || []);
                    t.forEach(function(t) {
                        ! function(t, e) {
                            var n = t.nodeName.toLowerCase();
                            if (e.includes(n)) return !vi.has(n) || Boolean(t.nodeValue.match(mi) || t.nodeValue.match(bi));
                            for (var r = e.filter(function(t) {
                                    return t instanceof RegExp
                                }), o = 0, i = r.length; o < i; o++)
                                if (n.match(r[o])) return !0;
                            return !1
                        }(t, o) && n.removeAttribute(t.nodeName)
                    })
                }, r = 0, o = a.length; r < o; r++) n(r);
            return e.body.innerHTML
        }

        function wi(e, t) {
            var n, r = Object.keys(e);
            return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(e), t && (n = n.filter(function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            })), r.push.apply(r, n)), r
        }

        function Oi(r) {
            for (var t = 1; t < arguments.length; t++) {
                var o = null != arguments[t] ? arguments[t] : {};
                t % 2 ? wi(Object(o), !0).forEach(function(t) {
                    var e, n;
                    e = r, t = o[n = t], n in e ? Object.defineProperty(e, n, {
                        value: t,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0
                    }) : e[n] = t
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : wi(Object(o)).forEach(function(t) {
                    Object.defineProperty(r, t, Object.getOwnPropertyDescriptor(o, t))
                })
            }
            return r
        }

        function Ei(t) {
            return (Ei = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function ji(t) {
            return function(t) {
                if (Array.isArray(t)) return ki(t)
            }(t) || function(t) {
                if ("undefined" != typeof Symbol && Symbol.iterator in Object(t)) return Array.from(t)
            }(t) || function(t, e) {
                if (!t) return;
                if ("string" == typeof t) return ki(t, e);
                var n = Object.prototype.toString.call(t).slice(8, -1);
                "Object" === n && t.constructor && (n = t.constructor.name);
                if ("Map" === n || "Set" === n) return Array.from(t);
                if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return ki(t, e)
            }(t) || function() {
                throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
            }()
        }

        function ki(t, e) {
            (null == e || e > t.length) && (e = t.length);
            for (var n = 0, r = new Array(e); n < e; n++) r[n] = t[n];
            return r
        }

        function Si(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function xi(t, e, n) {
            return (xi = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = Di(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function Ti(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = Di(n);
                return t = r ? (t = Di(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== Ei(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function Di(t) {
            return (Di = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var Ai = "tooltip",
            Ci = "bs.tooltip",
            Li = ".".concat(Ci),
            Ri = "bs-tooltip",
            Ii = new RegExp("(^|\\s)".concat(Ri, "\\S+"), "g"),
            Ni = new Set(["sanitize", "allowList", "sanitizeFn"]),
            Mi = {
                animation: "boolean",
                template: "string",
                title: "(string|element|function)",
                trigger: "string",
                delay: "(number|object)",
                html: "boolean",
                selector: "(string|boolean)",
                placement: "(string|function)",
                offset: "(array|string|function)",
                container: "(string|element|boolean)",
                fallbackPlacements: "array",
                boundary: "(string|element)",
                customClass: "(string|function)",
                sanitize: "boolean",
                sanitizeFn: "(null|function)",
                allowList: "object",
                popperConfig: "(null|object|function)"
            },
            Hi = {
                AUTO: "auto",
                TOP: "top",
                RIGHT: nt ? "left" : "right",
                BOTTOM: "bottom",
                LEFT: nt ? "right" : "left"
            },
            Bi = {
                animation: !0,
                template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
                trigger: "hover focus",
                title: "",
                delay: 0,
                html: !1,
                selector: !1,
                placement: "top",
                offset: [0, 0],
                container: !1,
                fallbackPlacements: ["top", "right", "bottom", "left"],
                boundary: "clippingParents",
                customClass: "",
                sanitize: !0,
                sanitizeFn: null,
                allowList: e,
                popperConfig: null
            },
            Ui = {
                HIDE: "hide".concat(Li),
                HIDDEN: "hidden".concat(Li),
                SHOW: "show".concat(Li),
                SHOWN: "shown".concat(Li),
                INSERTED: "inserted".concat(Li),
                CLICK: "click".concat(Li),
                FOCUSIN: "focusin".concat(Li),
                FOCUSOUT: "focusout".concat(Li),
                MOUSEENTER: "mouseenter".concat(Li),
                MOUSELEAVE: "mouseleave".concat(Li)
            },
            Wi = "fade",
            Fi = "show",
            Qi = "show",
            zi = "hover",
            Ki = "focus",
            At = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && Pi(t, e)
                }(o, jt);
                var t, e, n, r = Ti(o);

                function o(t, e) {
                    if (! function(t) {
                            if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                        }(this), void 0 === c) throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");
                    return (t = r.call(this, t))._isEnabled = !0, t._timeout = 0, t._hoverState = "", t._activeTrigger = {}, t._popper = null, t.config = t._getConfig(e), t.tip = null, t._setListeners(), t
                }
                return t = o, n = [{
                    key: "Default",
                    get: function() {
                        return Bi
                    }
                }, {
                    key: "NAME",
                    get: function() {
                        return Ai
                    }
                }, {
                    key: "DATA_KEY",
                    get: function() {
                        return Ci
                    }
                }, {
                    key: "Event",
                    get: function() {
                        return Ui
                    }
                }, {
                    key: "EVENT_KEY",
                    get: function() {
                        return Li
                    }
                }, {
                    key: "DefaultType",
                    get: function() {
                        return Mi
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(n) {
                        return this.each(function() {
                            var t = it.getData(this, Ci),
                                e = "object" === Ei(n) && n;
                            if ((t || !/dispose|hide/.test(n)) && (t = t || new o(this, e), "string" == typeof n)) {
                                if (void 0 === t[n]) throw new TypeError('No method named "'.concat(n, '"'));
                                t[n]()
                            }
                        })
                    }
                }], (e = [{
                    key: "enable",
                    value: function() {
                        this._isEnabled = !0
                    }
                }, {
                    key: "disable",
                    value: function() {
                        this._isEnabled = !1
                    }
                }, {
                    key: "toggleEnabled",
                    value: function() {
                        this._isEnabled = !this._isEnabled
                    }
                }, {
                    key: "toggle",
                    value: function(t) {
                        this._isEnabled && (t ? ((t = this._initializeOnDelegatedTarget(t))._activeTrigger.click = !t._activeTrigger.click, t._isWithActiveTrigger() ? t._enter(null, t) : t._leave(null, t)) : this.getTipElement().classList.contains(Fi) ? this._leave(null, this) : this._enter(null, this))
                    }
                }, {
                    key: "dispose",
                    value: function() {
                        clearTimeout(this._timeout), Ot.off(this._element, this.constructor.EVENT_KEY), Ot.off(this._element.closest(".".concat("modal")), "hide.bs.modal", this._hideModalHandler), this.tip && this.tip.parentNode && this.tip.parentNode.removeChild(this.tip), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.config = null, this.tip = null, xi(Di(o.prototype), "dispose", this).call(this)
                    }
                }, {
                    key: "show",
                    value: function() {
                        var t, e, n, r, o = this;
                        if ("none" === this._element.style.display) throw new Error("Please use show on visible elements");
                        this.isWithContent() && this._isEnabled && (n = Ot.trigger(this._element, this.constructor.Event.SHOW), t = (null === (e = q(this._element)) ? this._element.ownerDocument.documentElement : e).contains(this._element), !n.defaultPrevented && t && (e = this.getTipElement(), n = H(this.constructor.NAME), e.setAttribute("id", n), this._element.setAttribute("aria-describedby", n), this.setContent(), this.config.animation && e.classList.add(Wi), t = "function" == typeof this.config.placement ? this.config.placement.call(this, e, this._element) : this.config.placement, n = this._getAttachment(t), this._addAttachmentClass(n), t = this._getContainer(), it.setData(e, this.constructor.DATA_KEY, this), this._element.ownerDocument.documentElement.contains(this.tip) || t.appendChild(e), Ot.trigger(this._element, this.constructor.Event.INSERTED), this._popper = di(this._element, e, this._getPopperConfig(n)), e.classList.add(Fi), (n = "function" == typeof this.config.customClass ? this.config.customClass() : this.config.customClass) && (e = e.classList).add.apply(e, ji(n.split(" "))), "ontouchstart" in document.documentElement && (r = []).concat.apply(r, ji(document.body.children)).forEach(function(t) {
                            Ot.on(t, "mouseover", V())
                        }), n = function() {
                            var t = o._hoverState;
                            o._hoverState = null, Ot.trigger(o._element, o.constructor.Event.SHOWN), "out" === t && o._leave(null, o)
                        }, this.tip.classList.contains(Wi) ? (r = W(this.tip), Ot.one(this.tip, "transitionend", n), z(this.tip, r)) : n()))
                    }
                }, {
                    key: "hide",
                    value: function() {
                        var t, e, n, r = this;
                        this._popper && (t = this.getTipElement(), e = function() {
                            r._hoverState !== Qi && t.parentNode && t.parentNode.removeChild(t), r._cleanTipClass(), r._element.removeAttribute("aria-describedby"), Ot.trigger(r._element, r.constructor.Event.HIDDEN), r._popper && (r._popper.destroy(), r._popper = null)
                        }, Ot.trigger(this._element, this.constructor.Event.HIDE).defaultPrevented || (t.classList.remove(Fi), "ontouchstart" in document.documentElement && (n = []).concat.apply(n, ji(document.body.children)).forEach(function(t) {
                            return Ot.off(t, "mouseover", V)
                        }), this._activeTrigger.click = !1, this._activeTrigger[Ki] = !1, this._activeTrigger[zi] = !1, this.tip.classList.contains(Wi) ? (n = W(t), Ot.one(t, "transitionend", e), z(t, n)) : e(), this._hoverState = ""))
                    }
                }, {
                    key: "update",
                    value: function() {
                        null !== this._popper && this._popper.update()
                    }
                }, {
                    key: "isWithContent",
                    value: function() {
                        return Boolean(this.getTitle())
                    }
                }, {
                    key: "getTipElement",
                    value: function() {
                        if (this.tip) return this.tip;
                        var t = document.createElement("div");
                        return t.innerHTML = this.config.template, this.tip = t.children[0], this.tip
                    }
                }, {
                    key: "setContent",
                    value: function() {
                        var t = this.getTipElement();
                        this.setElementContent(ce.findOne(".tooltip-inner", t), this.getTitle()), t.classList.remove(Wi, Fi)
                    }
                }, {
                    key: "setElementContent",
                    value: function(t, e) {
                        if (null !== t) return "object" === Ei(e) && Q(e) ? (e.jquery && (e = e[0]), void(this.config.html ? e.parentNode !== t && (t.innerHTML = "", t.appendChild(e)) : t.textContent = e.textContent)) : void(this.config.html ? (this.config.sanitize && (e = _i(e, this.config.allowList, this.config.sanitizeFn)), t.innerHTML = e) : t.textContent = e)
                    }
                }, {
                    key: "getTitle",
                    value: function() {
                        return this._element.getAttribute("data-mdb-original-title") || ("function" == typeof this.config.title ? this.config.title.call(this._element) : this.config.title)
                    }
                }, {
                    key: "updateAttachment",
                    value: function(t) {
                        return "right" === t ? "end" : "left" === t ? "start" : t
                    }
                }, {
                    key: "_initializeOnDelegatedTarget",
                    value: function(t, e) {
                        var n = this.constructor.DATA_KEY;
                        return (e = e || it.getData(t.delegateTarget, n)) || (e = new this.constructor(t.delegateTarget, this._getDelegateConfig()), it.setData(t.delegateTarget, n, e)), e
                    }
                }, {
                    key: "_getOffset",
                    value: function() {
                        var e = this,
                            n = this.config.offset;
                        return "string" == typeof n ? n.split(",").map(function(t) {
                            return Number.parseInt(t, 10)
                        }) : "function" == typeof n ? function(t) {
                            return n(t, e._element)
                        } : n
                    }
                }, {
                    key: "_getPopperConfig",
                    value: function(t) {
                        var e = this,
                            t = {
                                placement: t,
                                modifiers: [{
                                    name: "flip",
                                    options: {
                                        altBoundary: !0,
                                        fallbackPlacements: this.config.fallbackPlacements
                                    }
                                }, {
                                    name: "offset",
                                    options: {
                                        offset: this._getOffset()
                                    }
                                }, {
                                    name: "preventOverflow",
                                    options: {
                                        boundary: this.config.boundary
                                    }
                                }, {
                                    name: "arrow",
                                    options: {
                                        element: ".".concat(this.constructor.NAME, "-arrow")
                                    }
                                }, {
                                    name: "onChange",
                                    enabled: !0,
                                    phase: "afterWrite",
                                    fn: function(t) {
                                        return e._handlePopperPlacementChange(t)
                                    }
                                }],
                                onFirstUpdate: function(t) {
                                    t.options.placement !== t.placement && e._handlePopperPlacementChange(t)
                                }
                            };
                        return Oi(Oi({}, t), "function" == typeof this.config.popperConfig ? this.config.popperConfig(t) : this.config.popperConfig)
                    }
                }, {
                    key: "_addAttachmentClass",
                    value: function(t) {
                        this.getTipElement().classList.add("".concat(Ri, "-").concat(this.updateAttachment(t)))
                    }
                }, {
                    key: "_getContainer",
                    value: function() {
                        return !1 === this.config.container ? document.body : Q(this.config.container) ? this.config.container : ce.findOne(this.config.container)
                    }
                }, {
                    key: "_getAttachment",
                    value: function(t) {
                        return Hi[t.toUpperCase()]
                    }
                }, {
                    key: "_setListeners",
                    value: function() {
                        var n = this;
                        this.config.trigger.split(" ").forEach(function(t) {
                            var e;
                            "click" === t ? Ot.on(n._element, n.constructor.Event.CLICK, n.config.selector, function(t) {
                                return n.toggle(t)
                            }) : "manual" !== t && (e = t === zi ? n.constructor.Event.MOUSEENTER : n.constructor.Event.FOCUSIN, t = t === zi ? n.constructor.Event.MOUSELEAVE : n.constructor.Event.FOCUSOUT, Ot.on(n._element, e, n.config.selector, function(t) {
                                return n._enter(t)
                            }), Ot.on(n._element, t, n.config.selector, function(t) {
                                return n._leave(t)
                            }))
                        }), this._hideModalHandler = function() {
                            n._element && n.hide()
                        }, Ot.on(this._element.closest(".".concat("modal")), "hide.bs.modal", this._hideModalHandler), this.config.selector ? this.config = Oi(Oi({}, this.config), {}, {
                            trigger: "manual",
                            selector: ""
                        }) : this._fixTitle()
                    }
                }, {
                    key: "_fixTitle",
                    value: function() {
                        var t = this._element.getAttribute("title"),
                            e = Ei(this._element.getAttribute("data-mdb-original-title"));
                        !t && "string" === e || (this._element.setAttribute("data-mdb-original-title", t || ""), !t || this._element.getAttribute("aria-label") || this._element.textContent || this._element.setAttribute("aria-label", t), this._element.setAttribute("title", ""))
                    }
                }, {
                    key: "_enter",
                    value: function(t, e) {
                        e = this._initializeOnDelegatedTarget(t, e), t && (e._activeTrigger["focusin" === t.type ? Ki : zi] = !0), e.getTipElement().classList.contains(Fi) || e._hoverState === Qi ? e._hoverState = Qi : (clearTimeout(e._timeout), e._hoverState = Qi, e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function() {
                            e._hoverState === Qi && e.show()
                        }, e.config.delay.show) : e.show())
                    }
                }, {
                    key: "_leave",
                    value: function(t, e) {
                        e = this._initializeOnDelegatedTarget(t, e), t && (e._activeTrigger["focusout" === t.type ? Ki : zi] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = "out", e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function() {
                            "out" === e._hoverState && e.hide()
                        }, e.config.delay.hide) : e.hide())
                    }
                }, {
                    key: "_isWithActiveTrigger",
                    value: function() {
                        for (var t in this._activeTrigger)
                            if (this._activeTrigger[t]) return !0;
                        return !1
                    }
                }, {
                    key: "_getConfig",
                    value: function(t) {
                        var e = re.getDataAttributes(this._element);
                        return Object.keys(e).forEach(function(t) {
                            Ni.has(t) && delete e[t]
                        }), t && "object" === Ei(t.container) && t.container.jquery && (t.container = t.container[0]), "number" == typeof(t = Oi(Oi(Oi({}, this.constructor.Default), e), "object" === Ei(t) && t ? t : {})).delay && (t.delay = {
                            show: t.delay,
                            hide: t.delay
                        }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), K(Ai, t, this.constructor.DefaultType), t.sanitize && (t.template = _i(t.template, t.allowList, t.sanitizeFn)), t
                    }
                }, {
                    key: "_getDelegateConfig",
                    value: function() {
                        var t = {};
                        if (this.config)
                            for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]);
                        return t
                    }
                }, {
                    key: "_cleanTipClass",
                    value: function() {
                        var e = this.getTipElement(),
                            t = e.getAttribute("class").match(Ii);
                        null !== t && 0 < t.length && t.map(function(t) {
                            return t.trim()
                        }).forEach(function(t) {
                            return e.classList.remove(t)
                        })
                    }
                }, {
                    key: "_handlePopperPlacementChange",
                    value: function(t) {
                        t = t.state;
                        t && (this.tip = t.elements.popper, this._cleanTipClass(), this._addAttachmentClass(this._getAttachment(t.placement)))
                    }
                }]) && Si(t.prototype, e), n && Si(t, n), o
            }();
        rt(Ai, At);
        var Yi = At;

        function qi(t) {
            return (qi = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function Vi(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

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

        function $i(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = Gi(n);
                return t = r ? (t = Gi(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== qi(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function Gi(t) {
            return (Gi = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }

        function Ji(e, t) {
            var n, r = Object.keys(e);
            return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(e), t && (n = n.filter(function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            })), r.push.apply(r, n)), r
        }

        function Zi(r) {
            for (var t = 1; t < arguments.length; t++) {
                var o = null != arguments[t] ? arguments[t] : {};
                t % 2 ? Ji(Object(o), !0).forEach(function(t) {
                    var e, n;
                    e = r, t = o[n = t], n in e ? Object.defineProperty(e, n, {
                        value: t,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0
                    }) : e[n] = t
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : Ji(Object(o)).forEach(function(t) {
                    Object.defineProperty(r, t, Object.getOwnPropertyDescriptor(o, t))
                })
            }
            return r
        }
        var tc = "popover",
            ec = "bs.popover",
            nc = ".".concat(ec),
            rc = "bs-popover",
            oc = new RegExp("(^|\\s)".concat(rc, "\\S+"), "g"),
            ic = Zi(Zi({}, Yi.Default), {}, {
                placement: "right",
                offset: [0, 8],
                trigger: "click",
                content: "",
                template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
            }),
            cc = Zi(Zi({}, Yi.DefaultType), {}, {
                content: "(string|element|function)"
            }),
            ac = {
                HIDE: "hide".concat(nc),
                HIDDEN: "hidden".concat(nc),
                SHOW: "show".concat(nc),
                SHOWN: "shown".concat(nc),
                INSERTED: "inserted".concat(nc),
                CLICK: "click".concat(nc),
                FOCUSIN: "focusin".concat(nc),
                FOCUSOUT: "focusout".concat(nc),
                MOUSEENTER: "mouseenter".concat(nc),
                MOUSELEAVE: "mouseleave".concat(nc)
            },
            e = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && Xi(t, e)
                }(o, Yi);
                var t, e, n, r = $i(o);

                function o() {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), r.apply(this, arguments)
                }
                return t = o, n = [{
                    key: "Default",
                    get: function() {
                        return ic
                    }
                }, {
                    key: "NAME",
                    get: function() {
                        return tc
                    }
                }, {
                    key: "DATA_KEY",
                    get: function() {
                        return ec
                    }
                }, {
                    key: "Event",
                    get: function() {
                        return ac
                    }
                }, {
                    key: "EVENT_KEY",
                    get: function() {
                        return nc
                    }
                }, {
                    key: "DefaultType",
                    get: function() {
                        return cc
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(n) {
                        return this.each(function() {
                            var t = it.getData(this, ec),
                                e = "object" === qi(n) ? n : null;
                            if ((t || !/dispose|hide/.test(n)) && (t || (t = new o(this, e), it.setData(this, ec, t)), "string" == typeof n)) {
                                if (void 0 === t[n]) throw new TypeError('No method named "'.concat(n, '"'));
                                t[n]()
                            }
                        })
                    }
                }], (e = [{
                    key: "isWithContent",
                    value: function() {
                        return this.getTitle() || this._getContent()
                    }
                }, {
                    key: "setContent",
                    value: function() {
                        var t = this.getTipElement();
                        this.setElementContent(ce.findOne(".popover-header", t), this.getTitle());
                        var e = this._getContent();
                        "function" == typeof e && (e = e.call(this._element)), this.setElementContent(ce.findOne(".popover-body", t), e), t.classList.remove("fade", "show")
                    }
                }, {
                    key: "_addAttachmentClass",
                    value: function(t) {
                        this.getTipElement().classList.add("".concat(rc, "-").concat(this.updateAttachment(t)))
                    }
                }, {
                    key: "_getContent",
                    value: function() {
                        return this._element.getAttribute("data-mdb-content") || this.config.content
                    }
                }, {
                    key: "_cleanTipClass",
                    value: function() {
                        var e = this.getTipElement(),
                            t = e.getAttribute("class").match(oc);
                        null !== t && 0 < t.length && t.map(function(t) {
                            return t.trim()
                        }).forEach(function(t) {
                            return e.classList.remove(t)
                        })
                    }
                }]) && Vi(t.prototype, e), n && Vi(t, n), o
            }();
        rt(tc, e);
        var uc = e;

        function sc(t) {
            return (sc = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function lc(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function fc(t, e, n) {
            return (fc = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = hc(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function dc(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = hc(n);
                return t = r ? (t = hc(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== sc(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function hc(t) {
            return (hc = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var yc = "popover",
            At = "mdb.".concat(yc),
            e = ".".concat(At),
            gc = "show.bs.popover",
            vc = "shown.bs.popover",
            mc = "hide.bs.popover",
            bc = "hidden.bs.popover",
            _c = "inserted.bs.popover",
            wc = "show".concat(e),
            Oc = "shown".concat(e),
            Ec = "hide".concat(e),
            jc = "hidden".concat(e),
            kc = "inserted".concat(e),
            Sc = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && pc(t, e)
                }(o, uc);
                var t, e, n, r = dc(o);

                function o(t, e) {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (e = r.call(this, t, e))._init(), e
                }
                return t = o, n = [{
                    key: "NAME",
                    get: function() {
                        return yc
                    }
                }], (e = [{
                    key: "dispose",
                    value: function() {
                        D.off(this.element, gc), D.off(this.element, vc), D.off(this.element, mc), D.off(this.element, bc), D.off(this.element, _c), fc(hc(o.prototype), "dispose", this).call(this)
                    }
                }, {
                    key: "_init",
                    value: function() {
                        this._bindShowEvent(), this._bindShownEvent(), this._bindHideEvent(), this._bindHiddenEvent(), this._bindInsertedEvent()
                    }
                }, {
                    key: "_bindShowEvent",
                    value: function() {
                        var t = this;
                        D.on(this.element, gc, function() {
                            D.trigger(t.element, wc)
                        })
                    }
                }, {
                    key: "_bindShownEvent",
                    value: function() {
                        var t = this;
                        D.on(this.element, vc, function() {
                            D.trigger(t.element, Oc)
                        })
                    }
                }, {
                    key: "_bindHideEvent",
                    value: function() {
                        var t = this;
                        D.on(this.element, mc, function() {
                            D.trigger(t.element, Ec)
                        })
                    }
                }, {
                    key: "_bindHiddenEvent",
                    value: function() {
                        var t = this;
                        D.on(this.element, bc, function() {
                            D.trigger(t.element, jc)
                        })
                    }
                }, {
                    key: "_bindInsertedEvent",
                    value: function() {
                        var t = this;
                        D.on(this.element, _c, function() {
                            D.trigger(t.element, kc)
                        })
                    }
                }]) && lc(t.prototype, e), n && lc(t, n), o
            }();
        Z.find('[data-mdb-toggle="popover"]').forEach(function(t) {
            Sc.getInstance(t) || new Sc(t)
        }), u(function() {
            var t, e = r();
            e && (t = e.fn[yc], e.fn[yc] = Sc.jQueryInterface, e.fn[yc].Constructor = Sc, e.fn[yc].noConflict = function() {
                return e.fn[yc] = t, Sc.jQueryInterface
            })
        });
        var xc = Sc;
        n(112);

        function Pc(t) {
            return (Pc = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function Tc(e, t) {
            var n, r = Object.keys(e);
            return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(e), t && (n = n.filter(function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            })), r.push.apply(r, n)), r
        }

        function Dc(r) {
            for (var t = 1; t < arguments.length; t++) {
                var o = null != arguments[t] ? arguments[t] : {};
                t % 2 ? Tc(Object(o), !0).forEach(function(t) {
                    var e, n;
                    e = r, t = o[n = t], n in e ? Object.defineProperty(e, n, {
                        value: t,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0
                    }) : e[n] = t
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : Tc(Object(o)).forEach(function(t) {
                    Object.defineProperty(r, t, Object.getOwnPropertyDescriptor(o, t))
                })
            }
            return r
        }

        function Ac(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function Cc(t, e, n) {
            return (Cc = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = Ic(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function Rc(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = Ic(n);
                return t = r ? (t = Ic(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== Pc(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function Ic(t) {
            return (Ic = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var Nc = "scrollspy",
            Mc = "bs.scrollspy",
            Hc = ".".concat(Mc),
            Bc = {
                offset: 10,
                method: "auto",
                target: ""
            },
            Uc = {
                offset: "number",
                method: "string",
                target: "(string|element)"
            },
            Wc = "activate".concat(Hc),
            Fc = "scroll".concat(Hc),
            At = "load".concat(Hc).concat(".data-api"),
            Qc = "dropdown-item",
            zc = "active",
            Kc = ".nav-link",
            Yc = ".list-group-item",
            qc = "position",
            Vc = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && Lc(t, e)
                }(o, jt);
                var t, e, n, r = Rc(o);

                function o(t, e) {
                    var n;
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (n = r.call(this, t))._scrollElement = "BODY" === t.tagName ? window : t, n._config = n._getConfig(e), n._selector = "".concat(n._config.target, " ").concat(Kc, ", ").concat(n._config.target, " ").concat(Yc, ", ").concat(n._config.target, " .").concat(Qc), n._offsets = [], n._targets = [], n._activeTarget = null, n._scrollHeight = 0, Ot.on(n._scrollElement, Fc, function() {
                        return n._process()
                    }), n.refresh(), n._process(), n
                }
                return t = o, n = [{
                    key: "Default",
                    get: function() {
                        return Bc
                    }
                }, {
                    key: "DATA_KEY",
                    get: function() {
                        return Mc
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(n) {
                        return this.each(function() {
                            var t = it.getData(this, Mc),
                                e = "object" === Pc(n) && n,
                                t = t || new o(this, e);
                            if ("string" == typeof n) {
                                if (void 0 === t[n]) throw new TypeError('No method named "'.concat(n, '"'));
                                t[n]()
                            }
                        })
                    }
                }], (e = [{
                    key: "refresh",
                    value: function() {
                        var e = this,
                            t = this._scrollElement === this._scrollElement.window ? "offset" : qc,
                            r = "auto" === this._config.method ? t : this._config.method,
                            o = r === qc ? this._getScrollTop() : 0;
                        this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), ce.find(this._selector).map(function(t) {
                            var e = et(t),
                                n = e ? ce.findOne(e) : null;
                            if (n) {
                                t = n.getBoundingClientRect();
                                if (t.width || t.height) return [re[r](n).top + o, e]
                            }
                            return null
                        }).filter(function(t) {
                            return t
                        }).sort(function(t, e) {
                            return t[0] - e[0]
                        }).forEach(function(t) {
                            e._offsets.push(t[0]), e._targets.push(t[1])
                        })
                    }
                }, {
                    key: "dispose",
                    value: function() {
                        Cc(Ic(o.prototype), "dispose", this).call(this), Ot.off(this._scrollElement, Hc), this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null
                    }
                }, {
                    key: "_getConfig",
                    value: function(t) {
                        var e;
                        return "string" != typeof(t = Dc(Dc({}, Bc), "object" === Pc(t) && t ? t : {})).target && Q(t.target) && ((e = t.target.id) || (e = H(Nc), t.target.id = e), t.target = "#".concat(e)), K(Nc, t, Uc), t
                    }
                }, {
                    key: "_getScrollTop",
                    value: function() {
                        return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
                    }
                }, {
                    key: "_getScrollHeight",
                    value: function() {
                        return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
                    }
                }, {
                    key: "_getOffsetHeight",
                    value: function() {
                        return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
                    }
                }, {
                    key: "_process",
                    value: function() {
                        var t = this._getScrollTop() + this._config.offset,
                            e = this._getScrollHeight(),
                            n = this._config.offset + e - this._getOffsetHeight();
                        if (this._scrollHeight !== e && this.refresh(), n <= t) {
                            n = this._targets[this._targets.length - 1];
                            this._activeTarget !== n && this._activate(n)
                        } else {
                            if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear();
                            for (var r = this._offsets.length; r--;) this._activeTarget !== this._targets[r] && t >= this._offsets[r] && (void 0 === this._offsets[r + 1] || t < this._offsets[r + 1]) && this._activate(this._targets[r])
                        }
                    }
                }, {
                    key: "_activate",
                    value: function(e) {
                        this._activeTarget = e, this._clear();
                        var t = this._selector.split(",").map(function(t) {
                                return "".concat(t, '[data-mdb-target="').concat(e, '"],').concat(t, '[href="').concat(e, '"]')
                            }),
                            t = ce.findOne(t.join(","));
                        t.classList.contains(Qc) ? (ce.findOne(".dropdown-toggle", t.closest(".dropdown")).classList.add(zc), t.classList.add(zc)) : (t.classList.add(zc), ce.parents(t, ".nav, .list-group").forEach(function(t) {
                            ce.prev(t, "".concat(Kc, ", ").concat(Yc)).forEach(function(t) {
                                return t.classList.add(zc)
                            }), ce.prev(t, ".nav-item").forEach(function(t) {
                                ce.children(t, Kc).forEach(function(t) {
                                    return t.classList.add(zc)
                                })
                            })
                        })), Ot.trigger(this._scrollElement, Wc, {
                            relatedTarget: e
                        })
                    }
                }, {
                    key: "_clear",
                    value: function() {
                        ce.find(this._selector).filter(function(t) {
                            return t.classList.contains(zc)
                        }).forEach(function(t) {
                            return t.classList.remove(zc)
                        })
                    }
                }]) && Ac(t.prototype, e), n && Ac(t, n), o
            }();
        Ot.on(window, At, function() {
            ce.find('[data-mdb-spy="scroll"]').forEach(function(t) {
                return new Vc(t, re.getDataAttributes(t))
            })
        }), rt(Nc, Vc);
        var Xc = Vc;

        function $c(t) {
            return ($c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function Gc(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function Jc(t, e, n) {
            return (Jc = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = ea(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function ta(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = ea(n);
                return t = r ? (t = ea(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== $c(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function ea(t) {
            return (ea = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var na = "scrollspy",
            e = "mdb.".concat(na),
            At = ".".concat(e),
            ra = "activate.bs.scrollspy",
            oa = "activate".concat(At),
            e = "load".concat(At).concat(".data-api"),
            ia = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && Zc(t, e)
                }(o, Xc);
                var t, e, n, r = ta(o);

                function o(t, e) {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (e = r.call(this, t, e))._scrollElement = "BODY" === t.tagName ? window : t, e._init(), e
                }
                return t = o, n = [{
                    key: "NAME",
                    get: function() {
                        return na
                    }
                }], (e = [{
                    key: "dispose",
                    value: function() {
                        D.off(this._scrollElement, ra), this._scrollElement = null, Jc(ea(o.prototype), "dispose", this).call(this)
                    }
                }, {
                    key: "_init",
                    value: function() {
                        this._bindActivateEvent()
                    }
                }, {
                    key: "_bindActivateEvent",
                    value: function() {
                        var e = this;
                        D.on(this._scrollElement, ra, function(t) {
                            D.trigger(e._scrollElement, oa, {
                                relatedTarget: t.relatedTarget
                            })
                        })
                    }
                }]) && Gc(t.prototype, e), n && Gc(t, n), o
            }();
        D.on(window, e, function() {
            Z.find('[data-mdb-spy="scroll"]').forEach(function(t) {
                ia.getInstance(t) || new ia(t, I.getDataAttributes(t))
            })
        }), u(function() {
            var t, e = r();
            e && (t = e.fn[na], e.fn[na] = ia.jQueryInterface, e.fn[na].Constructor = ia, e.fn[na].noConflict = function() {
                return e.fn[na] = t, ia.jQueryInterface
            })
        });
        var ca = ia;

        function aa(t) {
            return (aa = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function ua(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

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

        function la(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = fa(n);
                return t = r ? (t = fa(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== aa(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function fa(t) {
            return (fa = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var pa = "bs.tab",
            At = ".".concat(pa),
            da = "hide".concat(At),
            ha = "hidden".concat(At),
            ya = "show".concat(At),
            ga = "shown".concat(At),
            e = "click".concat(At).concat(".data-api"),
            va = "active",
            ma = ".active",
            ba = ":scope > li > .active",
            _a = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && sa(t, e)
                }(o, jt);
                var t, e, n, r = la(o);

                function o() {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), r.apply(this, arguments)
                }
                return t = o, n = [{
                    key: "DATA_KEY",
                    get: function() {
                        return pa
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(e) {
                        return this.each(function() {
                            var t = it.getData(this, pa) || new o(this);
                            if ("string" == typeof e) {
                                if (void 0 === t[e]) throw new TypeError('No method named "'.concat(e, '"'));
                                t[e]()
                            }
                        })
                    }
                }], (e = [{
                    key: "show",
                    value: function() {
                        var t, e, n, r, o = this;
                        this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(va) || this._element.classList.contains("disabled") || (t = U(this._element), (r = this._element.closest(".nav, .list-group")) && (n = "UL" === r.nodeName || "OL" === r.nodeName ? ba : ma, e = (e = ce.find(n, r))[e.length - 1]), n = e ? Ot.trigger(e, da, {
                            relatedTarget: this._element
                        }) : null, Ot.trigger(this._element, ya, {
                            relatedTarget: e
                        }).defaultPrevented || null !== n && n.defaultPrevented || (this._activate(this._element, r), r = function() {
                            Ot.trigger(e, ha, {
                                relatedTarget: o._element
                            }), Ot.trigger(o._element, ga, {
                                relatedTarget: e
                            })
                        }, t ? this._activate(t, t.parentNode, r) : r()))
                    }
                }, {
                    key: "_activate",
                    value: function(t, e, n) {
                        var r = this,
                            o = (!e || "UL" !== e.nodeName && "OL" !== e.nodeName ? ce.children(e, ma) : ce.find(ba, e))[0],
                            i = n && o && o.classList.contains("fade"),
                            e = function() {
                                return r._transitionComplete(t, o, n)
                            };
                        o && i ? (i = W(o), o.classList.remove("show"), Ot.one(o, "transitionend", e), z(o, i)) : e()
                    }
                }, {
                    key: "_transitionComplete",
                    value: function(t, e, n) {
                        var r;
                        e && (e.classList.remove(va), (r = ce.findOne(":scope > .dropdown-menu .active", e.parentNode)) && r.classList.remove(va), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1)), t.classList.add(va), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), X(t), t.classList.contains("fade") && t.classList.add("show"), t.parentNode && t.parentNode.classList.contains("dropdown-menu") && (t.closest(".dropdown") && ce.find(".dropdown-toggle").forEach(function(t) {
                            return t.classList.add(va)
                        }), t.setAttribute("aria-expanded", !0)), n && n()
                    }
                }]) && ua(t.prototype, e), n && ua(t, n), o
            }();
        Ot.on(document, e, '[data-mdb-toggle="tab"], [data-mdb-toggle="pill"], [data-mdb-toggle="list"]', function(t) {
            t.preventDefault(), (it.getData(this, pa) || new _a(this)).show()
        }), rt("tab", _a);
        var wa = _a;

        function Oa(t) {
            return (Oa = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function Ea(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function ja(t, e, n) {
            return (ja = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = xa(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function Sa(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = xa(n);
                return t = r ? (t = xa(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== Oa(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function xa(t) {
            return (xa = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var Pa = "tab",
            At = "mdb.".concat(Pa),
            e = ".".concat(At),
            Ta = "show.bs.tab",
            Da = "shown.bs.tab",
            Aa = "hide.bs.tab",
            Ca = "hidden.bs.tab",
            La = "show".concat(e),
            Ra = "shown".concat(e),
            Ia = "hide".concat(e),
            Na = "hidden".concat(e),
            Ma = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && ka(t, e)
                }(o, wa);
                var t, e, n, r = Sa(o);

                function o(t) {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (t = r.call(this, t))._previous = null, t._init(), t
                }
                return t = o, n = [{
                    key: "NAME",
                    get: function() {
                        return Pa
                    }
                }], (e = [{
                    key: "dispose",
                    value: function() {
                        D.off(this._element, Ta), D.off(this._element, Da), ja(xa(o.prototype), "dispose", this).call(this)
                    }
                }, {
                    key: "show",
                    value: function() {
                        var t, e, n, r, o = this;
                        this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains("active") || this._element.classList.contains("disabled") || (t = function(t) {
                            t = i(t);
                            return t ? document.querySelector(t) : null
                        }(this._element), (r = this._element.closest(".nav, .list-group")) && (n = "UL" === r.nodeName || "OL" === r.nodeName ? ":scope > li > .active" : ".active", this._previous = Z.find(n, r), this._previous = this._previous[this._previous.length - 1]), n = e = null, this._previous && (e = D.trigger(this._previous, Aa, {
                            relatedTarget: this._element
                        }), n = D.trigger(this._previous, Ia, {
                            relatedTarget: this._element
                        })), D.trigger(this._element, Ta, {
                            relatedTarget: this._previous
                        }).defaultPrevented || null !== e && e.defaultPrevented || null !== n && n.defaultPrevented || (this._activate(this._element, r), r = function() {
                            D.trigger(o._previous, Ca, {
                                relatedTarget: o._element
                            }), D.trigger(o._previous, Na, {
                                relatedTarget: o._element
                            }), D.trigger(o._element, Da, {
                                relatedTarget: o._previous
                            })
                        }, t ? this._activate(t, t.parentNode, r) : r()))
                    }
                }, {
                    key: "_init",
                    value: function() {
                        this._bindShowEvent(), this._bindShownEvent(), this._bindHideEvent(), this._bindHiddenEvent()
                    }
                }, {
                    key: "_bindShowEvent",
                    value: function() {
                        var e = this;
                        D.on(this._element, Ta, function(t) {
                            D.trigger(e._element, La, {
                                relatedTarget: t.relatedTarget
                            })
                        })
                    }
                }, {
                    key: "_bindShownEvent",
                    value: function() {
                        var e = this;
                        D.on(this._element, Da, function(t) {
                            D.trigger(e._element, Ra, {
                                relatedTarget: t.relatedTarget
                            })
                        })
                    }
                }, {
                    key: "_bindHideEvent",
                    value: function() {
                        var t = this;
                        D.on(this._previous, Aa, function() {
                            D.trigger(t._previous, Ia)
                        })
                    }
                }, {
                    key: "_bindHiddenEvent",
                    value: function() {
                        var t = this;
                        D.on(this._previous, Ca, function() {
                            D.trigger(t._previous, Na)
                        })
                    }
                }]) && Ea(t.prototype, e), n && Ea(t, n), o
            }();
        Z.find('[data-mdb-toggle="tab"], [data-mdb-toggle="pill"], [data-mdb-toggle="list"]').forEach(function(t) {
            Ma.getInstance(t) || new Ma(t)
        }), u(function() {
            var t, e = r();
            e && (t = e.fn.tab, e.fn.tab = Ma.jQueryInterface, e.fn.tab.Constructor = Ma, e.fn.tab.noConflict = function() {
                return e.fn.tab = t, Ma.jQueryInterface
            })
        });
        var Ha = Ma;

        function Ba(t) {
            return (Ba = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function Ua(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function Wa(t, e, n) {
            return (Wa = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = za(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function Qa(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = za(n);
                return t = r ? (t = za(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== Ba(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function za(t) {
            return (za = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var Ka = "tooltip",
            At = "mdb.".concat(Ka),
            e = ".".concat(At),
            Ya = "hide.bs.tooltip",
            qa = "hidden.bs.tooltip",
            Va = "show.bs.tooltip",
            Xa = "shown.bs.tooltip",
            $a = "inserted.bs.tooltip",
            Ga = "hide".concat(e),
            Ja = "hidden".concat(e),
            Za = "show".concat(e),
            tu = "shown".concat(e),
            eu = "inserted".concat(e),
            nu = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && Fa(t, e)
                }(o, Yi);
                var t, e, n, r = Qa(o);

                function o(t, e) {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (e = r.call(this, t, e))._init(), e
                }
                return t = o, n = [{
                    key: "NAME",
                    get: function() {
                        return Ka
                    }
                }], (e = [{
                    key: "dispose",
                    value: function() {
                        D.off(this._element, Va), D.off(this._element, Xa), D.off(this._element, Ya), D.off(this._element, qa), D.off(this._element, $a), Wa(za(o.prototype), "dispose", this).call(this)
                    }
                }, {
                    key: "_init",
                    value: function() {
                        this._bindShowEvent(), this._bindShownEvent(), this._bindHideEvent(), this._bindHiddenEvent(), this._bindHidePreventedEvent()
                    }
                }, {
                    key: "_bindShowEvent",
                    value: function() {
                        var t = this;
                        D.on(this.element, Va, function() {
                            D.trigger(t.element, Za)
                        })
                    }
                }, {
                    key: "_bindShownEvent",
                    value: function() {
                        var t = this;
                        D.on(this.element, Xa, function() {
                            D.trigger(t.element, tu)
                        })
                    }
                }, {
                    key: "_bindHideEvent",
                    value: function() {
                        var t = this;
                        D.on(this.element, Ya, function() {
                            D.trigger(t.element, Ga)
                        })
                    }
                }, {
                    key: "_bindHiddenEvent",
                    value: function() {
                        var t = this;
                        D.on(this.element, qa, function() {
                            D.trigger(t.element, Ja)
                        })
                    }
                }, {
                    key: "_bindHidePreventedEvent",
                    value: function() {
                        var t = this;
                        D.on(this.element, $a, function() {
                            D.trigger(t.element, eu)
                        })
                    }
                }]) && Ua(t.prototype, e), n && Ua(t, n), o
            }();
        Z.find('[data-mdb-toggle="tooltip"]').forEach(function(t) {
            nu.getInstance(t) || new nu(t)
        }), u(function() {
            var t, e = r();
            e && (t = e.fn[Ka], e.fn[Ka] = nu.jQueryInterface, e.fn[Ka].Constructor = nu, e.fn[Ka].noConflict = function() {
                return e.fn[Ka] = t, nu.jQueryInterface
            })
        });
        var ru = nu;

        function ou(t) {
            return (ou = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function iu(e, t) {
            var n, r = Object.keys(e);
            return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(e), t && (n = n.filter(function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            })), r.push.apply(r, n)), r
        }

        function cu(r) {
            for (var t = 1; t < arguments.length; t++) {
                var o = null != arguments[t] ? arguments[t] : {};
                t % 2 ? iu(Object(o), !0).forEach(function(t) {
                    var e, n;
                    e = r, t = o[n = t], n in e ? Object.defineProperty(e, n, {
                        value: t,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0
                    }) : e[n] = t
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : iu(Object(o)).forEach(function(t) {
                    Object.defineProperty(r, t, Object.getOwnPropertyDescriptor(o, t))
                })
            }
            return r
        }

        function au(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function uu(t, e, n) {
            return (uu = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = fu(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function lu(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = fu(n);
                return t = r ? (t = fu(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== ou(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function fu(t) {
            return (fu = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var pu = "bs.toast",
            At = ".".concat(pu),
            du = "click.dismiss".concat(At),
            hu = "hide".concat(At),
            yu = "hidden".concat(At),
            gu = "show".concat(At),
            vu = "shown".concat(At),
            mu = "show",
            bu = "showing",
            _u = {
                animation: "boolean",
                autohide: "boolean",
                delay: "number"
            },
            wu = {
                animation: !0,
                autohide: !0,
                delay: 5e3
            },
            e = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && su(t, e)
                }(o, jt);
                var t, e, n, r = lu(o);

                function o(t, e) {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (t = r.call(this, t))._config = t._getConfig(e), t._timeout = null, t._setListeners(), t
                }
                return t = o, n = [{
                    key: "DefaultType",
                    get: function() {
                        return _u
                    }
                }, {
                    key: "Default",
                    get: function() {
                        return wu
                    }
                }, {
                    key: "DATA_KEY",
                    get: function() {
                        return pu
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(n) {
                        return this.each(function() {
                            var t = it.getData(this, pu),
                                e = "object" === ou(n) && n,
                                t = t || new o(this, e);
                            if ("string" == typeof n) {
                                if (void 0 === t[n]) throw new TypeError('No method named "'.concat(n, '"'));
                                t[n](this)
                            }
                        })
                    }
                }], (e = [{
                    key: "show",
                    value: function() {
                        var t, e, n = this;
                        Ot.trigger(this._element, gu).defaultPrevented || (this._clearTimeout(), this._config.animation && this._element.classList.add("fade"), t = function() {
                            n._element.classList.remove(bu), n._element.classList.add(mu), Ot.trigger(n._element, vu), n._config.autohide && (n._timeout = setTimeout(function() {
                                n.hide()
                            }, n._config.delay))
                        }, this._element.classList.remove("hide"), X(this._element), this._element.classList.add(bu), this._config.animation ? (e = W(this._element), Ot.one(this._element, "transitionend", t), z(this._element, e)) : t())
                    }
                }, {
                    key: "hide",
                    value: function() {
                        var t, e, n = this;
                        this._element.classList.contains(mu) && (Ot.trigger(this._element, hu).defaultPrevented || (t = function() {
                            n._element.classList.add("hide"), Ot.trigger(n._element, yu)
                        }, this._element.classList.remove(mu), this._config.animation ? (e = W(this._element), Ot.one(this._element, "transitionend", t), z(this._element, e)) : t()))
                    }
                }, {
                    key: "dispose",
                    value: function() {
                        this._clearTimeout(), this._element.classList.contains(mu) && this._element.classList.remove(mu), Ot.off(this._element, du), uu(fu(o.prototype), "dispose", this).call(this), this._config = null
                    }
                }, {
                    key: "_getConfig",
                    value: function(t) {
                        return t = cu(cu(cu({}, wu), re.getDataAttributes(this._element)), "object" === ou(t) && t ? t : {}), K("toast", t, this.constructor.DefaultType), t
                    }
                }, {
                    key: "_setListeners",
                    value: function() {
                        var t = this;
                        Ot.on(this._element, du, '[data-mdb-dismiss="toast"]', function() {
                            return t.hide()
                        })
                    }
                }, {
                    key: "_clearTimeout",
                    value: function() {
                        clearTimeout(this._timeout), this._timeout = null
                    }
                }]) && au(t.prototype, e), n && au(t, n), o
            }();
        rt("toast", e);
        var Ou = e;

        function Eu(t) {
            return (Eu = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function ju(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function ku(t, e, n) {
            return (ku = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = Pu(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function xu(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = Pu(n);
                return t = r ? (t = Pu(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== Eu(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function Pu(t) {
            return (Pu = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var Tu = "toast",
            At = "mdb.".concat(Tu),
            e = ".".concat(At),
            Du = "show.bs.toast",
            Au = "shown.bs.toast",
            Cu = "hide.bs.toast",
            Lu = "hidden.bs.toast",
            Ru = "show".concat(e),
            Iu = "shown".concat(e),
            Nu = "hide".concat(e),
            Mu = "hidden".concat(e),
            Hu = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && Su(t, e)
                }(o, Ou);
                var t, e, n, r = xu(o);

                function o(t, e) {
                    return function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (e = r.call(this, t, e))._init(), e
                }
                return t = o, n = [{
                    key: "NAME",
                    get: function() {
                        return Tu
                    }
                }], (e = [{
                    key: "dispose",
                    value: function() {
                        D.off(this._element, Du), D.off(this._element, Au), D.off(this._element, Cu), D.off(this._element, Lu), ku(Pu(o.prototype), "dispose", this).call(this)
                    }
                }, {
                    key: "_init",
                    value: function() {
                        this._bindShowEvent(), this._bindShownEvent(), this._bindHideEvent(), this._bindHiddenEvent()
                    }
                }, {
                    key: "_bindShowEvent",
                    value: function() {
                        var t = this;
                        D.on(this._element, Du, function() {
                            D.trigger(t._element, Ru)
                        })
                    }
                }, {
                    key: "_bindShownEvent",
                    value: function() {
                        var t = this;
                        D.on(this._element, Au, function() {
                            D.trigger(t._element, Iu)
                        })
                    }
                }, {
                    key: "_bindHideEvent",
                    value: function() {
                        var t = this;
                        D.on(this._element, Cu, function() {
                            D.trigger(t._element, Nu)
                        })
                    }
                }, {
                    key: "_bindHiddenEvent",
                    value: function() {
                        var t = this;
                        D.on(this._element, Lu, function() {
                            D.trigger(t._element, Mu)
                        })
                    }
                }]) && ju(t.prototype, e), n && ju(t, n), o
            }();
        Z.find(".toast").forEach(function(t) {
            Hu.getInstance(t) || new Hu(t)
        }), u(function() {
            var t, e = r();
            e && (t = e.fn[Tu], e.fn[Tu] = Hu.jQueryInterface, e.fn[Tu].Constructor = Hu, e.fn[Tu].noConflict = function() {
                return e.fn[Tu] = t, Hu.jQueryInterface
            })
        });
        var Bu = Hu;
        n(140);

        function Uu(t) {
            return (Uu = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function Wu(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }
        var Fu = "input",
            Qu = "mdb.input",
            At = "form-outline",
            zu = "active",
            Ku = "form-notch",
            Yu = "form-notch-leading",
            qu = "form-notch-middle",
            Vu = ".".concat(At, " input"),
            Xu = ".".concat(At, " textarea"),
            $u = ".".concat(Ku),
            Gu = ".".concat(Yu),
            Ju = ".".concat(qu),
            Zu = ".".concat("form-helper"),
            ts = function() {
                function o(t) {
                    ! function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), this._element = t, this._label = null, this._labelWidth = 0, this._labelMarginLeft = 0, this._notchLeading = null, this._notchMiddle = null, this._notchTrailing = null, this._initiated = !1, this._helper = null, this._counter = !1, this._counterElement = null, this._maxLength = 0, this._leadingIcon = null, this._element && (p.setData(t, Qu, this), this.init())
                }
                var t, e, n;
                return t = o, n = [{
                    key: "NAME",
                    get: function() {
                        return Fu
                    }
                }, {
                    key: "activate",
                    value: function(e) {
                        return function(t) {
                            e._activate(t)
                        }
                    }
                }, {
                    key: "deactivate",
                    value: function(e) {
                        return function(t) {
                            e._deactivate(t)
                        }
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(n, r) {
                        return this.each(function() {
                            var t = p.getData(this, Qu),
                                e = "object" === Uu(n) && n;
                            if ((t || !/dispose/.test(n)) && (t = t || new o(this), "string" == typeof n)) {
                                if (void 0 === t[n]) throw new TypeError('No method named "'.concat(n, '"'));
                                t[n](r)
                            }
                        })
                    }
                }, {
                    key: "getInstance",
                    value: function(t) {
                        return p.getData(t, Qu)
                    }
                }], (e = [{
                    key: "input",
                    get: function() {
                        return Z.findOne("input", this._element) || Z.findOne("textarea", this._element)
                    }
                }, {
                    key: "init",
                    value: function() {
                        this._initiated || (this._getLabelData(), this._applyDivs(), this._applyNotch(), this._activate(), this._getHelper(), this._getCounter(), this._initiated = !0)
                    }
                }, {
                    key: "update",
                    value: function() {
                        this._getLabelData(), this._getNotchData(), this._applyNotch(), this._activate(), this._getHelper(), this._getCounter()
                    }
                }, {
                    key: "forceActive",
                    value: function() {
                        I.addClass(this.input, zu)
                    }
                }, {
                    key: "forceInactive",
                    value: function() {
                        I.removeClass(this.input, zu)
                    }
                }, {
                    key: "dispose",
                    value: function() {
                        this._removeBorder(), p.removeData(this._element, Qu), this._element = null
                    }
                }, {
                    key: "_getLabelData",
                    value: function() {
                        this._label = Z.findOne("label", this._element), null === this._label ? this._showPlaceholder() : (this._getLabelWidth(), this._getLabelPositionInInputGroup())
                    }
                }, {
                    key: "_getHelper",
                    value: function() {
                        this._helper = Z.findOne(Zu, this._element)
                    }
                }, {
                    key: "_getCounter",
                    value: function() {
                        this._counter = I.getDataAttribute(this.input, "showcounter"), this._counter && (this._maxLength = this.input.maxLength, this._showCounter())
                    }
                }, {
                    key: "_showCounter",
                    value: function() {
                        this._counterElement = document.createElement("div"), I.addClass(this._counterElement, "form-counter");
                        var t = this.input.value.length;
                        this._counterElement.innerHTML = "".concat(t, " / ").concat(this._maxLength), this._helper.appendChild(this._counterElement), this._bindCounter()
                    }
                }, {
                    key: "_bindCounter",
                    value: function() {
                        var e = this;
                        D.on(this.input, "input", function() {
                            var t = e.input.value.length;
                            e._counterElement.innerHTML = "".concat(t, " / ").concat(e._maxLength)
                        })
                    }
                }, {
                    key: "_showPlaceholder",
                    value: function() {
                        I.addClass(this.input, "placeholder-active")
                    }
                }, {
                    key: "_getNotchData",
                    value: function() {
                        this._notchMiddle = Z.findOne(Ju, this._element), this._notchLeading = Z.findOne(Gu, this._element)
                    }
                }, {
                    key: "_getLabelWidth",
                    value: function() {
                        this._labelWidth = .8 * this._label.clientWidth + 8
                    }
                }, {
                    key: "_getLabelPositionInInputGroup",
                    value: function() {
                        var t;
                        this._labelMarginLeft = 0, this._element.classList.contains("input-group") && (t = this.input, t = Z.prev(t, ".input-group-text")[0], this._labelMarginLeft = void 0 === t ? 0 : t.offsetWidth - 1)
                    }
                }, {
                    key: "_applyDivs",
                    value: function() {
                        var t = s("div");
                        I.addClass(t, Ku), this._notchLeading = s("div"), I.addClass(this._notchLeading, Yu), this._notchMiddle = s("div"), I.addClass(this._notchMiddle, qu), this._notchTrailing = s("div"), I.addClass(this._notchTrailing, "form-notch-trailing"), t.append(this._notchLeading), t.append(this._notchMiddle), t.append(this._notchTrailing), this._element.append(t)
                    }
                }, {
                    key: "_applyNotch",
                    value: function() {
                        this._notchMiddle.style.width = "".concat(this._labelWidth, "px"), this._notchLeading.style.width = "".concat(this._labelMarginLeft + 9, "px"), null !== this._label && (this._label.style.marginLeft = "".concat(this._labelMarginLeft, "px"))
                    }
                }, {
                    key: "_removeBorder",
                    value: function() {
                        var t = Z.findOne($u, this._element);
                        t && t.remove()
                    }
                }, {
                    key: "_activate",
                    value: function(e) {
                        var n = this;
                        u(function() {
                            n._getElements(e);
                            var t = e ? e.target : n.input;
                            "" !== t.value && I.addClass(t, zu)
                        })
                    }
                }, {
                    key: "_getElements",
                    value: function(t) {
                        var e;
                        t && (this._element = t.target.parentNode, this._label = Z.findOne("label", this._element)), t && this._label && (e = this._labelWidth, this._getLabelData(), e !== this._labelWidth && (this._notchMiddle = Z.findOne(".form-notch-middle", t.target.parentNode), this._notchLeading = Z.findOne(Gu, t.target.parentNode), this._applyNotch()))
                    }
                }, {
                    key: "_deactivate",
                    value: function(t) {
                        t = t ? t.target : this.input;
                        "" === t.value && t.classList.remove(zu)
                    }
                }]) && Wu(t.prototype, e), n && Wu(t, n), o
            }();
        D.on(document, "focus", Vu, ts.activate(new ts)), D.on(document, "input", Vu, ts.activate(new ts)), D.on(document, "blur", Vu, ts.deactivate(new ts)), D.on(document, "focus", Xu, ts.activate(new ts)), D.on(document, "input", Xu, ts.activate(new ts)), D.on(document, "blur", Xu, ts.deactivate(new ts)), D.on(window, "shown.bs.modal", function(t) {
            Z.find(Vu, t.target).forEach(function(t) {
                t = ts.getInstance(t.parentNode);
                t && t.update()
            }), Z.find(Xu, t.target).forEach(function(t) {
                t = ts.getInstance(t.parentNode);
                t && t.update()
            })
        }), D.on(window, "shown.bs.dropdown", function(t) {
            t = t.target.parentNode.querySelector(".dropdown-menu");
            t && (Z.find(Vu, t).forEach(function(t) {
                t = ts.getInstance(t.parentNode);
                t && t.update()
            }), Z.find(Xu, t).forEach(function(t) {
                t = ts.getInstance(t.parentNode);
                t && t.update()
            }))
        }), D.on(window, "shown.bs.tab", function(t) {
            t = t.target.href.split("#")[1], t = Z.findOne("#".concat(t));
            Z.find(Vu, t).forEach(function(t) {
                t = ts.getInstance(t.parentNode);
                t && t.update()
            }), Z.find(Xu, t).forEach(function(t) {
                t = ts.getInstance(t.parentNode);
                t && t.update()
            })
        }), Z.find(".".concat(At)).map(function(t) {
            return new ts(t)
        }), D.on(window, "reset", function(t) {
            Z.find(Vu, t.target).forEach(function(t) {
                t = ts.getInstance(t.parentNode);
                t && t.forceInactive()
            }), Z.find(Xu, t.target).forEach(function(t) {
                t = ts.getInstance(t.parentNode);
                t && t.forceInactive()
            })
        }), D.on(window, "onautocomplete", function(t) {
            var e = ts.getInstance(t.target.parentNode);
            e && t.cancelable && e.forceActive()
        }), u(function() {
            var t, e = r();
            e && (t = e.fn[Fu], e.fn[Fu] = ts.jQueryInterface, e.fn[Fu].Constructor = ts, e.fn[Fu].noConflict = function() {
                return e.fn[Fu] = t, ts.jQueryInterface
            })
        });
        var es = ts;
        n(141);

        function ns(e, t) {
            var n, r = Object.keys(e);
            return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(e), t && (n = n.filter(function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            })), r.push.apply(r, n)), r
        }

        function rs(r) {
            for (var t = 1; t < arguments.length; t++) {
                var o = null != arguments[t] ? arguments[t] : {};
                t % 2 ? ns(Object(o), !0).forEach(function(t) {
                    var e, n;
                    e = r, t = o[n = t], n in e ? Object.defineProperty(e, n, {
                        value: t,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0
                    }) : e[n] = t
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : ns(Object(o)).forEach(function(t) {
                    Object.defineProperty(r, t, Object.getOwnPropertyDescriptor(o, t))
                })
            }
            return r
        }

        function os(t) {
            return function(t) {
                if (Array.isArray(t)) return is(t)
            }(t) || function(t) {
                if ("undefined" != typeof Symbol && Symbol.iterator in Object(t)) return Array.from(t)
            }(t) || function(t, e) {
                if (!t) return;
                if ("string" == typeof t) return is(t, e);
                var n = Object.prototype.toString.call(t).slice(8, -1);
                "Object" === n && t.constructor && (n = t.constructor.name);
                if ("Map" === n || "Set" === n) return Array.from(t);
                if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return is(t, e)
            }(t) || function() {
                throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
            }()
        }

        function is(t, e) {
            (null == e || e > t.length) && (e = t.length);
            for (var n = 0, r = new Array(e); n < e; n++) r[n] = t[n];
            return r
        }

        function cs(t) {
            return (cs = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function as(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function us(t, e, n) {
            return (us = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = fs(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function ls(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = fs(n);
                return t = r ? (t = fs(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== cs(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function fs(t) {
            return (fs = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var ps = "dropdown",
            ds = "bs.dropdown",
            hs = ".".concat(ds),
            e = ".data-api",
            ys = "Escape",
            gs = "ArrowUp",
            vs = "ArrowDown",
            ms = new RegExp("".concat(gs, "|").concat(vs, "|").concat(ys)),
            bs = "hide".concat(hs),
            _s = "hidden".concat(hs),
            ws = "show".concat(hs),
            Os = "shown".concat(hs),
            Es = "click".concat(hs),
            At = "click".concat(hs).concat(e),
            n = "keydown".concat(hs).concat(e),
            e = "keyup".concat(hs).concat(e),
            js = "disabled",
            ks = "show",
            Ss = '[data-mdb-toggle="dropdown"]',
            xs = ".dropdown-menu",
            Ps = nt ? "top-end" : "top-start",
            Ts = nt ? "top-start" : "top-end",
            Ds = nt ? "bottom-end" : "bottom-start",
            As = nt ? "bottom-start" : "bottom-end",
            Cs = nt ? "left-start" : "right-start",
            Ls = nt ? "right-start" : "left-start",
            Rs = {
                offset: [0, 2],
                flip: !0,
                boundary: "clippingParents",
                reference: "toggle",
                display: "dynamic",
                popperConfig: null
            },
            Is = {
                offset: "(array|string|function)",
                flip: "boolean",
                boundary: "(string|element)",
                reference: "(string|element|object)",
                display: "string",
                popperConfig: "(null|object|function)"
            },
            Ns = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && ss(t, e)
                }(i, jt);
                var t, e, n, r = ls(i);

                function i(t, e) {
                    return function(t) {
                        if (!(t instanceof i)) throw new TypeError("Cannot call a class as a function")
                    }(this), (t = r.call(this, t))._popper = null, t._config = t._getConfig(e), t._menu = t._getMenuElement(), t._inNavbar = t._detectNavbar(), t._addEventListeners(), t
                }
                return t = i, n = [{
                    key: "Default",
                    get: function() {
                        return Rs
                    }
                }, {
                    key: "DefaultType",
                    get: function() {
                        return Is
                    }
                }, {
                    key: "DATA_KEY",
                    get: function() {
                        return ds
                    }
                }, {
                    key: "dropdownInterface",
                    value: function(t, e) {
                        var n = it.getData(t, ds),
                            r = "object" === cs(e) ? e : null,
                            n = n || new i(t, r);
                        if ("string" == typeof e) {
                            if (void 0 === n[e]) throw new TypeError('No method named "'.concat(e, '"'));
                            n[e]()
                        }
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(t) {
                        return this.each(function() {
                            i.dropdownInterface(this, t)
                        })
                    }
                }, {
                    key: "clearMenus",
                    value: function(t) {
                        if (!t || 2 !== t.button && ("keyup" !== t.type || "Tab" === t.key))
                            for (var e = ce.find(Ss), n = 0, r = e.length; n < r; n++) {
                                var o, i, c = it.getData(e[n], ds),
                                    a = {
                                        relatedTarget: e[n]
                                    };
                                t && "click" === t.type && (a.clickEvent = t), c && (o = c._menu, e[n].classList.contains(ks) && (t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && "Tab" === t.key) && o.contains(t.target) || Ot.trigger(e[n], bs, a).defaultPrevented || ("ontouchstart" in document.documentElement && (i = []).concat.apply(i, os(document.body.children)).forEach(function(t) {
                                    return Ot.off(t, "mouseover", null, V())
                                }), e[n].setAttribute("aria-expanded", "false"), c._popper && c._popper.destroy(), o.classList.remove(ks), e[n].classList.remove(ks), re.removeDataAttribute(o, "popper"), Ot.trigger(e[n], _s, a))))
                            }
                    }
                }, {
                    key: "getParentFromElement",
                    value: function(t) {
                        return U(t) || t.parentNode
                    }
                }, {
                    key: "dataApiKeydownHandler",
                    value: function(t) {
                        if ((/input|textarea/i.test(t.target.tagName) ? !("Space" === t.key || t.key !== ys && (t.key !== vs && t.key !== gs || t.target.closest(xs))) : ms.test(t.key)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !this.classList.contains(js))) {
                            var e = i.getParentFromElement(this),
                                n = this.classList.contains(ks);
                            if (t.key === ys) return (this.matches(Ss) ? this : ce.prev(this, Ss)[0]).focus(), void i.clearMenus();
                            n || t.key !== gs && t.key !== vs ? n && "Space" !== t.key ? (n = ce.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", e).filter(Y)).length && (e = n.indexOf(t.target), t.key === gs && 0 < e && e--, t.key === vs && e < n.length - 1 && e++, n[e = -1 === e ? 0 : e].focus()) : i.clearMenus() : (this.matches(Ss) ? this : ce.prev(this, Ss)[0]).click()
                        }
                    }
                }], (e = [{
                    key: "toggle",
                    value: function() {
                        var t;
                        this._element.disabled || this._element.classList.contains(js) || (t = this._element.classList.contains(ks), i.clearMenus(), t || this.show())
                    }
                }, {
                    key: "show",
                    value: function() {
                        if (!(this._element.disabled || this._element.classList.contains(js) || this._menu.classList.contains(ks))) {
                            var t = i.getParentFromElement(this._element),
                                e = {
                                    relatedTarget: this._element
                                };
                            if (!Ot.trigger(this._element, ws, e).defaultPrevented) {
                                if (this._inNavbar) re.setDataAttribute(this._menu, "popper", "none");
                                else {
                                    if (void 0 === c) throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");
                                    var n = this._element;
                                    "parent" === this._config.reference ? n = t : Q(this._config.reference) ? (n = this._config.reference, void 0 !== this._config.reference.jquery && (n = this._config.reference[0])) : "object" === cs(this._config.reference) && (n = this._config.reference);
                                    var r = this._getPopperConfig(),
                                        o = r.modifiers.find(function(t) {
                                            return "applyStyles" === t.name && !1 === t.enabled
                                        });
                                    this._popper = di(n, this._menu, r), o && re.setDataAttribute(this._menu, "popper", "static")
                                }
                                "ontouchstart" in document.documentElement && !t.closest(".navbar-nav") && (t = []).concat.apply(t, os(document.body.children)).forEach(function(t) {
                                    return Ot.on(t, "mouseover", null, V())
                                }), this._element.focus(), this._element.setAttribute("aria-expanded", !0), this._menu.classList.toggle(ks), this._element.classList.toggle(ks), Ot.trigger(this._element, Os, e)
                            }
                        }
                    }
                }, {
                    key: "hide",
                    value: function() {
                        var t;
                        this._element.disabled || this._element.classList.contains(js) || !this._menu.classList.contains(ks) || (t = {
                            relatedTarget: this._element
                        }, Ot.trigger(this._element, bs, t).defaultPrevented || (this._popper && this._popper.destroy(), this._menu.classList.toggle(ks), this._element.classList.toggle(ks), re.removeDataAttribute(this._menu, "popper"), Ot.trigger(this._element, _s, t)))
                    }
                }, {
                    key: "dispose",
                    value: function() {
                        us(fs(i.prototype), "dispose", this).call(this), Ot.off(this._element, hs), this._menu = null, this._popper && (this._popper.destroy(), this._popper = null)
                    }
                }, {
                    key: "update",
                    value: function() {
                        this._inNavbar = this._detectNavbar(), this._popper && this._popper.update()
                    }
                }, {
                    key: "_addEventListeners",
                    value: function() {
                        var e = this;
                        Ot.on(this._element, Es, function(t) {
                            t.preventDefault(), t.stopPropagation(), e.toggle()
                        })
                    }
                }, {
                    key: "_getConfig",
                    value: function(t) {
                        if (t = rs(rs(rs({}, this.constructor.Default), re.getDataAttributes(this._element)), t), K(ps, t, this.constructor.DefaultType), "object" === cs(t.reference) && !Q(t.reference) && "function" != typeof t.reference.getBoundingClientRect) throw new TypeError("".concat(ps.toUpperCase(), ': Option "reference" provided type "object" without a required "getBoundingClientRect" method.'));
                        return t
                    }
                }, {
                    key: "_getMenuElement",
                    value: function() {
                        return ce.next(this._element, xs)[0]
                    }
                }, {
                    key: "_getPlacement",
                    value: function() {
                        var t = this._element.parentNode;
                        if (t.classList.contains("dropend")) return Cs;
                        if (t.classList.contains("dropstart")) return Ls;
                        var e = "end" === getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();
                        return t.classList.contains("dropup") ? e ? Ts : Ps : e ? As : Ds
                    }
                }, {
                    key: "_detectNavbar",
                    value: function() {
                        return null !== this._element.closest(".".concat("navbar"))
                    }
                }, {
                    key: "_getOffset",
                    value: function() {
                        var e = this,
                            n = this._config.offset;
                        return "string" == typeof n ? n.split(",").map(function(t) {
                            return Number.parseInt(t, 10)
                        }) : "function" == typeof n ? function(t) {
                            return n(t, e._element)
                        } : n
                    }
                }, {
                    key: "_getPopperConfig",
                    value: function() {
                        var t = {
                            placement: this._getPlacement(),
                            modifiers: [{
                                name: "preventOverflow",
                                options: {
                                    altBoundary: this._config.flip,
                                    boundary: this._config.boundary
                                }
                            }, {
                                name: "offset",
                                options: {
                                    offset: this._getOffset()
                                }
                            }]
                        };
                        return "static" === this._config.display && (t.modifiers = [{
                            name: "applyStyles",
                            enabled: !1
                        }]), rs(rs({}, t), "function" == typeof this._config.popperConfig ? this._config.popperConfig(t) : this._config.popperConfig)
                    }
                }]) && as(t.prototype, e), n && as(t, n), i
            }();
        Ot.on(document, n, Ss, Ns.dataApiKeydownHandler), Ot.on(document, n, xs, Ns.dataApiKeydownHandler), Ot.on(document, At, Ns.clearMenus), Ot.on(document, e, Ns.clearMenus), Ot.on(document, At, Ss, function(t) {
            t.preventDefault(), t.stopPropagation(), Ns.dropdownInterface(this, "toggle")
        }), Ot.on(document, At, ".dropdown form", function(t) {
            return t.stopPropagation()
        }), rt(ps, Ns);
        var Ms = Ns;

        function Hs(t) {
            return (Hs = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function Bs(e, t) {
            var n, r = Object.keys(e);
            return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(e), t && (n = n.filter(function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            })), r.push.apply(r, n)), r
        }

        function Us(r) {
            for (var t = 1; t < arguments.length; t++) {
                var o = null != arguments[t] ? arguments[t] : {};
                t % 2 ? Bs(Object(o), !0).forEach(function(t) {
                    var e, n;
                    e = r, t = o[n = t], n in e ? Object.defineProperty(e, n, {
                        value: t,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0
                    }) : e[n] = t
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : Bs(Object(o)).forEach(function(t) {
                    Object.defineProperty(r, t, Object.getOwnPropertyDescriptor(o, t))
                })
            }
            return r
        }

        function Ws(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }

        function Fs(t, e, n) {
            return (Fs = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
                t = function(t, e) {
                    for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = Ks(t)););
                    return t
                }(t, e);
                if (t) {
                    e = Object.getOwnPropertyDescriptor(t, e);
                    return e.get ? e.get.call(n) : e.value
                }
            })(t, e, n || t)
        }

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

        function zs(n) {
            var r = 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 (t) {
                    return !1
                }
            }();
            return function() {
                var t, e = Ks(n);
                return t = r ? (t = Ks(this).constructor, Reflect.construct(e, arguments, t)) : e.apply(this, arguments), e = this, !(t = t) || "object" !== Hs(t) && "function" != typeof t ? function(t) {
                    if (void 0 !== t) return t;
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                }(e) : t
            }
        }

        function Ks(t) {
            return (Ks = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                return t.__proto__ || Object.getPrototypeOf(t)
            })(t)
        }
        var Ys = "dropdown",
            rt = "mdb.".concat(Ys),
            rt = ".".concat(rt),
            qs = {
                offset: [0, 2],
                flip: !0,
                boundary: "clippingParents",
                reference: "toggle",
                display: "dynamic",
                popperConfig: null,
                dropdownAnimation: "on"
            },
            Vs = {
                offset: "(array|string|function)",
                flip: "boolean",
                boundary: "(string|element)",
                reference: "(string|element|object)",
                display: "string",
                popperConfig: "(null|object|function)",
                dropdownAnimation: "string"
            },
            Xs = "hide.bs.dropdown",
            $s = "hidden.bs.dropdown",
            Gs = "show.bs.dropdown",
            Js = "shown.bs.dropdown",
            Zs = "hide".concat(rt),
            tl = "hidden".concat(rt),
            el = "show".concat(rt),
            nl = "shown".concat(rt),
            rl = "animation",
            ol = "fade-in",
            il = "fade-out",
            cl = function() {
                ! function(t, e) {
                    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }), e && Qs(t, e)
                }(o, Ms);
                var t, e, n, r = zs(o);

                function o(t, e) {
                    ! function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), (t = r.call(this, t, e))._config = t._getConfig(e), t._parent = o.getParentFromElement(t._element), t._menuStyle = "", t._popperPlacement = "", t._mdbPopperConfig = "";
                    e = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
                    return "on" !== t._config.dropdownAnimation || e || t._init(), t
                }
                return t = o, n = [{
                    key: "NAME",
                    get: function() {
                        return Ys
                    }
                }], (e = [{
                    key: "dispose",
                    value: function() {
                        D.off(this._element, Gs), D.off(this._parent, Js), D.off(this._parent, Xs), D.off(this._parent, $s), Fs(Ks(o.prototype), "dispose", this).call(this)
                    }
                }, {
                    key: "_init",
                    value: function() {
                        this._bindShowEvent(), this._bindShownEvent(), this._bindHideEvent(), this._bindHiddenEvent()
                    }
                }, {
                    key: "_getConfig",
                    value: function(t) {
                        t = Us(Us(Us({}, qs), I.getDataAttributes(this._element)), t);
                        return a(Ys, t, Vs), t
                    }
                }, {
                    key: "_getOffset",
                    value: function() {
                        var e = this,
                            n = this._config.offset;
                        return "string" == typeof n ? n.split(",").map(function(t) {
                            return Number.parseInt(t, 10)
                        }) : "function" == typeof n ? function(t) {
                            return n(t, e._element)
                        } : n
                    }
                }, {
                    key: "_getPopperConfig",
                    value: function() {
                        var t = {
                            placement: this._getPlacement(),
                            modifiers: [{
                                name: "preventOverflow",
                                options: {
                                    altBoundary: this._config.flip,
                                    boundary: this._config.boundary
                                }
                            }, {
                                name: "offset",
                                options: {
                                    offset: this._getOffset()
                                }
                            }]
                        };
                        return "static" === this._config.display && (t.modifiers = [{
                            name: "applyStyles",
                            enabled: !1
                        }]), Us(Us({}, t), "function" == typeof this._config.popperConfig ? this._config.popperConfig(t) : this._config.popperConfig)
                    }
                }, {
                    key: "_bindShowEvent",
                    value: function() {
                        var e = this;
                        D.on(this._element, Gs, function(t) {
                            D.trigger(e._element, el, {
                                relatedTarget: t.relatedTarget
                            }), e._dropdownAnimationStart("show")
                        })
                    }
                }, {
                    key: "_bindShownEvent",
                    value: function() {
                        var e = this;
                        D.on(this._parent, Js, function(t) {
                            D.trigger(e._parent, nl, {
                                relatedTarget: t.relatedTarget
                            })
                        })
                    }
                }, {
                    key: "_bindHideEvent",
                    value: function() {
                        var e = this;
                        D.on(this._parent, Xs, function(t) {
                            D.trigger(e._parent, Zs, {
                                relatedTarget: t.relatedTarget
                            }), e._menuStyle = e._menu.style.cssText, e._popperPlacement = e._menu.getAttribute("data-popper-placement"), e._mdbPopperConfig = e._menu.getAttribute("data-mdb-popper")
                        })
                    }
                }, {
                    key: "_bindHiddenEvent",
                    value: function() {
                        var e = this;
                        D.on(this._parent, $s, function(t) {
                            D.trigger(e._parent, tl, {
                                relatedTarget: t.relatedTarget
                            }), "static" !== e._config.display && "" !== e._menuStyle && (e._menu.style.cssText = e._menuStyle), e._menu.setAttribute("data-popper-placement", e._popperPlacement), e._menu.setAttribute("data-mdb-popper", e._mdbPopperConfig), e._dropdownAnimationStart("hide")
                        })
                    }
                }, {
                    key: "_dropdownAnimationStart",
                    value: function(t) {
                        "show" === t ? (this._menu.classList.add(rl, ol), this._menu.classList.remove(il)) : (this._menu.classList.add(rl, il), this._menu.classList.remove(ol)), this._bindAnimationEnd()
                    }
                }, {
                    key: "_bindAnimationEnd",
                    value: function() {
                        var t = this;
                        D.one(this._menu, "animationend", function() {
                            t._menu.classList.remove(rl, il, ol)
                        })
                    }
                }]) && Ws(t.prototype, e), n && Ws(t, n), o
            }();
        Z.find('[data-mdb-toggle="dropdown"]').forEach(function(t) {
            cl.getInstance(t) || new cl(t)
        }), u(function() {
            var t, e = r();
            e && (t = e.fn[Ys], e.fn[Ys] = cl.jQueryInterface, e.fn[Ys].Constructor = cl, e.fn[Ys].noConflict = function() {
                return e.fn[Ys] = t, cl.jQueryInterface
            })
        });
        var al = cl;

        function ul(e, t) {
            var n, r = Object.keys(e);
            return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(e), t && (n = n.filter(function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            })), r.push.apply(r, n)), r
        }

        function sl(r) {
            for (var t = 1; t < arguments.length; t++) {
                var o = null != arguments[t] ? arguments[t] : {};
                t % 2 ? ul(Object(o), !0).forEach(function(t) {
                    var e, n;
                    e = r, t = o[n = t], n in e ? Object.defineProperty(e, n, {
                        value: t,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0
                    }) : e[n] = t
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : ul(Object(o)).forEach(function(t) {
                    Object.defineProperty(r, t, Object.getOwnPropertyDescriptor(o, t))
                })
            }
            return r
        }

        function ll(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }
        var fl = "ripple",
            pl = "mdb.ripple",
            dl = "ripple-surface",
            hl = [".btn", ".ripple"],
            yl = "ripple-surface-unbound",
            gl = [0, 0, 0],
            vl = ["primary", "secondary", "success", "danger", "warning", "info", "light", "dark"],
            ml = {
                rippleCentered: !1,
                rippleColor: "",
                rippleDuration: "500ms",
                rippleRadius: 0,
                rippleUnbound: !1
            },
            bl = {
                rippleCentered: "boolean",
                rippleColor: "string",
                rippleDuration: "string",
                rippleRadius: "number",
                rippleUnbound: "boolean"
            },
            _l = function() {
                function n(t, e) {
                    ! function(t) {
                        if (!(t instanceof n)) throw new TypeError("Cannot call a class as a function")
                    }(this), this._element = t, this._options = this._getConfig(e), this._element && (p.setData(t, pl, this), I.addClass(this._element, dl)), this._clickHandler = this._createRipple.bind(this), this.init()
                }
                var t, e, r;
                return t = n, r = [{
                    key: "NAME",
                    get: function() {
                        return fl
                    }
                }, {
                    key: "autoInitial",
                    value: function(e) {
                        return function(t) {
                            e._autoInit(t)
                        }
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(t) {
                        return this.each(function() {
                            return p.getData(this, pl) ? null : new n(this, t)
                        })
                    }
                }, {
                    key: "getInstance",
                    value: function(t) {
                        return p.getData(t, pl)
                    }
                }], (e = [{
                    key: "init",
                    value: function() {
                        this._addClickEvent(this._element)
                    }
                }, {
                    key: "dispose",
                    value: function() {
                        p.removeData(this._element, pl), D.off(this._element, "click", this._clickHandler), this._element = null, this._options = null
                    }
                }, {
                    key: "_autoInit",
                    value: function(e) {
                        var n = this;
                        hl.forEach(function(t) {
                            Z.closest(e.target, t) && (n._element = Z.closest(e.target, t))
                        }), I.addClass(this._element, dl), this._options = this._getConfig(), this._createRipple(e)
                    }
                }, {
                    key: "_addClickEvent",
                    value: function(t) {
                        D.on(t, "mousedown", this._clickHandler)
                    }
                }, {
                    key: "_createRipple",
                    value: function(t) {
                        var e = t.layerX,
                            n = t.layerY,
                            r = this._element.offsetHeight,
                            o = this._element.offsetWidth,
                            i = this._durationToMsNumber(this._options.rippleDuration),
                            c = {
                                offsetX: this._options.rippleCentered ? r / 2 : e,
                                offsetY: this._options.rippleCentered ? o / 2 : n,
                                height: r,
                                width: o
                            },
                            a = this._getDiameter(c),
                            t = this._options.rippleRadius || a / 2,
                            c = {
                                delay: .5 * i,
                                duration: i - .5 * i
                            },
                            a = {
                                left: this._options.rippleCentered ? "".concat(o / 2 - t, "px") : "".concat(e - t, "px"),
                                top: this._options.rippleCentered ? "".concat(r / 2 - t, "px") : "".concat(n - t, "px"),
                                height: "".concat(2 * this._options.rippleRadius || a, "px"),
                                width: "".concat(2 * this._options.rippleRadius || a, "px"),
                                transitionDelay: "0s, ".concat(c.delay, "ms"),
                                transitionDuration: "".concat(i, "ms, ").concat(c.duration, "ms")
                            },
                            c = s("div");
                        this._createHTMLRipple({
                            wrapper: this._element,
                            ripple: c,
                            styles: a
                        }), this._removeHTMLRipple({
                            ripple: c,
                            duration: i
                        })
                    }
                }, {
                    key: "_createHTMLRipple",
                    value: function(t) {
                        var e = t.wrapper,
                            n = t.ripple,
                            r = t.styles;
                        Object.keys(r).forEach(function(t) {
                            return n.style[t] = r[t]
                        }), n.classList.add("ripple-wave"), "" !== this._options.rippleColor && (this._removeOldColorClasses(e), this._addColor(n, e)), this._toggleUnbound(e), this._appendRipple(n, e)
                    }
                }, {
                    key: "_removeHTMLRipple",
                    value: function(t) {
                        var e = t.ripple,
                            t = t.duration;
                        setTimeout(function() {
                            e && e.remove()
                        }, t)
                    }
                }, {
                    key: "_durationToMsNumber",
                    value: function(t) {
                        return Number(t.replace("ms", "").replace("s", "000"))
                    }
                }, {
                    key: "_getConfig",
                    value: function() {
                        var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {},
                            e = I.getDataAttributes(this._element),
                            t = sl(sl(sl({}, ml), e), t);
                        return a(fl, t, bl), t
                    }
                }, {
                    key: "_getDiameter",
                    value: function(t) {
                        function e(t, e) {
                            return Math.sqrt(Math.pow(t, 2) + Math.pow(e, 2))
                        }
                        var n = t.offsetX,
                            r = t.offsetY,
                            o = t.height,
                            i = t.width,
                            c = r <= o / 2,
                            a = n <= i / 2,
                            u = r === o / 2 && n === i / 2,
                            s = !0 == c && !1 == a,
                            l = !0 == c && !0 == a,
                            t = !1 == c && !0 == a,
                            a = !1 == c && !1 == a,
                            o = {
                                topLeft: e(n, r),
                                topRight: e(i - n, r),
                                bottomLeft: e(n, o - r),
                                bottomRight: e(i - n, o - r)
                            },
                            r = 0;
                        return u || a ? r = o.topLeft : t ? r = o.topRight : l ? r = o.bottomRight : s && (r = o.bottomLeft), 2 * r
                    }
                }, {
                    key: "_appendRipple",
                    value: function(t, e) {
                        e.appendChild(t), setTimeout(function() {
                            I.addClass(t, "active")
                        }, 50)
                    }
                }, {
                    key: "_toggleUnbound",
                    value: function(t) {
                        !0 === this._options.rippleUnbound ? I.addClass(t, yl) : t.classList.remove(yl)
                    }
                }, {
                    key: "_addColor",
                    value: function(t, e) {
                        var n = this;
                        vl.find(function(t) {
                            return t === n._options.rippleColor.toLowerCase()
                        }) ? I.addClass(e, "".concat(dl, "-").concat(this._options.rippleColor.toLowerCase())) : (e = this._colorToRGB(this._options.rippleColor).join(","), e = "rgba({{color}}, 0.2) 0, rgba({{color}}, 0.3) 40%, rgba({{color}}, 0.4) 50%, rgba({{color}}, 0.5) 60%, rgba({{color}}, 0) 70%".split("{{color}}").join("".concat(e)), t.style.backgroundImage = "radial-gradient(circle, ".concat(e, ")"))
                    }
                }, {
                    key: "_removeOldColorClasses",
                    value: function(e) {
                        var t = new RegExp("".concat(dl, "-[a-z]+"), "gi");
                        (e.classList.value.match(t) || []).forEach(function(t) {
                            e.classList.remove(t)
                        })
                    }
                }, {
                    key: "_colorToRGB",
                    value: function(t) {
                        return "transparent" === t.toLowerCase() ? gl : "#" === t[0] ? ((e = t).length < 7 && (e = "#".concat(e[1]).concat(e[1]).concat(e[2]).concat(e[2]).concat(e[3]).concat(e[3])), [parseInt(e.substr(1, 2), 16), parseInt(e.substr(3, 2), 16), parseInt(e.substr(5, 2), 16)]) : (-1 === t.indexOf("rgb") && (n = t, r = document.body.appendChild(document.createElement("fictum")), o = "rgb(1, 2, 3)", r.style.color = o, t = r.style.color !== o ? gl : (r.style.color = n, r.style.color === o || "" === r.style.color ? gl : (n = getComputedStyle(r).color, document.body.removeChild(r), n))), 0 === t.indexOf("rgb") ? ((i = (i = t).match(/[.\d]+/g).map(function(t) {
                            return +Number(t)
                        })).length = 3, i) : gl);
                        var e, n, r, o, i
                    }
                }]) && ll(t.prototype, e), r && ll(t, r), n
            }();
        hl.forEach(function(t) {
            D.one(document, "mousedown", t, _l.autoInitial(new _l))
        }), u(function() {
            var t, e = r();
            e && (t = e.fn[fl], e.fn[fl] = _l.jQueryInterface, e.fn[fl].Constructor = _l, e.fn[fl].noConflict = function() {
                return e.fn[fl] = t, _l.jQueryInterface
            })
        });
        var wl = _l;

        function Ol(t) {
            return (Ol = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            } : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            })(t)
        }

        function El(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }
        var jl = "range",
            kl = "mdb.range",
            Sl = "thumb-active",
            xl = ".".concat("thumb-value"),
            rt = ".".concat("range"),
            Pl = function() {
                function o(t) {
                    ! function(t) {
                        if (!(t instanceof o)) throw new TypeError("Cannot call a class as a function")
                    }(this), this._element = t, this._initiated = !1, this._element && (p.setData(t, kl, this), this.init())
                }
                var t, e, n;
                return t = o, n = [{
                    key: "NAME",
                    get: function() {
                        return jl
                    }
                }, {
                    key: "getInstance",
                    value: function(t) {
                        return p.getData(t, kl)
                    }
                }, {
                    key: "jQueryInterface",
                    value: function(n, r) {
                        return this.each(function() {
                            var t = p.getData(this, kl),
                                e = "object" === Ol(n) && n;
                            if ((t || !/dispose/.test(n)) && (t = t || new o(this), "string" == typeof n)) {
                                if (void 0 === t[n]) throw new TypeError('No method named "'.concat(n, '"'));
                                t[n](r)
                            }
                        })
                    }
                }], (e = [{
                    key: "rangeInput",
                    get: function() {
                        return Z.findOne("input[type=range]", this._element)
                    }
                }, {
                    key: "init",
                    value: function() {
                        this._initiated || (this._addThumb(), this._updateValue(), this._thumbPositionUpdate(), this._handleEvents(), this._initiated = !0)
                    }
                }, {
                    key: "dispose",
                    value: function() {
                        this._disposeEvents(), p.removeData(this._element, kl), this._element = null
                    }
                }, {
                    key: "_addThumb",
                    value: function() {
                        var t = s("span");
                        I.addClass(t, "thumb"), t.innerHTML = '<span class="thumb-value"></span>', this._element.append(t)
                    }
                }, {
                    key: "_updateValue",
                    value: function() {
                        var t = this,
                            e = Z.findOne(xl, this._element);
                        e.textContent = this.rangeInput.value, this.rangeInput.oninput = function() {
                            return e.textContent = t.rangeInput.value
                        }
                    }
                }, {
                    key: "_handleEvents",
                    value: function() {
                        var t = this;
                        D.on(this.rangeInput, "mousedown", function() {
                            return t._showThumb()
                        }), D.on(this.rangeInput, "mouseup", function() {
                            return t._hideThumb()
                        }), D.on(this.rangeInput, "touchstart", function() {
                            return t._showThumb()
                        }), D.on(this.rangeInput, "touchend", function() {
                            return t._hideThumb()
                        }), D.on(this.rangeInput, "input", function() {
                            return t._thumbPositionUpdate()
                        })
                    }
                }, {
                    key: "_disposeEvents",
                    value: function() {
                        D.off(this.rangeInput, "mousedown", this._showThumb), D.off(this.rangeInput, "mouseup", this._hideThumb), D.off(this.rangeInput, "touchstart", this._showThumb), D.off(this.rangeInput, "touchend", this._hideThumb), D.off(this.rangeInput, "input", this._thumbPositionUpdate)
                    }
                }, {
                    key: "_showThumb",
                    value: function() {
                        I.addClass(this._element.lastElementChild, Sl)
                    }
                }, {
                    key: "_hideThumb",
                    value: function() {
                        I.removeClass(this._element.lastElementChild, Sl)
                    }
                }, {
                    key: "_thumbPositionUpdate",
                    value: function() {
                        var t = this.rangeInput,
                            e = t.value,
                            n = t.min || 0,
                            r = t.max || 100,
                            t = this._element.lastElementChild,
                            n = Number(100 * (e - n) / (r - n));
                        t.firstElementChild.textContent = e, I.style(t, {
                            left: "calc(".concat(n, "% + (").concat(8 - .15 * n, "px))")
                        })
                    }
                }]) && El(t.prototype, e), n && El(t, n), o
            }();
        Z.find(rt).map(function(t) {
            return new Pl(t)
        }), u(function() {
            var t, e = r();
            e && (t = e.fn[jl], e.fn[jl] = Pl.jQueryInterface, e.fn[jl].Constructor = Pl, e.fn[jl].noConflict = function() {
                return e.fn[jl] = t, Pl.jQueryInterface
            })
        });
        var Tl = Pl
    }], o.c = r, o.d = function(t, e, n) {
        o.o(t, e) || Object.defineProperty(t, e, {
            enumerable: !0,
            get: n
        })
    }, o.r = function(t) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
            value: "Module"
        }), Object.defineProperty(t, "__esModule", {
            value: !0
        })
    }, o.t = function(e, t) {
        if (1 & t && (e = o(e)), 8 & t) return e;
        if (4 & t && "object" == typeof e && e && e.__esModule) return e;
        var n = Object.create(null);
        if (o.r(n), Object.defineProperty(n, "default", {
                enumerable: !0,
                value: e
            }), 2 & t && "string" != typeof e)
            for (var r in e) o.d(n, r, function(t) {
                return e[t]
            }.bind(null, r));
        return n
    }, o.n = function(t) {
        var e = t && t.__esModule ? function() {
            return t.default
        } : function() {
            return t
        };
        return o.d(e, "a", e), e
    }, o.o = function(t, e) {
        return Object.prototype.hasOwnProperty.call(t, e)
    }, o.p = "", o(o.s = 143);

    function o(t) {
        if (r[t]) return r[t].exports;
        var e = r[t] = {
            i: t,
            l: !1,
            exports: {}
        };
        return n[t].call(e.exports, e, e.exports, o), e.l = !0, e.exports
    }
    var n, r
});
//# sourceMappingURL=mdb.min.js.map

/* wow */
(function() {
    var a, b, c, d, e, f = function(a, b) {
            return function() {
                return a.apply(b, arguments)
            }
        },
        g = [].indexOf || function(a) {
            for (var b = 0, c = this.length; c > b; b++)
                if (b in this && this[b] === a) return b;
            return -1
        };
    b = function() {
        function a() {}
        return a.prototype.extend = function(a, b) {
            var c, d;
            for (c in b) d = b[c], null == a[c] && (a[c] = d);
            return a
        }, a.prototype.isMobile = function(a) {
            return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)
        }, a.prototype.addEvent = function(a, b, c) {
            return null != a.addEventListener ? a.addEventListener(b, c, !1) : null != a.attachEvent ? a.attachEvent("on" + b, c) : a[b] = c
        }, a.prototype.removeEvent = function(a, b, c) {
            return null != a.removeEventListener ? a.removeEventListener(b, c, !1) : null != a.detachEvent ? a.detachEvent("on" + b, c) : delete a[b]
        }, a.prototype.innerHeight = function() {
            return "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight
        }, a
    }(), c = this.WeakMap || this.MozWeakMap || (c = function() {
        function a() {
            this.keys = [], this.values = []
        }
        return a.prototype.get = function(a) {
            var b, c, d, e, f;
            for (f = this.keys, b = d = 0, e = f.length; e > d; b = ++d)
                if (c = f[b], c === a) return this.values[b]
        }, a.prototype.set = function(a, b) {
            var c, d, e, f, g;
            for (g = this.keys, c = e = 0, f = g.length; f > e; c = ++e)
                if (d = g[c], d === a) return void(this.values[c] = b);
            return this.keys.push(a), this.values.push(b)
        }, a
    }()), a = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (a = function() {
        function a() {
            "undefined" != typeof console && null !== console && console.warn("MutationObserver is not supported by your browser."), "undefined" != typeof console && null !== console && console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")
        }
        return a.notSupported = !0, a.prototype.observe = function() {}, a
    }()), d = this.getComputedStyle || function(a) {
        return this.getPropertyValue = function(b) {
            var c;
            return "float" === b && (b = "styleFloat"), e.test(b) && b.replace(e, function(a, b) {
                return b.toUpperCase()
            }), (null != (c = a.currentStyle) ? c[b] : void 0) || null
        }, this
    }, e = /(\-([a-z]){1})/g, this.WOW = function() {
        function e(a) {
            null == a && (a = {}), this.scrollCallback = f(this.scrollCallback, this), this.scrollHandler = f(this.scrollHandler, this), this.start = f(this.start, this), this.scrolled = !0, this.config = this.util().extend(a, this.defaults), this.animationNameCache = new c
        }
        return e.prototype.defaults = {
            boxClass: "wow",
            animateClass: "animated",
            offset: 0,
            mobile: !0,
            live: !0,
            callback: null
        }, e.prototype.init = function() {
            var a;
            return this.element = window.document.documentElement, "interactive" === (a = document.readyState) || "complete" === a ? this.start() : this.util().addEvent(document, "DOMContentLoaded", this.start), this.finished = []
        }, e.prototype.start = function() {
            var b, c, d, e;
            if (this.stopped = !1, this.boxes = function() {
                    var a, c, d, e;
                    for (d = this.element.querySelectorAll("." + this.config.boxClass), e = [], a = 0, c = d.length; c > a; a++) b = d[a], e.push(b);
                    return e
                }.call(this), this.all = function() {
                    var a, c, d, e;
                    for (d = this.boxes, e = [], a = 0, c = d.length; c > a; a++) b = d[a], e.push(b);
                    return e
                }.call(this), this.boxes.length)
                if (this.disabled()) this.resetStyle();
                else
                    for (e = this.boxes, c = 0, d = e.length; d > c; c++) b = e[c], this.applyStyle(b, !0);
            return this.disabled() || (this.util().addEvent(window, "scroll", this.scrollHandler), this.util().addEvent(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50)), this.config.live ? new a(function(a) {
                return function(b) {
                    var c, d, e, f, g;
                    for (g = [], e = 0, f = b.length; f > e; e++) d = b[e], g.push(function() {
                        var a, b, e, f;
                        for (e = d.addedNodes || [], f = [], a = 0, b = e.length; b > a; a++) c = e[a], f.push(this.doSync(c));
                        return f
                    }.call(a));
                    return g
                }
            }(this)).observe(document.body, {
                childList: !0,
                subtree: !0
            }) : void 0
        }, e.prototype.stop = function() {
            return this.stopped = !0, this.util().removeEvent(window, "scroll", this.scrollHandler), this.util().removeEvent(window, "resize", this.scrollHandler), null != this.interval ? clearInterval(this.interval) : void 0
        }, e.prototype.sync = function() {
            return a.notSupported ? this.doSync(this.element) : void 0
        }, e.prototype.doSync = function(a) {
            var b, c, d, e, f;
            if (null == a && (a = this.element), 1 === a.nodeType) {
                for (a = a.parentNode || a, e = a.querySelectorAll("." + this.config.boxClass), f = [], c = 0, d = e.length; d > c; c++) b = e[c], g.call(this.all, b) < 0 ? (this.boxes.push(b), this.all.push(b), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(b, !0), f.push(this.scrolled = !0)) : f.push(void 0);
                return f
            }
        }, e.prototype.show = function(a) {
            return this.applyStyle(a), a.className = "" + a.className + " " + this.config.animateClass, null != this.config.callback ? this.config.callback(a) : void 0
        }, e.prototype.applyStyle = function(a, b) {
            var c, d, e;
            return d = a.getAttribute("data-wow-duration"), c = a.getAttribute("data-wow-delay"), e = a.getAttribute("data-wow-iteration"), this.animate(function(f) {
                return function() {
                    return f.customStyle(a, b, d, c, e)
                }
            }(this))
        }, e.prototype.animate = function() {
            return "requestAnimationFrame" in window ? function(a) {
                return window.requestAnimationFrame(a)
            } : function(a) {
                return a()
            }
        }(), e.prototype.resetStyle = function() {
            var a, b, c, d, e;
            for (d = this.boxes, e = [], b = 0, c = d.length; c > b; b++) a = d[b], e.push(a.style.visibility = "visible");
            return e
        }, e.prototype.customStyle = function(a, b, c, d, e) {
            return b && this.cacheAnimationName(a), a.style.visibility = b ? "hidden" : "visible", c && this.vendorSet(a.style, {
                animationDuration: c
            }), d && this.vendorSet(a.style, {
                animationDelay: d
            }), e && this.vendorSet(a.style, {
                animationIterationCount: e
            }), this.vendorSet(a.style, {
                animationName: b ? "none" : this.cachedAnimationName(a)
            }), a
        }, e.prototype.vendors = ["moz", "webkit"], e.prototype.vendorSet = function(a, b) {
            var c, d, e, f;
            f = [];
            for (c in b) d = b[c], a["" + c] = d, f.push(function() {
                var b, f, g, h;
                for (g = this.vendors, h = [], b = 0, f = g.length; f > b; b++) e = g[b], h.push(a["" + e + c.charAt(0).toUpperCase() + c.substr(1)] = d);
                return h
            }.call(this));
            return f
        }, e.prototype.vendorCSS = function(a, b) {
            var c, e, f, g, h, i;
            for (e = d(a), c = e.getPropertyCSSValue(b), i = this.vendors, g = 0, h = i.length; h > g; g++) f = i[g], c = c || e.getPropertyCSSValue("-" + f + "-" + b);
            return c
        }, e.prototype.animationName = function(a) {
            var b;
            try {
                b = this.vendorCSS(a, "animation-name").cssText
            } catch (c) {
                b = d(a).getPropertyValue("animation-name")
            }
            return "none" === b ? "" : b
        }, e.prototype.cacheAnimationName = function(a) {
            return this.animationNameCache.set(a, this.animationName(a))
        }, e.prototype.cachedAnimationName = function(a) {
            return this.animationNameCache.get(a)
        }, e.prototype.scrollHandler = function() {
            return this.scrolled = !0
        }, e.prototype.scrollCallback = function() {
            var a;
            return !this.scrolled || (this.scrolled = !1, this.boxes = function() {
                var b, c, d, e;
                for (d = this.boxes, e = [], b = 0, c = d.length; c > b; b++) a = d[b], a && (this.isVisible(a) ? this.show(a) : e.push(a));
                return e
            }.call(this), this.boxes.length || this.config.live) ? void 0 : this.stop()
        }, e.prototype.offsetTop = function(a) {
            for (var b; void 0 === a.offsetTop;) a = a.parentNode;
            for (b = a.offsetTop; a = a.offsetParent;) b += a.offsetTop;
            return b
        }, e.prototype.isVisible = function(a) {
            var b, c, d, e, f;
            return c = a.getAttribute("data-wow-offset") || this.config.offset, f = window.pageYOffset, e = f + Math.min(this.element.clientHeight, this.util().innerHeight()) - c, d = this.offsetTop(a), b = d + a.clientHeight, e >= d && b >= f
        }, e.prototype.util = function() {
            return null != this._util ? this._util : this._util = new b
        }, e.prototype.disabled = function() {
            return !this.config.mobile && this.util().isMobile(navigator.userAgent)
        }, e
    }()
}).call(this);


/*! skrollr 0.6.26 (2014-06-08) | Alexander Prinzhorn - https://github.com/Prinzhorn/skrollr | Free to use under terms of MIT license */
(function(e, t, r) {
    "use strict";

    function n(r) {
        if (o = t.documentElement, a = t.body, K(), it = this, r = r || {}, ut = r.constants || {}, r.easing)
            for (var n in r.easing) U[n] = r.easing[n];
        yt = r.edgeStrategy || "set", ct = {
            beforerender: r.beforerender,
            render: r.render,
            keyframe: r.keyframe
        }, ft = r.forceHeight !== !1, ft && (Vt = r.scale || 1), mt = r.mobileDeceleration || x, dt = r.smoothScrolling !== !1, gt = r.smoothScrollingDuration || E, vt = {
            targetTop: it.getScrollTop()
        }, Gt = (r.mobileCheck || function() {
            return /Android|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent || navigator.vendor || e.opera)
        })(), Gt ? (st = t.getElementById("skrollr-body"), st && at(), X(), Dt(o, [y, S], [T])) : Dt(o, [y, b], [T]), it.refresh(), St(e, "resize orientationchange", function() {
            var e = o.clientWidth,
                t = o.clientHeight;
            (t !== $t || e !== Mt) && ($t = t, Mt = e, _t = !0)
        });
        var i = Y();
        return function l() {
            Z(), bt = i(l)
        }(), it
    }
    var o, a, i = {
            get: function() {
                return it
            },
            init: function(e) {
                return it || new n(e)
            },
            VERSION: "0.6.26"
        },
        l = Object.prototype.hasOwnProperty,
        s = e.Math,
        c = e.getComputedStyle,
        f = "touchstart",
        u = "touchmove",
        m = "touchcancel",
        p = "touchend",
        d = "skrollable",
        g = d + "-before",
        v = d + "-between",
        h = d + "-after",
        y = "skrollr",
        T = "no-" + y,
        b = y + "-desktop",
        S = y + "-mobile",
        k = "linear",
        w = 1e3,
        x = .004,
        E = 200,
        A = "start",
        F = "end",
        C = "center",
        D = "bottom",
        H = "___skrollable_id",
        I = /^(?:input|textarea|button|select)$/i,
        P = /^\s+|\s+$/g,
        N = /^data(?:-(_\w+))?(?:-?(-?\d*\.?\d+p?))?(?:-?(start|end|top|center|bottom))?(?:-?(top|center|bottom))?$/,
        O = /\s*(@?[\w\-\[\]]+)\s*:\s*(.+?)\s*(?:;|$)/gi,
        V = /^(@?[a-z\-]+)\[(\w+)\]$/,
        z = /-([a-z0-9_])/g,
        q = function(e, t) {
            return t.toUpperCase()
        },
        L = /[\-+]?[\d]*\.?[\d]+/g,
        M = /\{\?\}/g,
        $ = /rgba?\(\s*-?\d+\s*,\s*-?\d+\s*,\s*-?\d+/g,
        _ = /[a-z\-]+-gradient/g,
        B = "",
        G = "",
        K = function() {
            var e = /^(?:O|Moz|webkit|ms)|(?:-(?:o|moz|webkit|ms)-)/;
            if (c) {
                var t = c(a, null);
                for (var n in t)
                    if (B = n.match(e) || +n == n && t[n].match(e)) break;
                if (!B) return B = G = "", r;
                B = B[0], "-" === B.slice(0, 1) ? (G = B, B = {
                    "-webkit-": "webkit",
                    "-moz-": "Moz",
                    "-ms-": "ms",
                    "-o-": "O"
                }[B]) : G = "-" + B.toLowerCase() + "-"
            }
        },
        Y = function() {
            var t = e.requestAnimationFrame || e[B.toLowerCase() + "RequestAnimationFrame"],
                r = Pt();
            return (Gt || !t) && (t = function(t) {
                var n = Pt() - r,
                    o = s.max(0, 1e3 / 60 - n);
                return e.setTimeout(function() {
                    r = Pt(), t()
                }, o)
            }), t
        },
        R = function() {
            var t = e.cancelAnimationFrame || e[B.toLowerCase() + "CancelAnimationFrame"];
            return (Gt || !t) && (t = function(t) {
                return e.clearTimeout(t)
            }), t
        },
        U = {
            begin: function() {
                return 0
            },
            end: function() {
                return 1
            },
            linear: function(e) {
                return e
            },
            quadratic: function(e) {
                return e * e
            },
            cubic: function(e) {
                return e * e * e
            },
            swing: function(e) {
                return -s.cos(e * s.PI) / 2 + .5
            },
            sqrt: function(e) {
                return s.sqrt(e)
            },
            outCubic: function(e) {
                return s.pow(e - 1, 3) + 1
            },
            bounce: function(e) {
                var t;
                if (.5083 >= e) t = 3;
                else if (.8489 >= e) t = 9;
                else if (.96208 >= e) t = 27;
                else {
                    if (!(.99981 >= e)) return 1;
                    t = 91
                }
                return 1 - s.abs(3 * s.cos(1.028 * e * t) / t)
            }
        };
    n.prototype.refresh = function(e) {
        var n, o, a = !1;
        for (e === r ? (a = !0, lt = [], Bt = 0, e = t.getElementsByTagName("*")) : e.length === r && (e = [e]), n = 0, o = e.length; o > n; n++) {
            var i = e[n],
                l = i,
                s = [],
                c = dt,
                f = yt,
                u = !1;
            if (a && H in i && delete i[H], i.attributes) {
                for (var m = 0, p = i.attributes.length; p > m; m++) {
                    var g = i.attributes[m];
                    if ("data-anchor-target" !== g.name)
                        if ("data-smooth-scrolling" !== g.name)
                            if ("data-edge-strategy" !== g.name)
                                if ("data-emit-events" !== g.name) {
                                    var v = g.name.match(N);
                                    if (null !== v) {
                                        var h = {
                                            props: g.value,
                                            element: i,
                                            eventType: g.name.replace(z, q)
                                        };
                                        s.push(h);
                                        var y = v[1];
                                        y && (h.constant = y.substr(1));
                                        var T = v[2];
                                        /p$/.test(T) ? (h.isPercentage = !0, h.offset = (0 | T.slice(0, -1)) / 100) : h.offset = 0 | T;
                                        var b = v[3],
                                            S = v[4] || b;
                                        b && b !== A && b !== F ? (h.mode = "relative", h.anchors = [b, S]) : (h.mode = "absolute", b === F ? h.isEnd = !0 : h.isPercentage || (h.offset = h.offset * Vt))
                                    }
                                } else u = !0;
                    else f = g.value;
                    else c = "off" !== g.value;
                    else if (l = t.querySelector(g.value), null === l) throw 'Unable to find anchor target "' + g.value + '"'
                }
                if (s.length) {
                    var k, w, x;
                    !a && H in i ? (x = i[H], k = lt[x].styleAttr, w = lt[x].classAttr) : (x = i[H] = Bt++, k = i.style.cssText, w = Ct(i)), lt[x] = {
                        element: i,
                        styleAttr: k,
                        classAttr: w,
                        anchorTarget: l,
                        keyFrames: s,
                        smoothScrolling: c,
                        edgeStrategy: f,
                        emitEvents: u,
                        lastFrameIndex: -1
                    }, Dt(i, [d], [])
                }
            }
        }
        for (Et(), n = 0, o = e.length; o > n; n++) {
            var E = lt[e[n][H]];
            E !== r && (J(E), et(E))
        }
        return it
    }, n.prototype.relativeToAbsolute = function(e, t, r) {
        var n = o.clientHeight,
            a = e.getBoundingClientRect(),
            i = a.top,
            l = a.bottom - a.top;
        return t === D ? i -= n : t === C && (i -= n / 2), r === D ? i += l : r === C && (i += l / 2), i += it.getScrollTop(), 0 | i + .5
    }, n.prototype.animateTo = function(e, t) {
        t = t || {};
        var n = Pt(),
            o = it.getScrollTop();
        return pt = {
            startTop: o,
            topDiff: e - o,
            targetTop: e,
            duration: t.duration || w,
            startTime: n,
            endTime: n + (t.duration || w),
            easing: U[t.easing || k],
            done: t.done
        }, pt.topDiff || (pt.done && pt.done.call(it, !1), pt = r), it
    }, n.prototype.stopAnimateTo = function() {
        pt && pt.done && pt.done.call(it, !0), pt = r
    }, n.prototype.isAnimatingTo = function() {
        return !!pt
    }, n.prototype.isMobile = function() {
        return Gt
    }, n.prototype.setScrollTop = function(t, r) {
        return ht = r === !0, Gt ? Kt = s.min(s.max(t, 0), Ot) : e.scrollTo(0, t), it
    }, n.prototype.getScrollTop = function() {
        return Gt ? Kt : e.pageYOffset || o.scrollTop || a.scrollTop || 0
    }, n.prototype.getMaxScrollTop = function() {
        return Ot
    }, n.prototype.on = function(e, t) {
        return ct[e] = t, it
    }, n.prototype.off = function(e) {
        return delete ct[e], it
    }, n.prototype.destroy = function() {
        var e = R();
        e(bt), wt(), Dt(o, [T], [y, b, S]);
        for (var t = 0, n = lt.length; n > t; t++) ot(lt[t].element);
        o.style.overflow = a.style.overflow = "", o.style.height = a.style.height = "", st && i.setStyle(st, "transform", "none"), it = r, st = r, ct = r, ft = r, Ot = 0, Vt = 1, ut = r, mt = r, zt = "down", qt = -1, Mt = 0, $t = 0, _t = !1, pt = r, dt = r, gt = r, vt = r, ht = r, Bt = 0, yt = r, Gt = !1, Kt = 0, Tt = r
    };
    var X = function() {
            var n, i, l, c, d, g, v, h, y, T, b, S;
            St(o, [f, u, m, p].join(" "), function(e) {
                var o = e.changedTouches[0];
                for (c = e.target; 3 === c.nodeType;) c = c.parentNode;
                switch (d = o.clientY, g = o.clientX, T = e.timeStamp, I.test(c.tagName) || e.preventDefault(), e.type) {
                    case f:
                        n && n.blur(), it.stopAnimateTo(), n = c, i = v = d, l = g, y = T;
                        break;
                    case u:
                        I.test(c.tagName) && t.activeElement !== c && e.preventDefault(), h = d - v, S = T - b, it.setScrollTop(Kt - h, !0), v = d, b = T;
                        break;
                    default:
                    case m:
                    case p:
                        var a = i - d,
                            k = l - g,
                            w = k * k + a * a;
                        if (49 > w) {
                            if (!I.test(n.tagName)) {
                                n.focus();
                                var x = t.createEvent("MouseEvents");
                                x.initMouseEvent("click", !0, !0, e.view, 1, o.screenX, o.screenY, o.clientX, o.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, 0, null), n.dispatchEvent(x)
                            }
                            return
                        }
                        n = r;
                        var E = h / S;
                        E = s.max(s.min(E, 3), -3);
                        var A = s.abs(E / mt),
                            F = E * A + .5 * mt * A * A,
                            C = it.getScrollTop() - F,
                            D = 0;
                        C > Ot ? (D = (Ot - C) / F, C = Ot) : 0 > C && (D = -C / F, C = 0), A *= 1 - D, it.animateTo(0 | C + .5, {
                            easing: "outCubic",
                            duration: A
                        })
                }
            }), e.scrollTo(0, 0), o.style.overflow = a.style.overflow = "hidden"
        },
        j = function() {
            var e, t, r, n, a, i, l, c, f, u, m, p = o.clientHeight,
                d = At();
            for (c = 0, f = lt.length; f > c; c++)
                for (e = lt[c], t = e.element, r = e.anchorTarget, n = e.keyFrames, a = 0, i = n.length; i > a; a++) l = n[a], u = l.offset, m = d[l.constant] || 0, l.frame = u, l.isPercentage && (u *= p, l.frame = u), "relative" === l.mode && (ot(t), l.frame = it.relativeToAbsolute(r, l.anchors[0], l.anchors[1]) - u, ot(t, !0)), l.frame += m, ft && !l.isEnd && l.frame > Ot && (Ot = l.frame);
            for (Ot = s.max(Ot, Ft()), c = 0, f = lt.length; f > c; c++) {
                for (e = lt[c], n = e.keyFrames, a = 0, i = n.length; i > a; a++) l = n[a], m = d[l.constant] || 0, l.isEnd && (l.frame = Ot - l.offset + m);
                e.keyFrames.sort(Nt)
            }
        },
        W = function(e, t) {
            for (var r = 0, n = lt.length; n > r; r++) {
                var o, a, s = lt[r],
                    c = s.element,
                    f = s.smoothScrolling ? e : t,
                    u = s.keyFrames,
                    m = u.length,
                    p = u[0],
                    y = u[u.length - 1],
                    T = p.frame > f,
                    b = f > y.frame,
                    S = T ? p : y,
                    k = s.emitEvents,
                    w = s.lastFrameIndex;
                if (T || b) {
                    if (T && -1 === s.edge || b && 1 === s.edge) continue;
                    switch (T ? (Dt(c, [g], [h, v]), k && w > -1 && (xt(c, p.eventType, zt), s.lastFrameIndex = -1)) : (Dt(c, [h], [g, v]), k && m > w && (xt(c, y.eventType, zt), s.lastFrameIndex = m)), s.edge = T ? -1 : 1, s.edgeStrategy) {
                        case "reset":
                            ot(c);
                            continue;
                        case "ease":
                            f = S.frame;
                            break;
                        default:
                        case "set":
                            var x = S.props;
                            for (o in x) l.call(x, o) && (a = nt(x[o].value), 0 === o.indexOf("@") ? c.setAttribute(o.substr(1), a) : i.setStyle(c, o, a));
                            continue
                    }
                } else 0 !== s.edge && (Dt(c, [d, v], [g, h]), s.edge = 0);
                for (var E = 0; m - 1 > E; E++)
                    if (f >= u[E].frame && u[E + 1].frame >= f) {
                        var A = u[E],
                            F = u[E + 1];
                        for (o in A.props)
                            if (l.call(A.props, o)) {
                                var C = (f - A.frame) / (F.frame - A.frame);
                                C = A.props[o].easing(C), a = rt(A.props[o].value, F.props[o].value, C), a = nt(a), 0 === o.indexOf("@") ? c.setAttribute(o.substr(1), a) : i.setStyle(c, o, a)
                            }
                        k && w !== E && ("down" === zt ? xt(c, A.eventType, zt) : xt(c, F.eventType, zt), s.lastFrameIndex = E);
                        break
                    }
            }
        },
        Z = function() {
            _t && (_t = !1, Et());
            var e, t, n = it.getScrollTop(),
                o = Pt();
            if (pt) o >= pt.endTime ? (n = pt.targetTop, e = pt.done, pt = r) : (t = pt.easing((o - pt.startTime) / pt.duration), n = 0 | pt.startTop + t * pt.topDiff), it.setScrollTop(n, !0);
            else if (!ht) {
                var a = vt.targetTop - n;
                a && (vt = {
                    startTop: qt,
                    topDiff: n - qt,
                    targetTop: n,
                    startTime: Lt,
                    endTime: Lt + gt
                }), vt.endTime >= o && (t = U.sqrt((o - vt.startTime) / gt), n = 0 | vt.startTop + t * vt.topDiff)
            }
            if (Gt && st && i.setStyle(st, "transform", "translate(0, " + -Kt + "px) " + Tt), ht || qt !== n) {
                zt = n > qt ? "down" : qt > n ? "up" : zt, ht = !1;
                var l = {
                        curTop: n,
                        lastTop: qt,
                        maxTop: Ot,
                        direction: zt
                    },
                    s = ct.beforerender && ct.beforerender.call(it, l);
                s !== !1 && (W(n, it.getScrollTop()), qt = n, ct.render && ct.render.call(it, l)), e && e.call(it, !1)
            }
            Lt = o
        },
        J = function(e) {
            for (var t = 0, r = e.keyFrames.length; r > t; t++) {
                for (var n, o, a, i, l = e.keyFrames[t], s = {}; null !== (i = O.exec(l.props));) a = i[1], o = i[2], n = a.match(V), null !== n ? (a = n[1], n = n[2]) : n = k, o = o.indexOf("!") ? Q(o) : [o.slice(1)], s[a] = {
                    value: o,
                    easing: U[n]
                };
                l.props = s
            }
        },
        Q = function(e) {
            var t = [];
            return $.lastIndex = 0, e = e.replace($, function(e) {
                return e.replace(L, function(e) {
                    return 100 * (e / 255) + "%"
                })
            }), G && (_.lastIndex = 0, e = e.replace(_, function(e) {
                return G + e
            })), e = e.replace(L, function(e) {
                return t.push(+e), "{?}"
            }), t.unshift(e), t
        },
        et = function(e) {
            var t, r, n = {};
            for (t = 0, r = e.keyFrames.length; r > t; t++) tt(e.keyFrames[t], n);
            for (n = {}, t = e.keyFrames.length - 1; t >= 0; t--) tt(e.keyFrames[t], n)
        },
        tt = function(e, t) {
            var r;
            for (r in t) l.call(e.props, r) || (e.props[r] = t[r]);
            for (r in e.props) t[r] = e.props[r]
        },
        rt = function(e, t, r) {
            var n, o = e.length;
            if (o !== t.length) throw "Can't interpolate between \"" + e[0] + '" and "' + t[0] + '"';
            var a = [e[0]];
            for (n = 1; o > n; n++) a[n] = e[n] + (t[n] - e[n]) * r;
            return a
        },
        nt = function(e) {
            var t = 1;
            return M.lastIndex = 0, e[0].replace(M, function() {
                return e[t++]
            })
        },
        ot = function(e, t) {
            e = [].concat(e);
            for (var r, n, o = 0, a = e.length; a > o; o++) n = e[o], r = lt[n[H]], r && (t ? (n.style.cssText = r.dirtyStyleAttr, Dt(n, r.dirtyClassAttr)) : (r.dirtyStyleAttr = n.style.cssText, r.dirtyClassAttr = Ct(n), n.style.cssText = r.styleAttr, Dt(n, r.classAttr)))
        },
        at = function() {
            Tt = "translateZ(0)", i.setStyle(st, "transform", Tt);
            var e = c(st),
                t = e.getPropertyValue("transform"),
                r = e.getPropertyValue(G + "transform"),
                n = t && "none" !== t || r && "none" !== r;
            n || (Tt = "")
        };
    i.setStyle = function(e, t, r) {
        var n = e.style;
        if (t = t.replace(z, q).replace("-", ""), "zIndex" === t) n[t] = isNaN(r) ? r : "" + (0 | r);
        else if ("float" === t) n.styleFloat = n.cssFloat = r;
        else try {
            B && (n[B + t.slice(0, 1).toUpperCase() + t.slice(1)] = r), n[t] = r
        } catch (o) {}
    };
    var it, lt, st, ct, ft, ut, mt, pt, dt, gt, vt, ht, yt, Tt, bt, St = i.addEvent = function(t, r, n) {
            var o = function(t) {
                return t = t || e.event, t.target || (t.target = t.srcElement), t.preventDefault || (t.preventDefault = function() {
                    t.returnValue = !1, t.defaultPrevented = !0
                }), n.call(this, t)
            };
            r = r.split(" ");
            for (var a, i = 0, l = r.length; l > i; i++) a = r[i], t.addEventListener ? t.addEventListener(a, n, !1) : t.attachEvent("on" + a, o), Yt.push({
                element: t,
                name: a,
                listener: n
            })
        },
        kt = i.removeEvent = function(e, t, r) {
            t = t.split(" ");
            for (var n = 0, o = t.length; o > n; n++) e.removeEventListener ? e.removeEventListener(t[n], r, !1) : e.detachEvent("on" + t[n], r)
        },
        wt = function() {
            for (var e, t = 0, r = Yt.length; r > t; t++) e = Yt[t], kt(e.element, e.name, e.listener);
            Yt = []
        },
        xt = function(e, t, r) {
            ct.keyframe && ct.keyframe.call(it, e, t, r)
        },
        Et = function() {
            var e = it.getScrollTop();
            Ot = 0, ft && !Gt && (a.style.height = ""), j(), ft && !Gt && (a.style.height = Ot + o.clientHeight + "px"), Gt ? it.setScrollTop(s.min(it.getScrollTop(), Ot)) : it.setScrollTop(e, !0), ht = !0
        },
        At = function() {
            var e, t, r = o.clientHeight,
                n = {};
            for (e in ut) t = ut[e], "function" == typeof t ? t = t.call(it) : /p$/.test(t) && (t = t.slice(0, -1) / 100 * r), n[e] = t;
            return n
        },
        Ft = function() {
            var e = st && st.offsetHeight || 0,
                t = s.max(e, a.scrollHeight, a.offsetHeight, o.scrollHeight, o.offsetHeight, o.clientHeight);
            return t - o.clientHeight
        },
        Ct = function(t) {
            var r = "className";
            return e.SVGElement && t instanceof e.SVGElement && (t = t[r], r = "baseVal"), t[r]
        },
        Dt = function(t, n, o) {
            var a = "className";
            if (e.SVGElement && t instanceof e.SVGElement && (t = t[a], a = "baseVal"), o === r) return t[a] = n, r;
            for (var i = t[a], l = 0, s = o.length; s > l; l++) i = It(i).replace(It(o[l]), " ");
            i = Ht(i);
            for (var c = 0, f = n.length; f > c; c++) - 1 === It(i).indexOf(It(n[c])) && (i += " " + n[c]);
            t[a] = Ht(i)
        },
        Ht = function(e) {
            return e.replace(P, "")
        },
        It = function(e) {
            return " " + e + " "
        },
        Pt = Date.now || function() {
            return +new Date
        },
        Nt = function(e, t) {
            return e.frame - t.frame
        },
        Ot = 0,
        Vt = 1,
        zt = "down",
        qt = -1,
        Lt = Pt(),
        Mt = 0,
        $t = 0,
        _t = !1,
        Bt = 0,
        Gt = !1,
        Kt = 0,
        Yt = [];
    "function" == typeof define && define.amd ? define("skrollr", function() {
        return i
    }) : "undefined" != typeof module && module.exports ? module.exports = i : e.skrollr = i
})(window, document);


/* easing */
jQuery.easing.jswing = jQuery.easing.swing, jQuery.extend(jQuery.easing, {
    def: "easeOutQuad",
    swing: function(a, b, c, d, e) {
        return jQuery.easing[jQuery.easing.def](a, b, c, d, e)
    },
    easeInQuad: function(a, b, c, d, e) {
        return d * (b /= e) * b + c
    },
    easeOutQuad: function(a, b, c, d, e) {
        return -d * (b /= e) * (b - 2) + c
    },
    easeInOutQuad: function(a, b, c, d, e) {
        return (b /= e / 2) < 1 ? d / 2 * b * b + c : -d / 2 * (--b * (b - 2) - 1) + c
    },
    easeInCubic: function(a, b, c, d, e) {
        return d * (b /= e) * b * b + c
    },
    easeOutCubic: function(a, b, c, d, e) {
        return d * ((b = b / e - 1) * b * b + 1) + c
    },
    easeInOutCubic: function(a, b, c, d, e) {
        return (b /= e / 2) < 1 ? d / 2 * b * b * b + c : d / 2 * ((b -= 2) * b * b + 2) + c
    },
    easeInQuart: function(a, b, c, d, e) {
        return d * (b /= e) * b * b * b + c
    },
    easeOutQuart: function(a, b, c, d, e) {
        return -d * ((b = b / e - 1) * b * b * b - 1) + c
    },
    easeInOutQuart: function(a, b, c, d, e) {
        return (b /= e / 2) < 1 ? d / 2 * b * b * b * b + c : -d / 2 * ((b -= 2) * b * b * b - 2) + c
    },
    easeInQuint: function(a, b, c, d, e) {
        return d * (b /= e) * b * b * b * b + c
    },
    easeOutQuint: function(a, b, c, d, e) {
        return d * ((b = b / e - 1) * b * b * b * b + 1) + c
    },
    easeInOutQuint: function(a, b, c, d, e) {
        return (b /= e / 2) < 1 ? d / 2 * b * b * b * b * b + c : d / 2 * ((b -= 2) * b * b * b * b + 2) + c
    },
    easeInSine: function(a, b, c, d, e) {
        return -d * Math.cos(b / e * (Math.PI / 2)) + d + c
    },
    easeOutSine: function(a, b, c, d, e) {
        return d * Math.sin(b / e * (Math.PI / 2)) + c
    },
    easeInOutSine: function(a, b, c, d, e) {
        return -d / 2 * (Math.cos(Math.PI * b / e) - 1) + c
    },
    easeInExpo: function(a, b, c, d, e) {
        return 0 == b ? c : d * Math.pow(2, 10 * (b / e - 1)) + c
    },
    easeOutExpo: function(a, b, c, d, e) {
        return b == e ? c + d : d * (-Math.pow(2, -10 * b / e) + 1) + c
    },
    easeInOutExpo: function(a, b, c, d, e) {
        return 0 == b ? c : b == e ? c + d : (b /= e / 2) < 1 ? d / 2 * Math.pow(2, 10 * (b - 1)) + c : d / 2 * (-Math.pow(2, -10 * --b) + 2) + c
    },
    easeInCirc: function(a, b, c, d, e) {
        return -d * (Math.sqrt(1 - (b /= e) * b) - 1) + c
    },
    easeOutCirc: function(a, b, c, d, e) {
        return d * Math.sqrt(1 - (b = b / e - 1) * b) + c
    },
    easeInOutCirc: function(a, b, c, d, e) {
        return (b /= e / 2) < 1 ? -d / 2 * (Math.sqrt(1 - b * b) - 1) + c : d / 2 * (Math.sqrt(1 - (b -= 2) * b) + 1) + c
    },
    easeInElastic: function(a, b, c, d, e) {
        var f = 1.70158,
            g = 0,
            h = d;
        if (0 == b) return c;
        if (1 == (b /= e)) return c + d;
        if (g || (g = .3 * e), h < Math.abs(d)) {
            h = d;
            var f = g / 4
        } else var f = g / (2 * Math.PI) * Math.asin(d / h);
        return -(h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * (2 * Math.PI) / g)) + c
    },
    easeOutElastic: function(a, b, c, d, e) {
        var f = 1.70158,
            g = 0,
            h = d;
        if (0 == b) return c;
        if (1 == (b /= e)) return c + d;
        if (g || (g = .3 * e), h < Math.abs(d)) {
            h = d;
            var f = g / 4
        } else var f = g / (2 * Math.PI) * Math.asin(d / h);
        return h * Math.pow(2, -10 * b) * Math.sin((b * e - f) * (2 * Math.PI) / g) + d + c
    },
    easeInOutElastic: function(a, b, c, d, e) {
        var f = 1.70158,
            g = 0,
            h = d;
        if (0 == b) return c;
        if (2 == (b /= e / 2)) return c + d;
        if (g || (g = e * (.3 * 1.5)), h < Math.abs(d)) {
            h = d;
            var f = g / 4
        } else var f = g / (2 * Math.PI) * Math.asin(d / h);
        return b < 1 ? -.5 * (h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * (2 * Math.PI) / g)) + c : h * Math.pow(2, -10 * (b -= 1)) * Math.sin((b * e - f) * (2 * Math.PI) / g) * .5 + d + c
    },
    easeInBack: function(a, b, c, d, e, f) {
        return void 0 == f && (f = 1.70158), d * (b /= e) * b * ((f + 1) * b - f) + c
    },
    easeOutBack: function(a, b, c, d, e, f) {
        return void 0 == f && (f = 1.70158), d * ((b = b / e - 1) * b * ((f + 1) * b + f) + 1) + c
    },
    easeInOutBack: function(a, b, c, d, e, f) {
        return void 0 == f && (f = 1.70158), (b /= e / 2) < 1 ? d / 2 * (b * b * (((f *= 1.525) + 1) * b - f)) + c : d / 2 * ((b -= 2) * b * (((f *= 1.525) + 1) * b + f) + 2) + c
    },
    easeInBounce: function(a, b, c, d, e) {
        return d - jQuery.easing.easeOutBounce(a, e - b, 0, d, e) + c
    },
    easeOutBounce: function(a, b, c, d, e) {
        return (b /= e) < 1 / 2.75 ? d * (7.5625 * b * b) + c : b < 2 / 2.75 ? d * (7.5625 * (b -= 1.5 / 2.75) * b + .75) + c : b < 2.5 / 2.75 ? d * (7.5625 * (b -= 2.25 / 2.75) * b + .9375) + c : d * (7.5625 * (b -= 2.625 / 2.75) * b + .984375) + c
    },
    easeInOutBounce: function(a, b, c, d, e) {
        return b < e / 2 ? .5 * jQuery.easing.easeInBounce(a, 2 * b, 0, d, e) + c : .5 * jQuery.easing.easeOutBounce(a, 2 * b - e, 0, d, e) + .5 * d + c
    }
});

/* owl-carousel */
! function(a, b, c, d) {
    function e(b, c) {
        this.settings = null, this.options = a.extend({}, e.Defaults, c), this.$element = a(b), this._handlers = {}, this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._widths = [], this._invalidated = {}, this._pipe = [], this._drag = {
            time: null,
            target: null,
            pointer: null,
            stage: {
                start: null,
                current: null
            },
            direction: null
        }, this._states = {
            current: {},
            tags: {
                initializing: ["busy"],
                animating: ["busy"],
                dragging: ["interacting"]
            }
        }, a.each(["onResize", "onThrottledResize"], a.proxy(function(b, c) {
            this._handlers[c] = a.proxy(this[c], this)
        }, this)), a.each(e.Plugins, a.proxy(function(a, b) {
            this._plugins[a.charAt(0).toLowerCase() + a.slice(1)] = new b(this)
        }, this)), a.each(e.Workers, a.proxy(function(b, c) {
            this._pipe.push({
                filter: c.filter,
                run: a.proxy(c.run, this)
            })
        }, this)), this.setup(), this.initialize()
    }
    e.Defaults = {
        items: 3,
        loop: !1,
        center: !1,
        rewind: !1,
        checkVisibility: !0,
        mouseDrag: !0,
        touchDrag: !0,
        pullDrag: !0,
        freeDrag: !1,
        margin: 0,
        stagePadding: 0,
        merge: !1,
        mergeFit: !0,
        autoWidth: !1,
        startPosition: 0,
        rtl: !1,
        smartSpeed: 250,
        fluidSpeed: !1,
        dragEndSpeed: !1,
        responsive: {},
        responsiveRefreshRate: 200,
        responsiveBaseElement: b,
        fallbackEasing: "swing",
        slideTransition: "",
        info: !1,
        nestedItemSelector: !1,
        itemElement: "div",
        stageElement: "div",
        refreshClass: "owl-refresh",
        loadedClass: "owl-loaded",
        loadingClass: "owl-loading",
        rtlClass: "owl-rtl",
        responsiveClass: "owl-responsive",
        dragClass: "owl-drag",
        itemClass: "owl-item",
        stageClass: "owl-stage",
        stageOuterClass: "owl-stage-outer",
        grabClass: "owl-grab"
    }, e.Width = {
        Default: "default",
        Inner: "inner",
        Outer: "outer"
    }, e.Type = {
        Event: "event",
        State: "state"
    }, e.Plugins = {}, e.Workers = [{
        filter: ["width", "settings"],
        run: function() {
            this._width = this.$element.width()
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function(a) {
            a.current = this._items && this._items[this.relative(this._current)]
        }
    }, {
        filter: ["items", "settings"],
        run: function() {
            this.$stage.children(".cloned").remove()
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function(a) {
            var b = this.settings.margin || "",
                c = !this.settings.autoWidth,
                d = this.settings.rtl,
                e = {
                    width: "auto",
                    "margin-left": d ? b : "",
                    "margin-right": d ? "" : b
                };
            !c && this.$stage.children().css(e), a.css = e
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function(a) {
            var b = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,
                c = null,
                d = this._items.length,
                e = !this.settings.autoWidth,
                f = [];
            for (a.items = {
                    merge: !1,
                    width: b
                }; d--;) c = this._mergers[d], c = this.settings.mergeFit && Math.min(c, this.settings.items) || c, a.items.merge = c > 1 || a.items.merge, f[d] = e ? b * c : this._items[d].width();
            this._widths = f
        }
    }, {
        filter: ["items", "settings"],
        run: function() {
            var b = [],
                c = this._items,
                d = this.settings,
                e = Math.max(2 * d.items, 4),
                f = 2 * Math.ceil(c.length / 2),
                g = d.loop && c.length ? d.rewind ? e : Math.max(e, f) : 0,
                h = "",
                i = "";
            for (g /= 2; g > 0;) b.push(this.normalize(b.length / 2, !0)), h += c[b[b.length - 1]][0].outerHTML, b.push(this.normalize(c.length - 1 - (b.length - 1) / 2, !0)), i = c[b[b.length - 1]][0].outerHTML + i, g -= 1;
            this._clones = b, a(h).addClass("cloned").appendTo(this.$stage), a(i).addClass("cloned").prependTo(this.$stage)
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function() {
            for (var a = this.settings.rtl ? 1 : -1, b = this._clones.length + this._items.length, c = -1, d = 0, e = 0, f = []; ++c < b;) d = f[c - 1] || 0, e = this._widths[this.relative(c)] + this.settings.margin, f.push(d + e * a);
            this._coordinates = f
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function() {
            var a = this.settings.stagePadding,
                b = this._coordinates,
                c = {
                    width: Math.ceil(Math.abs(b[b.length - 1])) + 2 * a,
                    "padding-left": a || "",
                    "padding-right": a || ""
                };
            this.$stage.css(c)
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function(a) {
            var b = this._coordinates.length,
                c = !this.settings.autoWidth,
                d = this.$stage.children();
            if (c && a.items.merge)
                for (; b--;) a.css.width = this._widths[this.relative(b)], d.eq(b).css(a.css);
            else c && (a.css.width = a.items.width, d.css(a.css))
        }
    }, {
        filter: ["items"],
        run: function() {
            this._coordinates.length < 1 && this.$stage.removeAttr("style")
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function(a) {
            a.current = a.current ? this.$stage.children().index(a.current) : 0, a.current = Math.max(this.minimum(), Math.min(this.maximum(), a.current)), this.reset(a.current)
        }
    }, {
        filter: ["position"],
        run: function() {
            this.animate(this.coordinates(this._current))
        }
    }, {
        filter: ["width", "position", "items", "settings"],
        run: function() {
            var a, b, c, d, e = this.settings.rtl ? 1 : -1,
                f = 2 * this.settings.stagePadding,
                g = this.coordinates(this.current()) + f,
                h = g + this.width() * e,
                i = [];
            for (c = 0, d = this._coordinates.length; c < d; c++) a = this._coordinates[c - 1] || 0, b = Math.abs(this._coordinates[c]) + f * e, (this.op(a, "<=", g) && this.op(a, ">", h) || this.op(b, "<", g) && this.op(b, ">", h)) && i.push(c);
            this.$stage.children(".active").removeClass("active"), this.$stage.children(":eq(" + i.join("), :eq(") + ")").addClass("active"), this.$stage.children(".center").removeClass("center"), this.settings.center && this.$stage.children().eq(this.current()).addClass("center")
        }
    }], e.prototype.initializeStage = function() {
        this.$stage = this.$element.find("." + this.settings.stageClass), this.$stage.length || (this.$element.addClass(this.options.loadingClass), this.$stage = a("<" + this.settings.stageElement + ">", {
            class: this.settings.stageClass
        }).wrap(a("<div>", {
            class: this.settings.stageOuterClass
        })), this.$element.append(this.$stage.parent()))
    }, e.prototype.initializeItems = function() {
        var b = this.$element.find(".owl-item");
        if (b.length) return this._items = b.get().map(function(b) {
            return a(b)
        }), this._mergers = this._items.map(function() {
            return 1
        }), void this.refresh();
        this.replace(this.$element.children().not(this.$stage.parent())), this.isVisible() ? this.refresh() : this.invalidate("width"), this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)
    }, e.prototype.initialize = function() {
        if (this.enter("initializing"), this.trigger("initialize"), this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), this.settings.autoWidth && !this.is("pre-loading")) {
            var a, b, c;
            a = this.$element.find("img"), b = this.settings.nestedItemSelector ? "." + this.settings.nestedItemSelector : d, c = this.$element.children(b).width(), a.length && c <= 0 && this.preloadAutoWidthImages(a)
        }
        this.initializeStage(), this.initializeItems(), this.registerEventHandlers(), this.leave("initializing"), this.trigger("initialized")
    }, e.prototype.isVisible = function() {
        return !this.settings.checkVisibility || this.$element.is(":visible")
    }, e.prototype.setup = function() {
        var b = this.viewport(),
            c = this.options.responsive,
            d = -1,
            e = null;
        c ? (a.each(c, function(a) {
            a <= b && a > d && (d = Number(a))
        }), e = a.extend({}, this.options, c[d]), "function" == typeof e.stagePadding && (e.stagePadding = e.stagePadding()), delete e.responsive, e.responsiveClass && this.$element.attr("class", this.$element.attr("class").replace(new RegExp("(" + this.options.responsiveClass + "-)\\S+\\s", "g"), "$1" + d))) : e = a.extend({}, this.options), this.trigger("change", {
            property: {
                name: "settings",
                value: e
            }
        }), this._breakpoint = d, this.settings = e, this.invalidate("settings"), this.trigger("changed", {
            property: {
                name: "settings",
                value: this.settings
            }
        })
    }, e.prototype.optionsLogic = function() {
        this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1)
    }, e.prototype.prepare = function(b) {
        var c = this.trigger("prepare", {
            content: b
        });
        return c.data || (c.data = a("<" + this.settings.itemElement + ">").addClass(this.options.itemClass).append(b)), this.trigger("prepared", {
            content: c.data
        }), c.data
    }, e.prototype.update = function() {
        for (var b = 0, c = this._pipe.length, d = a.proxy(function(a) {
                return this[a]
            }, this._invalidated), e = {}; b < c;)(this._invalidated.all || a.grep(this._pipe[b].filter, d).length > 0) && this._pipe[b].run(e), b++;
        this._invalidated = {}, !this.is("valid") && this.enter("valid")
    }, e.prototype.width = function(a) {
        switch (a = a || e.Width.Default) {
            case e.Width.Inner:
            case e.Width.Outer:
                return this._width;
            default:
                return this._width - 2 * this.settings.stagePadding + this.settings.margin
        }
    }, e.prototype.refresh = function() {
        this.enter("refreshing"), this.trigger("refresh"), this.setup(), this.optionsLogic(), this.$element.addClass(this.options.refreshClass), this.update(), this.$element.removeClass(this.options.refreshClass), this.leave("refreshing"), this.trigger("refreshed")
    }, e.prototype.onThrottledResize = function() {
        b.clearTimeout(this.resizeTimer), this.resizeTimer = b.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate)
    }, e.prototype.onResize = function() {
        return !!this._items.length && (this._width !== this.$element.width() && (!!this.isVisible() && (this.enter("resizing"), this.trigger("resize").isDefaultPrevented() ? (this.leave("resizing"), !1) : (this.invalidate("width"), this.refresh(), this.leave("resizing"), void this.trigger("resized")))))
    }, e.prototype.registerEventHandlers = function() {
        a.support.transition && this.$stage.on(a.support.transition.end + ".owl.core", a.proxy(this.onTransitionEnd, this)), !1 !== this.settings.responsive && this.on(b, "resize", this._handlers.onThrottledResize), this.settings.mouseDrag && (this.$element.addClass(this.options.dragClass), this.$stage.on("mousedown.owl.core", a.proxy(this.onDragStart, this)), this.$stage.on("dragstart.owl.core selectstart.owl.core", function() {
            return !1
        })), this.settings.touchDrag && (this.$stage.on("touchstart.owl.core", a.proxy(this.onDragStart, this)), this.$stage.on("touchcancel.owl.core", a.proxy(this.onDragEnd, this)))
    }, e.prototype.onDragStart = function(b) {
        var d = null;
        3 !== b.which && (a.support.transform ? (d = this.$stage.css("transform").replace(/.*\(|\)| /g, "").split(","), d = {
            x: d[16 === d.length ? 12 : 4],
            y: d[16 === d.length ? 13 : 5]
        }) : (d = this.$stage.position(), d = {
            x: this.settings.rtl ? d.left + this.$stage.width() - this.width() + this.settings.margin : d.left,
            y: d.top
        }), this.is("animating") && (a.support.transform ? this.animate(d.x) : this.$stage.stop(), this.invalidate("position")), this.$element.toggleClass(this.options.grabClass, "mousedown" === b.type), this.speed(0), this._drag.time = (new Date).getTime(), this._drag.target = a(b.target), this._drag.stage.start = d, this._drag.stage.current = d, this._drag.pointer = this.pointer(b), a(c).on("mouseup.owl.core touchend.owl.core", a.proxy(this.onDragEnd, this)), a(c).one("mousemove.owl.core touchmove.owl.core", a.proxy(function(b) {
            var d = this.difference(this._drag.pointer, this.pointer(b));
            a(c).on("mousemove.owl.core touchmove.owl.core", a.proxy(this.onDragMove, this)), Math.abs(d.x) < Math.abs(d.y) && this.is("valid") || (b.preventDefault(), this.enter("dragging"), this.trigger("drag"))
        }, this)))
    }, e.prototype.onDragMove = function(a) {
        var b = null,
            c = null,
            d = null,
            e = this.difference(this._drag.pointer, this.pointer(a)),
            f = this.difference(this._drag.stage.start, e);
        this.is("dragging") && (a.preventDefault(), this.settings.loop ? (b = this.coordinates(this.minimum()), c = this.coordinates(this.maximum() + 1) - b, f.x = ((f.x - b) % c + c) % c + b) : (b = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()), c = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()), d = this.settings.pullDrag ? -1 * e.x / 5 : 0, f.x = Math.max(Math.min(f.x, b + d), c + d)), this._drag.stage.current = f, this.animate(f.x))
    }, e.prototype.onDragEnd = function(b) {
        var d = this.difference(this._drag.pointer, this.pointer(b)),
            e = this._drag.stage.current,
            f = d.x > 0 ^ this.settings.rtl ? "left" : "right";
        a(c).off(".owl.core"), this.$element.removeClass(this.options.grabClass), (0 !== d.x && this.is("dragging") || !this.is("valid")) && (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), this.current(this.closest(e.x, 0 !== d.x ? f : this._drag.direction)), this.invalidate("position"), this.update(), this._drag.direction = f, (Math.abs(d.x) > 3 || (new Date).getTime() - this._drag.time > 300) && this._drag.target.one("click.owl.core", function() {
            return !1
        })), this.is("dragging") && (this.leave("dragging"), this.trigger("dragged"))
    }, e.prototype.closest = function(b, c) {
        var e = -1,
            f = 30,
            g = this.width(),
            h = this.coordinates();
        return this.settings.freeDrag || a.each(h, a.proxy(function(a, i) {
            return "left" === c && b > i - f && b < i + f ? e = a : "right" === c && b > i - g - f && b < i - g + f ? e = a + 1 : this.op(b, "<", i) && this.op(b, ">", h[a + 1] !== d ? h[a + 1] : i - g) && (e = "left" === c ? a + 1 : a), -1 === e
        }, this)), this.settings.loop || (this.op(b, ">", h[this.minimum()]) ? e = b = this.minimum() : this.op(b, "<", h[this.maximum()]) && (e = b = this.maximum())), e
    }, e.prototype.animate = function(b) {
        var c = this.speed() > 0;
        this.is("animating") && this.onTransitionEnd(), c && (this.enter("animating"), this.trigger("translate")), a.support.transform3d && a.support.transition ? this.$stage.css({
            transform: "translate3d(" + b + "px,0px,0px)",
            transition: this.speed() / 1e3 + "s" + (this.settings.slideTransition ? " " + this.settings.slideTransition : "")
        }) : c ? this.$stage.animate({
            left: b + "px"
        }, this.speed(), this.settings.fallbackEasing, a.proxy(this.onTransitionEnd, this)) : this.$stage.css({
            left: b + "px"
        })
    }, e.prototype.is = function(a) {
        return this._states.current[a] && this._states.current[a] > 0
    }, e.prototype.current = function(a) {
        if (a === d) return this._current;
        if (0 === this._items.length) return d;
        if (a = this.normalize(a), this._current !== a) {
            var b = this.trigger("change", {
                property: {
                    name: "position",
                    value: a
                }
            });
            b.data !== d && (a = this.normalize(b.data)), this._current = a, this.invalidate("position"), this.trigger("changed", {
                property: {
                    name: "position",
                    value: this._current
                }
            })
        }
        return this._current
    }, e.prototype.invalidate = function(b) {
        return "string" === a.type(b) && (this._invalidated[b] = !0, this.is("valid") && this.leave("valid")), a.map(this._invalidated, function(a, b) {
            return b
        })
    }, e.prototype.reset = function(a) {
        (a = this.normalize(a)) !== d && (this._speed = 0, this._current = a, this.suppress(["translate", "translated"]), this.animate(this.coordinates(a)), this.release(["translate", "translated"]))
    }, e.prototype.normalize = function(a, b) {
        var c = this._items.length,
            e = b ? 0 : this._clones.length;
        return !this.isNumeric(a) || c < 1 ? a = d : (a < 0 || a >= c + e) && (a = ((a - e / 2) % c + c) % c + e / 2), a
    }, e.prototype.relative = function(a) {
        return a -= this._clones.length / 2, this.normalize(a, !0)
    }, e.prototype.maximum = function(a) {
        var b, c, d, e = this.settings,
            f = this._coordinates.length;
        if (e.loop) f = this._clones.length / 2 + this._items.length - 1;
        else if (e.autoWidth || e.merge) {
            if (b = this._items.length)
                for (c = this._items[--b].width(), d = this.$element.width(); b-- && !((c += this._items[b].width() + this.settings.margin) > d););
            f = b + 1
        } else f = e.center ? this._items.length - 1 : this._items.length - e.items;
        return a && (f -= this._clones.length / 2), Math.max(f, 0)
    }, e.prototype.minimum = function(a) {
        return a ? 0 : this._clones.length / 2
    }, e.prototype.items = function(a) {
        return a === d ? this._items.slice() : (a = this.normalize(a, !0), this._items[a])
    }, e.prototype.mergers = function(a) {
        return a === d ? this._mergers.slice() : (a = this.normalize(a, !0), this._mergers[a])
    }, e.prototype.clones = function(b) {
        var c = this._clones.length / 2,
            e = c + this._items.length,
            f = function(a) {
                return a % 2 == 0 ? e + a / 2 : c - (a + 1) / 2
            };
        return b === d ? a.map(this._clones, function(a, b) {
            return f(b)
        }) : a.map(this._clones, function(a, c) {
            return a === b ? f(c) : null
        })
    }, e.prototype.speed = function(a) {
        return a !== d && (this._speed = a), this._speed
    }, e.prototype.coordinates = function(b) {
        var c, e = 1,
            f = b - 1;
        return b === d ? a.map(this._coordinates, a.proxy(function(a, b) {
            return this.coordinates(b)
        }, this)) : (this.settings.center ? (this.settings.rtl && (e = -1, f = b + 1), c = this._coordinates[b], c += (this.width() - c + (this._coordinates[f] || 0)) / 2 * e) : c = this._coordinates[f] || 0, c = Math.ceil(c))
    }, e.prototype.duration = function(a, b, c) {
        return 0 === c ? 0 : Math.min(Math.max(Math.abs(b - a), 1), 6) * Math.abs(c || this.settings.smartSpeed)
    }, e.prototype.to = function(a, b) {
        var c = this.current(),
            d = null,
            e = a - this.relative(c),
            f = (e > 0) - (e < 0),
            g = this._items.length,
            h = this.minimum(),
            i = this.maximum();
        this.settings.loop ? (!this.settings.rewind && Math.abs(e) > g / 2 && (e += -1 * f * g), a = c + e, (d = ((a - h) % g + g) % g + h) !== a && d - e <= i && d - e > 0 && (c = d - e, a = d, this.reset(c))) : this.settings.rewind ? (i += 1, a = (a % i + i) % i) : a = Math.max(h, Math.min(i, a)), this.speed(this.duration(c, a, b)), this.current(a), this.isVisible() && this.update()
    }, e.prototype.next = function(a) {
        a = a || !1, this.to(this.relative(this.current()) + 1, a)
    }, e.prototype.prev = function(a) {
        a = a || !1, this.to(this.relative(this.current()) - 1, a)
    }, e.prototype.onTransitionEnd = function(a) {
        if (a !== d && (a.stopPropagation(), (a.target || a.srcElement || a.originalTarget) !== this.$stage.get(0))) return !1;
        this.leave("animating"), this.trigger("translated")
    }, e.prototype.viewport = function() {
        var d;
        return this.options.responsiveBaseElement !== b ? d = a(this.options.responsiveBaseElement).width() : b.innerWidth ? d = b.innerWidth : c.documentElement && c.documentElement.clientWidth ? d = c.documentElement.clientWidth : console.warn("Can not detect viewport width."), d
    }, e.prototype.replace = function(b) {
        this.$stage.empty(), this._items = [], b && (b = b instanceof jQuery ? b : a(b)), this.settings.nestedItemSelector && (b = b.find("." + this.settings.nestedItemSelector)), b.filter(function() {
            return 1 === this.nodeType
        }).each(a.proxy(function(a, b) {
            b = this.prepare(b), this.$stage.append(b), this._items.push(b), this._mergers.push(1 * b.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)
        }, this)), this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate("items")
    }, e.prototype.add = function(b, c) {
        var e = this.relative(this._current);
        c = c === d ? this._items.length : this.normalize(c, !0), b = b instanceof jQuery ? b : a(b), this.trigger("add", {
            content: b,
            position: c
        }), b = this.prepare(b), 0 === this._items.length || c === this._items.length ? (0 === this._items.length && this.$stage.append(b), 0 !== this._items.length && this._items[c - 1].after(b), this._items.push(b), this._mergers.push(1 * b.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)) : (this._items[c].before(b), this._items.splice(c, 0, b), this._mergers.splice(c, 0, 1 * b.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)), this._items[e] && this.reset(this._items[e].index()), this.invalidate("items"), this.trigger("added", {
            content: b,
            position: c
        })
    }, e.prototype.remove = function(a) {
        (a = this.normalize(a, !0)) !== d && (this.trigger("remove", {
            content: this._items[a],
            position: a
        }), this._items[a].remove(), this._items.splice(a, 1), this._mergers.splice(a, 1), this.invalidate("items"), this.trigger("removed", {
            content: null,
            position: a
        }))
    }, e.prototype.preloadAutoWidthImages = function(b) {
        b.each(a.proxy(function(b, c) {
            this.enter("pre-loading"), c = a(c), a(new Image).one("load", a.proxy(function(a) {
                c.attr("src", a.target.src), c.css("opacity", 1), this.leave("pre-loading"), !this.is("pre-loading") && !this.is("initializing") && this.refresh()
            }, this)).attr("src", c.attr("src") || c.attr("data-src") || c.attr("data-src-retina"))
        }, this))
    }, e.prototype.destroy = function() {
        this.$element.off(".owl.core"), this.$stage.off(".owl.core"), a(c).off(".owl.core"), !1 !== this.settings.responsive && (b.clearTimeout(this.resizeTimer), this.off(b, "resize", this._handlers.onThrottledResize));
        for (var d in this._plugins) this._plugins[d].destroy();
        this.$stage.children(".cloned").remove(), this.$stage.unwrap(), this.$stage.children().contents().unwrap(), this.$stage.children().unwrap(), this.$stage.remove(), this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class", this.$element.attr("class").replace(new RegExp(this.options.responsiveClass + "-\\S+\\s", "g"), "")).removeData("owl.carousel")
    }, e.prototype.op = function(a, b, c) {
        var d = this.settings.rtl;
        switch (b) {
            case "<":
                return d ? a > c : a < c;
            case ">":
                return d ? a < c : a > c;
            case ">=":
                return d ? a <= c : a >= c;
            case "<=":
                return d ? a >= c : a <= c
        }
    }, e.prototype.on = function(a, b, c, d) {
        a.addEventListener ? a.addEventListener(b, c, d) : a.attachEvent && a.attachEvent("on" + b, c)
    }, e.prototype.off = function(a, b, c, d) {
        a.removeEventListener ? a.removeEventListener(b, c, d) : a.detachEvent && a.detachEvent("on" + b, c)
    }, e.prototype.trigger = function(b, c, d, f, g) {
        var h = {
                item: {
                    count: this._items.length,
                    index: this.current()
                }
            },
            i = a.camelCase(a.grep(["on", b, d], function(a) {
                return a
            }).join("-").toLowerCase()),
            j = a.Event([b, "owl", d || "carousel"].join(".").toLowerCase(), a.extend({
                relatedTarget: this
            }, h, c));
        return this._supress[b] || (a.each(this._plugins, function(a, b) {
            b.onTrigger && b.onTrigger(j)
        }), this.register({
            type: e.Type.Event,
            name: b
        }), this.$element.trigger(j), this.settings && "function" == typeof this.settings[i] && this.settings[i].call(this, j)), j
    }, e.prototype.enter = function(b) {
        a.each([b].concat(this._states.tags[b] || []), a.proxy(function(a, b) {
            this._states.current[b] === d && (this._states.current[b] = 0), this._states.current[b]++
        }, this))
    }, e.prototype.leave = function(b) {
        a.each([b].concat(this._states.tags[b] || []), a.proxy(function(a, b) {
            this._states.current[b]--
        }, this))
    }, e.prototype.register = function(b) {
        if (b.type === e.Type.Event) {
            if (a.event.special[b.name] || (a.event.special[b.name] = {}), !a.event.special[b.name].owl) {
                var c = a.event.special[b.name]._default;
                a.event.special[b.name]._default = function(a) {
                    return !c || !c.apply || a.namespace && -1 !== a.namespace.indexOf("owl") ? a.namespace && a.namespace.indexOf("owl") > -1 : c.apply(this, arguments)
                }, a.event.special[b.name].owl = !0
            }
        } else b.type === e.Type.State && (this._states.tags[b.name] ? this._states.tags[b.name] = this._states.tags[b.name].concat(b.tags) : this._states.tags[b.name] = b.tags, this._states.tags[b.name] = a.grep(this._states.tags[b.name], a.proxy(function(c, d) {
            return a.inArray(c, this._states.tags[b.name]) === d
        }, this)))
    }, e.prototype.suppress = function(b) {
        a.each(b, a.proxy(function(a, b) {
            this._supress[b] = !0
        }, this))
    }, e.prototype.release = function(b) {
        a.each(b, a.proxy(function(a, b) {
            delete this._supress[b]
        }, this))
    }, e.prototype.pointer = function(a) {
        var c = {
            x: null,
            y: null
        };
        return a = a.originalEvent || a || b.event, a = a.touches && a.touches.length ? a.touches[0] : a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : a, a.pageX ? (c.x = a.pageX, c.y = a.pageY) : (c.x = a.clientX, c.y = a.clientY), c
    }, e.prototype.isNumeric = function(a) {
        return !isNaN(parseFloat(a))
    }, e.prototype.difference = function(a, b) {
        return {
            x: a.x - b.x,
            y: a.y - b.y
        }
    }, a.fn.owlCarousel = function(b) {
        var c = Array.prototype.slice.call(arguments, 1);
        return this.each(function() {
            var d = a(this),
                f = d.data("owl.carousel");
            f || (f = new e(this, "object" == typeof b && b), d.data("owl.carousel", f), a.each(["next", "prev", "to", "destroy", "refresh", "replace", "add", "remove"], function(b, c) {
                f.register({
                    type: e.Type.Event,
                    name: c
                }), f.$element.on(c + ".owl.carousel.core", a.proxy(function(a) {
                    a.namespace && a.relatedTarget !== this && (this.suppress([c]), f[c].apply(this, [].slice.call(arguments, 1)), this.release([c]))
                }, f))
            })), "string" == typeof b && "_" !== b.charAt(0) && f[b].apply(f, c)
        })
    }, a.fn.owlCarousel.Constructor = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    var e = function(b) {
        this._core = b, this._interval = null, this._visible = null, this._handlers = {
            "initialized.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.autoRefresh && this.watch()
            }, this)
        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers)
    };
    e.Defaults = {
        autoRefresh: !0,
        autoRefreshInterval: 500
    }, e.prototype.watch = function() {
        this._interval || (this._visible = this._core.isVisible(), this._interval = b.setInterval(a.proxy(this.refresh, this), this._core.settings.autoRefreshInterval))
    }, e.prototype.refresh = function() {
        this._core.isVisible() !== this._visible && (this._visible = !this._visible, this._core.$element.toggleClass("owl-hidden", !this._visible), this._visible && this._core.invalidate("width") && this._core.refresh())
    }, e.prototype.destroy = function() {
        var a, c;
        b.clearInterval(this._interval);
        for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
        for (c in Object.getOwnPropertyNames(this)) "function" != typeof this[c] && (this[c] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.AutoRefresh = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    var e = function(b) {
        this._core = b, this._loaded = [], this._handlers = {
            "initialized.owl.carousel change.owl.carousel resized.owl.carousel": a.proxy(function(b) {
                if (b.namespace && this._core.settings && this._core.settings.lazyLoad && (b.property && "position" == b.property.name || "initialized" == b.type)) {
                    var c = this._core.settings,
                        e = c.center && Math.ceil(c.items / 2) || c.items,
                        f = c.center && -1 * e || 0,
                        g = (b.property && b.property.value !== d ? b.property.value : this._core.current()) + f,
                        h = this._core.clones().length,
                        i = a.proxy(function(a, b) {
                            this.load(b)
                        }, this);
                    for (c.lazyLoadEager > 0 && (e += c.lazyLoadEager, c.loop && (g -= c.lazyLoadEager, e++)); f++ < e;) this.load(h / 2 + this._core.relative(g)), h && a.each(this._core.clones(this._core.relative(g)), i), g++
                }
            }, this)
        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers)
    };
    e.Defaults = {
        lazyLoad: !1,
        lazyLoadEager: 0
    }, e.prototype.load = function(c) {
        var d = this._core.$stage.children().eq(c),
            e = d && d.find(".owl-lazy");
        !e || a.inArray(d.get(0), this._loaded) > -1 || (e.each(a.proxy(function(c, d) {
            var e, f = a(d),
                g = b.devicePixelRatio > 1 && f.attr("data-src-retina") || f.attr("data-src") || f.attr("data-srcset");
            this._core.trigger("load", {
                element: f,
                url: g
            }, "lazy"), f.is("img") ? f.one("load.owl.lazy", a.proxy(function() {
                f.css("opacity", 1), this._core.trigger("loaded", {
                    element: f,
                    url: g
                }, "lazy")
            }, this)).attr("src", g) : f.is("source") ? f.one("load.owl.lazy", a.proxy(function() {
                this._core.trigger("loaded", {
                    element: f,
                    url: g
                }, "lazy")
            }, this)).attr("srcset", g) : (e = new Image, e.onload = a.proxy(function() {
                f.css({
                    "background-image": 'url("' + g + '")',
                    opacity: "1"
                }), this._core.trigger("loaded", {
                    element: f,
                    url: g
                }, "lazy")
            }, this), e.src = g)
        }, this)), this._loaded.push(d.get(0)))
    }, e.prototype.destroy = function() {
        var a, b;
        for (a in this.handlers) this._core.$element.off(a, this.handlers[a]);
        for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.Lazy = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    var e = function(c) {
        this._core = c, this._previousHeight = null, this._handlers = {
            "initialized.owl.carousel refreshed.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.autoHeight && this.update()
            }, this),
            "changed.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.autoHeight && "position" === a.property.name && this.update()
            }, this),
            "loaded.owl.lazy": a.proxy(function(a) {
                a.namespace && this._core.settings.autoHeight && a.element.closest("." + this._core.settings.itemClass).index() === this._core.current() && this.update()
            }, this)
        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers), this._intervalId = null;
        var d = this;
        a(b).on("load", function() {
            d._core.settings.autoHeight && d.update()
        }), a(b).resize(function() {
            d._core.settings.autoHeight && (null != d._intervalId && clearTimeout(d._intervalId), d._intervalId = setTimeout(function() {
                d.update()
            }, 250))
        })
    };
    e.Defaults = {
        autoHeight: !1,
        autoHeightClass: "owl-height"
    }, e.prototype.update = function() {
        var b = this._core._current,
            c = b + this._core.settings.items,
            d = this._core.settings.lazyLoad,
            e = this._core.$stage.children().toArray().slice(b, c),
            f = [],
            g = 0;
        a.each(e, function(b, c) {
            f.push(a(c).height())
        }), g = Math.max.apply(null, f), g <= 1 && d && this._previousHeight && (g = this._previousHeight), this._previousHeight = g, this._core.$stage.parent().height(g).addClass(this._core.settings.autoHeightClass)
    }, e.prototype.destroy = function() {
        var a, b;
        for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
        for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.AutoHeight = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    var e = function(b) {
        this._core = b, this._videos = {}, this._playing = null, this._handlers = {
            "initialized.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.register({
                    type: "state",
                    name: "playing",
                    tags: ["interacting"]
                })
            }, this),
            "resize.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.video && this.isInFullScreen() && a.preventDefault()
            }, this),
            "refreshed.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.is("resizing") && this._core.$stage.find(".cloned .owl-video-frame").remove()
            }, this),
            "changed.owl.carousel": a.proxy(function(a) {
                a.namespace && "position" === a.property.name && this._playing && this.stop()
            }, this),
            "prepared.owl.carousel": a.proxy(function(b) {
                if (b.namespace) {
                    var c = a(b.content).find(".owl-video");
                    c.length && (c.css("display", "none"), this.fetch(c, a(b.content)))
                }
            }, this)
        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers), this._core.$element.on("click.owl.video", ".owl-video-play-icon", a.proxy(function(a) {
            this.play(a)
        }, this))
    };
    e.Defaults = {
        video: !1,
        videoHeight: !1,
        videoWidth: !1
    }, e.prototype.fetch = function(a, b) {
        var c = function() {
                return a.attr("data-vimeo-id") ? "vimeo" : a.attr("data-vzaar-id") ? "vzaar" : "youtube"
            }(),
            d = a.attr("data-vimeo-id") || a.attr("data-youtube-id") || a.attr("data-vzaar-id"),
            e = a.attr("data-width") || this._core.settings.videoWidth,
            f = a.attr("data-height") || this._core.settings.videoHeight,
            g = a.attr("href");
        if (!g) throw new Error("Missing video URL.");
        if (d = g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/), d[3].indexOf("youtu") > -1) c = "youtube";
        else if (d[3].indexOf("vimeo") > -1) c = "vimeo";
        else {
            if (!(d[3].indexOf("vzaar") > -1)) throw new Error("Video URL not supported.");
            c = "vzaar"
        }
        d = d[6], this._videos[g] = {
            type: c,
            id: d,
            width: e,
            height: f
        }, b.attr("data-video", g), this.thumbnail(a, this._videos[g])
    }, e.prototype.thumbnail = function(b, c) {
        var d, e, f, g = c.width && c.height ? "width:" + c.width + "px;height:" + c.height + "px;" : "",
            h = b.find("img"),
            i = "src",
            j = "",
            k = this._core.settings,
            l = function(c) {
                e = '<div class="owl-video-play-icon"></div>', d = k.lazyLoad ? a("<div>", {
                    class: "owl-video-tn " + j,
                    srcType: c
                }) : a("<div>", {
                    class: "owl-video-tn",
                    style: "opacity:1;background-image:url(" + c + ")"
                }), b.after(d), b.after(e)
            };
        if (b.wrap(a("<div>", {
                class: "owl-video-wrapper",
                style: g
            })), this._core.settings.lazyLoad && (i = "data-src", j = "owl-lazy"), h.length) return l(h.attr(i)), h.remove(), !1;
        "youtube" === c.type ? (f = "//img.youtube.com/vi/" + c.id + "/hqdefault.jpg", l(f)) : "vimeo" === c.type ? a.ajax({
            type: "GET",
            url: "//vimeo.com/api/v2/video/" + c.id + ".json",
            jsonp: "callback",
            dataType: "jsonp",
            success: function(a) {
                f = a[0].thumbnail_large, l(f)
            }
        }) : "vzaar" === c.type && a.ajax({
            type: "GET",
            url: "//vzaar.com/api/videos/" + c.id + ".json",
            jsonp: "callback",
            dataType: "jsonp",
            success: function(a) {
                f = a.framegrab_url, l(f)
            }
        })
    }, e.prototype.stop = function() {
        this._core.trigger("stop", null, "video"), this._playing.find(".owl-video-frame").remove(), this._playing.removeClass("owl-video-playing"), this._playing = null, this._core.leave("playing"), this._core.trigger("stopped", null, "video")
    }, e.prototype.play = function(b) {
        var c, d = a(b.target),
            e = d.closest("." + this._core.settings.itemClass),
            f = this._videos[e.attr("data-video")],
            g = f.width || "100%",
            h = f.height || this._core.$stage.height();
        this._playing || (this._core.enter("playing"), this._core.trigger("play", null, "video"), e = this._core.items(this._core.relative(e.index())), this._core.reset(e.index()), c = a('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>'), c.attr("height", h), c.attr("width", g), "youtube" === f.type ? c.attr("src", "//www.youtube.com/embed/" + f.id + "?autoplay=1&rel=0&v=" + f.id) : "vimeo" === f.type ? c.attr("src", "//player.vimeo.com/video/" + f.id + "?autoplay=1") : "vzaar" === f.type && c.attr("src", "//view.vzaar.com/" + f.id + "/player?autoplay=true"), a(c).wrap('<div class="owl-video-frame" >').insertAfter(e.find(".owl-video")), this._playing = e.addClass("owl-video-playing"))
    }, e.prototype.isInFullScreen = function() {
        var b = c.fullscreenElement || c.mozFullScreenElement || c.webkitFullscreenElement;
        return b && a(b).parent().hasClass("owl-video-frame")
    }, e.prototype.destroy = function() {
        var a, b;
        this._core.$element.off("click.owl.video");
        for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
        for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.Video = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    var e = function(b) {
        this.core = b, this.core.options = a.extend({}, e.Defaults, this.core.options), this.swapping = !0, this.previous = d, this.next = d, this.handlers = {
            "change.owl.carousel": a.proxy(function(a) {
                a.namespace && "position" == a.property.name && (this.previous = this.core.current(), this.next = a.property.value)
            }, this),
            "drag.owl.carousel dragged.owl.carousel translated.owl.carousel": a.proxy(function(a) {
                a.namespace && (this.swapping = "translated" == a.type)
            }, this),
            "translate.owl.carousel": a.proxy(function(a) {
                a.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap()
            }, this)
        }, this.core.$element.on(this.handlers)
    };
    e.Defaults = {
        animateOut: !1,
        animateIn: !1
    }, e.prototype.swap = function() {
        if (1 === this.core.settings.items && a.support.animation && a.support.transition) {
            this.core.speed(0);
            var b, c = a.proxy(this.clear, this),
                d = this.core.$stage.children().eq(this.previous),
                e = this.core.$stage.children().eq(this.next),
                f = this.core.settings.animateIn,
                g = this.core.settings.animateOut;
            this.core.current() !== this.previous && (g && (b = this.core.coordinates(this.previous) - this.core.coordinates(this.next), d.one(a.support.animation.end, c).css({
                left: b + "px"
            }).addClass("animated owl-animated-out").addClass(g)), f && e.one(a.support.animation.end, c).addClass("animated owl-animated-in").addClass(f))
        }
    }, e.prototype.clear = function(b) {
        a(b.target).css({
            left: ""
        }).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut), this.core.onTransitionEnd()
    }, e.prototype.destroy = function() {
        var a, b;
        for (a in this.handlers) this.core.$element.off(a, this.handlers[a]);
        for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.Animate = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    var e = function(b) {
        this._core = b, this._call = null, this._time = 0, this._timeout = 0, this._paused = !0, this._handlers = {
            "changed.owl.carousel": a.proxy(function(a) {
                a.namespace && "settings" === a.property.name ? this._core.settings.autoplay ? this.play() : this.stop() : a.namespace && "position" === a.property.name && this._paused && (this._time = 0)
            }, this),
            "initialized.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.autoplay && this.play()
            }, this),
            "play.owl.autoplay": a.proxy(function(a, b, c) {
                a.namespace && this.play(b, c)
            }, this),
            "stop.owl.autoplay": a.proxy(function(a) {
                a.namespace && this.stop()
            }, this),
            "mouseover.owl.autoplay": a.proxy(function() {
                this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause()
            }, this),
            "mouseleave.owl.autoplay": a.proxy(function() {
                this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.play()
            }, this),
            "touchstart.owl.core": a.proxy(function() {
                this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause()
            }, this),
            "touchend.owl.core": a.proxy(function() {
                this._core.settings.autoplayHoverPause && this.play()
            }, this)
        }, this._core.$element.on(this._handlers), this._core.options = a.extend({}, e.Defaults, this._core.options)
    };
    e.Defaults = {
        autoplay: !1,
        autoplayTimeout: 5e3,
        autoplayHoverPause: !1,
        autoplaySpeed: !1
    }, e.prototype._next = function(d) {
        this._call = b.setTimeout(a.proxy(this._next, this, d), this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read()), this._core.is("interacting") || c.hidden || this._core.next(d || this._core.settings.autoplaySpeed)
    }, e.prototype.read = function() {
        return (new Date).getTime() - this._time
    }, e.prototype.play = function(c, d) {
        var e;
        this._core.is("rotating") || this._core.enter("rotating"), c = c || this._core.settings.autoplayTimeout, e = Math.min(this._time % (this._timeout || c), c), this._paused ? (this._time = this.read(), this._paused = !1) : b.clearTimeout(this._call), this._time += this.read() % c - e, this._timeout = c, this._call = b.setTimeout(a.proxy(this._next, this, d), c - e)
    }, e.prototype.stop = function() {
        this._core.is("rotating") && (this._time = 0, this._paused = !0, b.clearTimeout(this._call), this._core.leave("rotating"))
    }, e.prototype.pause = function() {
        this._core.is("rotating") && !this._paused && (this._time = this.read(), this._paused = !0, b.clearTimeout(this._call))
    }, e.prototype.destroy = function() {
        var a, b;
        this.stop();
        for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
        for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.autoplay = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    "use strict";
    var e = function(b) {
        this._core = b, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = {
            next: this._core.next,
            prev: this._core.prev,
            to: this._core.to
        }, this._handlers = {
            "prepared.owl.carousel": a.proxy(function(b) {
                b.namespace && this._core.settings.dotsData && this._templates.push('<div class="' + this._core.settings.dotClass + '">' + a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot") + "</div>")
            }, this),
            "added.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.dotsData && this._templates.splice(a.position, 0, this._templates.pop())
            }, this),
            "remove.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.dotsData && this._templates.splice(a.position, 1)
            }, this),
            "changed.owl.carousel": a.proxy(function(a) {
                a.namespace && "position" == a.property.name && this.draw()
            }, this),
            "initialized.owl.carousel": a.proxy(function(a) {
                a.namespace && !this._initialized && (this._core.trigger("initialize", null, "navigation"), this.initialize(), this.update(), this.draw(), this._initialized = !0, this._core.trigger("initialized", null, "navigation"))
            }, this),
            "refreshed.owl.carousel": a.proxy(function(a) {
                a.namespace && this._initialized && (this._core.trigger("refresh", null, "navigation"), this.update(), this.draw(), this._core.trigger("refreshed", null, "navigation"))
            }, this)
        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers)
    };
    e.Defaults = {
        nav: !1,
        navText: ['<span aria-label="Previous">&#x2039;</span>', '<span aria-label="Next">&#x203a;</span>'],
        navSpeed: !1,
        navElement: 'button type="button" role="presentation"',
        navContainer: !1,
        navContainerClass: "owl-nav",
        navClass: ["owl-prev", "owl-next"],
        slideBy: 1,
        dotClass: "owl-dot",
        dotsClass: "owl-dots",
        dots: !0,
        dotsEach: !1,
        dotsData: !1,
        dotsSpeed: !1,
        dotsContainer: !1
    }, e.prototype.initialize = function() {
        var b, c = this._core.settings;
        this._controls.$relative = (c.navContainer ? a(c.navContainer) : a("<div>").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"), this._controls.$previous = a("<" + c.navElement + ">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click", a.proxy(function(a) {
            this.prev(c.navSpeed)
        }, this)), this._controls.$next = a("<" + c.navElement + ">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click", a.proxy(function(a) {
            this.next(c.navSpeed)
        }, this)), c.dotsData || (this._templates = [a('<button role="button">').addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]), this._controls.$absolute = (c.dotsContainer ? a(c.dotsContainer) : a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"), this._controls.$absolute.on("click", "button", a.proxy(function(b) {
            var d = a(b.target).parent().is(this._controls.$absolute) ? a(b.target).index() : a(b.target).parent().index();
            b.preventDefault(), this.to(d, c.dotsSpeed)
        }, this));
        for (b in this._overrides) this._core[b] = a.proxy(this[b], this)
    }, e.prototype.destroy = function() {
        var a, b, c, d, e;
        e = this._core.settings;
        for (a in this._handlers) this.$element.off(a, this._handlers[a]);
        for (b in this._controls) "$relative" === b && e.navContainer ? this._controls[b].html("") : this._controls[b].remove();
        for (d in this.overides) this._core[d] = this._overrides[d];
        for (c in Object.getOwnPropertyNames(this)) "function" != typeof this[c] && (this[c] = null)
    }, e.prototype.update = function() {
        var a, b, c, d = this._core.clones().length / 2,
            e = d + this._core.items().length,
            f = this._core.maximum(!0),
            g = this._core.settings,
            h = g.center || g.autoWidth || g.dotsData ? 1 : g.dotsEach || g.items;
        if ("page" !== g.slideBy && (g.slideBy = Math.min(g.slideBy, g.items)), g.dots || "page" == g.slideBy)
            for (this._pages = [], a = d, b = 0, c = 0; a < e; a++) {
                if (b >= h || 0 === b) {
                    if (this._pages.push({
                            start: Math.min(f, a - d),
                            end: a - d + h - 1
                        }), Math.min(f, a - d) === f) break;
                    b = 0, ++c
                }
                b += this._core.mergers(this._core.relative(a))
            }
    }, e.prototype.draw = function() {
        var b, c = this._core.settings,
            d = this._core.items().length <= c.items,
            e = this._core.relative(this._core.current()),
            f = c.loop || c.rewind;
        this._controls.$relative.toggleClass("disabled", !c.nav || d), c.nav && (this._controls.$previous.toggleClass("disabled", !f && e <= this._core.minimum(!0)), this._controls.$next.toggleClass("disabled", !f && e >= this._core.maximum(!0))), this._controls.$absolute.toggleClass("disabled", !c.dots || d), c.dots && (b = this._pages.length - this._controls.$absolute.children().length, c.dotsData && 0 !== b ? this._controls.$absolute.html(this._templates.join("")) : b > 0 ? this._controls.$absolute.append(new Array(b + 1).join(this._templates[0])) : b < 0 && this._controls.$absolute.children().slice(b).remove(), this._controls.$absolute.find(".active").removeClass("active"), this._controls.$absolute.children().eq(a.inArray(this.current(), this._pages)).addClass("active"))
    }, e.prototype.onTrigger = function(b) {
        var c = this._core.settings;
        b.page = {
            index: a.inArray(this.current(), this._pages),
            count: this._pages.length,
            size: c && (c.center || c.autoWidth || c.dotsData ? 1 : c.dotsEach || c.items)
        }
    }, e.prototype.current = function() {
        var b = this._core.relative(this._core.current());
        return a.grep(this._pages, a.proxy(function(a, c) {
            return a.start <= b && a.end >= b
        }, this)).pop()
    }, e.prototype.getPosition = function(b) {
        var c, d, e = this._core.settings;
        return "page" == e.slideBy ? (c = a.inArray(this.current(), this._pages), d = this._pages.length, b ? ++c : --c, c = this._pages[(c % d + d) % d].start) : (c = this._core.relative(this._core.current()), d = this._core.items().length, b ? c += e.slideBy : c -= e.slideBy), c
    }, e.prototype.next = function(b) {
        a.proxy(this._overrides.to, this._core)(this.getPosition(!0), b)
    }, e.prototype.prev = function(b) {
        a.proxy(this._overrides.to, this._core)(this.getPosition(!1), b)
    }, e.prototype.to = function(b, c, d) {
        var e;
        !d && this._pages.length ? (e = this._pages.length, a.proxy(this._overrides.to, this._core)(this._pages[(b % e + e) % e].start, c)) : a.proxy(this._overrides.to, this._core)(b, c)
    }, a.fn.owlCarousel.Constructor.Plugins.Navigation = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    "use strict";
    var e = function(c) {
        this._core = c, this._hashes = {}, this.$element = this._core.$element, this._handlers = {
            "initialized.owl.carousel": a.proxy(function(c) {
                c.namespace && "URLHash" === this._core.settings.startPosition && a(b).trigger("hashchange.owl.navigation")
            }, this),
            "prepared.owl.carousel": a.proxy(function(b) {
                if (b.namespace) {
                    var c = a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");
                    if (!c) return;
                    this._hashes[c] = b.content
                }
            }, this),
            "changed.owl.carousel": a.proxy(function(c) {
                if (c.namespace && "position" === c.property.name) {
                    var d = this._core.items(this._core.relative(this._core.current())),
                        e = a.map(this._hashes, function(a, b) {
                            return a === d ? b : null
                        }).join();
                    if (!e || b.location.hash.slice(1) === e) return;
                    b.location.hash = e
                }
            }, this)
        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers), a(b).on("hashchange.owl.navigation", a.proxy(function(a) {
            var c = b.location.hash.substring(1),
                e = this._core.$stage.children(),
                f = this._hashes[c] && e.index(this._hashes[c]);
            f !== d && f !== this._core.current() && this._core.to(this._core.relative(f), !1, !0)
        }, this))
    };
    e.Defaults = {
        URLhashListener: !1
    }, e.prototype.destroy = function() {
        var c, d;
        a(b).off("hashchange.owl.navigation");
        for (c in this._handlers) this._core.$element.off(c, this._handlers[c]);
        for (d in Object.getOwnPropertyNames(this)) "function" != typeof this[d] && (this[d] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.Hash = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    function e(b, c) {
        var e = !1,
            f = b.charAt(0).toUpperCase() + b.slice(1);
        return a.each((b + " " + h.join(f + " ") + f).split(" "), function(a, b) {
            if (g[b] !== d) return e = !c || b, !1
        }), e
    }

    function f(a) {
        return e(a, !0)
    }
    var g = a("<support>").get(0).style,
        h = "Webkit Moz O ms".split(" "),
        i = {
            transition: {
                end: {
                    WebkitTransition: "webkitTransitionEnd",
                    MozTransition: "transitionend",
                    OTransition: "oTransitionEnd",
                    transition: "transitionend"
                }
            },
            animation: {
                end: {
                    WebkitAnimation: "webkitAnimationEnd",
                    MozAnimation: "animationend",
                    OAnimation: "oAnimationEnd",
                    animation: "animationend"
                }
            }
        },
        j = {
            csstransforms: function() {
                return !!e("transform")
            },
            csstransforms3d: function() {
                return !!e("perspective")
            },
            csstransitions: function() {
                return !!e("transition")
            },
            cssanimations: function() {
                return !!e("animation")
            }
        };
    j.csstransitions() && (a.support.transition = new String(f("transition")), a.support.transition.end = i.transition.end[a.support.transition]), j.cssanimations() && (a.support.animation = new String(f("animation")), a.support.animation.end = i.animation.end[a.support.animation]), j.csstransforms() && (a.support.transform = new String(f("transform")), a.support.transform3d = j.csstransforms3d())
}(window.Zepto || window.jQuery, window, document);

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

/* enquire */
! function(a, b, c) {
    var d = window.matchMedia;
    "undefined" != typeof module && module.exports ? module.exports = c(d) : "function" == typeof define && define.amd ? define(function() {
        return b[a] = c(d)
    }) : b[a] = c(d)
}("enquire", this, function(a) {
    "use strict";

    function b(a, b) {
        var c, d = 0,
            e = a.length;
        for (d; e > d && (c = b(a[d], d), c !== !1); d++);
    }

    function c(a) {
        return "[object Array]" === Object.prototype.toString.apply(a)
    }

    function d(a) {
        return "function" == typeof a
    }

    function e(a) {
        this.options = a, !a.deferSetup && this.setup()
    }

    function f(b, c) {
        this.query = b, this.isUnconditional = c, this.handlers = [], this.mql = a(b);
        var d = this;
        this.listener = function(a) {
            d.mql = a, d.assess()
        }, this.mql.addListener(this.listener)
    }

    function g() {
        if (!a) throw new Error("matchMedia not present, legacy browsers require a polyfill");
        this.queries = {}, this.browserIsIncapable = !a("only all").matches
    }
    return e.prototype = {
        setup: function() {
            this.options.setup && this.options.setup(), this.initialised = !0
        },
        on: function() {
            !this.initialised && this.setup(), this.options.match && this.options.match()
        },
        off: function() {
            this.options.unmatch && this.options.unmatch()
        },
        destroy: function() {
            this.options.destroy ? this.options.destroy() : this.off()
        },
        equals: function(a) {
            return this.options === a || this.options.match === a
        }
    }, f.prototype = {
        addHandler: function(a) {
            var b = new e(a);
            this.handlers.push(b), this.matches() && b.on()
        },
        removeHandler: function(a) {
            var c = this.handlers;
            b(c, function(b, d) {
                return b.equals(a) ? (b.destroy(), !c.splice(d, 1)) : void 0
            })
        },
        matches: function() {
            return this.mql.matches || this.isUnconditional
        },
        clear: function() {
            b(this.handlers, function(a) {
                a.destroy()
            }), this.mql.removeListener(this.listener), this.handlers.length = 0
        },
        assess: function() {
            var a = this.matches() ? "on" : "off";
            b(this.handlers, function(b) {
                b[a]()
            })
        }
    }, g.prototype = {
        register: function(a, e, g) {
            var h = this.queries,
                i = g && this.browserIsIncapable;
            return h[a] || (h[a] = new f(a, i)), d(e) && (e = {
                match: e
            }), c(e) || (e = [e]), b(e, function(b) {
                d(b) && (b = {
                    match: b
                }), h[a].addHandler(b)
            }), this
        },
        unregister: function(a, b) {
            var c = this.queries[a];
            return c && (b ? c.removeHandler(b) : (c.clear(), delete this.queries[a])), this
        }
    }, new g
});

/*!
 * Jarallax v2.0.2 (https://github.com/nk-o/jarallax)
 * Copyright 2022 nK <https://nkdev.info>
 * Licensed under MIT (https://github.com/nk-o/jarallax/blob/master/LICENSE)
 */

/* plugin */
! function() {
    var t = !1;
    window.JQClass = function() {}, JQClass.classes = {}, JQClass.extend = function e(n) {
        function a() {
            !t && this._init && this._init.apply(this, arguments)
        }
        var s = this.prototype;
        t = !0;
        var i = new this;
        t = !1;
        for (var r in n) i[r] = "function" == typeof n[r] && "function" == typeof s[r] ? function(t, e) {
            return function() {
                var n = this._super;
                this._super = function(e) {
                    return s[t].apply(this, e || [])
                };
                var a = e.apply(this, arguments);
                return this._super = n, a
            }
        }(r, n[r]) : n[r];
        return a.prototype = i, a.prototype.constructor = a, a.extend = e, a
    }
}(),
function($) {
    function camelCase(t) {
        return t.replace(/-([a-z])/g, function(t, e) {
            return e.toUpperCase()
        })
    }
    JQClass.classes.JQPlugin = JQClass.extend({
        name: "plugin",
        defaultOptions: {},
        regionalOptions: {},
        _getters: [],
        _getMarker: function() {
            return "is-" + this.name
        },
        _init: function() {
            $.extend(this.defaultOptions, this.regionalOptions && this.regionalOptions[""] || {});
            var t = camelCase(this.name);
            $[t] = this, $.fn[t] = function(e) {
                var n = Array.prototype.slice.call(arguments, 1);
                return $[t]._isNotChained(e, n) ? $[t][e].apply($[t], [this[0]].concat(n)) : this.each(function() {
                    if ("string" == typeof e) {
                        if ("_" === e[0] || !$[t][e]) throw "Unknown method: " + e;
                        $[t][e].apply($[t], [this].concat(n))
                    } else $[t]._attach(this, e)
                })
            }
        },
        setDefaults: function(t) {
            $.extend(this.defaultOptions, t || {})
        },
        _isNotChained: function(t, e) {
            return "option" === t && (0 === e.length || 1 === e.length && "string" == typeof e[0]) ? !0 : $.inArray(t, this._getters) > -1
        },
        _attach: function(t, e) {
            if (t = $(t), !t.hasClass(this._getMarker())) {
                t.addClass(this._getMarker()), e = $.extend({}, this.defaultOptions, this._getMetadata(t), e || {});
                var n = $.extend({
                    name: this.name,
                    elem: t,
                    options: e
                }, this._instSettings(t, e));
                t.data(this.name, n), this._postAttach(t, n), this.option(t, e)
            }
        },
        _instSettings: function(t, e) {
            return {}
        },
        _postAttach: function(t, e) {},
        _getMetadata: function(elem) {
            try {
                var data = elem.data(this.name.toLowerCase()) || "";
                data = data.replace(/'/g, '"'), data = data.replace(/([a-zA-Z0-9]+):/g, function(t, e, n) {
                    var a = data.substring(0, n).match(/"/g);
                    return a && a.length % 2 !== 0 ? e + ":" : '"' + e + '":'
                }), data = $.parseJSON("{" + data + "}");
                for (var name in data) {
                    var value = data[name];
                    "string" == typeof value && value.match(/^new Date\((.*)\)$/) && (data[name] = eval(value))
                }
                return data
            } catch (e) {
                return {}
            }
        },
        _getInst: function(t) {
            return $(t).data(this.name) || {}
        },
        option: function(t, e, n) {
            t = $(t);
            var a = t.data(this.name);
            if (!e || "string" == typeof e && null == n) {
                var s = (a || {}).options;
                return s && e ? s[e] : s
            }
            if (t.hasClass(this._getMarker())) {
                var s = e || {};
                "string" == typeof e && (s = {}, s[e] = n), this._optionsChanged(t, a, s), $.extend(a.options, s)
            }
        },
        _optionsChanged: function(t, e, n) {},
        destroy: function(t) {
            t = $(t), t.hasClass(this._getMarker()) && (this._preDestroy(t, this._getInst(t)), t.removeData(this.name).removeClass(this._getMarker()))
        },
        _preDestroy: function(t, e) {}
    }), $.JQPlugin = {
        createPlugin: function(t, e) {
            "object" == typeof t && (e = t, t = "JQPlugin"), t = camelCase(t);
            var n = camelCase(e.name);
            JQClass.classes[n] = JQClass.classes[t].extend(e), new JQClass.classes[n]
        }
    }
}(jQuery);

/* countTo */
! function(t) {
    function e(t, e) {
        return t.toFixed(e.decimals)
    }
    t.fn.countTo = function(e) {
        return e = e || {}, t(this).each(function() {
            function a() {
                s += l, c++, n(s), "function" == typeof o.onUpdate && o.onUpdate.call(f, s), c >= r && (i.removeData("countTo"), clearInterval(d.interval), s = o.to, "function" == typeof o.onComplete && o.onComplete.call(f, s))
            }

            function n(t) {
                var e = o.formatter.call(f, t, o);
                i.text(e)
            }
            var o = t.extend({}, t.fn.countTo.defaults, {
                    from: t(this).data("from"),
                    to: t(this).data("to"),
                    speed: t(this).data("speed"),
                    refreshInterval: t(this).data("refresh-interval"),
                    decimals: t(this).data("decimals")
                }, e),
                r = Math.ceil(o.speed / o.refreshInterval),
                l = (o.to - o.from) / r,
                f = this,
                i = t(this),
                c = 0,
                s = o.from,
                d = i.data("countTo") || {};
            i.data("countTo", d), d.interval && clearInterval(d.interval), d.interval = setInterval(a, o.refreshInterval), n(s)
        })
    }, t.fn.countTo.defaults = {
        from: 0,
        to: 0,
        speed: 1e3,
        refreshInterval: 100,
        decimals: 0,
        formatter: e,
        onUpdate: null,
        onComplete: null
    }
}(jQuery);

/* countdown */
! function(t) {
    t.JQPlugin.createPlugin({
        name: "countdown",
        defaultOptions: {
            until: null,
            since: null,
            timezone: null,
            serverSync: null,
            format: "dHMS",
            layout: "",
            compact: !1,
            padZeroes: !1,
            significant: 0,
            description: "",
            expiryUrl: "",
            expiryText: "",
            alwaysExpire: !1,
            onExpiry: null,
            onTick: null,
            tickInterval: 1
        },
        regionalOptions: {
            "": {
                labels: ["y", "m", "w", "d", "h", "m", "s"],
                labels1: ["y", "m", "w", "d", "h", "m", "s"],
                compactLabels: ["y", "m", "w", "d"],
                whichLabels: null,
                digits: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
                timeSeparator: ":",
                isRTL: !1
            }
        },
        _getters: ["getTimes"],
        _rtlClass: "countdown-rtl",
        _sectionClass: "countdown-section",
        _amountClass: "countdown-amount",
        _periodClass: "countdown-period",
        _rowClass: "countdown-row",
        _holdingClass: "countdown-holding",
        _showClass: "countdown-show",
        _descrClass: "countdown-descr",
        _timerElems: [],
        _init: function() {
            var e = this;
            this._super(), this._serverSyncs = [];
            var i = "function" == typeof Date.now ? Date.now : function() {
                    return (new Date).getTime()
                },
                n = window.performance && "function" == typeof window.performance.now;
            var s = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || null,
                o = 0;
            !s || t.noRequestAnimationFrame ? (t.noRequestAnimationFrame = null, setInterval(function() {
                e._updateElems()
            }, 980)) : (o = window.animationStartTime || window.webkitAnimationStartTime || window.mozAnimationStartTime || window.oAnimationStartTime || window.msAnimationStartTime || i(), s(function t(a) {
                var r = a < 1e12 ? n ? performance.now() + performance.timing.navigationStart : i() : a || i();
                r - o >= 1e3 && (e._updateElems(), o = r), s(t)
            }))
        },
        UTCDate: function(t, e, i, n, s, o, a, r) {
            "object" == typeof e && e.constructor == Date && (r = e.getMilliseconds(), a = e.getSeconds(), o = e.getMinutes(), s = e.getHours(), n = e.getDate(), i = e.getMonth(), e = e.getFullYear());
            var l = new Date;
            return l.setUTCFullYear(e), l.setUTCDate(1), l.setUTCMonth(i || 0), l.setUTCDate(n || 1), l.setUTCHours(s || 0), l.setUTCMinutes((o || 0) - (Math.abs(t) < 30 ? 60 * t : t)), l.setUTCSeconds(a || 0), l.setUTCMilliseconds(r || 0), l
        },
        periodsToSeconds: function(t) {
            return 31557600 * t[0] + 2629800 * t[1] + 604800 * t[2] + 86400 * t[3] + 3600 * t[4] + 60 * t[5] + t[6]
        },
        _instSettings: function(t, e) {
            return {
                _periods: [0, 0, 0, 0, 0, 0, 0]
            }
        },
        _addElem: function(t) {
            this._hasElem(t) || this._timerElems.push(t)
        },
        _hasElem: function(e) {
            return t.inArray(e, this._timerElems) > -1
        },
        _removeElem: function(e) {
            this._timerElems = t.map(this._timerElems, function(t) {
                return t == e ? null : t
            })
        },
        _updateElems: function() {
            for (var t = this._timerElems.length - 1; t >= 0; t--) this._updateCountdown(this._timerElems[t])
        },
        _optionsChanged: function(e, i, n) {
            n.layout && (n.layout = n.layout.replace(/&lt;/g, "<").replace(/&gt;/g, ">")), this._resetExtraLabels(i.options, n);
            var s = i.options.timezone != n.timezone;
            t.extend(i.options, n), this._adjustSettings(e, i, null != n.until || null != n.since || s);
            var o = new Date;
            (i._since && i._since < o || i._until && i._until > o) && this._addElem(e[0]), this._updateCountdown(e, i)
        },
        _updateCountdown: function(e, i) {
            if (e = e.jquery ? e : t(e), i = i || this._getInst(e)) {
                if (e.html(this._generateHTML(i)).toggleClass(this._rtlClass, i.options.isRTL), t.isFunction(i.options.onTick)) {
                    var n = "lap" != i._hold ? i._periods : this._calculatePeriods(i, i._show, i.options.significant, new Date);
                    1 != i.options.tickInterval && this.periodsToSeconds(n) % i.options.tickInterval != 0 || i.options.onTick.apply(e[0], [n])
                }
                if ("pause" != i._hold && (i._since ? i._now.getTime() < i._since.getTime() : i._now.getTime() >= i._until.getTime()) && !i._expiring) {
                    if (i._expiring = !0, this._hasElem(e[0]) || i.options.alwaysExpire) {
                        if (this._removeElem(e[0]), t.isFunction(i.options.onExpiry) && i.options.onExpiry.apply(e[0], []), i.options.expiryText) {
                            var s = i.options.layout;
                            i.options.layout = i.options.expiryText, this._updateCountdown(e[0], i), i.options.layout = s
                        }
                        i.options.expiryUrl && (window.location = i.options.expiryUrl)
                    }
                    i._expiring = !1
                } else "pause" == i._hold && this._removeElem(e[0])
            }
        },
        _resetExtraLabels: function(t, e) {
            for (var i in e) i.match(/[Ll]abels[02-9]|compactLabels1/) && (t[i] = e[i]);
            for (var i in t) i.match(/[Ll]abels[02-9]|compactLabels1/) && void 0 === e[i] && (t[i] = null)
        },
        _adjustSettings: function(e, i, n) {
            for (var s, o = 0, a = null, r = 0; r < this._serverSyncs.length; r++)
                if (this._serverSyncs[r][0] == i.options.serverSync) {
                    a = this._serverSyncs[r][1];
                    break
                }
            if (null != a) o = i.options.serverSync ? a : 0, s = new Date;
            else {
                var l = t.isFunction(i.options.serverSync) ? i.options.serverSync.apply(e[0], []) : null;
                s = new Date, o = l ? s.getTime() - l.getTime() : 0, this._serverSyncs.push([i.options.serverSync, o])
            }
            var _ = i.options.timezone;
            _ = null == _ ? -s.getTimezoneOffset() : _, (n || !n && null == i._until && null == i._since) && (i._since = i.options.since, null != i._since && (i._since = this.UTCDate(_, this._determineTime(i._since, null)), i._since && o && i._since.setMilliseconds(i._since.getMilliseconds() + o)), i._until = this.UTCDate(_, this._determineTime(i.options.until, s)), o && i._until.setMilliseconds(i._until.getMilliseconds() + o)), i._show = this._determineShow(i)
        },
        _preDestroy: function(t, e) {
            this._removeElem(t[0]), t.empty()
        },
        pause: function(t) {
            this._hold(t, "pause")
        },
        lap: function(t) {
            this._hold(t, "lap")
        },
        resume: function(t) {
            this._hold(t, null)
        },
        toggle: function(e) {
            this[(t.data(e, this.name) || {})._hold ? "resume" : "pause"](e)
        },
        toggleLap: function(e) {
            this[(t.data(e, this.name) || {})._hold ? "resume" : "lap"](e)
        },
        _hold: function(e, i) {
            var n = t.data(e, this.name);
            if (n) {
                if ("pause" == n._hold && !i) {
                    n._periods = n._savePeriods;
                    var s = n._since ? "-" : "+";
                    n[n._since ? "_since" : "_until"] = this._determineTime(s + n._periods[0] + "y" + s + n._periods[1] + "o" + s + n._periods[2] + "w" + s + n._periods[3] + "d" + s + n._periods[4] + "h" + s + n._periods[5] + "m" + s + n._periods[6] + "s"), this._addElem(e)
                }
                n._hold = i, n._savePeriods = "pause" == i ? n._periods : null, t.data(e, this.name, n), this._updateCountdown(e, n)
            }
        },
        getTimes: function(e) {
            var i = t.data(e, this.name);
            return i ? "pause" == i._hold ? i._savePeriods : i._hold ? this._calculatePeriods(i, i._show, i.options.significant, new Date) : i._periods : null
        },
        _determineTime: function(t, e) {
            var i = this,
                n = null == t ? e : "string" == typeof t ? function(t) {
                    t = t.toLowerCase();
                    for (var e = new Date, n = e.getFullYear(), s = e.getMonth(), o = e.getDate(), a = e.getHours(), r = e.getMinutes(), l = e.getSeconds(), _ = /([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g, p = _.exec(t); p;) {
                        switch (p[2] || "s") {
                            case "s":
                                l += parseInt(p[1], 10);
                                break;
                            case "m":
                                r += parseInt(p[1], 10);
                                break;
                            case "h":
                                a += parseInt(p[1], 10);
                                break;
                            case "d":
                                o += parseInt(p[1], 10);
                                break;
                            case "w":
                                o += 7 * parseInt(p[1], 10);
                                break;
                            case "o":
                                s += parseInt(p[1], 10), o = Math.min(o, i._getDaysInMonth(n, s));
                                break;
                            case "y":
                                n += parseInt(p[1], 10), o = Math.min(o, i._getDaysInMonth(n, s))
                        }
                        p = _.exec(t)
                    }
                    return new Date(n, s, o, a, r, l, 0)
                }(t) : "number" == typeof t ? function(t) {
                    var e = new Date;
                    return e.setTime(e.getTime() + 1e3 * t), e
                }(t) : t;
            return n && n.setMilliseconds(0), n
        },
        _getDaysInMonth: function(t, e) {
            return 32 - new Date(t, e, 32).getDate()
        },
        _normalLabels: function(t) {
            return t
        },
        _generateHTML: function(e) {
            var i = this;
            e._periods = e._hold ? e._periods : this._calculatePeriods(e, e._show, e.options.significant, new Date);
            for (var n = !1, s = 0, o = e.options.significant, a = t.extend({}, e._show), r = 0; r <= 6; r++) n |= "?" == e._show[r] && e._periods[r] > 0, a[r] = "?" != e._show[r] || n ? e._show[r] : null, s += a[r] ? 1 : 0, o -= e._periods[r] > 0 ? 1 : 0;
            var l = [!1, !1, !1, !1, !1, !1, !1];
            for (r = 6; r >= 0; r--) e._show[r] && (e._periods[r] ? l[r] = !0 : (l[r] = o > 0, o--));
            var _ = e.options.compact ? e.options.compactLabels : e.options.labels,
                p = e.options.whichLabels || this._normalLabels,
                c = function(t) {
                    var n = e.options["compactLabels" + p(e._periods[t])];
                    return a[t] ? i._translateDigits(e, e._periods[t]) + (n ? n[t] : _[t]) + " " : ""
                },
                u = e.options.padZeroes ? 2 : 1,
                d = function(t) {
                    var n = e.options["labels" + p(e._periods[t])];
                    return !e.options.significant && a[t] || e.options.significant && l[t] ? '<span class="' + i._sectionClass + '"><span class="' + i._amountClass + '">' + i._minDigits(e, e._periods[t], u) + (n ? n[t] : _[t]) + "</span></span>" : ""
                };
            return e.options.layout ? this._buildLayout(e, a, e.options.layout, e.options.compact, e.options.significant, l) : (e.options.compact ? '<span class="' + this._rowClass + " " + this._amountClass + (e._hold ? " " + this._holdingClass : "") + '">' + c(0) + c(1) + c(2) + c(3) + (a[4] ? this._minDigits(e, e._periods[4], 2) : "") + (a[5] ? (a[4] ? e.options.timeSeparator : "") + this._minDigits(e, e._periods[5], 2) : "") + (a[6] ? (a[4] || a[5] ? e.options.timeSeparator : "") + this._minDigits(e, e._periods[6], 2) : "") : '<span class="' + this._rowClass + " " + this._showClass + (e.options.significant || s) + (e._hold ? " " + this._holdingClass : "") + '">' + d(0) + d(1) + d(2) + d(3) + d(4) + d(5) + d(6)) + "</span>" + (e.options.description ? '<span class="' + this._rowClass + " " + this._descrClass + '">' + e.options.description + "</span>" : "")
        },
        _buildLayout: function(e, i, n, s, o, a) {
            for (var r = e.options[s ? "compactLabels" : "labels"], l = e.options.whichLabels || this._normalLabels, _ = function(t) {
                    return (e.options[(s ? "compactLabels" : "labels") + l(e._periods[t])] || r)[t]
                }, p = function(t, i) {
                    return e.options.digits[Math.floor(t / i) % 10]
                }, c = {
                    desc: e.options.description,
                    sep: e.options.timeSeparator,
                    yl: _(0),
                    yn: this._minDigits(e, e._periods[0], 1),
                    ynn: this._minDigits(e, e._periods[0], 2),
                    ynnn: this._minDigits(e, e._periods[0], 3),
                    y1: p(e._periods[0], 1),
                    y10: p(e._periods[0], 10),
                    y100: p(e._periods[0], 100),
                    y1000: p(e._periods[0], 1e3),
                    ol: _(1),
                    on: this._minDigits(e, e._periods[1], 1),
                    onn: this._minDigits(e, e._periods[1], 2),
                    onnn: this._minDigits(e, e._periods[1], 3),
                    o1: p(e._periods[1], 1),
                    o10: p(e._periods[1], 10),
                    o100: p(e._periods[1], 100),
                    o1000: p(e._periods[1], 1e3),
                    wl: _(2),
                    wn: this._minDigits(e, e._periods[2], 1),
                    wnn: this._minDigits(e, e._periods[2], 2),
                    wnnn: this._minDigits(e, e._periods[2], 3),
                    w1: p(e._periods[2], 1),
                    w10: p(e._periods[2], 10),
                    w100: p(e._periods[2], 100),
                    w1000: p(e._periods[2], 1e3),
                    dl: _(3),
                    dn: this._minDigits(e, e._periods[3], 1),
                    dnn: this._minDigits(e, e._periods[3], 2),
                    dnnn: this._minDigits(e, e._periods[3], 3),
                    d1: p(e._periods[3], 1),
                    d10: p(e._periods[3], 10),
                    d100: p(e._periods[3], 100),
                    d1000: p(e._periods[3], 1e3),
                    hl: _(4),
                    hn: this._minDigits(e, e._periods[4], 1),
                    hnn: this._minDigits(e, e._periods[4], 2),
                    hnnn: this._minDigits(e, e._periods[4], 3),
                    h1: p(e._periods[4], 1),
                    h10: p(e._periods[4], 10),
                    h100: p(e._periods[4], 100),
                    h1000: p(e._periods[4], 1e3),
                    ml: _(5),
                    mn: this._minDigits(e, e._periods[5], 1),
                    mnn: this._minDigits(e, e._periods[5], 2),
                    mnnn: this._minDigits(e, e._periods[5], 3),
                    m1: p(e._periods[5], 1),
                    m10: p(e._periods[5], 10),
                    m100: p(e._periods[5], 100),
                    m1000: p(e._periods[5], 1e3),
                    sl: _(6),
                    sn: this._minDigits(e, e._periods[6], 1),
                    snn: this._minDigits(e, e._periods[6], 2),
                    snnn: this._minDigits(e, e._periods[6], 3),
                    s1: p(e._periods[6], 1),
                    s10: p(e._periods[6], 10),
                    s100: p(e._periods[6], 100),
                    s1000: p(e._periods[6], 1e3)
                }, u = n, d = 0; d <= 6; d++) {
                var h = "yowdhms".charAt(d),
                    m = new RegExp("\\{" + h + "<\\}([\\s\\S]*)\\{" + h + ">\\}", "g");
                u = u.replace(m, !o && i[d] || o && a[d] ? "$1" : "")
            }
            return t.each(c, function(t, e) {
                var i = new RegExp("\\{" + t + "\\}", "g");
                u = u.replace(i, e)
            }), u
        },
        _minDigits: function(t, e, i) {
            return (e = "" + e).length >= i ? this._translateDigits(t, e) : (e = "0000000000" + e, this._translateDigits(t, e.substr(e.length - i)))
        },
        _translateDigits: function(t, e) {
            return ("" + e).replace(/[0-9]/g, function(e) {
                return t.options.digits[e]
            })
        },
        _determineShow: function(t) {
            var e = t.options.format,
                i = [];
            return i[0] = e.match("y") ? "?" : e.match("Y") ? "!" : null, i[1] = e.match("o") ? "?" : e.match("O") ? "!" : null, i[2] = e.match("w") ? "?" : e.match("W") ? "!" : null, i[3] = e.match("d") ? "?" : e.match("D") ? "!" : null, i[4] = e.match("h") ? "?" : e.match("H") ? "!" : null, i[5] = e.match("m") ? "?" : e.match("M") ? "!" : null, i[6] = e.match("s") ? "?" : e.match("S") ? "!" : null, i
        },
        _calculatePeriods: function(t, e, i, n) {
            t._now = n, t._now.setMilliseconds(0);
            var s = new Date(t._now.getTime());
            t._since ? n.getTime() < t._since.getTime() ? t._now = n = s : n = t._since : (s.setTime(t._until.getTime()), n.getTime() > t._until.getTime() && (t._now = n = s));
            var o = [0, 0, 0, 0, 0, 0, 0];
            if (e[0] || e[1]) {
                var a = this._getDaysInMonth(n.getFullYear(), n.getMonth()),
                    r = this._getDaysInMonth(s.getFullYear(), s.getMonth()),
                    l = s.getDate() == n.getDate() || s.getDate() >= Math.min(a, r) && n.getDate() >= Math.min(a, r),
                    _ = function(t) {
                        return 60 * (60 * t.getHours() + t.getMinutes()) + t.getSeconds()
                    },
                    p = Math.max(0, 12 * (s.getFullYear() - n.getFullYear()) + s.getMonth() - n.getMonth() + (s.getDate() < n.getDate() && !l || l && _(s) < _(n) ? -1 : 0));
                o[0] = e[0] ? Math.floor(p / 12) : 0, o[1] = e[1] ? p - 12 * o[0] : 0;
                var c = (n = new Date(n.getTime())).getDate() == a,
                    u = this._getDaysInMonth(n.getFullYear() + o[0], n.getMonth() + o[1]);
                n.getDate() > u && n.setDate(u), n.setFullYear(n.getFullYear() + o[0]), n.setMonth(n.getMonth() + o[1]), c && n.setDate(u)
            }
            var d = Math.floor((s.getTime() - n.getTime()) / 1e3),
                h = function(t, i) {
                    o[t] = e[t] ? Math.floor(d / i) : 0, d -= o[t] * i
                };
            if (h(2, 604800), h(3, 86400), h(4, 3600), h(5, 60), h(6, 1), d > 0 && !t._since)
                for (var m = [1, 12, 4.3482, 7, 24, 60, 60], g = 6, w = 1, f = 6; f >= 0; f--) e[f] && (o[g] >= w && (o[g] = 0, d = 1), d > 0 && (o[f]++, d = 0, g = f, w = 1)), w *= m[f];
            if (i)
                for (f = 0; f <= 6; f++) i && o[f] ? i-- : i || (o[f] = 0);
            return o
        }
    })
}(jQuery);

/*! jQuery & Zepto Lazy v1.7.10 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */
! function(t, e) {
    "use strict";

    function r(r, a, i, u, l) {
        function f() {
            L = t.devicePixelRatio > 1, i = c(i), a.delay >= 0 && setTimeout(function() {
                s(!0)
            }, a.delay), (a.delay < 0 || a.combined) && (u.e = v(a.throttle, function(t) {
                "resize" === t.type && (w = B = -1), s(t.all)
            }), u.a = function(t) {
                t = c(t), i.push.apply(i, t)
            }, u.g = function() {
                return i = n(i).filter(function() {
                    return !n(this).data(a.loadedName)
                })
            }, u.f = function(t) {
                for (var e = 0; e < t.length; e++) {
                    var r = i.filter(function() {
                        return this === t[e]
                    });
                    r.length && s(!1, r)
                }
            }, s(), n(a.appendScroll).on("scroll." + l + " resize." + l, u.e))
        }

        function c(t) {
            var i = a.defaultImage,
                o = a.placeholder,
                u = a.imageBase,
                l = a.srcsetAttribute,
                f = a.loaderAttribute,
                c = a._f || {};
            t = n(t).filter(function() {
                var t = n(this),
                    r = m(this);
                return !t.data(a.handledName) && (t.attr(a.attribute) || t.attr(l) || t.attr(f) || c[r] !== e)
            }).data("plugin_" + a.name, r);
            for (var s = 0, d = t.length; s < d; s++) {
                var A = n(t[s]),
                    g = m(t[s]),
                    h = A.attr(a.imageBaseAttribute) || u;
                g === N && h && A.attr(l) && A.attr(l, b(A.attr(l), h)), c[g] === e || A.attr(f) || A.attr(f, c[g]), g === N && i && !A.attr(E) ? A.attr(E, i) : g === N || !o || A.css(O) && "none" !== A.css(O) || A.css(O, "url('" + o + "')")
            }
            return t
        }

        function s(t, e) {
            if (!i.length) return void(a.autoDestroy && r.destroy());
            for (var o = e || i, u = !1, l = a.imageBase || "", f = a.srcsetAttribute, c = a.handledName, s = 0; s < o.length; s++)
                if (t || e || A(o[s])) {
                    var g = n(o[s]),
                        h = m(o[s]),
                        b = g.attr(a.attribute),
                        v = g.attr(a.imageBaseAttribute) || l,
                        p = g.attr(a.loaderAttribute);
                    g.data(c) || a.visibleOnly && !g.is(":visible") || !((b || g.attr(f)) && (h === N && (v + b !== g.attr(E) || g.attr(f) !== g.attr(F)) || h !== N && v + b !== g.css(O)) || p) || (u = !0, g.data(c, !0), d(g, h, v, p))
                }
            u && (i = n(i).filter(function() {
                return !n(this).data(c)
            }))
        }

        function d(t, e, r, i) {
            ++z;
            var o = function() {
                y("onError", t), p(), o = n.noop
            };
            y("beforeLoad", t);
            var u = a.attribute,
                l = a.srcsetAttribute,
                f = a.sizesAttribute,
                c = a.retinaAttribute,
                s = a.removeAttribute,
                d = a.loadedName,
                A = t.attr(c);
            if (i) {
                var g = function() {
                    s && t.removeAttr(a.loaderAttribute), t.data(d, !0), y(T, t), setTimeout(p, 1), g = n.noop
                };
                t.off(I).one(I, o).one(D, g), y(i, t, function(e) {
                    e ? (t.off(D), g()) : (t.off(I), o())
                }) || t.trigger(I)
            } else {
                var h = n(new Image);
                h.one(I, o).one(D, function() {
                    t.hide(), e === N ? t.attr(C, h.attr(C)).attr(F, h.attr(F)).attr(E, h.attr(E)) : t.css(O, "url('" + h.attr(E) + "')"), t[a.effect](a.effectTime), s && (t.removeAttr(u + " " + l + " " + c + " " + a.imageBaseAttribute), f !== C && t.removeAttr(f)), t.data(d, !0), y(T, t), h.remove(), p()
                });
                var m = (L && A ? A : t.attr(u)) || "";
                h.attr(C, t.attr(f)).attr(F, t.attr(l)).attr(E, m ? r + m : null), h.complete && h.trigger(D)
            }
        }

        function A(t) {
            var e = t.getBoundingClientRect(),
                r = a.scrollDirection,
                n = a.threshold,
                i = h() + n > e.top && -n < e.bottom,
                o = g() + n > e.left && -n < e.right;
            return "vertical" === r ? i : "horizontal" === r ? o : i && o
        }

        function g() {
            return w >= 0 ? w : w = n(t).width()
        }

        function h() {
            return B >= 0 ? B : B = n(t).height()
        }

        function m(t) {
            return t.tagName.toLowerCase()
        }

        function b(t, e) {
            if (e) {
                var r = t.split(",");
                t = "";
                for (var a = 0, n = r.length; a < n; a++) t += e + r[a].trim() + (a !== n - 1 ? "," : "")
            }
            return t
        }

        function v(t, e) {
            var n, i = 0;
            return function(o, u) {
                function l() {
                    i = +new Date, e.call(r, o)
                }
                var f = +new Date - i;
                n && clearTimeout(n), f > t || !a.enableThrottle || u ? l() : n = setTimeout(l, t - f)
            }
        }

        function p() {
            --z, i.length || z || y("onFinishedAll")
        }

        function y(t, e, n) {
            return !!(t = a[t]) && (t.apply(r, [].slice.call(arguments, 1)), !0)
        }
        var z = 0,
            w = -1,
            B = -1,
            L = !1,
            T = "afterLoad",
            D = "load",
            I = "error",
            N = "img",
            E = "src",
            F = "srcset",
            C = "sizes",
            O = "background-image";
        "event" === a.bind || o ? f() : n(t).on(D + "." + l, f)
    }

    function a(a, o) {
        var u = this,
            l = n.extend({}, u.config, o),
            f = {},
            c = l.name + "-" + ++i;
        return u.config = function(t, r) {
            return r === e ? l[t] : (l[t] = r, u)
        }, u.addItems = function(t) {
            return f.a && f.a("string" === n.type(t) ? n(t) : t), u
        }, u.getItems = function() {
            return f.g ? f.g() : {}
        }, u.update = function(t) {
            return f.e && f.e({}, !t), u
        }, u.force = function(t) {
            return f.f && f.f("string" === n.type(t) ? n(t) : t), u
        }, u.loadAll = function() {
            return f.e && f.e({
                all: !0
            }, !0), u
        }, u.destroy = function() {
            return n(l.appendScroll).off("." + c, f.e), n(t).off("." + c), f = {}, e
        }, r(u, l, a, f, c), l.chainable ? a : u
    }
    var n = t.jQuery || t.Zepto,
        i = 0,
        o = !1;
    n.fn.Lazy = n.fn.lazy = function(t) {
        return new a(this, t)
    }, n.Lazy = n.lazy = function(t, r, i) {
        if (n.isFunction(r) && (i = r, r = []), n.isFunction(i)) {
            t = n.isArray(t) ? t : [t], r = n.isArray(r) ? r : [r];
            for (var o = a.prototype.config, u = o._f || (o._f = {}), l = 0, f = t.length; l < f; l++)(o[t[l]] === e || n.isFunction(o[t[l]])) && (o[t[l]] = i);
            for (var c = 0, s = r.length; c < s; c++) u[r[c]] = t[0]
        }
    }, a.prototype.config = {
        name: "lazy",
        chainable: !0,
        autoDestroy: !0,
        bind: "load",
        threshold: 500,
        visibleOnly: !1,
        appendScroll: t,
        scrollDirection: "both",
        imageBase: null,
        defaultImage: "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",
        placeholder: null,
        delay: -1,
        combined: !1,
        attribute: "data-src",
        srcsetAttribute: "data-srcset",
        sizesAttribute: "data-sizes",
        retinaAttribute: "data-retina",
        loaderAttribute: "data-loader",
        imageBaseAttribute: "data-imagebase",
        removeAttribute: !0,
        handledName: "handled",
        loadedName: "loaded",
        effect: "show",
        effectTime: 0,
        enableThrottle: !0,
        throttle: 250,
        beforeLoad: e,
        afterLoad: e,
        onError: e,
        onFinishedAll: e
    }, n(t).on("load", function() {
        o = !0
    })
}(window);

/*! jQuery & Zepto Lazy - All Plugins v1.7.10 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */
! function(t) {
    function a(a, e, r, o) {
        o = o ? o.toUpperCase() : "GET";
        var i;
        "POST" !== o && "PUT" !== o || !a.config("ajaxCreateData") || (i = a.config("ajaxCreateData").apply(a, [e])), t.ajax({
            url: e.attr("data-src"),
            type: "POST" === o || "PUT" === o ? o : "GET",
            data: i,
            dataType: e.attr("data-type") || "html",
            success: function(t) {
                e.html(t), r(!0), a.config("removeAttribute") && e.removeAttr("data-src data-method data-type")
            },
            error: function() {
                r(!1)
            }
        })
    }
    t.lazy("ajax", function(t, e) {
        a(this, t, e, t.attr("data-method"))
    }), t.lazy("get", function(t, e) {
        a(this, t, e, "GET")
    }), t.lazy("post", function(t, e) {
        a(this, t, e, "POST")
    }), t.lazy("put", function(t, e) {
        a(this, t, e, "PUT")
    })
}(window.jQuery || window.Zepto),
function(t) {
    t.lazy(["av", "audio", "video"], ["audio", "video"], function(a, e) {
        var r = a[0].tagName.toLowerCase();
        if ("audio" === r || "video" === r) {
            var o = a.find("data-src"),
                i = a.find("data-track"),
                n = 0,
                c = function() {
                    ++n === o.length && e(!1)
                },
                s = function() {
                    var a = t(this),
                        e = a[0].tagName.toLowerCase(),
                        r = a.prop("attributes"),
                        o = t("data-src" === e ? "<source>" : "<track>");
                    "data-src" === e && o.one("error", c), t.each(r, function(t, a) {
                        o.attr(a.name, a.value)
                    }), a.replaceWith(o)
                };
            a.one("loadedmetadata", function() {
                e(!0)
            }).off("load error").attr("poster", a.attr("data-poster")), o.length ? o.each(s) : a.attr("data-src") ? (t.each(a.attr("data-src").split(","), function(e, r) {
                var o = r.split("|");
                a.append(t("<source>").one("error", c).attr({
                    src: o[0].trim(),
                    type: o[1].trim()
                }))
            }), this.config("removeAttribute") && a.removeAttr("data-src")) : e(!1), i.length && i.each(s)
        } else e(!1)
    })
}(window.jQuery || window.Zepto),
function(t) {
    t.lazy(["frame", "iframe"], "iframe", function(a, e) {
        var r = this;
        if ("iframe" === a[0].tagName.toLowerCase()) {
            var o = a.attr("data-error-detect");
            "true" !== o && "1" !== o ? (a.attr("src", a.attr("data-src")), r.config("removeAttribute") && a.removeAttr("data-src data-error-detect")) : t.ajax({
                url: a.attr("data-src"),
                dataType: "html",
                crossDomain: !0,
                xhrFields: {
                    withCredentials: !0
                },
                success: function(t) {
                    a.html(t).attr("src", a.attr("data-src")), r.config("removeAttribute") && a.removeAttr("data-src data-error-detect")
                },
                error: function() {
                    e(!1)
                }
            })
        } else e(!1)
    })
}(window.jQuery || window.Zepto),
function(t) {
    t.lazy("noop", function() {}), t.lazy("noop-success", function(t, a) {
        a(!0)
    }), t.lazy("noop-error", function(t, a) {
        a(!1)
    })
}(window.jQuery || window.Zepto),
function(t) {
    function a(a, e, i) {
        var n = a.prop("attributes"),
            c = t("<" + e + ">");
        return t.each(n, function(t, a) {
            "srcset" !== a.name && a.name !== o || (a.value = r(a.value, i)), c.attr(a.name, a.value)
        }), a.replaceWith(c), c
    }

    function e(a, e, r) {
        var o = t("<img>").one("load", function() {
            r(!0)
        }).one("error", function() {
            r(!1)
        }).appendTo(a).attr("src", e);
        o.complete && o.load()
    }

    function r(t, a) {
        if (a) {
            var e = t.split(",");
            t = "";
            for (var r = 0, o = e.length; r < o; r++) t += a + e[r].trim() + (r !== o - 1 ? "," : "")
        }
        return t
    }
    var o = "data-src";
    t.lazy(["pic", "picture"], ["picture"], function(i, n) {
        if ("picture" === i[0].tagName.toLowerCase()) {
            var c = i.find(o),
                s = i.find("data-img"),
                d = this.config("imageBase") || "";
            c.length ? (c.each(function() {
                a(t(this), "source", d)
            }), 1 === s.length ? (s = a(s, "img", d), s.on("load", function() {
                n(!0)
            }).on("error", function() {
                n(!1)
            }), s.attr("src", s.attr(o)), this.config("removeAttribute") && s.removeAttr(o)) : i.attr(o) ? (e(i, d + i.attr(o), n), this.config("removeAttribute") && i.removeAttr(o)) : n(!1)) : i.attr("data-srcset") ? (t("<source>").attr({
                media: i.attr("data-media"),
                sizes: i.attr("data-sizes"),
                type: i.attr("data-type"),
                srcset: r(i.attr("data-srcset"), d)
            }).appendTo(i), e(i, d + i.attr(o), n), this.config("removeAttribute") && i.removeAttr(o + " data-srcset data-media data-sizes data-type")) : n(!1)
        } else n(!1)
    })
}(window.jQuery || window.Zepto),
function(t) {
    t.lazy(["js", "javascript", "script"], "script", function(t, a) {
        "script" === t[0].tagName.toLowerCase() ? (t.attr("src", t.attr("data-src")), this.config("removeAttribute") && t.removeAttr("data-src")) : a(!1)
    })
}(window.jQuery || window.Zepto),
function(t) {
    t.lazy("vimeo", function(t, a) {
        "iframe" === t[0].tagName.toLowerCase() ? (t.attr("src", "https://player.vimeo.com/video/" + t.attr("data-src")), this.config("removeAttribute") && t.removeAttr("data-src")) : a(!1)
    })
}(window.jQuery || window.Zepto),
function(t) {
    t.lazy(["yt", "youtube"], function(t, a) {
        if ("iframe" === t[0].tagName.toLowerCase()) {
            var e = /1|true/.test(t.attr("data-nocookie"));
            t.attr("src", "https://www.youtube" + (e ? "-nocookie" : "") + ".com/embed/" + t.attr("data-src") + "?rel=0&amp;showinfo=0"), this.config("removeAttribute") && t.removeAttr("data-src")
        } else a(!1)
    })
}(window.jQuery || window.Zepto);

/* jquery.cookie */
! function(e) {
    "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof exports ? e(require("jquery")) : e(jQuery)
}(function(e) {
    var n = /\+/g;

    function o(e) {
        return t.raw ? e : encodeURIComponent(e)
    }

    function i(e) {
        return o(t.json ? JSON.stringify(e) : String(e))
    }

    function r(o, i) {
        var r = t.raw ? o : function(e) {
            0 === e.indexOf('"') && (e = e.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\"));
            try {
                return e = decodeURIComponent(e.replace(n, " ")), t.json ? JSON.parse(e) : e
            } catch (e) {}
        }(o);
        return e.isFunction(i) ? i(r) : r
    }
    var t = e.cookie = function(n, c, u) {
        if (void 0 !== c && !e.isFunction(c)) {
            if ("number" == typeof(u = e.extend({}, t.defaults, u)).expires) {
                var a = u.expires,
                    d = u.expires = new Date;
                d.setTime(+d + 864e5 * a)
            }
            return document.cookie = [o(n), "=", i(c), u.expires ? "; expires=" + u.expires.toUTCString() : "", u.path ? "; path=" + u.path : "", u.domain ? "; domain=" + u.domain : "", u.secure ? "; secure" : ""].join("")
        }
        for (var f, p = n ? void 0 : {}, s = document.cookie ? document.cookie.split("; ") : [], m = 0, v = s.length; m < v; m++) {
            var x = s[m].split("="),
                k = (f = x.shift(), t.raw ? f : decodeURIComponent(f)),
                l = x.join("=");
            if (n && n === k) {
                p = r(l, c);
                break
            }
            n || void 0 === (l = r(l)) || (p[k] = l)
        }
        return p
    };
    t.defaults = {}, e.removeCookie = function(n, o) {
        return void 0 !== e.cookie(n) && (e.cookie(n, "", e.extend({}, o, {
            expires: -1
        })), !e.cookie(n))
    }
});

/* SmoothScroll */
! function() {
    var s, i, c, a, o = {
            frameRate: 150,
            animationTime: 400,
            stepSize: 100,
            pulseAlgorithm: true,
            pulseScale: 4,
            pulseNormalize: 1,
            accelerationDelta: 50,
            accelerationMax: 3,
            keyboardSupport: true,
            arrowScroll: 50,
            fixedBackground: true,
            excluded: ""
        },
        p = o,
        u = !1,
        d = !1,
        n = {
            x: 0,
            y: 0
        },
        f = !1,
        m = document.documentElement,
        l = [],
        h = /^Mac/.test(navigator.platform),
        w = {
            left: 37,
            up: 38,
            right: 39,
            down: 40,
            spacebar: 32,
            pageup: 33,
            pagedown: 34,
            end: 35,
            home: 36
        },
        v = {
            37: 1,
            38: 1,
            39: 1,
            40: 1
        };

    function y() {
        if (!f && document.body) {
            f = !0;
            var e = document.body,
                t = document.documentElement,
                o = window.innerHeight,
                n = e.scrollHeight;
            if (m = 0 <= document.compatMode.indexOf("CSS") ? t : e, s = e, p.keyboardSupport && Y("keydown", x), top != self) d = !0;
            else if (Q && o < n && (e.offsetHeight <= o || t.offsetHeight <= o)) {
                var r, a = document.createElement("div");
                a.style.cssText = "position:absolute; z-index:-10000; top:0; left:0; right:0; height:" + m.scrollHeight + "px", document.body.appendChild(a), c = function() {
                    r = r || setTimeout(function() {
                        u || (a.style.height = "0", a.style.height = m.scrollHeight + "px", r = null)
                    }, 500)
                }, setTimeout(c, 10), Y("resize", c);
                if ((i = new R(c)).observe(e, {
                        attributes: !0,
                        childList: !0,
                        characterData: !1
                    }), m.offsetHeight <= o) {
                    var l = document.createElement("div");
                    l.style.clear = "both", e.appendChild(l)
                }
            }
            p.fixedBackground || u || (e.style.backgroundAttachment = "scroll", t.style.backgroundAttachment = "scroll")
        }
    }
    var b = [],
        g = !1,
        r = Date.now();

    function S(d, f, m) {
        if (function(e, t) {
                e = 0 < e ? 1 : -1, t = 0 < t ? 1 : -1, n.x === e && n.y === t || (n.x = e, n.y = t, b = [], r = 0)
            }(f, m), 1 != p.accelerationMax) {
            var e = Date.now() - r;
            if (e < p.accelerationDelta) {
                var t = (1 + 50 / e) / 2;
                1 < t && (t = Math.min(t, p.accelerationMax), f *= t, m *= t)
            }
            r = Date.now()
        }
        if (b.push({
                x: f,
                y: m,
                lastX: f < 0 ? .99 : -.99,
                lastY: m < 0 ? .99 : -.99,
                start: Date.now()
            }), !g) {
            var o = q(),
                h = d === o || d === document.body;
            null == d.$scrollBehavior && function(e) {
                var t = M(e);
                if (null == B[t]) {
                    var o = getComputedStyle(e, "")["scroll-behavior"];
                    B[t] = "smooth" == o
                }
                return B[t]
            }(d) && (d.$scrollBehavior = d.style.scrollBehavior, d.style.scrollBehavior = "auto");
            var w = function(e) {
                for (var t = Date.now(), o = 0, n = 0, r = 0; r < b.length; r++) {
                    var a = b[r],
                        l = t - a.start,
                        i = l >= p.animationTime,
                        c = i ? 1 : l / p.animationTime;
                    p.pulseAlgorithm && (c = F(c));
                    var s = a.x * c - a.lastX >> 0,
                        u = a.y * c - a.lastY >> 0;
                    o += s, n += u, a.lastX += s, a.lastY += u, i && (b.splice(r, 1), r--)
                }
                h ? window.scrollBy(o, n) : (o && (d.scrollLeft += o), n && (d.scrollTop += n)), f || m || (b = []), b.length ? j(w, d, 1e3 / p.frameRate + 1) : (g = !1, null != d.$scrollBehavior && (d.style.scrollBehavior = d.$scrollBehavior, d.$scrollBehavior = null))
            };
            j(w, d, 0), g = !0
        }
    }

    function e(e) {
        f || y();
        var t = e.target;
        if (e.defaultPrevented || e.ctrlKey) return !0;
        if (N(s, "embed") || N(t, "embed") && /\.pdf/i.test(t.src) || N(s, "object") || t.shadowRoot) return !0;
        var o = -e.wheelDeltaX || e.deltaX || 0,
            n = -e.wheelDeltaY || e.deltaY || 0;
        h && (e.wheelDeltaX && K(e.wheelDeltaX, 120) && (o = e.wheelDeltaX / Math.abs(e.wheelDeltaX) * -120), e.wheelDeltaY && K(e.wheelDeltaY, 120) && (n = e.wheelDeltaY / Math.abs(e.wheelDeltaY) * -120)), o || n || (n = -e.wheelDelta || 0), 1 === e.deltaMode && (o *= 40, n *= 40);
        var r = z(t);
        return r ? !! function(e) {
            if (!e) return;
            l.length || (l = [e, e, e]);
            e = Math.abs(e), l.push(e), l.shift(), clearTimeout(a), a = setTimeout(function() {
                try {
                    localStorage.SS_deltaBuffer = l.join(",")
                } catch (e) {}
            }, 1e3);
            var t = 120 < e && P(e),
                o = !P(120) && !P(100) && !t;
            return e < 50 || o
        }(n) || (1.2 < Math.abs(o) && (o *= p.stepSize / 120), 1.2 < Math.abs(n) && (n *= p.stepSize / 120), S(r, o, n), e.preventDefault(), void C()) : !d || !W || (Object.defineProperty(e, "target", {
            value: window.frameElement
        }), parent.wheel(e))
    }

    function x(e) {
        var t = e.target,
            o = e.ctrlKey || e.altKey || e.metaKey || e.shiftKey && e.keyCode !== w.spacebar;
        document.body.contains(s) || (s = document.activeElement);
        var n = /^(button|submit|radio|checkbox|file|color|image)$/i;
        if (e.defaultPrevented || /^(textarea|select|embed|object)$/i.test(t.nodeName) || N(t, "input") && !n.test(t.type) || N(s, "video") || function(e) {
                var t = e.target,
                    o = !1;
                if (-1 != document.URL.indexOf("www.youtube.com/watch"))
                    do {
                        if (o = t.classList && t.classList.contains("html5-video-controls")) break
                    } while (t = t.parentNode);
                return o
            }(e) || t.isContentEditable || o) return !0;
        if ((N(t, "button") || N(t, "input") && n.test(t.type)) && e.keyCode === w.spacebar) return !0;
        if (N(t, "input") && "radio" == t.type && v[e.keyCode]) return !0;
        var r = 0,
            a = 0,
            l = z(s);
        if (!l) return !d || !W || parent.keydown(e);
        var i = l.clientHeight;
        switch (l == document.body && (i = window.innerHeight), e.keyCode) {
            case w.up:
                a = -p.arrowScroll;
                break;
            case w.down:
                a = p.arrowScroll;
                break;
            case w.spacebar:
                a = -(e.shiftKey ? 1 : -1) * i * .9;
                break;
            case w.pageup:
                a = .9 * -i;
                break;
            case w.pagedown:
                a = .9 * i;
                break;
            case w.home:
                l == document.body && document.scrollingElement && (l = document.scrollingElement), a = -l.scrollTop;
                break;
            case w.end:
                var c = l.scrollHeight - l.scrollTop - i;
                a = 0 < c ? 10 + c : 0;
                break;
            case w.left:
                r = -p.arrowScroll;
                break;
            case w.right:
                r = p.arrowScroll;
                break;
            default:
                return !0
        }
        S(l, r, a), e.preventDefault(), C()
    }

    function t(e) {
        s = e.target
    }
    var k, D, M = (k = 0, function(e) {
            return e.uniqueID || (e.uniqueID = k++)
        }),
        E = {},
        T = {},
        B = {};

    function C() {
        clearTimeout(D), D = setInterval(function() {
            E = T = B = {}
        }, 1e3)
    }

    function H(e, t, o) {
        for (var n = o ? E : T, r = e.length; r--;) n[M(e[r])] = t;
        return t
    }

    function z(e) {
        var t = [],
            o = document.body,
            n = m.scrollHeight;
        do {
            var r = (!1 ? E : T)[M(e)];
            if (r) return H(t, r);
            if (t.push(e), n === e.scrollHeight) {
                var a = O(m) && O(o) || X(m);
                if (d && L(m) || !d && a) return H(t, q())
            } else if (L(e) && X(e)) return H(t, e)
        } while (e = e.parentElement)
    }

    function L(e) {
        return e.clientHeight + 10 < e.scrollHeight
    }

    function O(e) {
        return "hidden" !== getComputedStyle(e, "").getPropertyValue("overflow-y")
    }

    function X(e) {
        var t = getComputedStyle(e, "").getPropertyValue("overflow-y");
        return "scroll" === t || "auto" === t
    }

    function Y(e, t, o) {
        window.addEventListener(e, t, o || !1)
    }

    function A(e, t, o) {
        window.removeEventListener(e, t, o || !1)
    }

    function N(e, t) {
        return e && (e.nodeName || "").toLowerCase() === t.toLowerCase()
    }
    if (window.localStorage && localStorage.SS_deltaBuffer) try {
        l = localStorage.SS_deltaBuffer.split(",")
    } catch (e) {}

    function K(e, t) {
        return Math.floor(e / t) == e / t
    }

    function P(e) {
        return K(l[0], e) && K(l[1], e) && K(l[2], e)
    }
    var $, j = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(e, t, o) {
            window.setTimeout(e, o || 1e3 / 60)
        },
        R = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
        q = ($ = document.scrollingElement, function() {
            if (!$) {
                var e = document.createElement("div");
                e.style.cssText = "height:10000px;width:1px;", document.body.appendChild(e);
                var t = document.body.scrollTop;
                document.documentElement.scrollTop, window.scrollBy(0, 3), $ = document.body.scrollTop != t ? document.body : document.documentElement, window.scrollBy(0, -3), document.body.removeChild(e)
            }
            return $
        });

    function V(e) {
        var t;
        return ((e *= p.pulseScale) < 1 ? e - (1 - Math.exp(-e)) : (e -= 1, (t = Math.exp(-1)) + (1 - Math.exp(-e)) * (1 - t))) * p.pulseNormalize
    }

    function F(e) {
        return 1 <= e ? 1 : e <= 0 ? 0 : (1 == p.pulseNormalize && (p.pulseNormalize /= V(1)), V(e))
    }
    var I = window.navigator.userAgent,
        _ = /Edge/.test(I),
        W = /chrome/i.test(I) && !_,
        U = /safari/i.test(I) && !_,
        G = /mobile/i.test(I),
        J = /Windows NT 6.1/i.test(I) && /rv:11/i.test(I),
        Q = U && (/Version\/8/i.test(I) || /Version\/9/i.test(I)),
        Z = (W || U || J) && !G,
        ee = !1;
    try {
        window.addEventListener("test", null, Object.defineProperty({}, "passive", {
            get: function() {
                ee = !0
            }
        }))
    } catch (e) {}
    var te = !!ee && {
            passive: !1
        },
        oe = "onwheel" in document.createElement("div") ? "wheel" : "mousewheel";

    function ne(e) {
        for (var t in e) o.hasOwnProperty(t) && (p[t] = e[t])
    }
    oe && Z && (Y(oe, e, te), Y("mousedown", t), Y("load", y)), ne.destroy = function() {
        i && i.disconnect(), A(oe, e), A("mousedown", t), A("keydown", x), A("resize", c), A("load", y)
    }, window.SmoothScrollOptions && ne(window.SmoothScrollOptions), "function" == typeof define && define.amd ? define(function() {
        return ne
    }) : "object" == typeof exports ? module.exports = ne : window.SmoothScroll = ne
}();

/**
 * jquery-circle-progress - jQuery Plugin to draw animated circular progress bars:
 * {@link http://kottenator.github.io/jquery-circle-progress/}
 *
 * @author Rostyslav Bryzgunov <kottenator@gmail.com>
 * @version 1.2.2
 * @licence MIT
 * @preserve
 */
! function(i) {
    if ("function" == typeof define && define.amd) define(["jquery"], i);
    else if ("object" == typeof module && module.exports) {
        var t = require("jquery");
        i(t), module.exports = t
    } else i(jQuery)
}(function(i) {
    function t(i) {
        this.init(i)
    }
    t.prototype = {
        value: 0,
        size: 100,
        startAngle: -Math.PI,
        thickness: "auto",
        fill: {
            gradient: ["#3aeabb", "#fdd250"]
        },
        emptyFill: "rgba(0, 0, 0, .1)",
        animation: {
            duration: 1200,
            easing: "circleProgressEasing"
        },
        animationStartValue: 0,
        reverse: !1,
        lineCap: "butt",
        insertMode: "prepend",
        constructor: t,
        el: null,
        canvas: null,
        ctx: null,
        radius: 0,
        arcFill: null,
        lastFrameValue: 0,
        init: function(t) {
            i.extend(this, t), this.radius = this.size / 2, this.initWidget(), this.initFill(), this.draw(), this.el.trigger("circle-inited")
        },
        initWidget: function() {
            this.canvas || (this.canvas = i("<canvas>")["prepend" == this.insertMode ? "prependTo" : "appendTo"](this.el)[0]);
            var t = this.canvas;
            if (t.width = this.size, t.height = this.size, this.ctx = t.getContext("2d"), window.devicePixelRatio > 1) {
                var e = window.devicePixelRatio;
                t.style.width = t.style.height = this.size + "px", t.width = t.height = this.size * e, this.ctx.scale(e, e)
            }
        },
        initFill: function() {
            function t() {
                var t = i("<canvas>")[0];
                t.width = e.size, t.height = e.size, t.getContext("2d").drawImage(g, 0, 0, r, r), e.arcFill = e.ctx.createPattern(t, "no-repeat"), e.drawFrame(e.lastFrameValue)
            }
            var e = this,
                a = this.fill,
                n = this.ctx,
                r = this.size;
            if (!a) throw Error("The fill is not specified!");
            if ("string" == typeof a && (a = {
                    color: a
                }), a.color && (this.arcFill = a.color), a.gradient) {
                var s = a.gradient;
                if (1 == s.length) this.arcFill = s[0];
                else if (s.length > 1) {
                    for (var l = a.gradientAngle || 0, o = a.gradientDirection || [r / 2 * (1 - Math.cos(l)), r / 2 * (1 + Math.sin(l)), r / 2 * (1 + Math.cos(l)), r / 2 * (1 - Math.sin(l))], h = n.createLinearGradient.apply(n, o), c = 0; c < s.length; c++) {
                        var d = s[c],
                            u = c / (s.length - 1);
                        i.isArray(d) && (u = d[1], d = d[0]), h.addColorStop(u, d)
                    }
                    this.arcFill = h
                }
            }
            if (a.image) {
                var g;
                a.image instanceof Image ? g = a.image : (g = new Image, g.src = a.image), g.complete ? t() : g.onload = t
            }
        },
        draw: function() {
            this.animation ? this.drawAnimated(this.value) : this.drawFrame(this.value)
        },
        drawFrame: function(i) {
            this.lastFrameValue = i, this.ctx.clearRect(0, 0, this.size, this.size), this.drawEmptyArc(i), this.drawArc(i)
        },
        drawArc: function(i) {
            if (0 !== i) {
                var t = this.ctx,
                    e = this.radius,
                    a = this.getThickness(),
                    n = this.startAngle;
                t.save(), t.beginPath(), this.reverse ? t.arc(e, e, e - a / 2, n - 2 * Math.PI * i, n) : t.arc(e, e, e - a / 2, n, n + 2 * Math.PI * i), t.lineWidth = a, t.lineCap = this.lineCap, t.strokeStyle = this.arcFill, t.stroke(), t.restore()
            }
        },
        drawEmptyArc: function(i) {
            var t = this.ctx,
                e = this.radius,
                a = this.getThickness(),
                n = this.startAngle;
            i < 1 && (t.save(), t.beginPath(), i <= 0 ? t.arc(e, e, e - a / 2, 0, 2 * Math.PI) : this.reverse ? t.arc(e, e, e - a / 2, n, n - 2 * Math.PI * i) : t.arc(e, e, e - a / 2, n + 2 * Math.PI * i, n), t.lineWidth = a, t.strokeStyle = this.emptyFill, t.stroke(), t.restore())
        },
        drawAnimated: function(t) {
            var e = this,
                a = this.el,
                n = i(this.canvas);
            n.stop(!0, !1), a.trigger("circle-animation-start"), n.css({
                animationProgress: 0
            }).animate({
                animationProgress: 1
            }, i.extend({}, this.animation, {
                step: function(i) {
                    var n = e.animationStartValue * (1 - i) + t * i;
                    e.drawFrame(n), a.trigger("circle-animation-progress", [i, n])
                }
            })).promise().always(function() {
                a.trigger("circle-animation-end")
            })
        },
        getThickness: function() {
            return i.isNumeric(this.thickness) ? this.thickness : this.size / 14
        },
        getValue: function() {
            return this.value
        },
        setValue: function(i) {
            this.animation && (this.animationStartValue = this.lastFrameValue), this.value = i, this.draw()
        }
    }, i.circleProgress = {
        defaults: t.prototype
    }, i.easing.circleProgressEasing = function(i) {
        return i < .5 ? (i = 2 * i, .5 * i * i * i) : (i = 2 - 2 * i, 1 - .5 * i * i * i)
    }, i.fn.circleProgress = function(e, a) {
        var n = "circle-progress",
            r = this.data(n);
        if ("widget" == e) {
            if (!r) throw Error('Calling "widget" method on not initialized instance is forbidden');
            return r.canvas
        }
        if ("value" == e) {
            if (!r) throw Error('Calling "value" method on not initialized instance is forbidden');
            if ("undefined" == typeof a) return r.getValue();
            var s = arguments[1];
            return this.each(function() {
                i(this).data(n).setValue(s)
            })
        }
        return this.each(function() {
            var a = i(this),
                r = a.data(n),
                s = i.isPlainObject(e) ? e : {};
            if (r) r.init(s);
            else {
                var l = i.extend({}, a.data());
                "string" == typeof l.fill && (l.fill = JSON.parse(l.fill)), "string" == typeof l.animation && (l.animation = JSON.parse(l.animation)), s = i.extend(l, s), s.el = a, r = new t(s), a.data(n, r)
            }
        })
    }
});

! 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).jarallax = t()
}(this, (function() {
    "use strict";

    function e(e) {
        "complete" === document.readyState || "interactive" === document.readyState ? e() : document.addEventListener("DOMContentLoaded", e, {
            capture: !0,
            once: !0,
            passive: !0
        })
    }
    let t;
    t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {};
    var i = t;
    const {
        navigator: o
    } = i, n = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(o.userAgent);
    let a, s;

    function l() {
        n ? (!a && document.body && (a = document.createElement("div"), a.style.cssText = "position: fixed; top: -9999px; left: 0; height: 100vh; width: 0;", document.body.appendChild(a)), s = (a ? a.clientHeight : 0) || i.innerHeight || document.documentElement.clientHeight) : s = i.innerHeight || document.documentElement.clientHeight
    }
    l(), i.addEventListener("resize", l), i.addEventListener("orientationchange", l), i.addEventListener("load", l), e((() => {
        l()
    }));
    const r = [];

    function m() {
        r.length && (r.forEach(((e, t) => {
            const {
                instance: o,
                oldData: n
            } = e, a = o.$item.getBoundingClientRect(), l = {
                width: a.width,
                height: a.height,
                top: a.top,
                bottom: a.bottom,
                wndW: i.innerWidth,
                wndH: s
            }, m = !n || n.wndW !== l.wndW || n.wndH !== l.wndH || n.width !== l.width || n.height !== l.height, c = m || !n || n.top !== l.top || n.bottom !== l.bottom;
            r[t].oldData = l, m && o.onResize(), c && o.onScroll()
        })), i.requestAnimationFrame(m))
    }
    let c = 0;
    class p {
        constructor(e, t) {
            const i = this;
            i.instanceID = c, c += 1, i.$item = e, i.defaults = {
                type: "scroll",
                speed: .5,
                imgSrc: null,
                imgElement: ".jarallax-img",
                imgSize: "cover",
                imgPosition: "50% 50%",
                imgRepeat: "no-repeat",
                keepImg: !1,
                elementInViewport: null,
                zIndex: -100,
                disableParallax: !1,
                disableVideo: !1,
                videoSrc: null,
                videoStartTime: 0,
                videoEndTime: 0,
                videoVolume: 0,
                videoLoop: !0,
                videoPlayOnlyVisible: !0,
                videoLazyLoading: !0,
                onScroll: null,
                onInit: null,
                onDestroy: null,
                onCoverImage: null
            };
            const n = i.$item.dataset || {},
                a = {};
            if (Object.keys(n).forEach((e => {
                    const t = e.substr(0, 1).toLowerCase() + e.substr(1);
                    t && void 0 !== i.defaults[t] && (a[t] = n[e])
                })), i.options = i.extend({}, i.defaults, a, t), i.pureOptions = i.extend({}, i.options), Object.keys(i.options).forEach((e => {
                    "true" === i.options[e] ? i.options[e] = !0 : "false" === i.options[e] && (i.options[e] = !1)
                })), i.options.speed = Math.min(2, Math.max(-1, parseFloat(i.options.speed))), "string" == typeof i.options.disableParallax && (i.options.disableParallax = new RegExp(i.options.disableParallax)), i.options.disableParallax instanceof RegExp) {
                const e = i.options.disableParallax;
                i.options.disableParallax = () => e.test(o.userAgent)
            }
            if ("function" != typeof i.options.disableParallax && (i.options.disableParallax = () => !1), "string" == typeof i.options.disableVideo && (i.options.disableVideo = new RegExp(i.options.disableVideo)), i.options.disableVideo instanceof RegExp) {
                const e = i.options.disableVideo;
                i.options.disableVideo = () => e.test(o.userAgent)
            }
            "function" != typeof i.options.disableVideo && (i.options.disableVideo = () => !1);
            let s = i.options.elementInViewport;
            s && "object" == typeof s && void 0 !== s.length && ([s] = s), s instanceof Element || (s = null), i.options.elementInViewport = s, i.image = {
                src: i.options.imgSrc || null,
                $container: null,
                useImgTag: !1,
                position: "fixed"
            }, i.initImg() && i.canInitParallax() && i.init()
        }
        css(e, t) {
            return "string" == typeof t ? i.getComputedStyle(e).getPropertyValue(t) : (Object.keys(t).forEach((i => {
                e.style[i] = t[i]
            })), e)
        }
        extend(e, ...t) {
            return e = e || {}, Object.keys(t).forEach((i => {
                t[i] && Object.keys(t[i]).forEach((o => {
                    e[o] = t[i][o]
                }))
            })), e
        }
        getWindowData() {
            return {
                width: i.innerWidth || document.documentElement.clientWidth,
                height: s,
                y: document.documentElement.scrollTop
            }
        }
        initImg() {
            const e = this;
            let t = e.options.imgElement;
            return t && "string" == typeof t && (t = e.$item.querySelector(t)), t instanceof Element || (e.options.imgSrc ? (t = new Image, t.src = e.options.imgSrc) : t = null), t && (e.options.keepImg ? e.image.$item = t.cloneNode(!0) : (e.image.$item = t, e.image.$itemParent = t.parentNode), e.image.useImgTag = !0), !!e.image.$item || (null === e.image.src && (e.image.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", e.image.bgImage = e.css(e.$item, "background-image")), !(!e.image.bgImage || "none" === e.image.bgImage))
        }
        canInitParallax() {
            return !this.options.disableParallax()
        }
        init() {
            const e = this,
                t = {
                    position: "absolute",
                    top: 0,
                    left: 0,
                    width: "100%",
                    height: "100%",
                    overflow: "hidden"
                };
            let o = {
                pointerEvents: "none",
                transformStyle: "preserve-3d",
                backfaceVisibility: "hidden",
                willChange: "transform,opacity"
            };
            if (!e.options.keepImg) {
                const t = e.$item.getAttribute("style");
                if (t && e.$item.setAttribute("data-jarallax-original-styles", t), e.image.useImgTag) {
                    const t = e.image.$item.getAttribute("style");
                    t && e.image.$item.setAttribute("data-jarallax-original-styles", t)
                }
            }
            if ("static" === e.css(e.$item, "position") && e.css(e.$item, {
                    position: "relative"
                }), "auto" === e.css(e.$item, "z-index") && e.css(e.$item, {
                    zIndex: 0
                }), e.image.$container = document.createElement("div"), e.css(e.image.$container, t), e.css(e.image.$container, {
                    "z-index": e.options.zIndex
                }), "fixed" === this.image.position && e.css(e.image.$container, {
                    "-webkit-clip-path": "polygon(0 0, 100% 0, 100% 100%, 0 100%)",
                    "clip-path": "polygon(0 0, 100% 0, 100% 100%, 0 100%)"
                }), e.image.$container.setAttribute("id", `jarallax-container-${e.instanceID}`), e.$item.appendChild(e.image.$container), e.image.useImgTag ? o = e.extend({
                    "object-fit": e.options.imgSize,
                    "object-position": e.options.imgPosition,
                    "max-width": "none"
                }, t, o) : (e.image.$item = document.createElement("div"), e.image.src && (o = e.extend({
                    "background-position": e.options.imgPosition,
                    "background-size": e.options.imgSize,
                    "background-repeat": e.options.imgRepeat,
                    "background-image": e.image.bgImage || `url("${e.image.src}")`
                }, t, o))), "opacity" !== e.options.type && "scale" !== e.options.type && "scale-opacity" !== e.options.type && 1 !== e.options.speed || (e.image.position = "absolute"), "fixed" === e.image.position) {
                const t = function(e) {
                    const t = [];
                    for (; null !== e.parentElement;) 1 === (e = e.parentElement).nodeType && t.push(e);
                    return t
                }(e.$item).filter((e => {
                    const t = i.getComputedStyle(e),
                        o = t["-webkit-transform"] || t["-moz-transform"] || t.transform;
                    return o && "none" !== o || /(auto|scroll)/.test(t.overflow + t["overflow-y"] + t["overflow-x"])
                }));
                e.image.position = t.length ? "absolute" : "fixed"
            }
            o.position = e.image.position, e.css(e.image.$item, o), e.image.$container.appendChild(e.image.$item), e.onResize(), e.onScroll(!0), e.options.onInit && e.options.onInit.call(e), "none" !== e.css(e.$item, "background-image") && e.css(e.$item, {
                "background-image": "none"
            }), e.addToParallaxList()
        }
        addToParallaxList() {
            r.push({
                instance: this
            }), 1 === r.length && i.requestAnimationFrame(m)
        }
        removeFromParallaxList() {
            const e = this;
            r.forEach(((t, i) => {
                t.instance.instanceID === e.instanceID && r.splice(i, 1)
            }))
        }
        destroy() {
            const e = this;
            e.removeFromParallaxList();
            const t = e.$item.getAttribute("data-jarallax-original-styles");
            if (e.$item.removeAttribute("data-jarallax-original-styles"), t ? e.$item.setAttribute("style", t) : e.$item.removeAttribute("style"), e.image.useImgTag) {
                const i = e.image.$item.getAttribute("data-jarallax-original-styles");
                e.image.$item.removeAttribute("data-jarallax-original-styles"), i ? e.image.$item.setAttribute("style", t) : e.image.$item.removeAttribute("style"), e.image.$itemParent && e.image.$itemParent.appendChild(e.image.$item)
            }
            e.image.$container && e.image.$container.parentNode.removeChild(e.image.$container), e.options.onDestroy && e.options.onDestroy.call(e), delete e.$item.jarallax
        }
        clipContainer() {}
        coverImage() {
            const e = this,
                t = e.image.$container.getBoundingClientRect(),
                i = t.height,
                {
                    speed: o
                } = e.options,
                n = "scroll" === e.options.type || "scroll-opacity" === e.options.type;
            let a = 0,
                l = i,
                r = 0;
            return n && (0 > o ? (a = o * Math.max(i, s), s < i && (a -= o * (i - s))) : a = o * (i + s), 1 < o ? l = Math.abs(a - s) : 0 > o ? l = a / o + Math.abs(a) : l += (s - i) * (1 - o), a /= 2), e.parallaxScrollDistance = a, r = n ? (s - l) / 2 : (i - l) / 2, e.css(e.image.$item, {
                height: `${l}px`,
                marginTop: `${r}px`,
                left: "fixed" === e.image.position ? `${t.left}px` : "0",
                width: `${t.width}px`
            }), e.options.onCoverImage && e.options.onCoverImage.call(e), {
                image: {
                    height: l,
                    marginTop: r
                },
                container: t
            }
        }
        isVisible() {
            return this.isElementInViewport || !1
        }
        onScroll(e) {
            const t = this,
                o = t.$item.getBoundingClientRect(),
                n = o.top,
                a = o.height,
                l = {};
            let r = o;
            if (t.options.elementInViewport && (r = t.options.elementInViewport.getBoundingClientRect()), t.isElementInViewport = 0 <= r.bottom && 0 <= r.right && r.top <= s && r.left <= i.innerWidth, !e && !t.isElementInViewport) return;
            const m = Math.max(0, n),
                c = Math.max(0, a + n),
                p = Math.max(0, -n),
                d = Math.max(0, n + a - s),
                g = Math.max(0, a - (n + a - s)),
                u = Math.max(0, -n + s - a),
                f = 1 - (s - n) / (s + a) * 2;
            let h = 1;
            if (a < s ? h = 1 - (p || d) / a : c <= s ? h = c / s : g <= s && (h = g / s), "opacity" !== t.options.type && "scale-opacity" !== t.options.type && "scroll-opacity" !== t.options.type || (l.transform = "translate3d(0,0,0)", l.opacity = h), "scale" === t.options.type || "scale-opacity" === t.options.type) {
                let e = 1;
                0 > t.options.speed ? e -= t.options.speed * h : e += t.options.speed * (1 - h), l.transform = `scale(${e}) translate3d(0,0,0)`
            }
            if ("scroll" === t.options.type || "scroll-opacity" === t.options.type) {
                let e = t.parallaxScrollDistance * f;
                "absolute" === t.image.position && (e -= n), l.transform = `translate3d(0,${e}px,0)`
            }
            t.css(t.image.$item, l), t.options.onScroll && t.options.onScroll.call(t, {
                section: o,
                beforeTop: m,
                beforeTopEnd: c,
                afterTop: p,
                beforeBottom: d,
                beforeBottomEnd: g,
                afterBottom: u,
                visiblePercent: h,
                fromViewportCenter: f
            })
        }
        onResize() {
            this.coverImage()
        }
    }
    const d = function(e, t, ...i) {
        ("object" == typeof HTMLElement ? e instanceof HTMLElement : e && "object" == typeof e && null !== e && 1 === e.nodeType && "string" == typeof e.nodeName) && (e = [e]);
        const o = e.length;
        let n, a = 0;
        for (; a < o; a += 1)
            if ("object" == typeof t || void 0 === t ? e[a].jarallax || (e[a].jarallax = new p(e[a], t)) : e[a].jarallax && (n = e[a].jarallax[t].apply(e[a].jarallax, i)), void 0 !== n) return n;
        return e
    };
    d.constructor = p;
    const g = i.jQuery;
    if (void 0 !== g) {
        const e = function(...e) {
            Array.prototype.unshift.call(e, this);
            const t = d.apply(i, e);
            return "object" != typeof t ? t : this
        };
        e.constructor = d.constructor;
        const t = g.fn.jarallax;
        g.fn.jarallax = e, g.fn.jarallax.noConflict = function() {
            return g.fn.jarallax = t, this
        }
    }
    return e((() => {
        d(document.querySelectorAll("[data-jarallax]"))
    })), d
}));

/*!
 * Video Extension for Jarallax v2.0.2 (https://github.com/nk-o/jarallax)
 * Copyright 2022 nK <https://nkdev.info>
 * Licensed under MIT (https://github.com/nk-o/jarallax/blob/master/LICENSE)
 */
! 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).jarallaxVideo = t()
}(this, (function() {
    "use strict";
    /*!
     * Name    : Video Worker
     * Version : 2.0.0
     * Author  : nK <https://nkdev.info>
     * GitHub  : https://github.com/nk-o/video-worker
     */
    let e;
    e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {};
    var t = e;

    function o() {
        this.doneCallbacks = [], this.failCallbacks = []
    }
    o.prototype = {
        execute(e, t) {
            let o = e.length;
            for (t = Array.prototype.slice.call(t); o;) o -= 1, e[o].apply(null, t)
        },
        resolve(...e) {
            this.execute(this.doneCallbacks, e)
        },
        reject(...e) {
            this.execute(this.failCallbacks, e)
        },
        done(e) {
            this.doneCallbacks.push(e)
        },
        fail(e) {
            this.failCallbacks.push(e)
        }
    };
    let i = 0,
        a = 0,
        n = 0,
        s = 0,
        l = 0;
    const r = new o,
        p = new o;
    class d {
        constructor(e, t) {
            const o = this;
            o.url = e, o.options_default = {
                autoplay: !1,
                loop: !1,
                mute: !1,
                volume: 100,
                showControls: !0,
                accessibilityHidden: !1,
                startTime: 0,
                endTime: 0
            }, o.options = o.extend({}, o.options_default, t), void 0 !== o.options.showContols && (o.options.showControls = o.options.showContols, delete o.options.showContols), o.videoID = o.parseURL(e), o.videoID && (o.ID = i, i += 1, o.loadAPI(), o.init())
        }
        extend(...e) {
            const t = e[0] || {};
            return Object.keys(e).forEach((o => {
                e[o] && Object.keys(e[o]).forEach((i => {
                    t[i] = e[o][i]
                }))
            })), t
        }
        parseURL(e) {
            const t = function(e) {
                    const t = e.match(/.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#\&\?]*).*/);
                    return !(!t || 11 !== t[1].length) && t[1]
                }(e),
                o = function(e) {
                    const t = e.match(/https?:\/\/(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^/]*)\/videos\/|album\/(\d+)\/video\/|video\/|)(\d+)(?:$|\/|\?)/);
                    return !(!t || !t[3]) && t[3]
                }(e),
                i = function(e) {
                    const t = e.split(/,(?=mp4\:|webm\:|ogv\:|ogg\:)/),
                        o = {};
                    let i = 0;
                    return t.forEach((e => {
                        const t = e.match(/^(mp4|webm|ogv|ogg)\:(.*)/);
                        t && t[1] && t[2] && (o["ogv" === t[1] ? "ogg" : t[1]] = t[2], i = 1)
                    })), !!i && o
                }(e);
            return t ? (this.type = "youtube", t) : o ? (this.type = "vimeo", o) : !!i && (this.type = "local", i)
        }
        isValid() {
            return !!this.videoID
        }
        on(e, t) {
            this.userEventsList = this.userEventsList || [], (this.userEventsList[e] || (this.userEventsList[e] = [])).push(t)
        }
        off(e, t) {
            this.userEventsList && this.userEventsList[e] && (t ? this.userEventsList[e].forEach(((o, i) => {
                o === t && (this.userEventsList[e][i] = !1)
            })) : delete this.userEventsList[e])
        }
        fire(e, ...t) {
            this.userEventsList && void 0 !== this.userEventsList[e] && this.userEventsList[e].forEach((e => {
                e && e.apply(this, t)
            }))
        }
        play(e) {
            const o = this;
            o.player && ("youtube" === o.type && o.player.playVideo && (void 0 !== e && o.player.seekTo(e || 0), t.YT.PlayerState.PLAYING !== o.player.getPlayerState() && o.player.playVideo()), "vimeo" === o.type && (void 0 !== e && o.player.setCurrentTime(e), o.player.getPaused().then((e => {
                e && o.player.play()
            }))), "local" === o.type && (void 0 !== e && (o.player.currentTime = e), o.player.paused && o.player.play()))
        }
        pause() {
            const e = this;
            e.player && ("youtube" === e.type && e.player.pauseVideo && t.YT.PlayerState.PLAYING === e.player.getPlayerState() && e.player.pauseVideo(), "vimeo" === e.type && e.player.getPaused().then((t => {
                t || e.player.pause()
            })), "local" === e.type && (e.player.paused || e.player.pause()))
        }
        mute() {
            const e = this;
            e.player && ("youtube" === e.type && e.player.mute && e.player.mute(), "vimeo" === e.type && e.player.setVolume && e.player.setVolume(0), "local" === e.type && (e.$video.muted = !0))
        }
        unmute() {
            const e = this;
            e.player && ("youtube" === e.type && e.player.mute && e.player.unMute(), "vimeo" === e.type && e.player.setVolume && e.player.setVolume(e.options.volume), "local" === e.type && (e.$video.muted = !1))
        }
        setVolume(e = !1) {
            const t = this;
            t.player && e && ("youtube" === t.type && t.player.setVolume && t.player.setVolume(e), "vimeo" === t.type && t.player.setVolume && t.player.setVolume(e), "local" === t.type && (t.$video.volume = e / 100))
        }
        getVolume(e) {
            const t = this;
            t.player ? ("youtube" === t.type && t.player.getVolume && e(t.player.getVolume()), "vimeo" === t.type && t.player.getVolume && t.player.getVolume().then((t => {
                e(t)
            })), "local" === t.type && e(100 * t.$video.volume)) : e(!1)
        }
        getMuted(e) {
            const t = this;
            t.player ? ("youtube" === t.type && t.player.isMuted && e(t.player.isMuted()), "vimeo" === t.type && t.player.getVolume && t.player.getVolume().then((t => {
                e(!!t)
            })), "local" === t.type && e(t.$video.muted)) : e(null)
        }
        getImageURL(e) {
            const t = this;
            if (t.videoImage) e(t.videoImage);
            else {
                if ("youtube" === t.type) {
                    const o = ["maxresdefault", "sddefault", "hqdefault", "0"];
                    let i = 0;
                    const a = new Image;
                    a.onload = function() {
                        120 !== (this.naturalWidth || this.width) || i === o.length - 1 ? (t.videoImage = `https://img.youtube.com/vi/${t.videoID}/${o[i]}.jpg`, e(t.videoImage)) : (i += 1, this.src = `https://img.youtube.com/vi/${t.videoID}/${o[i]}.jpg`)
                    }, a.src = `https://img.youtube.com/vi/${t.videoID}/${o[i]}.jpg`
                }
                if ("vimeo" === t.type) {
                    let o = new XMLHttpRequest;
                    o.open("GET", `https://vimeo.com/api/oembed.json?url=${t.url}`, !0), o.onreadystatechange = function() {
                        if (4 === this.readyState && this.status >= 200 && this.status < 400) {
                            const o = JSON.parse(this.responseText);
                            o.thumbnail_url && (t.videoImage = o.thumbnail_url, e(t.videoImage))
                        }
                    }, o.send(), o = null
                }
            }
        }
        getIframe(e) {
            this.getVideo(e)
        }
        getVideo(e) {
            const o = this;
            o.$video ? e(o.$video) : o.onAPIready((() => {
                let i;
                if (o.$video || (i = document.createElement("div"), i.style.display = "none"), "youtube" === o.type) {
                    let e, a;
                    o.playerOptions = {
                        host: "https://www.youtube-nocookie.com",
                        videoId: o.videoID,
                        playerVars: {
                            autohide: 1,
                            rel: 0,
                            autoplay: 0,
                            playsinline: 1
                        }
                    }, o.options.showControls || (o.playerOptions.playerVars.iv_load_policy = 3, o.playerOptions.playerVars.modestbranding = 1, o.playerOptions.playerVars.controls = 0, o.playerOptions.playerVars.showinfo = 0, o.playerOptions.playerVars.disablekb = 1), o.playerOptions.events = {
                        onReady(e) {
                            if (o.options.mute ? e.target.mute() : o.options.volume && e.target.setVolume(o.options.volume), o.options.autoplay && o.play(o.options.startTime), o.fire("ready", e), o.options.loop && !o.options.endTime) {
                                const e = .1;
                                o.options.endTime = o.player.getDuration() - e
                            }
                            setInterval((() => {
                                o.getVolume((t => {
                                    o.options.volume !== t && (o.options.volume = t, o.fire("volumechange", e))
                                }))
                            }), 150)
                        },
                        onStateChange(i) {
                            o.options.loop && i.data === t.YT.PlayerState.ENDED && o.play(o.options.startTime), e || i.data !== t.YT.PlayerState.PLAYING || (e = 1, o.fire("started", i)), i.data === t.YT.PlayerState.PLAYING && o.fire("play", i), i.data === t.YT.PlayerState.PAUSED && o.fire("pause", i), i.data === t.YT.PlayerState.ENDED && o.fire("ended", i), i.data === t.YT.PlayerState.PLAYING ? a = setInterval((() => {
                                o.fire("timeupdate", i), o.options.endTime && o.player.getCurrentTime() >= o.options.endTime && (o.options.loop ? o.play(o.options.startTime) : o.pause())
                            }), 150) : clearInterval(a)
                        },
                        onError(e) {
                            o.fire("error", e)
                        }
                    };
                    const n = !o.$video;
                    if (n) {
                        const e = document.createElement("div");
                        e.setAttribute("id", o.playerID), i.appendChild(e), document.body.appendChild(i)
                    }
                    o.player = o.player || new t.YT.Player(o.playerID, o.playerOptions), n && (o.$video = document.getElementById(o.playerID), o.options.accessibilityHidden && (o.$video.setAttribute("tabindex", "-1"), o.$video.setAttribute("aria-hidden", "true")), o.videoWidth = parseInt(o.$video.getAttribute("width"), 10) || 1280, o.videoHeight = parseInt(o.$video.getAttribute("height"), 10) || 720)
                }
                if ("vimeo" === o.type) {
                    if (o.playerOptions = {
                            dnt: 1,
                            id: o.videoID,
                            autopause: 0,
                            transparent: 0,
                            autoplay: o.options.autoplay ? 1 : 0,
                            loop: o.options.loop ? 1 : 0,
                            muted: o.options.mute ? 1 : 0
                        }, o.options.volume && (o.playerOptions.volume = o.options.volume), o.options.showControls || (o.playerOptions.badge = 0, o.playerOptions.byline = 0, o.playerOptions.portrait = 0, o.playerOptions.title = 0, o.playerOptions.background = 1), !o.$video) {
                        let e = "";
                        Object.keys(o.playerOptions).forEach((t => {
                            "" !== e && (e += "&"), e += `${t}=${encodeURIComponent(o.playerOptions[t])}`
                        })), o.$video = document.createElement("iframe"), o.$video.setAttribute("id", o.playerID), o.$video.setAttribute("src", `https://player.vimeo.com/video/${o.videoID}?${e}`), o.$video.setAttribute("frameborder", "0"), o.$video.setAttribute("mozallowfullscreen", ""), o.$video.setAttribute("allowfullscreen", ""), o.$video.setAttribute("title", "Vimeo video player"), o.options.accessibilityHidden && (o.$video.setAttribute("tabindex", "-1"), o.$video.setAttribute("aria-hidden", "true")), i.appendChild(o.$video), document.body.appendChild(i)
                    }
                    let e;
                    o.player = o.player || new t.Vimeo.Player(o.$video, o.playerOptions), o.options.startTime && o.options.autoplay && o.player.setCurrentTime(o.options.startTime), o.player.getVideoWidth().then((e => {
                        o.videoWidth = e || 1280
                    })), o.player.getVideoHeight().then((e => {
                        o.videoHeight = e || 720
                    })), o.player.on("timeupdate", (t => {
                        e || (o.fire("started", t), e = 1), o.fire("timeupdate", t), o.options.endTime && o.options.endTime && t.seconds >= o.options.endTime && (o.options.loop ? o.play(o.options.startTime) : o.pause())
                    })), o.player.on("play", (e => {
                        o.fire("play", e), o.options.startTime && 0 === e.seconds && o.play(o.options.startTime)
                    })), o.player.on("pause", (e => {
                        o.fire("pause", e)
                    })), o.player.on("ended", (e => {
                        o.fire("ended", e)
                    })), o.player.on("loaded", (e => {
                        o.fire("ready", e)
                    })), o.player.on("volumechange", (e => {
                        o.fire("volumechange", e)
                    })), o.player.on("error", (e => {
                        o.fire("error", e)
                    }))
                }
                if ("local" === o.type) {
                    let e;
                    o.$video || (o.$video = document.createElement("video"), o.options.showControls && (o.$video.controls = !0), o.options.mute ? o.$video.muted = !0 : o.$video.volume && (o.$video.volume = o.options.volume / 100), o.options.loop && (o.$video.loop = !0), o.$video.setAttribute("playsinline", ""), o.$video.setAttribute("webkit-playsinline", ""), o.options.accessibilityHidden && (o.$video.setAttribute("tabindex", "-1"), o.$video.setAttribute("aria-hidden", "true")), o.$video.setAttribute("id", o.playerID), i.appendChild(o.$video), document.body.appendChild(i), Object.keys(o.videoID).forEach((e => {
                        ! function(e, t, o) {
                            const i = document.createElement("source");
                            i.src = t, i.type = o, e.appendChild(i)
                        }(o.$video, o.videoID[e], `video/${e}`)
                    }))), o.player = o.player || o.$video, o.player.addEventListener("playing", (t => {
                        e || o.fire("started", t), e = 1
                    })), o.player.addEventListener("timeupdate", (function(e) {
                        o.fire("timeupdate", e), o.options.endTime && o.options.endTime && this.currentTime >= o.options.endTime && (o.options.loop ? o.play(o.options.startTime) : o.pause())
                    })), o.player.addEventListener("play", (e => {
                        o.fire("play", e)
                    })), o.player.addEventListener("pause", (e => {
                        o.fire("pause", e)
                    })), o.player.addEventListener("ended", (e => {
                        o.fire("ended", e)
                    })), o.player.addEventListener("loadedmetadata", (function() {
                        o.videoWidth = this.videoWidth || 1280, o.videoHeight = this.videoHeight || 720, o.fire("ready"), o.options.autoplay && o.play(o.options.startTime)
                    })), o.player.addEventListener("volumechange", (e => {
                        o.getVolume((e => {
                            o.options.volume = e
                        })), o.fire("volumechange", e)
                    })), o.player.addEventListener("error", (e => {
                        o.fire("error", e)
                    }))
                }
                e(o.$video)
            }))
        }
        init() {
            this.playerID = `VideoWorker-${this.ID}`
        }
        loadAPI() {
            if (a && n) return;
            let e = "";
            if ("youtube" !== this.type || a || (a = 1, e = "https://www.youtube.com/iframe_api"), "vimeo" === this.type && !n) {
                if (n = 1, void 0 !== t.Vimeo) return;
                e = "https://player.vimeo.com/api/player.js"
            }
            if (!e) return;
            let o = document.createElement("script"),
                i = document.getElementsByTagName("head")[0];
            o.src = e, i.appendChild(o), i = null, o = null
        }
        onAPIready(e) {
            const o = this;
            if ("youtube" === o.type && (void 0 !== t.YT && 0 !== t.YT.loaded || s ? "object" == typeof t.YT && 1 === t.YT.loaded ? e() : r.done((() => {
                    e()
                })) : (s = 1, t.onYouTubeIframeAPIReady = function() {
                    t.onYouTubeIframeAPIReady = null, r.resolve("done"), e()
                })), "vimeo" === o.type)
                if (void 0 !== t.Vimeo || l) void 0 !== t.Vimeo ? e() : p.done((() => {
                    e()
                }));
                else {
                    l = 1;
                    const o = setInterval((() => {
                        void 0 !== t.Vimeo && (clearInterval(o), p.resolve("done"), e())
                    }), 20)
                }
            "local" === o.type && e()
        }
    }
    let u;
    u = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {};
    var y, m = u;

    function c(e = m.jarallax) {
        if (void 0 === e) return;
        const t = e.constructor,
            o = t.prototype.onScroll;
        t.prototype.onScroll = function() {
            const e = this;
            o.apply(e);
            !e.isVideoInserted && e.video && (!e.options.videoLazyLoading || e.isElementInViewport) && !e.options.disableVideo() && (e.isVideoInserted = !0, e.video.getVideo((t => {
                const o = t.parentNode;
                e.css(t, {
                    position: e.image.position,
                    top: "0px",
                    left: "0px",
                    right: "0px",
                    bottom: "0px",
                    width: "100%",
                    height: "100%",
                    maxWidth: "none",
                    maxHeight: "none",
                    pointerEvents: "none",
                    transformStyle: "preserve-3d",
                    backfaceVisibility: "hidden",
                    willChange: "transform,opacity",
                    margin: 0,
                    zIndex: -1
                }), e.$video = t, "local" === e.video.type && (e.image.src ? e.$video.setAttribute("poster", e.image.src) : e.image.$item && "IMG" === e.image.$item.tagName && e.image.$item.src && e.$video.setAttribute("poster", e.image.$item.src)), e.image.$container.appendChild(t), o.parentNode.removeChild(o), e.options.onVideoInsert && e.options.onVideoInsert.call(e)
            })))
        };
        const i = t.prototype.coverImage;
        t.prototype.coverImage = function() {
            const e = this,
                t = i.apply(e),
                o = !!e.image.$item && e.image.$item.nodeName;
            if (t && e.video && o && ("IFRAME" === o || "VIDEO" === o)) {
                let i = t.image.height,
                    a = i * e.image.width / e.image.height,
                    n = (t.container.width - a) / 2,
                    s = t.image.marginTop;
                t.container.width > a && (a = t.container.width, i = a * e.image.height / e.image.width, n = 0, s += (t.image.height - i) / 2), "IFRAME" === o && (i += 400, s -= 200), e.css(e.$video, {
                    width: `${a}px`,
                    marginLeft: `${n}px`,
                    height: `${i}px`,
                    marginTop: `${s}px`
                })
            }
            return t
        };
        const a = t.prototype.initImg;
        t.prototype.initImg = function() {
            const e = this,
                t = a.apply(e);
            return e.options.videoSrc || (e.options.videoSrc = e.$item.getAttribute("data-jarallax-video") || null), e.options.videoSrc ? (e.defaultInitImgResult = t, !0) : t
        };
        const n = t.prototype.canInitParallax;
        t.prototype.canInitParallax = function() {
            const e = this;
            let t = n.apply(e);
            if (!e.options.videoSrc) return t;
            const o = new d(e.options.videoSrc, {
                autoplay: !0,
                loop: e.options.videoLoop,
                showControls: !1,
                accessibilityHidden: !0,
                startTime: e.options.videoStartTime || 0,
                endTime: e.options.videoEndTime || 0,
                mute: e.options.videoVolume ? 0 : 1,
                volume: e.options.videoVolume || 0
            });

            function i() {
                e.image.$default_item && (e.image.$item = e.image.$default_item, e.image.$item.style.display = "block", e.coverImage(), e.onScroll())
            }
            if (e.options.onVideoWorkerInit && e.options.onVideoWorkerInit.call(e, o), o.isValid())
                if (this.options.disableParallax() && (t = !0, e.image.position = "absolute", e.options.type = "scroll", e.options.speed = 1), t) {
                    if (o.on("ready", (() => {
                            if (e.options.videoPlayOnlyVisible) {
                                const t = e.onScroll;
                                e.onScroll = function() {
                                    t.apply(e), e.videoError || !e.options.videoLoop && (e.options.videoLoop || e.videoEnded) || (e.isVisible() ? o.play() : o.pause())
                                }
                            } else o.play()
                        })), o.on("started", (() => {
                            e.image.$default_item = e.image.$item, e.image.$item = e.$video, e.image.width = e.video.videoWidth || 1280, e.image.height = e.video.videoHeight || 720, e.coverImage(), e.onScroll(), e.image.$default_item && (e.image.$default_item.style.display = "none")
                        })), o.on("ended", (() => {
                            e.videoEnded = !0, e.options.videoLoop || i()
                        })), o.on("error", (() => {
                            e.videoError = !0, i()
                        })), e.video = o, !e.defaultInitImgResult && (e.image.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", "local" !== o.type)) return o.getImageURL((t => {
                        e.image.bgImage = `url("${t}")`, e.init()
                    })), !1
                } else e.defaultInitImgResult || o.getImageURL((t => {
                    const o = e.$item.getAttribute("style");
                    o && e.$item.setAttribute("data-jarallax-original-styles", o), e.css(e.$item, {
                        "background-image": `url("${t}")`,
                        "background-position": "center",
                        "background-size": "cover"
                    })
                }));
            return t
        };
        const s = t.prototype.destroy;
        t.prototype.destroy = function() {
            const e = this;
            e.image.$default_item && (e.image.$item = e.image.$default_item, delete e.image.$default_item), s.apply(e)
        }
    }
    return c(), y = () => {
        void 0 !== m.jarallax && m.jarallax(document.querySelectorAll("[data-jarallax-video]"))
    }, "complete" === document.readyState || "interactive" === document.readyState ? y() : document.addEventListener("DOMContentLoaded", y, {
        capture: !0,
        once: !0,
        passive: !0
    }), m.VideoWorker || (m.VideoWorker = d), c
}));

/*!
 * Name    : Elements Extension for Jarallax
 * Version : 1.0.0
 * Author  : nK <https://nkdev.info>
 * GitHub  : https://github.com/nk-o/jarallax
 */
! function(n) {
    var o = {};

    function r(t) {
        if (o[t]) return o[t].exports;
        var e = o[t] = {
            i: t,
            l: !1,
            exports: {}
        };
        return n[t].call(e.exports, e, e.exports, r), e.l = !0, e.exports
    }
    r.m = n, r.c = o, r.d = function(t, e, n) {
        r.o(t, e) || Object.defineProperty(t, e, {
            enumerable: !0,
            get: n
        })
    }, r.r = function(t) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
            value: "Module"
        }), Object.defineProperty(t, "__esModule", {
            value: !0
        })
    }, r.t = function(e, t) {
        if (1 & t && (e = r(e)), 8 & t) return e;
        if (4 & t && "object" == typeof e && e && e.__esModule) return e;
        var n = Object.create(null);
        if (r.r(n), Object.defineProperty(n, "default", {
                enumerable: !0,
                value: e
            }), 2 & t && "string" != typeof e)
            for (var o in e) r.d(n, o, function(t) {
                return e[t]
            }.bind(null, o));
        return n
    }, r.n = function(t) {
        var e = t && t.__esModule ? function() {
            return t.default
        } : function() {
            return t
        };
        return r.d(e, "a", e), e
    }, r.o = function(t, e) {
        return Object.prototype.hasOwnProperty.call(t, e)
    }, r.p = "", r(r.s = 0)
}([function(t, e, n) {
    t.exports = n(1)
}, function(t, e, n) {
    "use strict";
    var o = r(n(2));

    function r(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }(0, r(n(3)).default)(), (0, o.default)(function() {
        "undefined" != typeof jarallax && jarallax(document.querySelectorAll("[data-jarallax-element]"))
    })
}, function(t, e, n) {
    "use strict";
    t.exports = function(t) {
        "complete" === document.readyState || "interactive" === document.readyState ? t.call() : document.attachEvent ? document.attachEvent("onreadystatechange", function() {
            "interactive" === document.readyState && t.call()
        }) : document.addEventListener && document.addEventListener("DOMContentLoaded", t)
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    }), e.default = function() {
        var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : i.default.jarallax;
        if (void 0 === t) return;
        var e = t.constructor;
        ["initImg", "canInitParallax", "init", "destroy", "clipContainer", "coverImage", "isVisible", "onScroll", "onResize"].forEach(function(p) {
            var f = e.prototype[p];
            e.prototype[p] = function() {
                var t = this,
                    e = arguments || [];
                if ("initImg" === p && null !== t.$item.getAttribute("data-jarallax-element") && (t.options.type = "element", t.pureOptions.speed = t.$item.getAttribute("data-jarallax-element") || t.pureOptions.speed), "element" !== t.options.type) return f.apply(t, e);
                switch (t.pureOptions.threshold = t.$item.getAttribute("data-threshold") || "", p) {
                    case "init":
                        var n = t.pureOptions.speed.split(" ");
                        t.options.speed = t.pureOptions.speed || 0, t.options.speedY = n[0] ? parseFloat(n[0]) : 0, t.options.speedX = n[1] ? parseFloat(n[1]) : 0;
                        var o = t.pureOptions.threshold.split(" ");
                        t.options.thresholdY = o[0] ? parseFloat(o[0]) : null, t.options.thresholdX = o[1] ? parseFloat(o[1]) : null;
                        break;
                    case "onResize":
                        var r = t.css(t.$item, "transform");
                        t.css(t.$item, {
                            transform: ""
                        });
                        var i = t.$item.getBoundingClientRect();
                        t.itemData = {
                            width: i.width,
                            height: i.height,
                            y: i.top + t.getWindowData().y,
                            x: i.left
                        }, t.css(t.$item, {
                            transform: r
                        });
                        break;
                    case "onScroll":
                        var a = t.getWindowData(),
                            s = (a.y + a.height / 2 - t.itemData.y - t.itemData.height / 2) / (a.height / 2),
                            l = s * t.options.speedY,
                            u = s * t.options.speedX,
                            c = l,
                            d = u;
                        null !== t.options.thresholdY && l > t.options.thresholdY && (c = 0), null !== t.options.thresholdX && u > t.options.thresholdX && (d = 0), t.css(t.$item, {
                            transform: "translate3d(" + d + "px," + c + "px,0)"
                        });
                        break;
                    case "initImg":
                    case "isVisible":
                    case "clipContainer":
                    case "coverImage":
                        return !0
                }
                return f.apply(t, e)
            }
        })
    };
    var o, r = n(4),
        i = (o = r) && o.__esModule ? o : {
            default: o
        }
}, function(n, t, e) {
    "use strict";
    (function(t) {
        var e;
        e = "undefined" != typeof window ? window : void 0 !== t ? t : "undefined" != typeof self ? self : {}, n.exports = e
    }).call(this, e(5))
}, function(t, e, n) {
    "use strict";
    var o, r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
        return typeof t
    } : function(t) {
        return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
    };
    o = function() {
        return this
    }();
    try {
        o = o || Function("return this")() || (0, eval)("this")
    } catch (t) {
        "object" === ("undefined" == typeof window ? "undefined" : r(window)) && (o = window)
    }
    t.exports = o
}]);
//# sourceMappingURL=jarallax-element.min.js.map

/* typed */
! function($) {
    "use strict";
    var a = function(a, b) {
        this.el = $(a), this.options = $.extend({}, $.fn.typed.defaults, b), this.isInput = this.el.is("input"), this.attr = this.options.attr, this.showCursor = !this.isInput && this.options.showCursor, this.elContent = this.attr ? this.el.attr(this.attr) : this.el.text(), this.contentType = this.options.contentType, this.typeSpeed = this.options.typeSpeed, this.startDelay = this.options.startDelay, this.backSpeed = this.options.backSpeed, this.backDelay = this.options.backDelay, this.stringsElement = this.options.stringsElement, this.strings = this.options.strings, this.strPos = 0, this.arrayPos = 0, this.stopNum = 0, this.loop = this.options.loop, this.loopCount = this.options.loopCount, this.curLoop = 0, this.stop = !1, this.cursorChar = this.options.cursorChar, this.shuffle = this.options.shuffle, this.sequence = [], this.build()
    };
    a.prototype = {
        constructor: a,
        init: function() {
            var a = this;
            a.timeout = setTimeout(function() {
                for (var b = 0; b < a.strings.length; ++b) a.sequence[b] = b;
                a.shuffle && (a.sequence = a.shuffleArray(a.sequence)), a.typewrite(a.strings[a.sequence[a.arrayPos]], a.strPos)
            }, a.startDelay)
        },
        build: function() {
            var a = this;
            if (!0 === this.showCursor && (this.cursor = $('<span class="typed-cursor">' + this.cursorChar + "</span>"), this.el.after(this.cursor)), this.stringsElement) {
                a.strings = [], this.stringsElement.hide();
                var b = this.stringsElement.find("p");
                $.each(b, function(c, b) {
                    a.strings.push($(b).html())
                })
            }
            this.init()
        },
        typewrite: function(c, d) {
            if (!0 !== this.stop) {
                var a = Math.round(70 * Math.random()) + this.typeSpeed,
                    b = this;
                b.timeout = setTimeout(function() {
                    var g = 0,
                        a = c.substr(d);
                    if ("^" === a.charAt(0)) {
                        var h = 1;
                        /^\^\d+/.test(a) && (h += (a = /\d+/.exec(a)[0]).length, g = parseInt(a)), c = c.substring(0, d) + c.substring(d + h)
                    }
                    if ("html" === b.contentType) {
                        var e = c.substr(d).charAt(0);
                        if ("<" === e || "&" === e) {
                            var i = "",
                                f = "";
                            for (f = "<" === e ? ">" : ";"; c.substr(d).charAt(0) !== f;) i += c.substr(d).charAt(0), d++;
                            d++, i += f
                        }
                    }
                    b.timeout = setTimeout(function() {
                        if (d === c.length) b.options.onStringTyped(b.arrayPos), (b.arrayPos !== b.strings.length - 1 || (b.options.callback(), b.curLoop++, !1 !== b.loop && b.curLoop !== b.loopCount)) && (b.timeout = setTimeout(function() {
                            b.backspace(c, d)
                        }, b.backDelay));
                        else {
                            0 === d && b.options.preStringTyped(b.arrayPos);
                            var a = c.substr(0, d + 1);
                            b.attr ? b.el.attr(b.attr, a) : b.isInput ? b.el.val(a) : "html" === b.contentType ? b.el.html(a) : b.el.text(a), d++, b.typewrite(c, d)
                        }
                    }, g)
                }, a)
            }
        },
        backspace: function(c, d) {
            if (!0 !== this.stop) {
                var a = Math.round(70 * Math.random()) + this.backSpeed,
                    b = this;
                b.timeout = setTimeout(function() {
                    if ("html" === b.contentType && ">" === c.substr(d).charAt(0)) {
                        for (var e = "";
                            "<" !== c.substr(d).charAt(0);) e -= c.substr(d).charAt(0), d--;
                        d--, e += "<"
                    }
                    var a = c.substr(0, d);
                    b.attr ? b.el.attr(b.attr, a) : b.isInput ? b.el.val(a) : "html" === b.contentType ? b.el.html(a) : b.el.text(a), d > b.stopNum ? (d--, b.backspace(c, d)) : d <= b.stopNum && (b.arrayPos++, b.arrayPos === b.strings.length ? (b.arrayPos = 0, b.shuffle && (b.sequence = b.shuffleArray(b.sequence)), b.init()) : b.typewrite(b.strings[b.sequence[b.arrayPos]], d))
                }, a)
            }
        },
        shuffleArray: function(a) {
            var c, d, b = a.length;
            if (b)
                for (; --b;) c = a[d = Math.floor(Math.random() * (b + 1))], a[d] = a[b], a[b] = c;
            return a
        },
        reset: function() {
            clearInterval(this.timeout);
            var a = this.el.attr("id");
            this.el.after('<span id="' + a + '">'), this.el.remove(), void 0 !== this.cursor && this.cursor.remove(), this.options.resetCallback()
        }
    }, $.fn.typed = function(b) {
        return this.each(function() {
            var d = $(this),
                c = d.data("typed");
            c || d.data("typed", c = new a(this, "object" == typeof b && b)), "string" == typeof b && c[b]()
        })
    }, $.fn.typed.defaults = {
        strings: ["These are the default values...", "You know what you should do?", "Use your own!", "Have a great day!"],
        stringsElement: null,
        typeSpeed: 0,
        startDelay: 0,
        backSpeed: 0,
        shuffle: !1,
        backDelay: 500,
        loop: !1,
        loopCount: !1,
        showCursor: !0,
        cursorChar: "|",
        attr: null,
        contentType: "html",
        callback: function() {},
        preStringTyped: function() {},
        onStringTyped: function() {},
        resetCallback: function() {}
    }
}(window.jQuery)

/* cookit js */
! function(o) {
    o.cookit = function(t) {
        var n = o.extend({
            backgroundColor: "#1c1c1c",
            messageColor: "#fff",
            linkColor: "#fad04c",
            buttonColor: "#fad04c",
            messageText: "<b>Do you hungry ?</b> 🍪 Pursuing navigation on this site, you accept the use of cookies.",
            linkText: "Learn more",
            linkUrl: "https://www.cookiesandyou.com",
            buttonText: "I accept"
        }, t);
        const e = o("<div id='cookit'></div>"),
            c = o("<div id='cookit-container'></div>");
        var i = link = button = null;
        (function(o) {
            const t = decodeURIComponent(document.cookie).split(";");
            o += "=";
            for (let n = 0; n < t.length; n++) {
                let e = t[n];
                for (;
                    " " === e.charAt(0);) e = e.substring(1);
                if (0 === e.indexOf(o)) return e.substring(o.length, e.length)
            }
        })("cookies-consent") || (i = o("<p id='cookit-message'>" + n.messageText + "</p>"), link = o("<a id='cookit-link' href='" + n.linkUrl + "' target='_blank'>" + n.linkText + "</a>"), button = o("<a id='cookit-button' href='#'>" + n.buttonText + "</a>"), o("body").append(e), e.append(c), c.append(i), c.append(link), c.append(button), e.css({
            "background-color": n.backgroundColor
        }), i.css({
            color: n.messageColor
        }), link.css({
            color: n.linkColor
        }), button.css({
            "background-color": n.buttonColor,
            color: n.backgroundColor
        }), o("#cookit-button").on("click", () => {
            o("#cookit").addClass("hidden"),
                function(o, t, n) {
                    const e = new Date;
                    e.setTime(e.getTime() + 24 * n * 60 * 60 * 1e3);
                    const c = "expires=" + e.toUTCString();
                    document.cookie = o + "=" + t + ";" + c + ";path=/"
                }("cookies-consent", 1, 365)
        }))
    }
}(jQuery);

/*! skrollr 0.6.26 (2014-06-08) | Alexander Prinzhorn - https://github.com/Prinzhorn/skrollr | Free to use under terms of MIT license */
(function(e, t, r) {
    "use strict";

    function n(r) {
        if (o = t.documentElement, a = t.body, K(), it = this, r = r || {}, ut = r.constants || {}, r.easing)
            for (var n in r.easing) U[n] = r.easing[n];
        yt = r.edgeStrategy || "set", ct = {
            beforerender: r.beforerender,
            render: r.render,
            keyframe: r.keyframe
        }, ft = r.forceHeight !== !1, ft && (Vt = r.scale || 1), mt = r.mobileDeceleration || x, dt = r.smoothScrolling !== !1, gt = r.smoothScrollingDuration || E, vt = {
            targetTop: it.getScrollTop()
        }, Gt = (r.mobileCheck || function() {
            return /Android|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent || navigator.vendor || e.opera)
        })(), Gt ? (st = t.getElementById("skrollr-body"), st && at(), X(), Dt(o, [y, S], [T])) : Dt(o, [y, b], [T]), it.refresh(), St(e, "resize orientationchange", function() {
            var e = o.clientWidth,
                t = o.clientHeight;
            (t !== $t || e !== Mt) && ($t = t, Mt = e, _t = !0)
        });
        var i = Y();
        return function l() {
            Z(), bt = i(l)
        }(), it
    }
    var o, a, i = {
            get: function() {
                return it
            },
            init: function(e) {
                return it || new n(e)
            },
            VERSION: "0.6.26"
        },
        l = Object.prototype.hasOwnProperty,
        s = e.Math,
        c = e.getComputedStyle,
        f = "touchstart",
        u = "touchmove",
        m = "touchcancel",
        p = "touchend",
        d = "skrollable",
        g = d + "-before",
        v = d + "-between",
        h = d + "-after",
        y = "skrollr",
        T = "no-" + y,
        b = y + "-desktop",
        S = y + "-mobile",
        k = "linear",
        w = 1e3,
        x = .004,
        E = 200,
        A = "start",
        F = "end",
        C = "center",
        D = "bottom",
        H = "___skrollable_id",
        I = /^(?:input|textarea|button|select)$/i,
        P = /^\s+|\s+$/g,
        N = /^data(?:-(_\w+))?(?:-?(-?\d*\.?\d+p?))?(?:-?(start|end|top|center|bottom))?(?:-?(top|center|bottom))?$/,
        O = /\s*(@?[\w\-\[\]]+)\s*:\s*(.+?)\s*(?:;|$)/gi,
        V = /^(@?[a-z\-]+)\[(\w+)\]$/,
        z = /-([a-z0-9_])/g,
        q = function(e, t) {
            return t.toUpperCase()
        },
        L = /[\-+]?[\d]*\.?[\d]+/g,
        M = /\{\?\}/g,
        $ = /rgba?\(\s*-?\d+\s*,\s*-?\d+\s*,\s*-?\d+/g,
        _ = /[a-z\-]+-gradient/g,
        B = "",
        G = "",
        K = function() {
            var e = /^(?:O|Moz|webkit|ms)|(?:-(?:o|moz|webkit|ms)-)/;
            if (c) {
                var t = c(a, null);
                for (var n in t)
                    if (B = n.match(e) || +n == n && t[n].match(e)) break;
                if (!B) return B = G = "", r;
                B = B[0], "-" === B.slice(0, 1) ? (G = B, B = {
                    "-webkit-": "webkit",
                    "-moz-": "Moz",
                    "-ms-": "ms",
                    "-o-": "O"
                }[B]) : G = "-" + B.toLowerCase() + "-"
            }
        },
        Y = function() {
            var t = e.requestAnimationFrame || e[B.toLowerCase() + "RequestAnimationFrame"],
                r = Pt();
            return (Gt || !t) && (t = function(t) {
                var n = Pt() - r,
                    o = s.max(0, 1e3 / 60 - n);
                return e.setTimeout(function() {
                    r = Pt(), t()
                }, o)
            }), t
        },
        R = function() {
            var t = e.cancelAnimationFrame || e[B.toLowerCase() + "CancelAnimationFrame"];
            return (Gt || !t) && (t = function(t) {
                return e.clearTimeout(t)
            }), t
        },
        U = {
            begin: function() {
                return 0
            },
            end: function() {
                return 1
            },
            linear: function(e) {
                return e
            },
            quadratic: function(e) {
                return e * e
            },
            cubic: function(e) {
                return e * e * e
            },
            swing: function(e) {
                return -s.cos(e * s.PI) / 2 + .5
            },
            sqrt: function(e) {
                return s.sqrt(e)
            },
            outCubic: function(e) {
                return s.pow(e - 1, 3) + 1
            },
            bounce: function(e) {
                var t;
                if (.5083 >= e) t = 3;
                else if (.8489 >= e) t = 9;
                else if (.96208 >= e) t = 27;
                else {
                    if (!(.99981 >= e)) return 1;
                    t = 91
                }
                return 1 - s.abs(3 * s.cos(1.028 * e * t) / t)
            }
        };
    n.prototype.refresh = function(e) {
        var n, o, a = !1;
        for (e === r ? (a = !0, lt = [], Bt = 0, e = t.getElementsByTagName("*")) : e.length === r && (e = [e]), n = 0, o = e.length; o > n; n++) {
            var i = e[n],
                l = i,
                s = [],
                c = dt,
                f = yt,
                u = !1;
            if (a && H in i && delete i[H], i.attributes) {
                for (var m = 0, p = i.attributes.length; p > m; m++) {
                    var g = i.attributes[m];
                    if ("data-anchor-target" !== g.name)
                        if ("data-smooth-scrolling" !== g.name)
                            if ("data-edge-strategy" !== g.name)
                                if ("data-emit-events" !== g.name) {
                                    var v = g.name.match(N);
                                    if (null !== v) {
                                        var h = {
                                            props: g.value,
                                            element: i,
                                            eventType: g.name.replace(z, q)
                                        };
                                        s.push(h);
                                        var y = v[1];
                                        y && (h.constant = y.substr(1));
                                        var T = v[2];
                                        /p$/.test(T) ? (h.isPercentage = !0, h.offset = (0 | T.slice(0, -1)) / 100) : h.offset = 0 | T;
                                        var b = v[3],
                                            S = v[4] || b;
                                        b && b !== A && b !== F ? (h.mode = "relative", h.anchors = [b, S]) : (h.mode = "absolute", b === F ? h.isEnd = !0 : h.isPercentage || (h.offset = h.offset * Vt))
                                    }
                                } else u = !0;
                    else f = g.value;
                    else c = "off" !== g.value;
                    else if (l = t.querySelector(g.value), null === l) throw 'Unable to find anchor target "' + g.value + '"'
                }
                if (s.length) {
                    var k, w, x;
                    !a && H in i ? (x = i[H], k = lt[x].styleAttr, w = lt[x].classAttr) : (x = i[H] = Bt++, k = i.style.cssText, w = Ct(i)), lt[x] = {
                        element: i,
                        styleAttr: k,
                        classAttr: w,
                        anchorTarget: l,
                        keyFrames: s,
                        smoothScrolling: c,
                        edgeStrategy: f,
                        emitEvents: u,
                        lastFrameIndex: -1
                    }, Dt(i, [d], [])
                }
            }
        }
        for (Et(), n = 0, o = e.length; o > n; n++) {
            var E = lt[e[n][H]];
            E !== r && (J(E), et(E))
        }
        return it
    }, n.prototype.relativeToAbsolute = function(e, t, r) {
        var n = o.clientHeight,
            a = e.getBoundingClientRect(),
            i = a.top,
            l = a.bottom - a.top;
        return t === D ? i -= n : t === C && (i -= n / 2), r === D ? i += l : r === C && (i += l / 2), i += it.getScrollTop(), 0 | i + .5
    }, n.prototype.animateTo = function(e, t) {
        t = t || {};
        var n = Pt(),
            o = it.getScrollTop();
        return pt = {
            startTop: o,
            topDiff: e - o,
            targetTop: e,
            duration: t.duration || w,
            startTime: n,
            endTime: n + (t.duration || w),
            easing: U[t.easing || k],
            done: t.done
        }, pt.topDiff || (pt.done && pt.done.call(it, !1), pt = r), it
    }, n.prototype.stopAnimateTo = function() {
        pt && pt.done && pt.done.call(it, !0), pt = r
    }, n.prototype.isAnimatingTo = function() {
        return !!pt
    }, n.prototype.isMobile = function() {
        return Gt
    }, n.prototype.setScrollTop = function(t, r) {
        return ht = r === !0, Gt ? Kt = s.min(s.max(t, 0), Ot) : e.scrollTo(0, t), it
    }, n.prototype.getScrollTop = function() {
        return Gt ? Kt : e.pageYOffset || o.scrollTop || a.scrollTop || 0
    }, n.prototype.getMaxScrollTop = function() {
        return Ot
    }, n.prototype.on = function(e, t) {
        return ct[e] = t, it
    }, n.prototype.off = function(e) {
        return delete ct[e], it
    }, n.prototype.destroy = function() {
        var e = R();
        e(bt), wt(), Dt(o, [T], [y, b, S]);
        for (var t = 0, n = lt.length; n > t; t++) ot(lt[t].element);
        o.style.overflow = a.style.overflow = "", o.style.height = a.style.height = "", st && i.setStyle(st, "transform", "none"), it = r, st = r, ct = r, ft = r, Ot = 0, Vt = 1, ut = r, mt = r, zt = "down", qt = -1, Mt = 0, $t = 0, _t = !1, pt = r, dt = r, gt = r, vt = r, ht = r, Bt = 0, yt = r, Gt = !1, Kt = 0, Tt = r
    };
    var X = function() {
            var n, i, l, c, d, g, v, h, y, T, b, S;
            St(o, [f, u, m, p].join(" "), function(e) {
                var o = e.changedTouches[0];
                for (c = e.target; 3 === c.nodeType;) c = c.parentNode;
                switch (d = o.clientY, g = o.clientX, T = e.timeStamp, I.test(c.tagName) || e.preventDefault(), e.type) {
                    case f:
                        n && n.blur(), it.stopAnimateTo(), n = c, i = v = d, l = g, y = T;
                        break;
                    case u:
                        I.test(c.tagName) && t.activeElement !== c && e.preventDefault(), h = d - v, S = T - b, it.setScrollTop(Kt - h, !0), v = d, b = T;
                        break;
                    default:
                    case m:
                    case p:
                        var a = i - d,
                            k = l - g,
                            w = k * k + a * a;
                        if (49 > w) {
                            if (!I.test(n.tagName)) {
                                n.focus();
                                var x = t.createEvent("MouseEvents");
                                x.initMouseEvent("click", !0, !0, e.view, 1, o.screenX, o.screenY, o.clientX, o.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, 0, null), n.dispatchEvent(x)
                            }
                            return
                        }
                        n = r;
                        var E = h / S;
                        E = s.max(s.min(E, 3), -3);
                        var A = s.abs(E / mt),
                            F = E * A + .5 * mt * A * A,
                            C = it.getScrollTop() - F,
                            D = 0;
                        C > Ot ? (D = (Ot - C) / F, C = Ot) : 0 > C && (D = -C / F, C = 0), A *= 1 - D, it.animateTo(0 | C + .5, {
                            easing: "outCubic",
                            duration: A
                        })
                }
            }), e.scrollTo(0, 0), o.style.overflow = a.style.overflow = "hidden"
        },
        j = function() {
            var e, t, r, n, a, i, l, c, f, u, m, p = o.clientHeight,
                d = At();
            for (c = 0, f = lt.length; f > c; c++)
                for (e = lt[c], t = e.element, r = e.anchorTarget, n = e.keyFrames, a = 0, i = n.length; i > a; a++) l = n[a], u = l.offset, m = d[l.constant] || 0, l.frame = u, l.isPercentage && (u *= p, l.frame = u), "relative" === l.mode && (ot(t), l.frame = it.relativeToAbsolute(r, l.anchors[0], l.anchors[1]) - u, ot(t, !0)), l.frame += m, ft && !l.isEnd && l.frame > Ot && (Ot = l.frame);
            for (Ot = s.max(Ot, Ft()), c = 0, f = lt.length; f > c; c++) {
                for (e = lt[c], n = e.keyFrames, a = 0, i = n.length; i > a; a++) l = n[a], m = d[l.constant] || 0, l.isEnd && (l.frame = Ot - l.offset + m);
                e.keyFrames.sort(Nt)
            }
        },
        W = function(e, t) {
            for (var r = 0, n = lt.length; n > r; r++) {
                var o, a, s = lt[r],
                    c = s.element,
                    f = s.smoothScrolling ? e : t,
                    u = s.keyFrames,
                    m = u.length,
                    p = u[0],
                    y = u[u.length - 1],
                    T = p.frame > f,
                    b = f > y.frame,
                    S = T ? p : y,
                    k = s.emitEvents,
                    w = s.lastFrameIndex;
                if (T || b) {
                    if (T && -1 === s.edge || b && 1 === s.edge) continue;
                    switch (T ? (Dt(c, [g], [h, v]), k && w > -1 && (xt(c, p.eventType, zt), s.lastFrameIndex = -1)) : (Dt(c, [h], [g, v]), k && m > w && (xt(c, y.eventType, zt), s.lastFrameIndex = m)), s.edge = T ? -1 : 1, s.edgeStrategy) {
                        case "reset":
                            ot(c);
                            continue;
                        case "ease":
                            f = S.frame;
                            break;
                        default:
                        case "set":
                            var x = S.props;
                            for (o in x) l.call(x, o) && (a = nt(x[o].value), 0 === o.indexOf("@") ? c.setAttribute(o.substr(1), a) : i.setStyle(c, o, a));
                            continue
                    }
                } else 0 !== s.edge && (Dt(c, [d, v], [g, h]), s.edge = 0);
                for (var E = 0; m - 1 > E; E++)
                    if (f >= u[E].frame && u[E + 1].frame >= f) {
                        var A = u[E],
                            F = u[E + 1];
                        for (o in A.props)
                            if (l.call(A.props, o)) {
                                var C = (f - A.frame) / (F.frame - A.frame);
                                C = A.props[o].easing(C), a = rt(A.props[o].value, F.props[o].value, C), a = nt(a), 0 === o.indexOf("@") ? c.setAttribute(o.substr(1), a) : i.setStyle(c, o, a)
                            }
                        k && w !== E && ("down" === zt ? xt(c, A.eventType, zt) : xt(c, F.eventType, zt), s.lastFrameIndex = E);
                        break
                    }
            }
        },
        Z = function() {
            _t && (_t = !1, Et());
            var e, t, n = it.getScrollTop(),
                o = Pt();
            if (pt) o >= pt.endTime ? (n = pt.targetTop, e = pt.done, pt = r) : (t = pt.easing((o - pt.startTime) / pt.duration), n = 0 | pt.startTop + t * pt.topDiff), it.setScrollTop(n, !0);
            else if (!ht) {
                var a = vt.targetTop - n;
                a && (vt = {
                    startTop: qt,
                    topDiff: n - qt,
                    targetTop: n,
                    startTime: Lt,
                    endTime: Lt + gt
                }), vt.endTime >= o && (t = U.sqrt((o - vt.startTime) / gt), n = 0 | vt.startTop + t * vt.topDiff)
            }
            if (Gt && st && i.setStyle(st, "transform", "translate(0, " + -Kt + "px) " + Tt), ht || qt !== n) {
                zt = n > qt ? "down" : qt > n ? "up" : zt, ht = !1;
                var l = {
                        curTop: n,
                        lastTop: qt,
                        maxTop: Ot,
                        direction: zt
                    },
                    s = ct.beforerender && ct.beforerender.call(it, l);
                s !== !1 && (W(n, it.getScrollTop()), qt = n, ct.render && ct.render.call(it, l)), e && e.call(it, !1)
            }
            Lt = o
        },
        J = function(e) {
            for (var t = 0, r = e.keyFrames.length; r > t; t++) {
                for (var n, o, a, i, l = e.keyFrames[t], s = {}; null !== (i = O.exec(l.props));) a = i[1], o = i[2], n = a.match(V), null !== n ? (a = n[1], n = n[2]) : n = k, o = o.indexOf("!") ? Q(o) : [o.slice(1)], s[a] = {
                    value: o,
                    easing: U[n]
                };
                l.props = s
            }
        },
        Q = function(e) {
            var t = [];
            return $.lastIndex = 0, e = e.replace($, function(e) {
                return e.replace(L, function(e) {
                    return 100 * (e / 255) + "%"
                })
            }), G && (_.lastIndex = 0, e = e.replace(_, function(e) {
                return G + e
            })), e = e.replace(L, function(e) {
                return t.push(+e), "{?}"
            }), t.unshift(e), t
        },
        et = function(e) {
            var t, r, n = {};
            for (t = 0, r = e.keyFrames.length; r > t; t++) tt(e.keyFrames[t], n);
            for (n = {}, t = e.keyFrames.length - 1; t >= 0; t--) tt(e.keyFrames[t], n)
        },
        tt = function(e, t) {
            var r;
            for (r in t) l.call(e.props, r) || (e.props[r] = t[r]);
            for (r in e.props) t[r] = e.props[r]
        },
        rt = function(e, t, r) {
            var n, o = e.length;
            if (o !== t.length) throw "Can't interpolate between \"" + e[0] + '" and "' + t[0] + '"';
            var a = [e[0]];
            for (n = 1; o > n; n++) a[n] = e[n] + (t[n] - e[n]) * r;
            return a
        },
        nt = function(e) {
            var t = 1;
            return M.lastIndex = 0, e[0].replace(M, function() {
                return e[t++]
            })
        },
        ot = function(e, t) {
            e = [].concat(e);
            for (var r, n, o = 0, a = e.length; a > o; o++) n = e[o], r = lt[n[H]], r && (t ? (n.style.cssText = r.dirtyStyleAttr, Dt(n, r.dirtyClassAttr)) : (r.dirtyStyleAttr = n.style.cssText, r.dirtyClassAttr = Ct(n), n.style.cssText = r.styleAttr, Dt(n, r.classAttr)))
        },
        at = function() {
            Tt = "translateZ(0)", i.setStyle(st, "transform", Tt);
            var e = c(st),
                t = e.getPropertyValue("transform"),
                r = e.getPropertyValue(G + "transform"),
                n = t && "none" !== t || r && "none" !== r;
            n || (Tt = "")
        };
    i.setStyle = function(e, t, r) {
        var n = e.style;
        if (t = t.replace(z, q).replace("-", ""), "zIndex" === t) n[t] = isNaN(r) ? r : "" + (0 | r);
        else if ("float" === t) n.styleFloat = n.cssFloat = r;
        else try {
            B && (n[B + t.slice(0, 1).toUpperCase() + t.slice(1)] = r), n[t] = r
        } catch (o) {}
    };
    var it, lt, st, ct, ft, ut, mt, pt, dt, gt, vt, ht, yt, Tt, bt, St = i.addEvent = function(t, r, n) {
            var o = function(t) {
                return t = t || e.event, t.target || (t.target = t.srcElement), t.preventDefault || (t.preventDefault = function() {
                    t.returnValue = !1, t.defaultPrevented = !0
                }), n.call(this, t)
            };
            r = r.split(" ");
            for (var a, i = 0, l = r.length; l > i; i++) a = r[i], t.addEventListener ? t.addEventListener(a, n, !1) : t.attachEvent("on" + a, o), Yt.push({
                element: t,
                name: a,
                listener: n
            })
        },
        kt = i.removeEvent = function(e, t, r) {
            t = t.split(" ");
            for (var n = 0, o = t.length; o > n; n++) e.removeEventListener ? e.removeEventListener(t[n], r, !1) : e.detachEvent("on" + t[n], r)
        },
        wt = function() {
            for (var e, t = 0, r = Yt.length; r > t; t++) e = Yt[t], kt(e.element, e.name, e.listener);
            Yt = []
        },
        xt = function(e, t, r) {
            ct.keyframe && ct.keyframe.call(it, e, t, r)
        },
        Et = function() {
            var e = it.getScrollTop();
            Ot = 0, ft && !Gt && (a.style.height = ""), j(), ft && !Gt && (a.style.height = Ot + o.clientHeight + "px"), Gt ? it.setScrollTop(s.min(it.getScrollTop(), Ot)) : it.setScrollTop(e, !0), ht = !0
        },
        At = function() {
            var e, t, r = o.clientHeight,
                n = {};
            for (e in ut) t = ut[e], "function" == typeof t ? t = t.call(it) : /p$/.test(t) && (t = t.slice(0, -1) / 100 * r), n[e] = t;
            return n
        },
        Ft = function() {
            var e = st && st.offsetHeight || 0,
                t = s.max(e, a.scrollHeight, a.offsetHeight, o.scrollHeight, o.offsetHeight, o.clientHeight);
            return t - o.clientHeight
        },
        Ct = function(t) {
            var r = "className";
            return e.SVGElement && t instanceof e.SVGElement && (t = t[r], r = "baseVal"), t[r]
        },
        Dt = function(t, n, o) {
            var a = "className";
            if (e.SVGElement && t instanceof e.SVGElement && (t = t[a], a = "baseVal"), o === r) return t[a] = n, r;
            for (var i = t[a], l = 0, s = o.length; s > l; l++) i = It(i).replace(It(o[l]), " ");
            i = Ht(i);
            for (var c = 0, f = n.length; f > c; c++) - 1 === It(i).indexOf(It(n[c])) && (i += " " + n[c]);
            t[a] = Ht(i)
        },
        Ht = function(e) {
            return e.replace(P, "")
        },
        It = function(e) {
            return " " + e + " "
        },
        Pt = Date.now || function() {
            return +new Date
        },
        Nt = function(e, t) {
            return e.frame - t.frame
        },
        Ot = 0,
        Vt = 1,
        zt = "down",
        qt = -1,
        Lt = Pt(),
        Mt = 0,
        $t = 0,
        _t = !1,
        Bt = 0,
        Gt = !1,
        Kt = 0,
        Yt = [];
    "function" == typeof define && define.amd ? define("skrollr", function() {
        return i
    }) : "undefined" != typeof module && module.exports ? module.exports = i : e.skrollr = i
})(window, document);

/* marquee */
/**
 * jQuery.marquee - scrolling text like old marquee element
 * @author Aamir Afridi - aamirafridi(at)gmail(dot)com / http://aamirafridi.com/jquery/jquery-marquee-plugin
 */
(function(f) {
    f.fn.marquee = function(x) {
        return this.each(function() {
            var a = f.extend({}, f.fn.marquee.defaults, x),
                b = f(this),
                c, t, e = 3,
                y = "animation-play-state",
                p = !1,
                E = function(a, b, c) {
                    for (var e = ["webkit", "moz", "MS", "o", ""], d = 0; d < e.length; d++) e[d] || (b = b.toLowerCase()), a.addEventListener(e[d] + b, c, !1)
                },
                F = function(a) {
                    var b = [],
                        c;
                    for (c in a) a.hasOwnProperty(c) && b.push(c + ":" + a[c]);
                    b.push();
                    return "{" + b.join(",") + "}"
                },
                l = {
                    pause: function() {
                        p && a.allowCss3Support ? c.css(y, "paused") : f.fn.pause && c.pause();
                        b.data("runningStatus",
                            "paused");
                        b.trigger("paused")
                    },
                    resume: function() {
                        p && a.allowCss3Support ? c.css(y, "running") : f.fn.resume && c.resume();
                        b.data("runningStatus", "resumed");
                        b.trigger("resumed")
                    },
                    toggle: function() {
                        l["resumed" == b.data("runningStatus") ? "pause" : "resume"]()
                    },
                    destroy: function() {
                        clearTimeout(b.timer);
                        b.find("*").addBack().unbind();
                        b.html(b.find(".js-marquee:first").html())
                    }
                };
            if ("string" === typeof x) f.isFunction(l[x]) && (c || (c = b.find(".js-marquee-wrapper")), !0 === b.data("css3AnimationIsSupported") && (p = !0), l[x]());
            else {
                var u;
                f.each(a, function(c, d) {
                    u = b.attr("data-" + c);
                    if ("undefined" !== typeof u) {
                        switch (u) {
                            case "true":
                                u = !0;
                                break;
                            case "false":
                                u = !1
                        }
                        a[c] = u
                    }
                });
                a.speed && (a.duration = parseInt(b.width(), 10) / a.speed * 1E3);
                var v = "up" == a.direction || "down" == a.direction;
                a.gap = a.duplicated ? parseInt(a.gap) : 0;
                b.wrapInner('<div class="js-marquee"></div>');
                var h = b.find(".js-marquee").css({
                    "margin-right": a.gap,
                    "float": "left"
                });
                a.duplicated && h.clone(!0).appendTo(b);
                b.wrapInner('<div style="width:100000px" class="js-marquee-wrapper"></div>');
                c = b.find(".js-marquee-wrapper");
                if (v) {
                    var k = b.height();
                    c.removeAttr("style");
                    b.height(k);
                    b.find(".js-marquee").css({
                        "float": "none",
                        "margin-bottom": a.gap,
                        "margin-right": 0
                    });
                    a.duplicated && b.find(".js-marquee:last").css({
                        "margin-bottom": 0
                    });
                    var q = b.find(".js-marquee:first").height() + a.gap;
                    a.startVisible && !a.duplicated ? (a._completeDuration = (parseInt(q, 10) + parseInt(k, 10)) / parseInt(k, 10) * a.duration, a.duration *= parseInt(q, 10) / parseInt(k, 10)) : a.duration *= (parseInt(q, 10) + parseInt(k, 10)) / parseInt(k, 10)
                } else {
                    var m =
                        b.find(".js-marquee:first").width() + a.gap;
                    var n = b.width();
                    a.startVisible && !a.duplicated ? (a._completeDuration = (parseInt(m, 10) + parseInt(n, 10)) / parseInt(n, 10) * a.duration, a.duration *= parseInt(m, 10) / parseInt(n, 10)) : a.duration *= (parseInt(m, 10) + parseInt(n, 10)) / parseInt(n, 10)
                }
                a.duplicated && (a.duration /= 2);
                if (a.allowCss3Support) {
                    h = document.body || document.createElement("div");
                    var g = "marqueeAnimation-" + Math.floor(1E7 * Math.random()),
                        A = ["Webkit", "Moz", "O", "ms", "Khtml"],
                        B = "animation",
                        d = "",
                        r = "";
                    h.style.animation &&
                        (r = "@keyframes " + g + " ", p = !0);
                    if (!1 === p)
                        for (var z = 0; z < A.length; z++)
                            if (void 0 !== h.style[A[z] + "AnimationName"]) {
                                h = "-" + A[z].toLowerCase() + "-";
                                B = h + B;
                                y = h + y;
                                r = "@" + h + "keyframes " + g + " ";
                                p = !0;
                                break
                            }
                    p && (d = g + " " + a.duration / 1E3 + "s " + a.delayBeforeStart / 1E3 + "s infinite " + a.css3easing, b.data("css3AnimationIsSupported", !0))
                }
                var C = function() {
                        c.css("transform", "translateY(" + ("up" == a.direction ? k + "px" : "-" + q + "px") + ")")
                    },
                    D = function() {
                        c.css("transform", "translateX(" + ("left" == a.direction ? n + "px" : "-" + m + "px") + ")")
                    };
                a.duplicated ?
                    (v ? a.startVisible ? c.css("transform", "translateY(0)") : c.css("transform", "translateY(" + ("up" == a.direction ? k + "px" : "-" + (2 * q - a.gap) + "px") + ")") : a.startVisible ? c.css("transform", "translateX(0)") : c.css("transform", "translateX(" + ("left" == a.direction ? n + "px" : "-" + (2 * m - a.gap) + "px") + ")"), a.startVisible || (e = 1)) : a.startVisible ? e = 2 : v ? C() : D();
                var w = function() {
                    a.duplicated && (1 === e ? (a._originalDuration = a.duration, a.duration = v ? "up" == a.direction ? a.duration + k / (q / a.duration) : 2 * a.duration : "left" == a.direction ? a.duration + n /
                        (m / a.duration) : 2 * a.duration, d && (d = g + " " + a.duration / 1E3 + "s " + a.delayBeforeStart / 1E3 + "s " + a.css3easing), e++) : 2 === e && (a.duration = a._originalDuration, d && (g += "0", r = f.trim(r) + "0 ", d = g + " " + a.duration / 1E3 + "s 0s infinite " + a.css3easing), e++));
                    v ? a.duplicated ? (2 < e && c.css("transform", "translateY(" + ("up" == a.direction ? 0 : "-" + q + "px") + ")"), t = {
                        transform: "translateY(" + ("up" == a.direction ? "-" + q + "px" : 0) + ")"
                    }) : a.startVisible ? 2 === e ? (d && (d = g + " " + a.duration / 1E3 + "s " + a.delayBeforeStart / 1E3 + "s " + a.css3easing), t = {
                        transform: "translateY(" +
                            ("up" == a.direction ? "-" + q + "px" : k + "px") + ")"
                    }, e++) : 3 === e && (a.duration = a._completeDuration, d && (g += "0", r = f.trim(r) + "0 ", d = g + " " + a.duration / 1E3 + "s 0s infinite " + a.css3easing), C()) : (C(), t = {
                        transform: "translateY(" + ("up" == a.direction ? "-" + c.height() + "px" : k + "px") + ")"
                    }) : a.duplicated ? (2 < e && c.css("transform", "translateX(" + ("left" == a.direction ? 0 : "-" + m + "px") + ")"), t = {
                        transform: "translateX(" + ("left" == a.direction ? "-" + m + "px" : 0) + ")"
                    }) : a.startVisible ? 2 === e ? (d && (d = g + " " + a.duration / 1E3 + "s " + a.delayBeforeStart / 1E3 + "s " + a.css3easing),
                        t = {
                            transform: "translateX(" + ("left" == a.direction ? "-" + m + "px" : n + "px") + ")"
                        }, e++) : 3 === e && (a.duration = a._completeDuration, d && (g += "0", r = f.trim(r) + "0 ", d = g + " " + a.duration / 1E3 + "s 0s infinite " + a.css3easing), D()) : (D(), t = {
                        transform: "translateX(" + ("left" == a.direction ? "-" + m + "px" : n + "px") + ")"
                    });
                    b.trigger("beforeStarting");
                    if (p) {
                        c.css(B, d);
                        var h = r + " { 100%  " + F(t) + "}",
                            l = c.find("style");
                        0 !== l.length ? l.filter(":last").html(h) : f("head").append("<style>" + h + "</style>");
                        E(c[0], "AnimationIteration", function() {
                            b.trigger("finished")
                        });
                        E(c[0], "AnimationEnd", function() {
                            w();
                            b.trigger("finished")
                        })
                    } else c.animate(t, a.duration, a.easing, function() {
                        b.trigger("finished");
                        a.pauseOnCycle ? b.timer = setTimeout(w, a.delayBeforeStart) : w()
                    });
                    b.data("runningStatus", "resumed")
                };
                b.bind("pause", l.pause);
                b.bind("resume", l.resume);
                a.pauseOnHover && (b.bind("mouseenter", l.pause), b.bind("mouseleave", l.resume));
                p && a.allowCss3Support ? w() : b.timer = setTimeout(w, a.delayBeforeStart)
            }
        })
    };
    f.fn.marquee.defaults = {
        allowCss3Support: !0,
        css3easing: "linear",
        easing: "linear",
        delayBeforeStart: 1E3,
        direction: "left",
        duplicated: !1,
        duration: 5E3,
        gap: 20,
        pauseOnCycle: !1,
        pauseOnHover: !1,
        startVisible: !1
    }
})(jQuery);

/*! Select2 4.1.0-rc.0 | https://github.com/select2/select2/blob/master/LICENSE.md */
! function(n) {
    "function" == typeof define && define.amd ? define(["jquery"], n) : "object" == typeof module && module.exports ? module.exports = function(e, t) {
        return void 0 === t && (t = "undefined" != typeof window ? require("jquery") : require("jquery")(e)), n(t), t
    } : n(jQuery)
}(function(t) {
    var e, n, s, p, r, o, h, f, g, m, y, v, i, a, _, s = ((u = t && t.fn && t.fn.select2 && t.fn.select2.amd ? t.fn.select2.amd : u) && u.requirejs || (u ? n = u : u = {}, g = {}, m = {}, y = {}, v = {}, i = Object.prototype.hasOwnProperty, a = [].slice, _ = /\.js$/, h = function(e, t) {
        var n, s, i = c(e),
            r = i[0],
            t = t[1];
        return e = i[1], r && (n = x(r = l(r, t))), r ? e = n && n.normalize ? n.normalize(e, (s = t, function(e) {
            return l(e, s)
        })) : l(e, t) : (r = (i = c(e = l(e, t)))[0], e = i[1], r && (n = x(r))), {
            f: r ? r + "!" + e : e,
            n: e,
            pr: r,
            p: n
        }
    }, f = {
        require: function(e) {
            return w(e)
        },
        exports: function(e) {
            var t = g[e];
            return void 0 !== t ? t : g[e] = {}
        },
        module: function(e) {
            return {
                id: e,
                uri: "",
                exports: g[e],
                config: (t = e, function() {
                    return y && y.config && y.config[t] || {}
                })
            };
            var t
        }
    }, r = function(e, t, n, s) {
        var i, r, o, a, l, c = [],
            u = typeof n,
            d = A(s = s || e);
        if ("undefined" == u || "function" == u) {
            for (t = !t.length && n.length ? ["require", "exports", "module"] : t, a = 0; a < t.length; a += 1)
                if ("require" === (r = (o = h(t[a], d)).f)) c[a] = f.require(e);
                else if ("exports" === r) c[a] = f.exports(e), l = !0;
            else if ("module" === r) i = c[a] = f.module(e);
            else if (b(g, r) || b(m, r) || b(v, r)) c[a] = x(r);
            else {
                if (!o.p) throw new Error(e + " missing " + r);
                o.p.load(o.n, w(s, !0), function(t) {
                    return function(e) {
                        g[t] = e
                    }
                }(r), {}), c[a] = g[r]
            }
            u = n ? n.apply(g[e], c) : void 0, e && (i && i.exports !== p && i.exports !== g[e] ? g[e] = i.exports : u === p && l || (g[e] = u))
        } else e && (g[e] = n)
    }, e = n = o = function(e, t, n, s, i) {
        if ("string" == typeof e) return f[e] ? f[e](t) : x(h(e, A(t)).f);
        if (!e.splice) {
            if ((y = e).deps && o(y.deps, y.callback), !t) return;
            t.splice ? (e = t, t = n, n = null) : e = p
        }
        return t = t || function() {}, "function" == typeof n && (n = s, s = i), s ? r(p, e, t, n) : setTimeout(function() {
            r(p, e, t, n)
        }, 4), o
    }, o.config = function(e) {
        return o(e)
    }, e._defined = g, (s = 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 = []), b(g, e) || b(m, e) || (m[e] = [e, t, n])
    }).amd = {
        jQuery: !0
    }, u.requirejs = e, u.require = n, u.define = s), u.define("almond", function() {}), u.define("jquery", [], function() {
        var e = t || $;
        return null == e && 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."), e
    }), u.define("select2/utils", ["jquery"], function(r) {
        var s = {};

        function c(e) {
            var t, n = e.prototype,
                s = [];
            for (t in n) "function" == typeof n[t] && "constructor" !== t && s.push(t);
            return s
        }
        s.Extend = function(e, t) {
            var n, s = {}.hasOwnProperty;

            function i() {
                this.constructor = e
            }
            for (n in t) s.call(t, n) && (e[n] = t[n]);
            return i.prototype = t.prototype, e.prototype = new i, e.__super__ = t.prototype, e
        }, s.Decorate = function(s, i) {
            var e = c(i),
                t = c(s);

            function r() {
                var e = Array.prototype.unshift,
                    t = i.prototype.constructor.length,
                    n = s.prototype.constructor;
                0 < t && (e.call(arguments, s.prototype.constructor), n = i.prototype.constructor), n.apply(this, arguments)
            }
            i.displayName = s.displayName, r.prototype = new function() {
                this.constructor = r
            };
            for (var n = 0; n < t.length; n++) {
                var o = t[n];
                r.prototype[o] = s.prototype[o]
            }
            for (var a = 0; a < e.length; a++) {
                var l = e[a];
                r.prototype[l] = function(e) {
                    var t = function() {};
                    e in r.prototype && (t = r.prototype[e]);
                    var n = i.prototype[e];
                    return function() {
                        return Array.prototype.unshift.call(arguments, t), n.apply(this, arguments)
                    }
                }(l)
            }
            return r
        };

        function e() {
            this.listeners = {}
        }
        e.prototype.on = function(e, t) {
            this.listeners = this.listeners || {}, e in this.listeners ? this.listeners[e].push(t) : this.listeners[e] = [t]
        }, e.prototype.trigger = function(e) {
            var t = Array.prototype.slice,
                n = t.call(arguments, 1);
            this.listeners = this.listeners || {}, 0 === (n = null == n ? [] : 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)
        }, e.prototype.invoke = function(e, t) {
            for (var n = 0, s = e.length; n < s; n++) e[n].apply(this, t)
        }, s.Observable = e, s.generateChars = function(e) {
            for (var t = "", n = 0; n < e; n++) t += Math.floor(36 * Math.random()).toString(36);
            return t
        }, s.bind = function(e, t) {
            return function() {
                e.apply(t, arguments)
            }
        }, s._convertData = function(e) {
            for (var t in e) {
                var n = t.split("-"),
                    s = e;
                if (1 !== n.length) {
                    for (var i = 0; i < n.length; i++) {
                        var r = n[i];
                        (r = r.substring(0, 1).toLowerCase() + r.substring(1)) in s || (s[r] = {}), i == n.length - 1 && (s[r] = e[t]), s = s[r]
                    }
                    delete e[t]
                }
            }
            return e
        }, s.hasScroll = function(e, t) {
            var n = r(t),
                s = t.style.overflowX,
                i = t.style.overflowY;
            return (s !== i || "hidden" !== i && "visible" !== i) && ("scroll" === s || "scroll" === i || (n.innerHeight() < t.scrollHeight || n.innerWidth() < t.scrollWidth))
        }, s.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]
            })
        }, s.__cache = {};
        var n = 0;
        return s.GetUniqueElementId = function(e) {
            var t = e.getAttribute("data-select2-id");
            return null != t || (t = e.id ? "select2-data-" + e.id : "select2-data-" + (++n).toString() + "-" + s.generateChars(4), e.setAttribute("data-select2-id", t)), t
        }, s.StoreData = function(e, t, n) {
            e = s.GetUniqueElementId(e);
            s.__cache[e] || (s.__cache[e] = {}), s.__cache[e][t] = n
        }, s.GetData = function(e, t) {
            var n = s.GetUniqueElementId(e);
            return t ? s.__cache[n] && null != s.__cache[n][t] ? s.__cache[n][t] : r(e).data(t) : s.__cache[n]
        }, s.RemoveData = function(e) {
            var t = s.GetUniqueElementId(e);
            null != s.__cache[t] && delete s.__cache[t], e.removeAttribute("data-select2-id")
        }, s.copyNonInternalCssClasses = function(e, t) {
            var n = (n = e.getAttribute("class").trim().split(/\s+/)).filter(function(e) {
                    return 0 === e.indexOf("select2-")
                }),
                t = (t = t.getAttribute("class").trim().split(/\s+/)).filter(function(e) {
                    return 0 !== e.indexOf("select2-")
                }),
                t = n.concat(t);
            e.setAttribute("class", t.join(" "))
        }, s
    }), u.define("select2/results", ["jquery", "./utils"], function(d, p) {
        function s(e, t, n) {
            this.$element = e, this.data = n, this.options = t, s.__super__.constructor.call(this)
        }
        return p.Extend(s, p.Observable), s.prototype.render = function() {
            var e = d('<ul class="select2-results__options" role="listbox"></ul>');
            return this.options.get("multiple") && e.attr("aria-multiselectable", "true"), this.$results = e
        }, s.prototype.clear = function() {
            this.$results.empty()
        }, s.prototype.displayMessage = function(e) {
            var t = this.options.get("escapeMarkup");
            this.clear(), this.hideLoading();
            var n = d('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),
                s = this.options.get("translations").get(e.message);
            n.append(t(s(e.args))), n[0].className += " select2-results__message", this.$results.append(n)
        }, s.prototype.hideMessages = function() {
            this.$results.find(".select2-results__message").remove()
        }, s.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 s = e.results[n],
                        s = this.option(s);
                    t.push(s)
                }
                this.$results.append(t)
            } else 0 === this.$results.children().length && this.trigger("results:message", {
                message: "noResults"
            })
        }, s.prototype.position = function(e, t) {
            t.find(".select2-results").append(e)
        }, s.prototype.sort = function(e) {
            return this.options.get("sorter")(e)
        }, s.prototype.highlightFirstItem = function() {
            var e = this.$results.find(".select2-results__option--selectable"),
                t = e.filter(".select2-results__option--selected");
            (0 < t.length ? t : e).first().trigger("mouseenter"), this.ensureHighlightVisible()
        }, s.prototype.setClasses = function() {
            var t = this;
            this.data.current(function(e) {
                var s = e.map(function(e) {
                    return e.id.toString()
                });
                t.$results.find(".select2-results__option--selectable").each(function() {
                    var e = d(this),
                        t = p.GetData(this, "data"),
                        n = "" + t.id;
                    null != t.element && t.element.selected || null == t.element && -1 < s.indexOf(n) ? (this.classList.add("select2-results__option--selected"), e.attr("aria-selected", "true")) : (this.classList.remove("select2-results__option--selected"), e.attr("aria-selected", "false"))
                })
            })
        }, s.prototype.showLoading = function(e) {
            this.hideLoading();
            e = {
                disabled: !0,
                loading: !0,
                text: this.options.get("translations").get("searching")(e)
            }, e = this.option(e);
            e.className += " loading-results", this.$results.prepend(e)
        }, s.prototype.hideLoading = function() {
            this.$results.find(".loading-results").remove()
        }, s.prototype.option = function(e) {
            var t = document.createElement("li");
            t.classList.add("select2-results__option"), t.classList.add("select2-results__option--selectable");
            var n, s = {
                    role: "option"
                },
                i = window.Element.prototype.matches || window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector;
            for (n in (null != e.element && i.call(e.element, ":disabled") || null == e.element && e.disabled) && (s["aria-disabled"] = "true", t.classList.remove("select2-results__option--selectable"), t.classList.add("select2-results__option--disabled")), null == e.id && t.classList.remove("select2-results__option--selectable"), null != e._resultId && (t.id = e._resultId), e.title && (t.title = e.title), e.children && (s.role = "group", s["aria-label"] = e.text, t.classList.remove("select2-results__option--selectable"), t.classList.add("select2-results__option--group")), s) {
                var r = s[n];
                t.setAttribute(n, r)
            }
            if (e.children) {
                var o = d(t),
                    a = document.createElement("strong");
                a.className = "select2-results__group", this.template(e, a);
                for (var l = [], c = 0; c < e.children.length; c++) {
                    var u = e.children[c],
                        u = this.option(u);
                    l.push(u)
                }
                i = d("<ul></ul>", {
                    class: "select2-results__options select2-results__options--nested",
                    role: "none"
                });
                i.append(l), o.append(a), o.append(i)
            } else this.template(e, t);
            return p.StoreData(t, "data", e), t
        }, s.prototype.bind = function(t, e) {
            var i = this,
                n = t.id + "-results";
            this.$results.attr("id", n), t.on("results:all", function(e) {
                i.clear(), i.append(e.data), t.isOpen() && (i.setClasses(), i.highlightFirstItem())
            }), t.on("results:append", function(e) {
                i.append(e.data), t.isOpen() && i.setClasses()
            }), t.on("query", function(e) {
                i.hideMessages(), i.showLoading(e)
            }), t.on("select", function() {
                t.isOpen() && (i.setClasses(), i.options.get("scrollAfterSelect") && i.highlightFirstItem())
            }), t.on("unselect", function() {
                t.isOpen() && (i.setClasses(), i.options.get("scrollAfterSelect") && i.highlightFirstItem())
            }), t.on("open", function() {
                i.$results.attr("aria-expanded", "true"), i.$results.attr("aria-hidden", "false"), i.setClasses(), i.ensureHighlightVisible()
            }), t.on("close", function() {
                i.$results.attr("aria-expanded", "false"), i.$results.attr("aria-hidden", "true"), i.$results.removeAttr("aria-activedescendant")
            }), t.on("results:toggle", function() {
                var e = i.getHighlightedResults();
                0 !== e.length && e.trigger("mouseup")
            }), t.on("results:select", function() {
                var e, t = i.getHighlightedResults();
                0 !== t.length && (e = p.GetData(t[0], "data"), t.hasClass("select2-results__option--selected") ? i.trigger("close", {}) : i.trigger("select", {
                    data: e
                }))
            }), t.on("results:previous", function() {
                var e, t = i.getHighlightedResults(),
                    n = i.$results.find(".select2-results__option--selectable"),
                    s = n.index(t);
                s <= 0 || (e = s - 1, 0 === t.length && (e = 0), (s = n.eq(e)).trigger("mouseenter"), t = i.$results.offset().top, n = s.offset().top, s = i.$results.scrollTop() + (n - t), 0 === e ? i.$results.scrollTop(0) : n - t < 0 && i.$results.scrollTop(s))
            }), t.on("results:next", function() {
                var e, t = i.getHighlightedResults(),
                    n = i.$results.find(".select2-results__option--selectable"),
                    s = n.index(t) + 1;
                s >= n.length || ((e = n.eq(s)).trigger("mouseenter"), t = i.$results.offset().top + i.$results.outerHeight(!1), n = e.offset().top + e.outerHeight(!1), e = i.$results.scrollTop() + n - t, 0 === s ? i.$results.scrollTop(0) : t < n && i.$results.scrollTop(e))
            }), t.on("results:focus", function(e) {
                e.element[0].classList.add("select2-results__option--highlighted"), e.element[0].setAttribute("aria-selected", "true")
            }), t.on("results:message", function(e) {
                i.displayMessage(e)
            }), d.fn.mousewheel && this.$results.on("mousewheel", function(e) {
                var t = i.$results.scrollTop(),
                    n = i.$results.get(0).scrollHeight - t + e.deltaY,
                    t = 0 < e.deltaY && t - e.deltaY <= 0,
                    n = e.deltaY < 0 && n <= i.$results.height();
                t ? (i.$results.scrollTop(0), e.preventDefault(), e.stopPropagation()) : n && (i.$results.scrollTop(i.$results.get(0).scrollHeight - i.$results.height()), e.preventDefault(), e.stopPropagation())
            }), this.$results.on("mouseup", ".select2-results__option--selectable", function(e) {
                var t = d(this),
                    n = p.GetData(this, "data");
                t.hasClass("select2-results__option--selected") ? i.options.get("multiple") ? i.trigger("unselect", {
                    originalEvent: e,
                    data: n
                }) : i.trigger("close", {}) : i.trigger("select", {
                    originalEvent: e,
                    data: n
                })
            }), this.$results.on("mouseenter", ".select2-results__option--selectable", function(e) {
                var t = p.GetData(this, "data");
                i.getHighlightedResults().removeClass("select2-results__option--highlighted").attr("aria-selected", "false"), i.trigger("results:focus", {
                    data: t,
                    element: d(this)
                })
            })
        }, s.prototype.getHighlightedResults = function() {
            return this.$results.find(".select2-results__option--highlighted")
        }, s.prototype.destroy = function() {
            this.$results.remove()
        }, s.prototype.ensureHighlightVisible = function() {
            var e, t, n, s, i = this.getHighlightedResults();
            0 !== i.length && (e = this.$results.find(".select2-results__option--selectable").index(i), s = this.$results.offset().top, t = i.offset().top, n = this.$results.scrollTop() + (t - s), s = t - s, n -= 2 * i.outerHeight(!1), e <= 2 ? this.$results.scrollTop(0) : (s > this.$results.outerHeight() || s < 0) && this.$results.scrollTop(n))
        }, s.prototype.template = function(e, t) {
            var n = this.options.get("templateResult"),
                s = this.options.get("escapeMarkup"),
                e = n(e, t);
            null == e ? t.style.display = "none" : "string" == typeof e ? t.innerHTML = s(e) : d(t).append(e)
        }, s
    }), u.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
        }
    }), u.define("select2/selection/base", ["jquery", "../utils", "../keys"], function(n, s, i) {
        function r(e, t) {
            this.$element = e, this.options = t, r.__super__.constructor.call(this)
        }
        return s.Extend(r, s.Observable), r.prototype.render = function() {
            var e = n('<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>');
            return this._tabindex = 0, null != s.GetData(this.$element[0], "old-tabindex") ? this._tabindex = s.GetData(this.$element[0], "old-tabindex") : null != this.$element.attr("tabindex") && (this._tabindex = this.$element.attr("tabindex")), e.attr("title", this.$element.attr("title")), e.attr("tabindex", this._tabindex), e.attr("aria-disabled", "false"), this.$selection = e
        }, r.prototype.bind = function(e, t) {
            var n = this,
                s = e.id + "-results";
            this.container = e, this.$selection.on("focus", function(e) {
                n.trigger("focus", e)
            }), this.$selection.on("blur", function(e) {
                n._handleBlur(e)
            }), this.$selection.on("keydown", function(e) {
                n.trigger("keypress", e), e.which === i.SPACE && e.preventDefault()
            }), e.on("results:focus", function(e) {
                n.$selection.attr("aria-activedescendant", e.data._resultId)
            }), e.on("selection:update", function(e) {
                n.update(e.data)
            }), e.on("open", function() {
                n.$selection.attr("aria-expanded", "true"), n.$selection.attr("aria-owns", s), n._attachCloseHandler(e)
            }), e.on("close", function() {
                n.$selection.attr("aria-expanded", "false"), n.$selection.removeAttr("aria-activedescendant"), n.$selection.removeAttr("aria-owns"), n.$selection.trigger("focus"), n._detachCloseHandler(e)
            }), e.on("enable", function() {
                n.$selection.attr("tabindex", n._tabindex), n.$selection.attr("aria-disabled", "false")
            }), e.on("disable", function() {
                n.$selection.attr("tabindex", "-1"), n.$selection.attr("aria-disabled", "true")
            })
        }, r.prototype._handleBlur = function(e) {
            var t = this;
            window.setTimeout(function() {
                document.activeElement == t.$selection[0] || n.contains(t.$selection[0], document.activeElement) || t.trigger("blur", e)
            }, 1)
        }, r.prototype._attachCloseHandler = function(e) {
            n(document.body).on("mousedown.select2." + e.id, function(e) {
                var t = n(e.target).closest(".select2");
                n(".select2.select2-container--open").each(function() {
                    this != t[0] && s.GetData(this, "element").select2("close")
                })
            })
        }, r.prototype._detachCloseHandler = function(e) {
            n(document.body).off("mousedown.select2." + e.id)
        }, r.prototype.position = function(e, t) {
            t.find(".selection").append(e)
        }, r.prototype.destroy = function() {
            this._detachCloseHandler(this.container)
        }, r.prototype.update = function(e) {
            throw new Error("The `update` method must be defined in child classes.")
        }, r.prototype.isEnabled = function() {
            return !this.isDisabled()
        }, r.prototype.isDisabled = function() {
            return this.options.get("disabled")
        }, r
    }), u.define("select2/selection/single", ["jquery", "./base", "../utils", "../keys"], function(e, t, n, s) {
        function i() {
            i.__super__.constructor.apply(this, arguments)
        }
        return n.Extend(i, t), i.prototype.render = function() {
            var e = i.__super__.render.call(this);
            return e[0].classList.add("select2-selection--single"), e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'), e
        }, i.prototype.bind = function(t, e) {
            var n = this;
            i.__super__.bind.apply(this, arguments);
            var s = t.id + "-container";
            this.$selection.find(".select2-selection__rendered").attr("id", s).attr("role", "textbox").attr("aria-readonly", "true"), this.$selection.attr("aria-labelledby", s), this.$selection.attr("aria-controls", s), 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) {}), t.on("focus", function(e) {
                t.isOpen() || n.$selection.trigger("focus")
            })
        }, 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("<span></span>")
        }, i.prototype.update = function(e) {
            var t, n;
            0 !== e.length ? (n = e[0], t = this.$selection.find(".select2-selection__rendered"), e = this.display(n, t), t.empty().append(e), (n = n.title || n.text) ? t.attr("title", n) : t.removeAttr("title")) : this.clear()
        }, i
    }), u.define("select2/selection/multiple", ["jquery", "./base", "../utils"], function(i, e, c) {
        function r(e, t) {
            r.__super__.constructor.apply(this, arguments)
        }
        return c.Extend(r, e), r.prototype.render = function() {
            var e = r.__super__.render.call(this);
            return e[0].classList.add("select2-selection--multiple"), e.html('<ul class="select2-selection__rendered"></ul>'), e
        }, r.prototype.bind = function(e, t) {
            var n = this;
            r.__super__.bind.apply(this, arguments);
            var s = e.id + "-container";
            this.$selection.find(".select2-selection__rendered").attr("id", s), this.$selection.on("click", function(e) {
                n.trigger("toggle", {
                    originalEvent: e
                })
            }), this.$selection.on("click", ".select2-selection__choice__remove", function(e) {
                var t;
                n.isDisabled() || (t = i(this).parent(), t = c.GetData(t[0], "data"), n.trigger("unselect", {
                    originalEvent: e,
                    data: t
                }))
            }), this.$selection.on("keydown", ".select2-selection__choice__remove", function(e) {
                n.isDisabled() || e.stopPropagation()
            })
        }, 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 i('<li class="select2-selection__choice"><button type="button" class="select2-selection__choice__remove" tabindex="-1"><span aria-hidden="true">&times;</span></button><span class="select2-selection__choice__display"></span></li>')
        }, r.prototype.update = function(e) {
            if (this.clear(), 0 !== e.length) {
                for (var t = [], n = this.$selection.find(".select2-selection__rendered").attr("id") + "-choice-", s = 0; s < e.length; s++) {
                    var i = e[s],
                        r = this.selectionContainer(),
                        o = this.display(i, r),
                        a = n + c.generateChars(4) + "-";
                    i.id ? a += i.id : a += c.generateChars(4), r.find(".select2-selection__choice__display").append(o).attr("id", a);
                    var l = i.title || i.text;
                    l && r.attr("title", l);
                    o = this.options.get("translations").get("removeItem"), l = r.find(".select2-selection__choice__remove");
                    l.attr("title", o()), l.attr("aria-label", o()), l.attr("aria-describedby", a), c.StoreData(r[0], "data", i), t.push(r)
                }
                this.$selection.find(".select2-selection__rendered").append(t)
            }
        }, r
    }), u.define("select2/selection/placeholder", [], function() {
        function e(e, t, n) {
            this.placeholder = this.normalizePlaceholder(n.get("placeholder")), e.call(this, t, n)
        }
        return e.prototype.normalizePlaceholder = function(e, t) {
            return t = "string" == typeof t ? {
                id: "",
                text: t
            } : t
        }, e.prototype.createPlaceholder = function(e, t) {
            var n = this.selectionContainer();
            n.html(this.display(t)), n[0].classList.add("select2-selection__placeholder"), n[0].classList.remove("select2-selection__choice");
            t = t.title || t.text || n.text();
            return this.$selection.find(".select2-selection__rendered").attr("title", t), n
        }, e.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();
            t = this.createPlaceholder(this.placeholder);
            this.$selection.find(".select2-selection__rendered").append(t)
        }, e
    }), u.define("select2/selection/allowClear", ["jquery", "../keys", "../utils"], function(i, s, a) {
        function e() {}
        return e.prototype.bind = function(e, t, n) {
            var s = 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) {
                s._handleClear(e)
            }), t.on("keypress", function(e) {
                s._handleKeyboardClear(e, t)
            })
        }, e.prototype._handleClear = function(e, t) {
            if (!this.isDisabled()) {
                var n = this.$selection.find(".select2-selection__clear");
                if (0 !== n.length) {
                    t.stopPropagation();
                    var s = a.GetData(n[0], "data"),
                        i = this.$element.val();
                    this.$element.val(this.placeholder.id);
                    var r = {
                        data: s
                    };
                    if (this.trigger("clear", r), r.prevented) this.$element.val(i);
                    else {
                        for (var o = 0; o < s.length; o++)
                            if (r = {
                                    data: s[o]
                                }, this.trigger("unselect", r), r.prevented) return void this.$element.val(i);
                        this.$element.trigger("input").trigger("change"), this.trigger("toggle", {})
                    }
                }
            }
        }, e.prototype._handleKeyboardClear = function(e, t, n) {
            n.isOpen() || t.which != s.DELETE && t.which != s.BACKSPACE || this._handleClear(t)
        }, e.prototype.update = function(e, t) {
            var n, s;
            e.call(this, t), this.$selection.find(".select2-selection__clear").remove(), this.$selection[0].classList.remove("select2-selection--clearable"), 0 < this.$selection.find(".select2-selection__placeholder").length || 0 === t.length || (n = this.$selection.find(".select2-selection__rendered").attr("id"), s = this.options.get("translations").get("removeAllItems"), (e = i('<button type="button" class="select2-selection__clear" tabindex="-1"><span aria-hidden="true">&times;</span></button>')).attr("title", s()), e.attr("aria-label", s()), e.attr("aria-describedby", n), a.StoreData(e[0], "data", t), this.$selection.prepend(e), this.$selection[0].classList.add("select2-selection--clearable"))
        }, e
    }), u.define("select2/selection/search", ["jquery", "../utils", "../keys"], function(s, a, l) {
        function e(e, t, n) {
            e.call(this, t, n)
        }
        return e.prototype.render = function(e) {
            var t = this.options.get("translations").get("search"),
                n = s('<span class="select2-search select2-search--inline"><textarea class="select2-search__field" type="search" tabindex="-1" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" ></textarea></span>');
            this.$searchContainer = n, this.$search = n.find("textarea"), this.$search.prop("autocomplete", this.options.get("autocomplete")), this.$search.attr("aria-label", t());
            e = e.call(this);
            return this._transferTabIndex(), e.append(this.$searchContainer), e
        }, e.prototype.bind = function(e, t, n) {
            var s = this,
                i = t.id + "-results",
                r = t.id + "-container";
            e.call(this, t, n), s.$search.attr("aria-describedby", r), t.on("open", function() {
                s.$search.attr("aria-controls", i), s.$search.trigger("focus")
            }), t.on("close", function() {
                s.$search.val(""), s.resizeSearch(), s.$search.removeAttr("aria-controls"), s.$search.removeAttr("aria-activedescendant"), s.$search.trigger("focus")
            }), t.on("enable", function() {
                s.$search.prop("disabled", !1), s._transferTabIndex()
            }), t.on("disable", function() {
                s.$search.prop("disabled", !0)
            }), t.on("focus", function(e) {
                s.$search.trigger("focus")
            }), t.on("results:focus", function(e) {
                e.data._resultId ? s.$search.attr("aria-activedescendant", e.data._resultId) : s.$search.removeAttr("aria-activedescendant")
            }), this.$selection.on("focusin", ".select2-search--inline", function(e) {
                s.trigger("focus", e)
            }), this.$selection.on("focusout", ".select2-search--inline", function(e) {
                s._handleBlur(e)
            }), this.$selection.on("keydown", ".select2-search--inline", function(e) {
                var t;
                e.stopPropagation(), s.trigger("keypress", e), s._keyUpPrevented = e.isDefaultPrevented(), e.which !== l.BACKSPACE || "" !== s.$search.val() || 0 < (t = s.$selection.find(".select2-selection__choice").last()).length && (t = a.GetData(t[0], "data"), s.searchRemoveChoice(t), e.preventDefault())
            }), this.$selection.on("click", ".select2-search--inline", function(e) {
                s.$search.val() && e.stopPropagation()
            });
            var t = document.documentMode,
                o = t && t <= 11;
            this.$selection.on("input.searchcheck", ".select2-search--inline", function(e) {
                o ? s.$selection.off("input.search input.searchcheck") : s.$selection.off("keyup.search")
            }), this.$selection.on("keyup.search input.search", ".select2-search--inline", function(e) {
                var t;
                o && "input" === e.type ? s.$selection.off("input.search input.searchcheck") : (t = e.which) != l.SHIFT && t != l.CTRL && t != l.ALT && t != l.TAB && s.handleSearch(e)
            })
        }, e.prototype._transferTabIndex = function(e) {
            this.$search.attr("tabindex", this.$selection.attr("tabindex")), this.$selection.attr("tabindex", "-1")
        }, e.prototype.createPlaceholder = function(e, t) {
            this.$search.attr("placeholder", t.text)
        }, e.prototype.update = function(e, t) {
            var n = this.$search[0] == document.activeElement;
            this.$search.attr("placeholder", ""), e.call(this, t), this.resizeSearch(), n && this.$search.trigger("focus")
        }, e.prototype.handleSearch = function() {
            var e;
            this.resizeSearch(), this._keyUpPrevented || (e = this.$search.val(), this.trigger("query", {
                term: e
            })), this._keyUpPrevented = !1
        }, e.prototype.searchRemoveChoice = function(e, t) {
            this.trigger("unselect", {
                data: t
            }), this.$search.val(t.text), this.handleSearch()
        }, e.prototype.resizeSearch = function() {
            this.$search.css("width", "25px");
            var e = "100%";
            "" === this.$search.attr("placeholder") && (e = .75 * (this.$search.val().length + 1) + "em"), this.$search.css("width", e)
        }, e
    }), u.define("select2/selection/selectionCss", ["../utils"], function(n) {
        function e() {}
        return e.prototype.render = function(e) {
            var t = e.call(this),
                e = this.options.get("selectionCssClass") || "";
            return -1 !== e.indexOf(":all:") && (e = e.replace(":all:", ""), n.copyNonInternalCssClasses(t[0], this.$element[0])), t.addClass(e), t
        }, e
    }), u.define("select2/selection/eventRelay", ["jquery"], function(o) {
        function e() {}
        return e.prototype.bind = function(e, t, n) {
            var s = this,
                i = ["open", "opening", "close", "closing", "select", "selecting", "unselect", "unselecting", "clear", "clearing"],
                r = ["opening", "closing", "selecting", "unselecting", "clearing"];
            e.call(this, t, n), t.on("*", function(e, t) {
                var n; - 1 !== i.indexOf(e) && (t = t || {}, n = o.Event("select2:" + e, {
                    params: t
                }), s.$element.trigger(n), -1 !== r.indexOf(e) && (t.prevented = n.isDefaultPrevented()))
            })
        }, e
    }), u.define("select2/translation", ["jquery", "require"], function(t, n) {
        function s(e) {
            this.dict = e || {}
        }
        return s.prototype.all = function() {
            return this.dict
        }, s.prototype.get = function(e) {
            return this.dict[e]
        }, s.prototype.extend = function(e) {
            this.dict = t.extend({}, e.all(), this.dict)
        }, s._cache = {}, s.loadPath = function(e) {
            var t;
            return e in s._cache || (t = n(e), s._cache[e] = t), new s(s._cache[e])
        }, s
    }), u.define("select2/diacritics", [], function() {
        return {
            "Ⓐ": "A",
            "A": "A",
            "À": "A",
            "Á": "A",
            "Â": "A",
            "Ầ": "A",
            "Ấ": "A",
            "Ẫ": "A",
            "Ẩ": "A",
            "Ã": "A",
            "Ā": "A",
            "Ă": "A",
            "Ằ": "A",
            "Ắ": "A",
            "Ẵ": "A",
            "Ẳ": "A",
            "Ȧ": "A",
            "Ǡ": "A",
            "Ä": "A",
            "Ǟ": "A",
            "Ả": "A",
            "Å": "A",
            "Ǻ": "A",
            "Ǎ": "A",
            "Ȁ": "A",
            "Ȃ": "A",
            "Ạ": "A",
            "Ậ": "A",
            "Ặ": "A",
            "Ḁ": "A",
            "Ą": "A",
            "Ⱥ": "A",
            "Ɐ": "A",
            "Ꜳ": "AA",
            "Æ": "AE",
            "Ǽ": "AE",
            "Ǣ": "AE",
            "Ꜵ": "AO",
            "Ꜷ": "AU",
            "Ꜹ": "AV",
            "Ꜻ": "AV",
            "Ꜽ": "AY",
            "Ⓑ": "B",
            "B": "B",
            "Ḃ": "B",
            "Ḅ": "B",
            "Ḇ": "B",
            "Ƀ": "B",
            "Ƃ": "B",
            "Ɓ": "B",
            "Ⓒ": "C",
            "C": "C",
            "Ć": "C",
            "Ĉ": "C",
            "Ċ": "C",
            "Č": "C",
            "Ç": "C",
            "Ḉ": "C",
            "Ƈ": "C",
            "Ȼ": "C",
            "Ꜿ": "C",
            "Ⓓ": "D",
            "D": "D",
            "Ḋ": "D",
            "Ď": "D",
            "Ḍ": "D",
            "Ḑ": "D",
            "Ḓ": "D",
            "Ḏ": "D",
            "Đ": "D",
            "Ƌ": "D",
            "Ɗ": "D",
            "Ɖ": "D",
            "Ꝺ": "D",
            "DZ": "DZ",
            "DŽ": "DZ",
            "Dz": "Dz",
            "Dž": "Dz",
            "Ⓔ": "E",
            "E": "E",
            "È": "E",
            "É": "E",
            "Ê": "E",
            "Ề": "E",
            "Ế": "E",
            "Ễ": "E",
            "Ể": "E",
            "Ẽ": "E",
            "Ē": "E",
            "Ḕ": "E",
            "Ḗ": "E",
            "Ĕ": "E",
            "Ė": "E",
            "Ë": "E",
            "Ẻ": "E",
            "Ě": "E",
            "Ȅ": "E",
            "Ȇ": "E",
            "Ẹ": "E",
            "Ệ": "E",
            "Ȩ": "E",
            "Ḝ": "E",
            "Ę": "E",
            "Ḙ": "E",
            "Ḛ": "E",
            "Ɛ": "E",
            "Ǝ": "E",
            "Ⓕ": "F",
            "F": "F",
            "Ḟ": "F",
            "Ƒ": "F",
            "Ꝼ": "F",
            "Ⓖ": "G",
            "G": "G",
            "Ǵ": "G",
            "Ĝ": "G",
            "Ḡ": "G",
            "Ğ": "G",
            "Ġ": "G",
            "Ǧ": "G",
            "Ģ": "G",
            "Ǥ": "G",
            "Ɠ": "G",
            "Ꞡ": "G",
            "Ᵹ": "G",
            "Ꝿ": "G",
            "Ⓗ": "H",
            "H": "H",
            "Ĥ": "H",
            "Ḣ": "H",
            "Ḧ": "H",
            "Ȟ": "H",
            "Ḥ": "H",
            "Ḩ": "H",
            "Ḫ": "H",
            "Ħ": "H",
            "Ⱨ": "H",
            "Ⱶ": "H",
            "Ɥ": "H",
            "Ⓘ": "I",
            "I": "I",
            "Ì": "I",
            "Í": "I",
            "Î": "I",
            "Ĩ": "I",
            "Ī": "I",
            "Ĭ": "I",
            "İ": "I",
            "Ï": "I",
            "Ḯ": "I",
            "Ỉ": "I",
            "Ǐ": "I",
            "Ȉ": "I",
            "Ȋ": "I",
            "Ị": "I",
            "Į": "I",
            "Ḭ": "I",
            "Ɨ": "I",
            "Ⓙ": "J",
            "J": "J",
            "Ĵ": "J",
            "Ɉ": "J",
            "Ⓚ": "K",
            "K": "K",
            "Ḱ": "K",
            "Ǩ": "K",
            "Ḳ": "K",
            "Ķ": "K",
            "Ḵ": "K",
            "Ƙ": "K",
            "Ⱪ": "K",
            "Ꝁ": "K",
            "Ꝃ": "K",
            "Ꝅ": "K",
            "Ꞣ": "K",
            "Ⓛ": "L",
            "L": "L",
            "Ŀ": "L",
            "Ĺ": "L",
            "Ľ": "L",
            "Ḷ": "L",
            "Ḹ": "L",
            "Ļ": "L",
            "Ḽ": "L",
            "Ḻ": "L",
            "Ł": "L",
            "Ƚ": "L",
            "Ɫ": "L",
            "Ⱡ": "L",
            "Ꝉ": "L",
            "Ꝇ": "L",
            "Ꞁ": "L",
            "LJ": "LJ",
            "Lj": "Lj",
            "Ⓜ": "M",
            "M": "M",
            "Ḿ": "M",
            "Ṁ": "M",
            "Ṃ": "M",
            "Ɱ": "M",
            "Ɯ": "M",
            "Ⓝ": "N",
            "N": "N",
            "Ǹ": "N",
            "Ń": "N",
            "Ñ": "N",
            "Ṅ": "N",
            "Ň": "N",
            "Ṇ": "N",
            "Ņ": "N",
            "Ṋ": "N",
            "Ṉ": "N",
            "Ƞ": "N",
            "Ɲ": "N",
            "Ꞑ": "N",
            "Ꞥ": "N",
            "NJ": "NJ",
            "Nj": "Nj",
            "Ⓞ": "O",
            "O": "O",
            "Ò": "O",
            "Ó": "O",
            "Ô": "O",
            "Ồ": "O",
            "Ố": "O",
            "Ỗ": "O",
            "Ổ": "O",
            "Õ": "O",
            "Ṍ": "O",
            "Ȭ": "O",
            "Ṏ": "O",
            "Ō": "O",
            "Ṑ": "O",
            "Ṓ": "O",
            "Ŏ": "O",
            "Ȯ": "O",
            "Ȱ": "O",
            "Ö": "O",
            "Ȫ": "O",
            "Ỏ": "O",
            "Ő": "O",
            "Ǒ": "O",
            "Ȍ": "O",
            "Ȏ": "O",
            "Ơ": "O",
            "Ờ": "O",
            "Ớ": "O",
            "Ỡ": "O",
            "Ở": "O",
            "Ợ": "O",
            "Ọ": "O",
            "Ộ": "O",
            "Ǫ": "O",
            "Ǭ": "O",
            "Ø": "O",
            "Ǿ": "O",
            "Ɔ": "O",
            "Ɵ": "O",
            "Ꝋ": "O",
            "Ꝍ": "O",
            "Œ": "OE",
            "Ƣ": "OI",
            "Ꝏ": "OO",
            "Ȣ": "OU",
            "Ⓟ": "P",
            "P": "P",
            "Ṕ": "P",
            "Ṗ": "P",
            "Ƥ": "P",
            "Ᵽ": "P",
            "Ꝑ": "P",
            "Ꝓ": "P",
            "Ꝕ": "P",
            "Ⓠ": "Q",
            "Q": "Q",
            "Ꝗ": "Q",
            "Ꝙ": "Q",
            "Ɋ": "Q",
            "Ⓡ": "R",
            "R": "R",
            "Ŕ": "R",
            "Ṙ": "R",
            "Ř": "R",
            "Ȑ": "R",
            "Ȓ": "R",
            "Ṛ": "R",
            "Ṝ": "R",
            "Ŗ": "R",
            "Ṟ": "R",
            "Ɍ": "R",
            "Ɽ": "R",
            "Ꝛ": "R",
            "Ꞧ": "R",
            "Ꞃ": "R",
            "Ⓢ": "S",
            "S": "S",
            "ẞ": "S",
            "Ś": "S",
            "Ṥ": "S",
            "Ŝ": "S",
            "Ṡ": "S",
            "Š": "S",
            "Ṧ": "S",
            "Ṣ": "S",
            "Ṩ": "S",
            "Ș": "S",
            "Ş": "S",
            "Ȿ": "S",
            "Ꞩ": "S",
            "Ꞅ": "S",
            "Ⓣ": "T",
            "T": "T",
            "Ṫ": "T",
            "Ť": "T",
            "Ṭ": "T",
            "Ț": "T",
            "Ţ": "T",
            "Ṱ": "T",
            "Ṯ": "T",
            "Ŧ": "T",
            "Ƭ": "T",
            "Ʈ": "T",
            "Ⱦ": "T",
            "Ꞇ": "T",
            "Ꜩ": "TZ",
            "Ⓤ": "U",
            "U": "U",
            "Ù": "U",
            "Ú": "U",
            "Û": "U",
            "Ũ": "U",
            "Ṹ": "U",
            "Ū": "U",
            "Ṻ": "U",
            "Ŭ": "U",
            "Ü": "U",
            "Ǜ": "U",
            "Ǘ": "U",
            "Ǖ": "U",
            "Ǚ": "U",
            "Ủ": "U",
            "Ů": "U",
            "Ű": "U",
            "Ǔ": "U",
            "Ȕ": "U",
            "Ȗ": "U",
            "Ư": "U",
            "Ừ": "U",
            "Ứ": "U",
            "Ữ": "U",
            "Ử": "U",
            "Ự": "U",
            "Ụ": "U",
            "Ṳ": "U",
            "Ų": "U",
            "Ṷ": "U",
            "Ṵ": "U",
            "Ʉ": "U",
            "Ⓥ": "V",
            "V": "V",
            "Ṽ": "V",
            "Ṿ": "V",
            "Ʋ": "V",
            "Ꝟ": "V",
            "Ʌ": "V",
            "Ꝡ": "VY",
            "Ⓦ": "W",
            "W": "W",
            "Ẁ": "W",
            "Ẃ": "W",
            "Ŵ": "W",
            "Ẇ": "W",
            "Ẅ": "W",
            "Ẉ": "W",
            "Ⱳ": "W",
            "Ⓧ": "X",
            "X": "X",
            "Ẋ": "X",
            "Ẍ": "X",
            "Ⓨ": "Y",
            "Y": "Y",
            "Ỳ": "Y",
            "Ý": "Y",
            "Ŷ": "Y",
            "Ỹ": "Y",
            "Ȳ": "Y",
            "Ẏ": "Y",
            "Ÿ": "Y",
            "Ỷ": "Y",
            "Ỵ": "Y",
            "Ƴ": "Y",
            "Ɏ": "Y",
            "Ỿ": "Y",
            "Ⓩ": "Z",
            "Z": "Z",
            "Ź": "Z",
            "Ẑ": "Z",
            "Ż": "Z",
            "Ž": "Z",
            "Ẓ": "Z",
            "Ẕ": "Z",
            "Ƶ": "Z",
            "Ȥ": "Z",
            "Ɀ": "Z",
            "Ⱬ": "Z",
            "Ꝣ": "Z",
            "ⓐ": "a",
            "a": "a",
            "ẚ": "a",
            "à": "a",
            "á": "a",
            "â": "a",
            "ầ": "a",
            "ấ": "a",
            "ẫ": "a",
            "ẩ": "a",
            "ã": "a",
            "ā": "a",
            "ă": "a",
            "ằ": "a",
            "ắ": "a",
            "ẵ": "a",
            "ẳ": "a",
            "ȧ": "a",
            "ǡ": "a",
            "ä": "a",
            "ǟ": "a",
            "ả": "a",
            "å": "a",
            "ǻ": "a",
            "ǎ": "a",
            "ȁ": "a",
            "ȃ": "a",
            "ạ": "a",
            "ậ": "a",
            "ặ": "a",
            "ḁ": "a",
            "ą": "a",
            "ⱥ": "a",
            "ɐ": "a",
            "ꜳ": "aa",
            "æ": "ae",
            "ǽ": "ae",
            "ǣ": "ae",
            "ꜵ": "ao",
            "ꜷ": "au",
            "ꜹ": "av",
            "ꜻ": "av",
            "ꜽ": "ay",
            "ⓑ": "b",
            "b": "b",
            "ḃ": "b",
            "ḅ": "b",
            "ḇ": "b",
            "ƀ": "b",
            "ƃ": "b",
            "ɓ": "b",
            "ⓒ": "c",
            "c": "c",
            "ć": "c",
            "ĉ": "c",
            "ċ": "c",
            "č": "c",
            "ç": "c",
            "ḉ": "c",
            "ƈ": "c",
            "ȼ": "c",
            "ꜿ": "c",
            "ↄ": "c",
            "ⓓ": "d",
            "d": "d",
            "ḋ": "d",
            "ď": "d",
            "ḍ": "d",
            "ḑ": "d",
            "ḓ": "d",
            "ḏ": "d",
            "đ": "d",
            "ƌ": "d",
            "ɖ": "d",
            "ɗ": "d",
            "ꝺ": "d",
            "dz": "dz",
            "dž": "dz",
            "ⓔ": "e",
            "e": "e",
            "è": "e",
            "é": "e",
            "ê": "e",
            "ề": "e",
            "ế": "e",
            "ễ": "e",
            "ể": "e",
            "ẽ": "e",
            "ē": "e",
            "ḕ": "e",
            "ḗ": "e",
            "ĕ": "e",
            "ė": "e",
            "ë": "e",
            "ẻ": "e",
            "ě": "e",
            "ȅ": "e",
            "ȇ": "e",
            "ẹ": "e",
            "ệ": "e",
            "ȩ": "e",
            "ḝ": "e",
            "ę": "e",
            "ḙ": "e",
            "ḛ": "e",
            "ɇ": "e",
            "ɛ": "e",
            "ǝ": "e",
            "ⓕ": "f",
            "f": "f",
            "ḟ": "f",
            "ƒ": "f",
            "ꝼ": "f",
            "ⓖ": "g",
            "g": "g",
            "ǵ": "g",
            "ĝ": "g",
            "ḡ": "g",
            "ğ": "g",
            "ġ": "g",
            "ǧ": "g",
            "ģ": "g",
            "ǥ": "g",
            "ɠ": "g",
            "ꞡ": "g",
            "ᵹ": "g",
            "ꝿ": "g",
            "ⓗ": "h",
            "h": "h",
            "ĥ": "h",
            "ḣ": "h",
            "ḧ": "h",
            "ȟ": "h",
            "ḥ": "h",
            "ḩ": "h",
            "ḫ": "h",
            "ẖ": "h",
            "ħ": "h",
            "ⱨ": "h",
            "ⱶ": "h",
            "ɥ": "h",
            "ƕ": "hv",
            "ⓘ": "i",
            "i": "i",
            "ì": "i",
            "í": "i",
            "î": "i",
            "ĩ": "i",
            "ī": "i",
            "ĭ": "i",
            "ï": "i",
            "ḯ": "i",
            "ỉ": "i",
            "ǐ": "i",
            "ȉ": "i",
            "ȋ": "i",
            "ị": "i",
            "į": "i",
            "ḭ": "i",
            "ɨ": "i",
            "ı": "i",
            "ⓙ": "j",
            "j": "j",
            "ĵ": "j",
            "ǰ": "j",
            "ɉ": "j",
            "ⓚ": "k",
            "k": "k",
            "ḱ": "k",
            "ǩ": "k",
            "ḳ": "k",
            "ķ": "k",
            "ḵ": "k",
            "ƙ": "k",
            "ⱪ": "k",
            "ꝁ": "k",
            "ꝃ": "k",
            "ꝅ": "k",
            "ꞣ": "k",
            "ⓛ": "l",
            "l": "l",
            "ŀ": "l",
            "ĺ": "l",
            "ľ": "l",
            "ḷ": "l",
            "ḹ": "l",
            "ļ": "l",
            "ḽ": "l",
            "ḻ": "l",
            "ſ": "l",
            "ł": "l",
            "ƚ": "l",
            "ɫ": "l",
            "ⱡ": "l",
            "ꝉ": "l",
            "ꞁ": "l",
            "ꝇ": "l",
            "lj": "lj",
            "ⓜ": "m",
            "m": "m",
            "ḿ": "m",
            "ṁ": "m",
            "ṃ": "m",
            "ɱ": "m",
            "ɯ": "m",
            "ⓝ": "n",
            "n": "n",
            "ǹ": "n",
            "ń": "n",
            "ñ": "n",
            "ṅ": "n",
            "ň": "n",
            "ṇ": "n",
            "ņ": "n",
            "ṋ": "n",
            "ṉ": "n",
            "ƞ": "n",
            "ɲ": "n",
            "ʼn": "n",
            "ꞑ": "n",
            "ꞥ": "n",
            "nj": "nj",
            "ⓞ": "o",
            "o": "o",
            "ò": "o",
            "ó": "o",
            "ô": "o",
            "ồ": "o",
            "ố": "o",
            "ỗ": "o",
            "ổ": "o",
            "õ": "o",
            "ṍ": "o",
            "ȭ": "o",
            "ṏ": "o",
            "ō": "o",
            "ṑ": "o",
            "ṓ": "o",
            "ŏ": "o",
            "ȯ": "o",
            "ȱ": "o",
            "ö": "o",
            "ȫ": "o",
            "ỏ": "o",
            "ő": "o",
            "ǒ": "o",
            "ȍ": "o",
            "ȏ": "o",
            "ơ": "o",
            "ờ": "o",
            "ớ": "o",
            "ỡ": "o",
            "ở": "o",
            "ợ": "o",
            "ọ": "o",
            "ộ": "o",
            "ǫ": "o",
            "ǭ": "o",
            "ø": "o",
            "ǿ": "o",
            "ɔ": "o",
            "ꝋ": "o",
            "ꝍ": "o",
            "ɵ": "o",
            "œ": "oe",
            "ƣ": "oi",
            "ȣ": "ou",
            "ꝏ": "oo",
            "ⓟ": "p",
            "p": "p",
            "ṕ": "p",
            "ṗ": "p",
            "ƥ": "p",
            "ᵽ": "p",
            "ꝑ": "p",
            "ꝓ": "p",
            "ꝕ": "p",
            "ⓠ": "q",
            "q": "q",
            "ɋ": "q",
            "ꝗ": "q",
            "ꝙ": "q",
            "ⓡ": "r",
            "r": "r",
            "ŕ": "r",
            "ṙ": "r",
            "ř": "r",
            "ȑ": "r",
            "ȓ": "r",
            "ṛ": "r",
            "ṝ": "r",
            "ŗ": "r",
            "ṟ": "r",
            "ɍ": "r",
            "ɽ": "r",
            "ꝛ": "r",
            "ꞧ": "r",
            "ꞃ": "r",
            "ⓢ": "s",
            "s": "s",
            "ß": "s",
            "ś": "s",
            "ṥ": "s",
            "ŝ": "s",
            "ṡ": "s",
            "š": "s",
            "ṧ": "s",
            "ṣ": "s",
            "ṩ": "s",
            "ș": "s",
            "ş": "s",
            "ȿ": "s",
            "ꞩ": "s",
            "ꞅ": "s",
            "ẛ": "s",
            "ⓣ": "t",
            "t": "t",
            "ṫ": "t",
            "ẗ": "t",
            "ť": "t",
            "ṭ": "t",
            "ț": "t",
            "ţ": "t",
            "ṱ": "t",
            "ṯ": "t",
            "ŧ": "t",
            "ƭ": "t",
            "ʈ": "t",
            "ⱦ": "t",
            "ꞇ": "t",
            "ꜩ": "tz",
            "ⓤ": "u",
            "u": "u",
            "ù": "u",
            "ú": "u",
            "û": "u",
            "ũ": "u",
            "ṹ": "u",
            "ū": "u",
            "ṻ": "u",
            "ŭ": "u",
            "ü": "u",
            "ǜ": "u",
            "ǘ": "u",
            "ǖ": "u",
            "ǚ": "u",
            "ủ": "u",
            "ů": "u",
            "ű": "u",
            "ǔ": "u",
            "ȕ": "u",
            "ȗ": "u",
            "ư": "u",
            "ừ": "u",
            "ứ": "u",
            "ữ": "u",
            "ử": "u",
            "ự": "u",
            "ụ": "u",
            "ṳ": "u",
            "ų": "u",
            "ṷ": "u",
            "ṵ": "u",
            "ʉ": "u",
            "ⓥ": "v",
            "v": "v",
            "ṽ": "v",
            "ṿ": "v",
            "ʋ": "v",
            "ꝟ": "v",
            "ʌ": "v",
            "ꝡ": "vy",
            "ⓦ": "w",
            "w": "w",
            "ẁ": "w",
            "ẃ": "w",
            "ŵ": "w",
            "ẇ": "w",
            "ẅ": "w",
            "ẘ": "w",
            "ẉ": "w",
            "ⱳ": "w",
            "ⓧ": "x",
            "x": "x",
            "ẋ": "x",
            "ẍ": "x",
            "ⓨ": "y",
            "y": "y",
            "ỳ": "y",
            "ý": "y",
            "ŷ": "y",
            "ỹ": "y",
            "ȳ": "y",
            "ẏ": "y",
            "ÿ": "y",
            "ỷ": "y",
            "ẙ": "y",
            "ỵ": "y",
            "ƴ": "y",
            "ɏ": "y",
            "ỿ": "y",
            "ⓩ": "z",
            "z": "z",
            "ź": "z",
            "ẑ": "z",
            "ż": "z",
            "ž": "z",
            "ẓ": "z",
            "ẕ": "z",
            "ƶ": "z",
            "ȥ": "z",
            "ɀ": "z",
            "ⱬ": "z",
            "ꝣ": "z",
            "Ά": "Α",
            "Έ": "Ε",
            "Ή": "Η",
            "Ί": "Ι",
            "Ϊ": "Ι",
            "Ό": "Ο",
            "Ύ": "Υ",
            "Ϋ": "Υ",
            "Ώ": "Ω",
            "ά": "α",
            "έ": "ε",
            "ή": "η",
            "ί": "ι",
            "ϊ": "ι",
            "ΐ": "ι",
            "ό": "ο",
            "ύ": "υ",
            "ϋ": "υ",
            "ΰ": "υ",
            "ώ": "ω",
            "ς": "σ",
            "’": "'"
        }
    }), u.define("select2/data/base", ["../utils"], function(n) {
        function s(e, t) {
            s.__super__.constructor.call(this)
        }
        return n.Extend(s, n.Observable), s.prototype.current = function(e) {
            throw new Error("The `current` method must be defined in child classes.")
        }, s.prototype.query = function(e, t) {
            throw new Error("The `query` method must be defined in child classes.")
        }, s.prototype.bind = function(e, t) {}, s.prototype.destroy = function() {}, s.prototype.generateResultId = function(e, t) {
            e = e.id + "-result-";
            return e += n.generateChars(4), null != t.id ? e += "-" + t.id.toString() : e += "-" + n.generateChars(4), e
        }, s
    }), u.define("select2/data/select", ["./base", "../utils", "jquery"], function(e, a, l) {
        function n(e, t) {
            this.$element = e, this.options = t, n.__super__.constructor.call(this)
        }
        return a.Extend(n, e), n.prototype.current = function(e) {
            var t = this;
            e(Array.prototype.map.call(this.$element[0].querySelectorAll(":checked"), function(e) {
                return t.item(l(e))
            }))
        }, n.prototype.select = function(i) {
            var e, r = this;
            if (i.selected = !0, null != i.element && "option" === i.element.tagName.toLowerCase()) return i.element.selected = !0, void this.$element.trigger("input").trigger("change");
            this.$element.prop("multiple") ? this.current(function(e) {
                var t = [];
                (i = [i]).push.apply(i, e);
                for (var n = 0; n < i.length; n++) {
                    var s = i[n].id; - 1 === t.indexOf(s) && t.push(s)
                }
                r.$element.val(t), r.$element.trigger("input").trigger("change")
            }) : (e = i.id, this.$element.val(e), this.$element.trigger("input").trigger("change"))
        }, n.prototype.unselect = function(i) {
            var r = this;
            if (this.$element.prop("multiple")) {
                if (i.selected = !1, null != i.element && "option" === i.element.tagName.toLowerCase()) return i.element.selected = !1, void this.$element.trigger("input").trigger("change");
                this.current(function(e) {
                    for (var t = [], n = 0; n < e.length; n++) {
                        var s = e[n].id;
                        s !== i.id && -1 === t.indexOf(s) && t.push(s)
                    }
                    r.$element.val(t), r.$element.trigger("input").trigger("change")
                })
            }
        }, n.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)
            })
        }, n.prototype.destroy = function() {
            this.$element.find("*").each(function() {
                a.RemoveData(this)
            })
        }, n.prototype.query = function(t, e) {
            var n = [],
                s = this;
            this.$element.children().each(function() {
                var e;
                "option" !== this.tagName.toLowerCase() && "optgroup" !== this.tagName.toLowerCase() || (e = l(this), e = s.item(e), null !== (e = s.matches(t, e)) && n.push(e))
            }), e({
                results: n
            })
        }, n.prototype.addOptions = function(e) {
            this.$element.append(e)
        }, n.prototype.option = function(e) {
            var t;
            e.children ? (t = document.createElement("optgroup")).label = e.text : void 0 !== (t = document.createElement("option")).textContent ? t.textContent = e.text : t.innerText = e.text, void 0 !== e.id && (t.value = e.id), e.disabled && (t.disabled = !0), e.selected && (t.selected = !0), e.title && (t.title = e.title);
            e = this._normalizeItem(e);
            return e.element = t, a.StoreData(t, "data", e), l(t)
        }, n.prototype.item = function(e) {
            var t = {};
            if (null != (t = a.GetData(e[0], "data"))) return t;
            var n = e[0];
            if ("option" === n.tagName.toLowerCase()) t = {
                id: e.val(),
                text: e.text(),
                disabled: e.prop("disabled"),
                selected: e.prop("selected"),
                title: e.prop("title")
            };
            else if ("optgroup" === n.tagName.toLowerCase()) {
                t = {
                    text: e.prop("label"),
                    children: [],
                    title: e.prop("title")
                };
                for (var s = e.children("option"), i = [], r = 0; r < s.length; r++) {
                    var o = l(s[r]),
                        o = this.item(o);
                    i.push(o)
                }
                t.children = i
            }
            return (t = this._normalizeItem(t)).element = e[0], a.StoreData(e[0], "data", t), t
        }, n.prototype._normalizeItem = function(e) {
            e !== Object(e) && (e = {
                id: e,
                text: e
            });
            return null != (e = l.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)), l.extend({}, {
                selected: !1,
                disabled: !1
            }, e)
        }, n.prototype.matches = function(e, t) {
            return this.options.get("matcher")(e, t)
        }, n
    }), u.define("select2/data/array", ["./select", "../utils", "jquery"], function(e, t, c) {
        function s(e, t) {
            this._dataToConvert = t.get("data") || [], s.__super__.constructor.call(this, e, t)
        }
        return t.Extend(s, e), s.prototype.bind = function(e, t) {
            s.__super__.bind.call(this, e, t), this.addOptions(this.convertToOptions(this._dataToConvert))
        }, s.prototype.select = function(n) {
            var e = this.$element.find("option").filter(function(e, t) {
                return t.value == n.id.toString()
            });
            0 === e.length && (e = this.option(n), this.addOptions(e)), s.__super__.select.call(this, n)
        }, s.prototype.convertToOptions = function(e) {
            var t = this,
                n = this.$element.find("option"),
                s = n.map(function() {
                    return t.item(c(this)).id
                }).get(),
                i = [];
            for (var r = 0; r < e.length; r++) {
                var o, a, l = this._normalizeItem(e[r]);
                0 <= s.indexOf(l.id) ? (o = n.filter(function(e) {
                    return function() {
                        return c(this).val() == e.id
                    }
                }(l)), a = this.item(o), a = c.extend(!0, {}, l, a), a = this.option(a), o.replaceWith(a)) : (a = this.option(l), l.children && (l = this.convertToOptions(l.children), a.append(l)), i.push(a))
            }
            return i
        }, s
    }), u.define("select2/data/ajax", ["./array", "../utils", "jquery"], function(e, t, r) {
        function n(e, t) {
            this.ajaxOptions = this._applyDefaults(t.get("ajax")), null != this.ajaxOptions.processResults && (this.processResults = this.ajaxOptions.processResults), n.__super__.constructor.call(this, e, t)
        }
        return t.Extend(n, e), n.prototype._applyDefaults = function(e) {
            var t = {
                data: function(e) {
                    return r.extend({}, e, {
                        q: e.term
                    })
                },
                transport: function(e, t, n) {
                    e = r.ajax(e);
                    return e.then(t), e.fail(n), e
                }
            };
            return r.extend({}, t, e, !0)
        }, n.prototype.processResults = function(e) {
            return e
        }, n.prototype.query = function(t, n) {
            var s = this;
            null != this._request && ("function" == typeof this._request.abort && this._request.abort(), this._request = null);
            var i = r.extend({
                type: "GET"
            }, this.ajaxOptions);

            function e() {
                var e = i.transport(i, function(e) {
                    e = s.processResults(e, t);
                    s.options.get("debug") && window.console && console.error && (e && e.results && Array.isArray(e.results) || console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")), n(e)
                }, function() {
                    "status" in e && (0 === e.status || "0" === e.status) || s.trigger("results:message", {
                        message: "errorLoading"
                    })
                });
                s._request = e
            }
            "function" == typeof i.url && (i.url = i.url.call(this.$element, t)), "function" == typeof i.data && (i.data = i.data.call(this.$element, t)), this.ajaxOptions.delay && null != t.term ? (this._queryTimeout && window.clearTimeout(this._queryTimeout), this._queryTimeout = window.setTimeout(e, this.ajaxOptions.delay)) : e()
        }, n
    }), u.define("select2/data/tags", ["jquery"], function(t) {
        function e(e, t, n) {
            var s = n.get("tags"),
                i = n.get("createTag");
            void 0 !== i && (this.createTag = i);
            i = n.get("insertTag");
            if (void 0 !== i && (this.insertTag = i), e.call(this, t, n), Array.isArray(s))
                for (var r = 0; r < s.length; r++) {
                    var o = s[r],
                        o = this._normalizeItem(o),
                        o = this.option(o);
                    this.$element.append(o)
                }
        }
        return e.prototype.query = function(e, c, u) {
            var d = this;
            this._removeOldTags(), null != c.term && null == c.page ? e.call(this, c, function e(t, n) {
                for (var s = t.results, i = 0; i < s.length; i++) {
                    var r = s[i],
                        o = null != r.children && !e({
                            results: r.children
                        }, !0);
                    if ((r.text || "").toUpperCase() === (c.term || "").toUpperCase() || o) return !n && (t.data = s, void u(t))
                }
                if (n) return !0;
                var a, l = d.createTag(c);
                null != l && ((a = d.option(l)).attr("data-select2-tag", "true"), d.addOptions([a]), d.insertTag(s, l)), t.results = s, u(t)
            }) : e.call(this, c, u)
        }, e.prototype.createTag = function(e, t) {
            if (null == t.term) return null;
            t = t.term.trim();
            return "" === t ? null : {
                id: t,
                text: t
            }
        }, e.prototype.insertTag = function(e, t, n) {
            t.unshift(n)
        }, e.prototype._removeOldTags = function(e) {
            this.$element.find("option[data-select2-tag]").each(function() {
                this.selected || t(this).remove()
            })
        }, e
    }), u.define("select2/data/tokenizer", ["jquery"], function(c) {
        function e(e, t, n) {
            var s = n.get("tokenizer");
            void 0 !== s && (this.tokenizer = s), e.call(this, t, n)
        }
        return e.prototype.bind = function(e, t, n) {
            e.call(this, t, n), this.$search = t.dropdown.$search || t.selection.$search || n.find(".select2-search__field")
        }, e.prototype.query = function(e, t, n) {
            var s = this;
            t.term = t.term || "";
            var i = this.tokenizer(t, this.options, function(e) {
                var t, n = s._normalizeItem(e);
                s.$element.find("option").filter(function() {
                    return c(this).val() === n.id
                }).length || ((t = s.option(n)).attr("data-select2-tag", !0), s._removeOldTags(), s.addOptions([t])), t = n, s.trigger("select", {
                    data: t
                })
            });
            i.term !== t.term && (this.$search.length && (this.$search.val(i.term), this.$search.trigger("focus")), t.term = i.term), e.call(this, t, n)
        }, e.prototype.tokenizer = function(e, t, n, s) {
            for (var i = n.get("tokenSeparators") || [], r = t.term, o = 0, a = this.createTag || function(e) {
                    return {
                        id: e.term,
                        text: e.term
                    }
                }; o < r.length;) {
                var l = r[o]; - 1 !== i.indexOf(l) ? (l = r.substr(0, o), null != (l = a(c.extend({}, t, {
                    term: l
                }))) ? (s(l), r = r.substr(o + 1) || "", o = 0) : o++) : o++
            }
            return {
                term: r
            }
        }, e
    }), u.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
    }), u.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
    }), u.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 s = this;
            e.call(this, t, n), t.on("select", function() {
                s._checkIfMaximumSelected()
            })
        }, e.prototype.query = function(e, t, n) {
            var s = this;
            this._checkIfMaximumSelected(function() {
                e.call(s, t, n)
            })
        }, e.prototype._checkIfMaximumSelected = function(e, t) {
            var n = this;
            this.current(function(e) {
                e = null != e ? e.length : 0;
                0 < n.maximumSelectionLength && e >= n.maximumSelectionLength ? n.trigger("results:message", {
                    message: "maximumSelected",
                    args: {
                        maximum: n.maximumSelectionLength
                    }
                }) : t && t()
            })
        }, e
    }), u.define("select2/dropdown", ["jquery", "./utils"], function(t, e) {
        function n(e, t) {
            this.$element = e, this.options = t, n.__super__.constructor.call(this)
        }
        return e.Extend(n, e.Observable), n.prototype.render = function() {
            var e = t('<span class="select2-dropdown"><span class="select2-results"></span></span>');
            return e.attr("dir", this.options.get("dir")), this.$dropdown = e
        }, n.prototype.bind = function() {}, n.prototype.position = function(e, t) {}, n.prototype.destroy = function() {
            this.$dropdown.remove()
        }, n
    }), u.define("select2/dropdown/search", ["jquery"], function(r) {
        function e() {}
        return e.prototype.render = function(e) {
            var t = e.call(this),
                n = this.options.get("translations").get("search"),
                e = r('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');
            return this.$searchContainer = e, this.$search = e.find("input"), this.$search.prop("autocomplete", this.options.get("autocomplete")), this.$search.attr("aria-label", n()), t.prepend(e), t
        }, e.prototype.bind = function(e, t, n) {
            var s = this,
                i = t.id + "-results";
            e.call(this, t, n), this.$search.on("keydown", function(e) {
                s.trigger("keypress", e), s._keyUpPrevented = e.isDefaultPrevented()
            }), this.$search.on("input", function(e) {
                r(this).off("keyup")
            }), this.$search.on("keyup input", function(e) {
                s.handleSearch(e)
            }), t.on("open", function() {
                s.$search.attr("tabindex", 0), s.$search.attr("aria-controls", i), s.$search.trigger("focus"), window.setTimeout(function() {
                    s.$search.trigger("focus")
                }, 0)
            }), t.on("close", function() {
                s.$search.attr("tabindex", -1), s.$search.removeAttr("aria-controls"), s.$search.removeAttr("aria-activedescendant"), s.$search.val(""), s.$search.trigger("blur")
            }), t.on("focus", function() {
                t.isOpen() || s.$search.trigger("focus")
            }), t.on("results:all", function(e) {
                null != e.query.term && "" !== e.query.term || (s.showSearch(e) ? s.$searchContainer[0].classList.remove("select2-search--hide") : s.$searchContainer[0].classList.add("select2-search--hide"))
            }), t.on("results:focus", function(e) {
                e.data._resultId ? s.$search.attr("aria-activedescendant", e.data._resultId) : s.$search.removeAttr("aria-activedescendant")
            })
        }, e.prototype.handleSearch = function(e) {
            var t;
            this._keyUpPrevented || (t = this.$search.val(), this.trigger("query", {
                term: t
            })), this._keyUpPrevented = !1
        }, e.prototype.showSearch = function(e, t) {
            return !0
        }, e
    }), u.define("select2/dropdown/hidePlaceholder", [], function() {
        function e(e, t, n, s) {
            this.placeholder = this.normalizePlaceholder(n.get("placeholder")), e.call(this, t, n, s)
        }
        return e.prototype.append = function(e, t) {
            t.results = this.removePlaceholder(t.results), e.call(this, t)
        }, e.prototype.normalizePlaceholder = function(e, t) {
            return t = "string" == typeof t ? {
                id: "",
                text: t
            } : t
        }, e.prototype.removePlaceholder = function(e, t) {
            for (var n = t.slice(0), s = t.length - 1; 0 <= s; s--) {
                var i = t[s];
                this.placeholder.id === i.id && n.splice(s, 1)
            }
            return n
        }, e
    }), u.define("select2/dropdown/infiniteScroll", ["jquery"], function(n) {
        function e(e, t, n, s) {
            this.lastParams = {}, e.call(this, t, n, s), this.$loadingMore = this.createLoadingMore(), this.loading = !1
        }
        return e.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())
        }, e.prototype.bind = function(e, t, n) {
            var s = this;
            e.call(this, t, n), t.on("query", function(e) {
                s.lastParams = e, s.loading = !0
            }), t.on("query:append", function(e) {
                s.lastParams = e, s.loading = !0
            }), this.$results.on("scroll", this.loadMoreIfNeeded.bind(this))
        }, e.prototype.loadMoreIfNeeded = function() {
            var e = n.contains(document.documentElement, this.$loadingMore[0]);
            !this.loading && e && (e = this.$results.offset().top + this.$results.outerHeight(!1), this.$loadingMore.offset().top + this.$loadingMore.outerHeight(!1) <= e + 50 && this.loadMore())
        }, e.prototype.loadMore = function() {
            this.loading = !0;
            var e = n.extend({}, {
                page: 1
            }, this.lastParams);
            e.page++, this.trigger("query:append", e)
        }, e.prototype.showLoadingMore = function(e, t) {
            return t.pagination && t.pagination.more
        }, e.prototype.createLoadingMore = function() {
            var e = n('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),
                t = this.options.get("translations").get("loadingMore");
            return e.html(t(this.lastParams)), e
        }, e
    }), u.define("select2/dropdown/attachBody", ["jquery", "../utils"], function(u, o) {
        function e(e, t, n) {
            this.$dropdownParent = u(n.get("dropdownParent") || document.body), e.call(this, t, n)
        }
        return e.prototype.bind = function(e, t, n) {
            var s = this;
            e.call(this, t, n), t.on("open", function() {
                s._showDropdown(), s._attachPositioningHandler(t), s._bindContainerResultHandlers(t)
            }), t.on("close", function() {
                s._hideDropdown(), s._detachPositioningHandler(t)
            }), this.$dropdownContainer.on("mousedown", function(e) {
                e.stopPropagation()
            })
        }, e.prototype.destroy = function(e) {
            e.call(this), this.$dropdownContainer.remove()
        }, e.prototype.position = function(e, t, n) {
            t.attr("class", n.attr("class")), t[0].classList.remove("select2"), t[0].classList.add("select2-container--open"), t.css({
                position: "absolute",
                top: -999999
            }), this.$container = n
        }, e.prototype.render = function(e) {
            var t = u("<span></span>"),
                e = e.call(this);
            return t.append(e), this.$dropdownContainer = t
        }, e.prototype._hideDropdown = function(e) {
            this.$dropdownContainer.detach()
        }, e.prototype._bindContainerResultHandlers = function(e, t) {
            var n;
            this._containerResultsHandlersBound || (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)
        }, e.prototype._attachPositioningHandler = function(e, t) {
            var n = this,
                s = "scroll.select2." + t.id,
                i = "resize.select2." + t.id,
                r = "orientationchange.select2." + t.id,
                t = this.$container.parents().filter(o.hasScroll);
            t.each(function() {
                o.StoreData(this, "select2-scroll-position", {
                    x: u(this).scrollLeft(),
                    y: u(this).scrollTop()
                })
            }), t.on(s, function(e) {
                var t = o.GetData(this, "select2-scroll-position");
                u(this).scrollTop(t.y)
            }), u(window).on(s + " " + i + " " + r, function(e) {
                n._positionDropdown(), n._resizeDropdown()
            })
        }, e.prototype._detachPositioningHandler = function(e, t) {
            var n = "scroll.select2." + t.id,
                s = "resize.select2." + t.id,
                t = "orientationchange.select2." + t.id;
            this.$container.parents().filter(o.hasScroll).off(n), u(window).off(n + " " + s + " " + t)
        }, e.prototype._positionDropdown = function() {
            var e = u(window),
                t = this.$dropdown[0].classList.contains("select2-dropdown--above"),
                n = this.$dropdown[0].classList.contains("select2-dropdown--below"),
                s = null,
                i = this.$container.offset();
            i.bottom = i.top + this.$container.outerHeight(!1);
            var r = {
                height: this.$container.outerHeight(!1)
            };
            r.top = i.top, r.bottom = i.top + r.height;
            var o = this.$dropdown.outerHeight(!1),
                a = e.scrollTop(),
                l = e.scrollTop() + e.height(),
                c = a < i.top - o,
                e = l > i.bottom + o,
                a = {
                    left: i.left,
                    top: r.bottom
                },
                l = this.$dropdownParent;
            "static" === l.css("position") && (l = l.offsetParent());
            i = {
                top: 0,
                left: 0
            };
            (u.contains(document.body, l[0]) || l[0].isConnected) && (i = l.offset()), a.top -= i.top, a.left -= i.left, t || n || (s = "below"), e || !c || t ? !c && e && t && (s = "below") : s = "above", ("above" == s || t && "below" !== s) && (a.top = r.top - i.top - o), null != s && (this.$dropdown[0].classList.remove("select2-dropdown--below"), this.$dropdown[0].classList.remove("select2-dropdown--above"), this.$dropdown[0].classList.add("select2-dropdown--" + s), this.$container[0].classList.remove("select2-container--below"), this.$container[0].classList.remove("select2-container--above"), this.$container[0].classList.add("select2-container--" + s)), this.$dropdownContainer.css(a)
        }, e.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)
        }, e.prototype._showDropdown = function(e) {
            this.$dropdownContainer.appendTo(this.$dropdownParent), this._positionDropdown(), this._resizeDropdown()
        }, e
    }), u.define("select2/dropdown/minimumResultsForSearch", [], function() {
        function e(e, t, n, s) {
            this.minimumResultsForSearch = n.get("minimumResultsForSearch"), this.minimumResultsForSearch < 0 && (this.minimumResultsForSearch = 1 / 0), e.call(this, t, n, s)
        }
        return e.prototype.showSearch = function(e, t) {
            return !(function e(t) {
                for (var n = 0, s = 0; s < t.length; s++) {
                    var i = t[s];
                    i.children ? n += e(i.children) : n++
                }
                return n
            }(t.data.results) < this.minimumResultsForSearch) && e.call(this, t)
        }, e
    }), u.define("select2/dropdown/selectOnClose", ["../utils"], function(s) {
        function e() {}
        return e.prototype.bind = function(e, t, n) {
            var s = this;
            e.call(this, t, n), t.on("close", function(e) {
                s._handleSelectOnClose(e)
            })
        }, e.prototype._handleSelectOnClose = function(e, t) {
            if (t && null != t.originalSelect2Event) {
                var n = t.originalSelect2Event;
                if ("select" === n._type || "unselect" === n._type) return
            }
            n = this.getHighlightedResults();
            n.length < 1 || (null != (n = s.GetData(n[0], "data")).element && n.element.selected || null == n.element && n.selected || this.trigger("select", {
                data: n
            }))
        }, e
    }), u.define("select2/dropdown/closeOnSelect", [], function() {
        function e() {}
        return e.prototype.bind = function(e, t, n) {
            var s = this;
            e.call(this, t, n), t.on("select", function(e) {
                s._selectTriggered(e)
            }), t.on("unselect", function(e) {
                s._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
    }), u.define("select2/dropdown/dropdownCss", ["../utils"], function(n) {
        function e() {}
        return e.prototype.render = function(e) {
            var t = e.call(this),
                e = this.options.get("dropdownCssClass") || "";
            return -1 !== e.indexOf(":all:") && (e = e.replace(":all:", ""), n.copyNonInternalCssClasses(t[0], this.$element[0])), t.addClass(e), t
        }, e
    }), u.define("select2/dropdown/tagsSearchHighlight", ["../utils"], function(s) {
        function e() {}
        return e.prototype.highlightFirstItem = function(e) {
            var t = this.$results.find(".select2-results__option--selectable:not(.select2-results__option--selected)");
            if (0 < t.length) {
                var n = t.first(),
                    t = s.GetData(n[0], "data").element;
                if (t && t.getAttribute && "true" === t.getAttribute("data-select2-tag")) return void n.trigger("mouseenter")
            }
            e.call(this)
        }, e
    }), u.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,
                    e = "Please delete " + t + " character";
                return 1 != t && (e += "s"), e
            },
            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"
            },
            removeItem: function() {
                return "Remove item"
            },
            search: function() {
                return "Search"
            }
        }
    }), u.define("select2/defaults", ["jquery", "./results", "./selection/single", "./selection/multiple", "./selection/placeholder", "./selection/allowClear", "./selection/search", "./selection/selectionCss", "./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", "./dropdown/dropdownCss", "./dropdown/tagsSearchHighlight", "./i18n/en"], function(l, r, o, a, c, u, d, p, h, f, g, t, m, y, v, _, b, $, w, x, A, D, S, E, O, C, L, T, q, I, e) {
        function n() {
            this.reset()
        }
        return n.prototype.apply = function(e) {
            var t;
            null == (e = l.extend(!0, {}, this.defaults, e)).dataAdapter && (null != e.ajax ? e.dataAdapter = v : null != e.data ? e.dataAdapter = y : e.dataAdapter = m, 0 < e.minimumInputLength && (e.dataAdapter = f.Decorate(e.dataAdapter, $)), 0 < e.maximumInputLength && (e.dataAdapter = f.Decorate(e.dataAdapter, w)), 0 < e.maximumSelectionLength && (e.dataAdapter = f.Decorate(e.dataAdapter, x)), e.tags && (e.dataAdapter = f.Decorate(e.dataAdapter, _)), null == e.tokenSeparators && null == e.tokenizer || (e.dataAdapter = f.Decorate(e.dataAdapter, b))), null == e.resultsAdapter && (e.resultsAdapter = r, null != e.ajax && (e.resultsAdapter = f.Decorate(e.resultsAdapter, E)), null != e.placeholder && (e.resultsAdapter = f.Decorate(e.resultsAdapter, S)), e.selectOnClose && (e.resultsAdapter = f.Decorate(e.resultsAdapter, L)), e.tags && (e.resultsAdapter = f.Decorate(e.resultsAdapter, I))), null == e.dropdownAdapter && (e.multiple ? e.dropdownAdapter = A : (t = f.Decorate(A, D), e.dropdownAdapter = t), 0 !== e.minimumResultsForSearch && (e.dropdownAdapter = f.Decorate(e.dropdownAdapter, C)), e.closeOnSelect && (e.dropdownAdapter = f.Decorate(e.dropdownAdapter, T)), null != e.dropdownCssClass && (e.dropdownAdapter = f.Decorate(e.dropdownAdapter, q)), e.dropdownAdapter = f.Decorate(e.dropdownAdapter, O)), null == e.selectionAdapter && (e.multiple ? e.selectionAdapter = a : e.selectionAdapter = o, null != e.placeholder && (e.selectionAdapter = f.Decorate(e.selectionAdapter, c)), e.allowClear && (e.selectionAdapter = f.Decorate(e.selectionAdapter, u)), e.multiple && (e.selectionAdapter = f.Decorate(e.selectionAdapter, d)), null != e.selectionCssClass && (e.selectionAdapter = f.Decorate(e.selectionAdapter, p)), e.selectionAdapter = f.Decorate(e.selectionAdapter, h)), e.language = this._resolveLanguage(e.language), e.language.push("en");
            for (var n = [], s = 0; s < e.language.length; s++) {
                var i = e.language[s]; - 1 === n.indexOf(i) && n.push(i)
            }
            return e.language = n, e.translations = this._processTranslations(e.language, e.debug), e
        }, n.prototype.reset = function() {
            function a(e) {
                return e.replace(/[^\u0000-\u007E]/g, function(e) {
                    return t[e] || e
                })
            }
            this.defaults = {
                amdLanguageBase: "./i18n/",
                autocomplete: "off",
                closeOnSelect: !0,
                debug: !1,
                dropdownAutoWidth: !1,
                escapeMarkup: f.escapeMarkup,
                language: {},
                matcher: function e(t, n) {
                    if (null == t.term || "" === t.term.trim()) return n;
                    if (n.children && 0 < n.children.length) {
                        for (var s = l.extend(!0, {}, n), i = n.children.length - 1; 0 <= i; i--) null == e(t, n.children[i]) && s.children.splice(i, 1);
                        return 0 < s.children.length ? s : e(t, s)
                    }
                    var r = a(n.text).toUpperCase(),
                        o = a(t.term).toUpperCase();
                    return -1 < r.indexOf(o) ? n : 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"
            }
        }, n.prototype.applyFromElement = function(e, t) {
            var n = e.language,
                s = this.defaults.language,
                i = t.prop("lang"),
                t = t.closest("[lang]").prop("lang"),
                t = Array.prototype.concat.call(this._resolveLanguage(i), this._resolveLanguage(n), this._resolveLanguage(s), this._resolveLanguage(t));
            return e.language = t, e
        }, n.prototype._resolveLanguage = function(e) {
            if (!e) return [];
            if (l.isEmptyObject(e)) return [];
            if (l.isPlainObject(e)) return [e];
            for (var t, n = Array.isArray(e) ? e : [e], s = [], i = 0; i < n.length; i++) s.push(n[i]), "string" == typeof n[i] && 0 < n[i].indexOf("-") && (t = n[i].split("-")[0], s.push(t));
            return s
        }, n.prototype._processTranslations = function(e, t) {
            for (var n = new g, s = 0; s < e.length; s++) {
                var i = new g,
                    r = e[s];
                if ("string" == typeof r) try {
                    i = g.loadPath(r)
                } catch (e) {
                    try {
                        r = this.defaults.amdLanguageBase + r, i = g.loadPath(r)
                    } catch (e) {
                        t && window.console && console.warn && console.warn('Select2: The language file for "' + r + '" could not be automatically loaded. A fallback will be used instead.')
                    }
                } else i = l.isPlainObject(r) ? new g(r) : r;
                n.extend(i)
            }
            return n
        }, n.prototype.set = function(e, t) {
            var n = {};
            n[l.camelCase(e)] = t;
            n = f._convertData(n);
            l.extend(!0, this.defaults, n)
        }, new n
    }), u.define("select2/options", ["jquery", "./defaults", "./utils"], function(c, n, u) {
        function e(e, t) {
            this.options = e, null != t && this.fromElement(t), null != t && (this.options = n.applyFromElement(this.options, t)), this.options = n.apply(this.options)
        }
        return e.prototype.fromElement = function(e) {
            var t = ["select2"];
            null == this.options.multiple && (this.options.multiple = e.prop("multiple")), null == this.options.disabled && (this.options.disabled = e.prop("disabled")), null == this.options.autocomplete && e.prop("autocomplete") && (this.options.autocomplete = e.prop("autocomplete")), 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), u.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.'), u.StoreData(e[0], "data", u.GetData(e[0], "select2Tags")), u.StoreData(e[0], "tags", !0)), u.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", u.GetData(e[0], "ajaxUrl")), u.StoreData(e[0], "ajax-Url", u.GetData(e[0], "ajaxUrl")));
            var n = {};

            function s(e, t) {
                return t.toUpperCase()
            }
            for (var i = 0; i < e[0].attributes.length; i++) {
                var r = e[0].attributes[i].name,
                    o = "data-";
                r.substr(0, o.length) == o && (r = r.substring(o.length), o = u.GetData(e[0], r), n[r.replace(/-([a-z])/g, s)] = o)
            }
            c.fn.jquery && "1." == c.fn.jquery.substr(0, 2) && e[0].dataset && (n = c.extend(!0, {}, e[0].dataset, n));
            var a, l = c.extend(!0, {}, u.GetData(e[0]), n);
            for (a in l = u._convertData(l)) - 1 < t.indexOf(a) || (c.isPlainObject(this.options[a]) ? c.extend(this.options[a], l[a]) : this.options[a] = l[a]);
            return this
        }, e.prototype.get = function(e) {
            return this.options[e]
        }, e.prototype.set = function(e, t) {
            this.options[e] = t
        }, e
    }), u.define("select2/core", ["jquery", "./options", "./utils", "./keys"], function(t, i, r, s) {
        var o = function(e, t) {
            null != r.GetData(e[0], "select2") && r.GetData(e[0], "select2").destroy(), this.$element = e, this.id = this._generateId(e), t = t || {}, this.options = new i(t, e), o.__super__.constructor.call(this);
            var n = e.attr("tabindex") || 0;
            r.StoreData(e[0], "old-tabindex", n), e.attr("tabindex", "-1");
            t = this.options.get("dataAdapter");
            this.dataAdapter = new t(e, this.options);
            n = this.render();
            this._placeContainer(n);
            t = this.options.get("selectionAdapter");
            this.selection = new t(e, this.options), this.$selection = this.selection.render(), this.selection.position(this.$selection, n);
            t = this.options.get("dropdownAdapter");
            this.dropdown = new t(e, this.options), this.$dropdown = this.dropdown.render(), this.dropdown.position(this.$dropdown, n);
            n = this.options.get("resultsAdapter");
            this.results = new n(e, this.options, this.dataAdapter), this.$results = this.results.render(), this.results.position(this.$results, this.$dropdown);
            var s = this;
            this._bindAdapters(), this._registerDomEvents(), this._registerDataEvents(), this._registerSelectionEvents(), this._registerDropdownEvents(), this._registerResultsEvents(), this._registerEvents(), this.dataAdapter.current(function(e) {
                s.trigger("selection:update", {
                    data: e
                })
            }), e[0].classList.add("select2-hidden-accessible"), e.attr("aria-hidden", "true"), this._syncAttributes(), r.StoreData(e[0], "select2", this), e.data("select2", this)
        };
        return r.Extend(o, r.Observable), o.prototype._generateId = function(e) {
            return "select2-" + (null != e.attr("id") ? e.attr("id") : null != e.attr("name") ? e.attr("name") + "-" + r.generateChars(2) : r.generateChars(4)).replace(/(:|\.|\[|\]|,)/g, "")
        }, o.prototype._placeContainer = function(e) {
            e.insertAfter(this.$element);
            var t = this._resolveWidth(this.$element, this.options.get("width"));
            null != t && e.css("width", t)
        }, o.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 s = this._resolveWidth(e, "style");
                return null != s ? s : this._resolveWidth(e, "element")
            }
            if ("element" == t) {
                s = e.outerWidth(!1);
                return s <= 0 ? "auto" : s + "px"
            }
            if ("style" != t) return "computedstyle" != t ? t : window.getComputedStyle(e[0]).width;
            e = e.attr("style");
            if ("string" != typeof e) return null;
            for (var i = e.split(";"), r = 0, o = i.length; r < o; r += 1) {
                var a = i[r].replace(/\s/g, "").match(n);
                if (null !== a && 1 <= a.length) return a[1]
            }
            return null
        }, o.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)
        }, o.prototype._registerDomEvents = function() {
            var t = this;
            this.$element.on("change.select2", function() {
                t.dataAdapter.current(function(e) {
                    t.trigger("selection:update", {
                        data: e
                    })
                })
            }), this.$element.on("focus.select2", function(e) {
                t.trigger("focus", e)
            }), this._syncA = r.bind(this._syncAttributes, this), this._syncS = r.bind(this._syncSubtree, this), this._observer = new window.MutationObserver(function(e) {
                t._syncA(), t._syncS(e)
            }), this._observer.observe(this.$element[0], {
                attributes: !0,
                childList: !0,
                subtree: !1
            })
        }, o.prototype._registerDataEvents = function() {
            var n = this;
            this.dataAdapter.on("*", function(e, t) {
                n.trigger(e, t)
            })
        }, o.prototype._registerSelectionEvents = function() {
            var n = this,
                s = ["toggle", "focus"];
            this.selection.on("toggle", function() {
                n.toggleDropdown()
            }), this.selection.on("focus", function(e) {
                n.focus(e)
            }), this.selection.on("*", function(e, t) {
                -1 === s.indexOf(e) && n.trigger(e, t)
            })
        }, o.prototype._registerDropdownEvents = function() {
            var n = this;
            this.dropdown.on("*", function(e, t) {
                n.trigger(e, t)
            })
        }, o.prototype._registerResultsEvents = function() {
            var n = this;
            this.results.on("*", function(e, t) {
                n.trigger(e, t)
            })
        }, o.prototype._registerEvents = function() {
            var n = this;
            this.on("open", function() {
                n.$container[0].classList.add("select2-container--open")
            }), this.on("close", function() {
                n.$container[0].classList.remove("select2-container--open")
            }), this.on("enable", function() {
                n.$container[0].classList.remove("select2-container--disabled")
            }), this.on("disable", function() {
                n.$container[0].classList.add("select2-container--disabled")
            }), this.on("blur", function() {
                n.$container[0].classList.remove("select2-container--focus")
            }), this.on("query", function(t) {
                n.isOpen() || n.trigger("open", {}), this.dataAdapter.query(t, function(e) {
                    n.trigger("results:all", {
                        data: e,
                        query: t
                    })
                })
            }), this.on("query:append", function(t) {
                this.dataAdapter.query(t, function(e) {
                    n.trigger("results:append", {
                        data: e,
                        query: t
                    })
                })
            }), this.on("keypress", function(e) {
                var t = e.which;
                n.isOpen() ? t === s.ESC || t === s.UP && e.altKey ? (n.close(e), e.preventDefault()) : t === s.ENTER || t === s.TAB ? (n.trigger("results:select", {}), e.preventDefault()) : t === s.SPACE && e.ctrlKey ? (n.trigger("results:toggle", {}), e.preventDefault()) : t === s.UP ? (n.trigger("results:previous", {}), e.preventDefault()) : t === s.DOWN && (n.trigger("results:next", {}), e.preventDefault()) : (t === s.ENTER || t === s.SPACE || t === s.DOWN && e.altKey) && (n.open(), e.preventDefault())
            })
        }, o.prototype._syncAttributes = function() {
            this.options.set("disabled", this.$element.prop("disabled")), this.isDisabled() ? (this.isOpen() && this.close(), this.trigger("disable", {})) : this.trigger("enable", {})
        }, o.prototype._isChangeMutation = function(e) {
            var t = this;
            if (e.addedNodes && 0 < e.addedNodes.length) {
                for (var n = 0; n < e.addedNodes.length; n++)
                    if (e.addedNodes[n].selected) return !0
            } else {
                if (e.removedNodes && 0 < e.removedNodes.length) return !0;
                if (Array.isArray(e)) return e.some(function(e) {
                    return t._isChangeMutation(e)
                })
            }
            return !1
        }, o.prototype._syncSubtree = function(e) {
            var e = this._isChangeMutation(e),
                t = this;
            e && this.dataAdapter.current(function(e) {
                t.trigger("selection:update", {
                    data: e
                })
            })
        }, o.prototype.trigger = function(e, t) {
            var n = o.__super__.trigger,
                s = {
                    open: "opening",
                    close: "closing",
                    select: "selecting",
                    unselect: "unselecting",
                    clear: "clearing"
                };
            if (void 0 === t && (t = {}), e in s) {
                var i = s[e],
                    s = {
                        prevented: !1,
                        name: e,
                        args: t
                    };
                if (n.call(this, i, s), s.prevented) return void(t.prevented = !0)
            }
            n.call(this, e, t)
        }, o.prototype.toggleDropdown = function() {
            this.isDisabled() || (this.isOpen() ? this.close() : this.open())
        }, o.prototype.open = function() {
            this.isOpen() || this.isDisabled() || this.trigger("query", {})
        }, o.prototype.close = function(e) {
            this.isOpen() && this.trigger("close", {
                originalEvent: e
            })
        }, o.prototype.isEnabled = function() {
            return !this.isDisabled()
        }, o.prototype.isDisabled = function() {
            return this.options.get("disabled")
        }, o.prototype.isOpen = function() {
            return this.$container[0].classList.contains("select2-container--open")
        }, o.prototype.hasFocus = function() {
            return this.$container[0].classList.contains("select2-container--focus")
        }, o.prototype.focus = function(e) {
            this.hasFocus() || (this.$container[0].classList.add("select2-container--focus"), this.trigger("focus", {}))
        }, o.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.');
            e = !(e = null == e || 0 === e.length ? [!0] : e)[0];
            this.$element.prop("disabled", e)
        }, o.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 t = [];
            return this.dataAdapter.current(function(e) {
                t = e
            }), t
        }, o.prototype.val = function(e) {
            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 == e || 0 === e.length) return this.$element.val();
            e = e[0];
            Array.isArray(e) && (e = e.map(function(e) {
                return e.toString()
            })), this.$element.val(e).trigger("input").trigger("change")
        }, o.prototype.destroy = function() {
            r.RemoveData(this.$container[0]), this.$container.remove(), this._observer.disconnect(), this._observer = null, this._syncA = null, this._syncS = null, this.$element.off(".select2"), this.$element.attr("tabindex", r.GetData(this.$element[0], "old-tabindex")), this.$element[0].classList.remove("select2-hidden-accessible"), this.$element.attr("aria-hidden", "false"), r.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
        }, o.prototype.render = function() {
            var e = t('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');
            return e.attr("dir", this.options.get("dir")), this.$container = e, this.$container[0].classList.add("select2-container--" + this.options.get("theme")), r.StoreData(e[0], "element", this.$element), e
        }, o
    }), u.define("jquery-mousewheel", ["jquery"], function(e) {
        return e
    }), u.define("jquery.select2", ["jquery", "jquery-mousewheel", "./select2/core", "./select2/defaults", "./select2/utils"], function(i, e, r, t, o) {
        var a;
        return null == i.fn.select2 && (a = ["open", "close", "destroy"], i.fn.select2 = function(t) {
            if ("object" == typeof(t = t || {})) return this.each(function() {
                var e = i.extend(!0, {}, t);
                new r(i(this), e)
            }), this;
            if ("string" != typeof t) throw new Error("Invalid arguments for Select2: " + t);
            var n, s = Array.prototype.slice.call(arguments, 1);
            return this.each(function() {
                var e = o.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."), n = e[t].apply(e, s)
            }), -1 < a.indexOf(t) ? this : n
        }), null == i.fn.select2.defaults && (i.fn.select2.defaults = t), r
    }), {
        define: u.define,
        require: u.require
    });

    function b(e, t) {
        return i.call(e, t)
    }

    function l(e, t) {
        var n, s, i, r, o, a, l, c, u, d, p = t && t.split("/"),
            h = y.map,
            f = h && h["*"] || {};
        if (e) {
            for (t = (e = e.split("/")).length - 1, y.nodeIdCompat && _.test(e[t]) && (e[t] = e[t].replace(_, "")), "." === e[0].charAt(0) && p && (e = p.slice(0, p.length - 1).concat(e)), c = 0; c < e.length; c++) "." === (d = e[c]) ? (e.splice(c, 1), --c) : ".." === d && (0 === c || 1 === c && ".." === e[2] || ".." === e[c - 1] || 0 < c && (e.splice(c - 1, 2), c -= 2));
            e = e.join("/")
        }
        if ((p || f) && h) {
            for (c = (n = e.split("/")).length; 0 < c; --c) {
                if (s = n.slice(0, c).join("/"), p)
                    for (u = p.length; 0 < u; --u)
                        if (i = h[p.slice(0, u).join("/")], i = i && i[s]) {
                            r = i, o = c;
                            break
                        }
                if (r) break;
                !a && f && f[s] && (a = f[s], l = c)
            }!r && a && (r = a, o = l), r && (n.splice(0, o, r), e = n.join("/"))
        }
        return e
    }

    function w(t, n) {
        return function() {
            var e = a.call(arguments, 0);
            return "string" != typeof e[0] && 1 === e.length && e.push(null), o.apply(p, e.concat([t, n]))
        }
    }

    function x(e) {
        var t;
        if (b(m, e) && (t = m[e], delete m[e], v[e] = !0, r.apply(p, t)), !b(g, e) && !b(v, e)) throw new Error("No " + e);
        return g[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 A(e) {
        return e ? c(e) : []
    }
    var u = s.require("jquery.select2");
    return t.fn.select2.amd = s, u
});

//! moment.js
//! version : 2.18.1
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
//! license : MIT
//! momentjs.com
! function(a, b) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = b() : "function" == typeof define && define.amd ? define(b) : a.moment = b()
}(this, function() {
    "use strict";

    function a() {
        return sd.apply(null, arguments)
    }

    function b(a) {
        sd = a
    }

    function c(a) {
        return a instanceof Array || "[object Array]" === Object.prototype.toString.call(a)
    }

    function d(a) {
        return null != a && "[object Object]" === Object.prototype.toString.call(a)
    }

    function e(a) {
        var b;
        for (b in a) return !1;
        return !0
    }

    function f(a) {
        return void 0 === a
    }

    function g(a) {
        return "number" == typeof a || "[object Number]" === Object.prototype.toString.call(a)
    }

    function h(a) {
        return a instanceof Date || "[object Date]" === Object.prototype.toString.call(a)
    }

    function i(a, b) {
        var c, d = [];
        for (c = 0; c < a.length; ++c) d.push(b(a[c], c));
        return d
    }

    function j(a, b) {
        return Object.prototype.hasOwnProperty.call(a, b)
    }

    function k(a, b) {
        for (var c in b) j(b, c) && (a[c] = b[c]);
        return j(b, "toString") && (a.toString = b.toString), j(b, "valueOf") && (a.valueOf = b.valueOf), a
    }

    function l(a, b, c, d) {
        return sb(a, b, c, d, !0).utc()
    }

    function m() {
        return {
            empty: !1,
            unusedTokens: [],
            unusedInput: [],
            overflow: -2,
            charsLeftOver: 0,
            nullInput: !1,
            invalidMonth: null,
            invalidFormat: !1,
            userInvalidated: !1,
            iso: !1,
            parsedDateParts: [],
            meridiem: null,
            rfc2822: !1,
            weekdayMismatch: !1
        }
    }

    function n(a) {
        return null == a._pf && (a._pf = m()), a._pf
    }

    function o(a) {
        if (null == a._isValid) {
            var b = n(a),
                c = ud.call(b.parsedDateParts, function(a) {
                    return null != a
                }),
                d = !isNaN(a._d.getTime()) && b.overflow < 0 && !b.empty && !b.invalidMonth && !b.invalidWeekday && !b.nullInput && !b.invalidFormat && !b.userInvalidated && (!b.meridiem || b.meridiem && c);
            if (a._strict && (d = d && 0 === b.charsLeftOver && 0 === b.unusedTokens.length && void 0 === b.bigHour), null != Object.isFrozen && Object.isFrozen(a)) return d;
            a._isValid = d
        }
        return a._isValid
    }

    function p(a) {
        var b = l(NaN);
        return null != a ? k(n(b), a) : n(b).userInvalidated = !0, b
    }

    function q(a, b) {
        var c, d, e;
        if (f(b._isAMomentObject) || (a._isAMomentObject = b._isAMomentObject), f(b._i) || (a._i = b._i), f(b._f) || (a._f = b._f), f(b._l) || (a._l = b._l), f(b._strict) || (a._strict = b._strict), f(b._tzm) || (a._tzm = b._tzm), f(b._isUTC) || (a._isUTC = b._isUTC), f(b._offset) || (a._offset = b._offset), f(b._pf) || (a._pf = n(b)), f(b._locale) || (a._locale = b._locale), vd.length > 0)
            for (c = 0; c < vd.length; c++) d = vd[c], e = b[d], f(e) || (a[d] = e);
        return a
    }

    function r(b) {
        q(this, b), this._d = new Date(null != b._d ? b._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), wd === !1 && (wd = !0, a.updateOffset(this), wd = !1)
    }

    function s(a) {
        return a instanceof r || null != a && null != a._isAMomentObject
    }

    function t(a) {
        return a < 0 ? Math.ceil(a) || 0 : Math.floor(a)
    }

    function u(a) {
        var b = +a,
            c = 0;
        return 0 !== b && isFinite(b) && (c = t(b)), c
    }

    function v(a, b, c) {
        var d, e = Math.min(a.length, b.length),
            f = Math.abs(a.length - b.length),
            g = 0;
        for (d = 0; d < e; d++)(c && a[d] !== b[d] || !c && u(a[d]) !== u(b[d])) && g++;
        return g + f
    }

    function w(b) {
        a.suppressDeprecationWarnings === !1 && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + b)
    }

    function x(b, c) {
        var d = !0;
        return k(function() {
            if (null != a.deprecationHandler && a.deprecationHandler(null, b), d) {
                for (var e, f = [], g = 0; g < arguments.length; g++) {
                    if (e = "", "object" == typeof arguments[g]) {
                        e += "\n[" + g + "] ";
                        for (var h in arguments[0]) e += h + ": " + arguments[0][h] + ", ";
                        e = e.slice(0, -2)
                    } else e = arguments[g];
                    f.push(e)
                }
                w(b + "\nArguments: " + Array.prototype.slice.call(f).join("") + "\n" + (new Error).stack), d = !1
            }
            return c.apply(this, arguments)
        }, c)
    }

    function y(b, c) {
        null != a.deprecationHandler && a.deprecationHandler(b, c), xd[b] || (w(c), xd[b] = !0)
    }

    function z(a) {
        return a instanceof Function || "[object Function]" === Object.prototype.toString.call(a)
    }

    function A(a) {
        var b, c;
        for (c in a) b = a[c], z(b) ? this[c] = b : this["_" + c] = b;
        this._config = a, this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source)
    }

    function B(a, b) {
        var c, e = k({}, a);
        for (c in b) j(b, c) && (d(a[c]) && d(b[c]) ? (e[c] = {}, k(e[c], a[c]), k(e[c], b[c])) : null != b[c] ? e[c] = b[c] : delete e[c]);
        for (c in a) j(a, c) && !j(b, c) && d(a[c]) && (e[c] = k({}, e[c]));
        return e
    }

    function C(a) {
        null != a && this.set(a)
    }

    function D(a, b, c) {
        var d = this._calendar[a] || this._calendar.sameElse;
        return z(d) ? d.call(b, c) : d
    }

    function E(a) {
        var b = this._longDateFormat[a],
            c = this._longDateFormat[a.toUpperCase()];
        return b || !c ? b : (this._longDateFormat[a] = c.replace(/MMMM|MM|DD|dddd/g, function(a) {
            return a.slice(1)
        }), this._longDateFormat[a])
    }

    function F() {
        return this._invalidDate
    }

    function G(a) {
        return this._ordinal.replace("%d", a)
    }

    function H(a, b, c, d) {
        var e = this._relativeTime[c];
        return z(e) ? e(a, b, c, d) : e.replace(/%d/i, a)
    }

    function I(a, b) {
        var c = this._relativeTime[a > 0 ? "future" : "past"];
        return z(c) ? c(b) : c.replace(/%s/i, b)
    }

    function J(a, b) {
        var c = a.toLowerCase();
        Hd[c] = Hd[c + "s"] = Hd[b] = a
    }

    function K(a) {
        return "string" == typeof a ? Hd[a] || Hd[a.toLowerCase()] : void 0
    }

    function L(a) {
        var b, c, d = {};
        for (c in a) j(a, c) && (b = K(c), b && (d[b] = a[c]));
        return d
    }

    function M(a, b) {
        Id[a] = b
    }

    function N(a) {
        var b = [];
        for (var c in a) b.push({
            unit: c,
            priority: Id[c]
        });
        return b.sort(function(a, b) {
            return a.priority - b.priority
        }), b
    }

    function O(b, c) {
        return function(d) {
            return null != d ? (Q(this, b, d), a.updateOffset(this, c), this) : P(this, b)
        }
    }

    function P(a, b) {
        return a.isValid() ? a._d["get" + (a._isUTC ? "UTC" : "") + b]() : NaN
    }

    function Q(a, b, c) {
        a.isValid() && a._d["set" + (a._isUTC ? "UTC" : "") + b](c)
    }

    function R(a) {
        return a = K(a), z(this[a]) ? this[a]() : this
    }

    function S(a, b) {
        if ("object" == typeof a) {
            a = L(a);
            for (var c = N(a), d = 0; d < c.length; d++) this[c[d].unit](a[c[d].unit])
        } else if (a = K(a), z(this[a])) return this[a](b);
        return this
    }

    function T(a, b, c) {
        var d = "" + Math.abs(a),
            e = b - d.length,
            f = a >= 0;
        return (f ? c ? "+" : "" : "-") + Math.pow(10, Math.max(0, e)).toString().substr(1) + d
    }

    function U(a, b, c, d) {
        var e = d;
        "string" == typeof d && (e = function() {
            return this[d]()
        }), a && (Md[a] = e), b && (Md[b[0]] = function() {
            return T(e.apply(this, arguments), b[1], b[2])
        }), c && (Md[c] = function() {
            return this.localeData().ordinal(e.apply(this, arguments), a)
        })
    }

    function V(a) {
        return a.match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, "") : a.replace(/\\/g, "")
    }

    function W(a) {
        var b, c, d = a.match(Jd);
        for (b = 0, c = d.length; b < c; b++) Md[d[b]] ? d[b] = Md[d[b]] : d[b] = V(d[b]);
        return function(b) {
            var e, f = "";
            for (e = 0; e < c; e++) f += z(d[e]) ? d[e].call(b, a) : d[e];
            return f
        }
    }

    function X(a, b) {
        return a.isValid() ? (b = Y(b, a.localeData()), Ld[b] = Ld[b] || W(b), Ld[b](a)) : a.localeData().invalidDate()
    }

    function Y(a, b) {
        function c(a) {
            return b.longDateFormat(a) || a
        }
        var d = 5;
        for (Kd.lastIndex = 0; d >= 0 && Kd.test(a);) a = a.replace(Kd, c), Kd.lastIndex = 0, d -= 1;
        return a
    }

    function Z(a, b, c) {
        ce[a] = z(b) ? b : function(a, d) {
            return a && c ? c : b
        }
    }

    function $(a, b) {
        return j(ce, a) ? ce[a](b._strict, b._locale) : new RegExp(_(a))
    }

    function _(a) {
        return aa(a.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(a, b, c, d, e) {
            return b || c || d || e
        }))
    }

    function aa(a) {
        return a.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")
    }

    function ba(a, b) {
        var c, d = b;
        for ("string" == typeof a && (a = [a]), g(b) && (d = function(a, c) {
                c[b] = u(a)
            }), c = 0; c < a.length; c++) de[a[c]] = d
    }

    function ca(a, b) {
        ba(a, function(a, c, d, e) {
            d._w = d._w || {}, b(a, d._w, d, e)
        })
    }

    function da(a, b, c) {
        null != b && j(de, a) && de[a](b, c._a, c, a)
    }

    function ea(a, b) {
        return new Date(Date.UTC(a, b + 1, 0)).getUTCDate()
    }

    function fa(a, b) {
        return a ? c(this._months) ? this._months[a.month()] : this._months[(this._months.isFormat || oe).test(b) ? "format" : "standalone"][a.month()] : c(this._months) ? this._months : this._months.standalone
    }

    function ga(a, b) {
        return a ? c(this._monthsShort) ? this._monthsShort[a.month()] : this._monthsShort[oe.test(b) ? "format" : "standalone"][a.month()] : c(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone
    }

    function ha(a, b, c) {
        var d, e, f, g = a.toLocaleLowerCase();
        if (!this._monthsParse)
            for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], d = 0; d < 12; ++d) f = l([2e3, d]), this._shortMonthsParse[d] = this.monthsShort(f, "").toLocaleLowerCase(), this._longMonthsParse[d] = this.months(f, "").toLocaleLowerCase();
        return c ? "MMM" === b ? (e = ne.call(this._shortMonthsParse, g), e !== -1 ? e : null) : (e = ne.call(this._longMonthsParse, g), e !== -1 ? e : null) : "MMM" === b ? (e = ne.call(this._shortMonthsParse, g), e !== -1 ? e : (e = ne.call(this._longMonthsParse, g), e !== -1 ? e : null)) : (e = ne.call(this._longMonthsParse, g), e !== -1 ? e : (e = ne.call(this._shortMonthsParse, g), e !== -1 ? e : null))
    }

    function ia(a, b, c) {
        var d, e, f;
        if (this._monthsParseExact) return ha.call(this, a, b, c);
        for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), d = 0; d < 12; d++) {
            if (e = l([2e3, d]), c && !this._longMonthsParse[d] && (this._longMonthsParse[d] = new RegExp("^" + this.months(e, "").replace(".", "") + "$", "i"), this._shortMonthsParse[d] = new RegExp("^" + this.monthsShort(e, "").replace(".", "") + "$", "i")), c || this._monthsParse[d] || (f = "^" + this.months(e, "") + "|^" + this.monthsShort(e, ""), this._monthsParse[d] = new RegExp(f.replace(".", ""), "i")), c && "MMMM" === b && this._longMonthsParse[d].test(a)) return d;
            if (c && "MMM" === b && this._shortMonthsParse[d].test(a)) return d;
            if (!c && this._monthsParse[d].test(a)) return d
        }
    }

    function ja(a, b) {
        var c;
        if (!a.isValid()) return a;
        if ("string" == typeof b)
            if (/^\d+$/.test(b)) b = u(b);
            else if (b = a.localeData().monthsParse(b), !g(b)) return a;
        return c = Math.min(a.date(), ea(a.year(), b)), a._d["set" + (a._isUTC ? "UTC" : "") + "Month"](b, c), a
    }

    function ka(b) {
        return null != b ? (ja(this, b), a.updateOffset(this, !0), this) : P(this, "Month")
    }

    function la() {
        return ea(this.year(), this.month())
    }

    function ma(a) {
        return this._monthsParseExact ? (j(this, "_monthsRegex") || oa.call(this), a ? this._monthsShortStrictRegex : this._monthsShortRegex) : (j(this, "_monthsShortRegex") || (this._monthsShortRegex = re), this._monthsShortStrictRegex && a ? this._monthsShortStrictRegex : this._monthsShortRegex)
    }

    function na(a) {
        return this._monthsParseExact ? (j(this, "_monthsRegex") || oa.call(this), a ? this._monthsStrictRegex : this._monthsRegex) : (j(this, "_monthsRegex") || (this._monthsRegex = se), this._monthsStrictRegex && a ? this._monthsStrictRegex : this._monthsRegex)
    }

    function oa() {
        function a(a, b) {
            return b.length - a.length
        }
        var b, c, d = [],
            e = [],
            f = [];
        for (b = 0; b < 12; b++) c = l([2e3, b]), d.push(this.monthsShort(c, "")), e.push(this.months(c, "")), f.push(this.months(c, "")), f.push(this.monthsShort(c, ""));
        for (d.sort(a), e.sort(a), f.sort(a), b = 0; b < 12; b++) d[b] = aa(d[b]), e[b] = aa(e[b]);
        for (b = 0; b < 24; b++) f[b] = aa(f[b]);
        this._monthsRegex = new RegExp("^(" + f.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + e.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + d.join("|") + ")", "i")
    }

    function pa(a) {
        return qa(a) ? 366 : 365
    }

    function qa(a) {
        return a % 4 === 0 && a % 100 !== 0 || a % 400 === 0
    }

    function ra() {
        return qa(this.year())
    }

    function sa(a, b, c, d, e, f, g) {
        var h = new Date(a, b, c, d, e, f, g);
        return a < 100 && a >= 0 && isFinite(h.getFullYear()) && h.setFullYear(a), h
    }

    function ta(a) {
        var b = new Date(Date.UTC.apply(null, arguments));
        return a < 100 && a >= 0 && isFinite(b.getUTCFullYear()) && b.setUTCFullYear(a), b
    }

    function ua(a, b, c) {
        var d = 7 + b - c,
            e = (7 + ta(a, 0, d).getUTCDay() - b) % 7;
        return -e + d - 1
    }

    function va(a, b, c, d, e) {
        var f, g, h = (7 + c - d) % 7,
            i = ua(a, d, e),
            j = 1 + 7 * (b - 1) + h + i;
        return j <= 0 ? (f = a - 1, g = pa(f) + j) : j > pa(a) ? (f = a + 1, g = j - pa(a)) : (f = a, g = j), {
            year: f,
            dayOfYear: g
        }
    }

    function wa(a, b, c) {
        var d, e, f = ua(a.year(), b, c),
            g = Math.floor((a.dayOfYear() - f - 1) / 7) + 1;
        return g < 1 ? (e = a.year() - 1, d = g + xa(e, b, c)) : g > xa(a.year(), b, c) ? (d = g - xa(a.year(), b, c), e = a.year() + 1) : (e = a.year(), d = g), {
            week: d,
            year: e
        }
    }

    function xa(a, b, c) {
        var d = ua(a, b, c),
            e = ua(a + 1, b, c);
        return (pa(a) - d + e) / 7
    }

    function ya(a) {
        return wa(a, this._week.dow, this._week.doy).week
    }

    function za() {
        return this._week.dow
    }

    function Aa() {
        return this._week.doy
    }

    function Ba(a) {
        var b = this.localeData().week(this);
        return null == a ? b : this.add(7 * (a - b), "d")
    }

    function Ca(a) {
        var b = wa(this, 1, 4).week;
        return null == a ? b : this.add(7 * (a - b), "d")
    }

    function Da(a, b) {
        return "string" != typeof a ? a : isNaN(a) ? (a = b.weekdaysParse(a), "number" == typeof a ? a : null) : parseInt(a, 10)
    }

    function Ea(a, b) {
        return "string" == typeof a ? b.weekdaysParse(a) % 7 || 7 : isNaN(a) ? null : a
    }

    function Fa(a, b) {
        return a ? c(this._weekdays) ? this._weekdays[a.day()] : this._weekdays[this._weekdays.isFormat.test(b) ? "format" : "standalone"][a.day()] : c(this._weekdays) ? this._weekdays : this._weekdays.standalone
    }

    function Ga(a) {
        return a ? this._weekdaysShort[a.day()] : this._weekdaysShort
    }

    function Ha(a) {
        return a ? this._weekdaysMin[a.day()] : this._weekdaysMin
    }

    function Ia(a, b, c) {
        var d, e, f, g = a.toLocaleLowerCase();
        if (!this._weekdaysParse)
            for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], d = 0; d < 7; ++d) f = l([2e3, 1]).day(d), this._minWeekdaysParse[d] = this.weekdaysMin(f, "").toLocaleLowerCase(), this._shortWeekdaysParse[d] = this.weekdaysShort(f, "").toLocaleLowerCase(), this._weekdaysParse[d] = this.weekdays(f, "").toLocaleLowerCase();
        return c ? "dddd" === b ? (e = ne.call(this._weekdaysParse, g), e !== -1 ? e : null) : "ddd" === b ? (e = ne.call(this._shortWeekdaysParse, g), e !== -1 ? e : null) : (e = ne.call(this._minWeekdaysParse, g), e !== -1 ? e : null) : "dddd" === b ? (e = ne.call(this._weekdaysParse, g), e !== -1 ? e : (e = ne.call(this._shortWeekdaysParse, g), e !== -1 ? e : (e = ne.call(this._minWeekdaysParse, g), e !== -1 ? e : null))) : "ddd" === b ? (e = ne.call(this._shortWeekdaysParse, g), e !== -1 ? e : (e = ne.call(this._weekdaysParse, g), e !== -1 ? e : (e = ne.call(this._minWeekdaysParse, g), e !== -1 ? e : null))) : (e = ne.call(this._minWeekdaysParse, g), e !== -1 ? e : (e = ne.call(this._weekdaysParse, g), e !== -1 ? e : (e = ne.call(this._shortWeekdaysParse, g), e !== -1 ? e : null)))
    }

    function Ja(a, b, c) {
        var d, e, f;
        if (this._weekdaysParseExact) return Ia.call(this, a, b, c);
        for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), d = 0; d < 7; d++) {
            if (e = l([2e3, 1]).day(d), c && !this._fullWeekdaysParse[d] && (this._fullWeekdaysParse[d] = new RegExp("^" + this.weekdays(e, "").replace(".", ".?") + "$", "i"), this._shortWeekdaysParse[d] = new RegExp("^" + this.weekdaysShort(e, "").replace(".", ".?") + "$", "i"), this._minWeekdaysParse[d] = new RegExp("^" + this.weekdaysMin(e, "").replace(".", ".?") + "$", "i")), this._weekdaysParse[d] || (f = "^" + this.weekdays(e, "") + "|^" + this.weekdaysShort(e, "") + "|^" + this.weekdaysMin(e, ""), this._weekdaysParse[d] = new RegExp(f.replace(".", ""), "i")), c && "dddd" === b && this._fullWeekdaysParse[d].test(a)) return d;
            if (c && "ddd" === b && this._shortWeekdaysParse[d].test(a)) return d;
            if (c && "dd" === b && this._minWeekdaysParse[d].test(a)) return d;
            if (!c && this._weekdaysParse[d].test(a)) return d
        }
    }

    function Ka(a) {
        if (!this.isValid()) return null != a ? this : NaN;
        var b = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
        return null != a ? (a = Da(a, this.localeData()), this.add(a - b, "d")) : b
    }

    function La(a) {
        if (!this.isValid()) return null != a ? this : NaN;
        var b = (this.day() + 7 - this.localeData()._week.dow) % 7;
        return null == a ? b : this.add(a - b, "d")
    }

    function Ma(a) {
        if (!this.isValid()) return null != a ? this : NaN;
        if (null != a) {
            var b = Ea(a, this.localeData());
            return this.day(this.day() % 7 ? b : b - 7)
        }
        return this.day() || 7
    }

    function Na(a) {
        return this._weekdaysParseExact ? (j(this, "_weekdaysRegex") || Qa.call(this), a ? this._weekdaysStrictRegex : this._weekdaysRegex) : (j(this, "_weekdaysRegex") || (this._weekdaysRegex = ye), this._weekdaysStrictRegex && a ? this._weekdaysStrictRegex : this._weekdaysRegex)
    }

    function Oa(a) {
        return this._weekdaysParseExact ? (j(this, "_weekdaysRegex") || Qa.call(this), a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (j(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = ze), this._weekdaysShortStrictRegex && a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex)
    }

    function Pa(a) {
        return this._weekdaysParseExact ? (j(this, "_weekdaysRegex") || Qa.call(this), a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (j(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = Ae), this._weekdaysMinStrictRegex && a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex)
    }

    function Qa() {
        function a(a, b) {
            return b.length - a.length
        }
        var b, c, d, e, f, g = [],
            h = [],
            i = [],
            j = [];
        for (b = 0; b < 7; b++) c = l([2e3, 1]).day(b), d = this.weekdaysMin(c, ""), e = this.weekdaysShort(c, ""), f = this.weekdays(c, ""), g.push(d), h.push(e), i.push(f), j.push(d), j.push(e), j.push(f);
        for (g.sort(a), h.sort(a), i.sort(a), j.sort(a), b = 0; b < 7; b++) h[b] = aa(h[b]), i[b] = aa(i[b]), j[b] = aa(j[b]);
        this._weekdaysRegex = new RegExp("^(" + j.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + h.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + g.join("|") + ")", "i")
    }

    function Ra() {
        return this.hours() % 12 || 12
    }

    function Sa() {
        return this.hours() || 24
    }

    function Ta(a, b) {
        U(a, 0, 0, function() {
            return this.localeData().meridiem(this.hours(), this.minutes(), b)
        })
    }

    function Ua(a, b) {
        return b._meridiemParse
    }

    function Va(a) {
        return "p" === (a + "").toLowerCase().charAt(0)
    }

    function Wa(a, b, c) {
        return a > 11 ? c ? "pm" : "PM" : c ? "am" : "AM"
    }

    function Xa(a) {
        return a ? a.toLowerCase().replace("_", "-") : a
    }

    function Ya(a) {
        for (var b, c, d, e, f = 0; f < a.length;) {
            for (e = Xa(a[f]).split("-"), b = e.length, c = Xa(a[f + 1]), c = c ? c.split("-") : null; b > 0;) {
                if (d = Za(e.slice(0, b).join("-"))) return d;
                if (c && c.length >= b && v(e, c, !0) >= b - 1) break;
                b--
            }
            f++
        }
        return null
    }

    function Za(a) {
        var b = null;
        if (!Fe[a] && "undefined" != typeof module && module && module.exports) try {
            b = Be._abbr, require("./locale/" + a), $a(b)
        } catch (a) {}
        return Fe[a]
    }

    function $a(a, b) {
        var c;
        return a && (c = f(b) ? bb(a) : _a(a, b), c && (Be = c)), Be._abbr
    }

    function _a(a, b) {
        if (null !== b) {
            var c = Ee;
            if (b.abbr = a, null != Fe[a]) y("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), c = Fe[a]._config;
            else if (null != b.parentLocale) {
                if (null == Fe[b.parentLocale]) return Ge[b.parentLocale] || (Ge[b.parentLocale] = []), Ge[b.parentLocale].push({
                    name: a,
                    config: b
                }), null;
                c = Fe[b.parentLocale]._config
            }
            return Fe[a] = new C(B(c, b)), Ge[a] && Ge[a].forEach(function(a) {
                _a(a.name, a.config)
            }), $a(a), Fe[a]
        }
        return delete Fe[a], null
    }

    function ab(a, b) {
        if (null != b) {
            var c, d = Ee;
            null != Fe[a] && (d = Fe[a]._config), b = B(d, b), c = new C(b), c.parentLocale = Fe[a], Fe[a] = c, $a(a)
        } else null != Fe[a] && (null != Fe[a].parentLocale ? Fe[a] = Fe[a].parentLocale : null != Fe[a] && delete Fe[a]);
        return Fe[a]
    }

    function bb(a) {
        var b;
        if (a && a._locale && a._locale._abbr && (a = a._locale._abbr), !a) return Be;
        if (!c(a)) {
            if (b = Za(a)) return b;
            a = [a]
        }
        return Ya(a)
    }

    function cb() {
        return Ad(Fe)
    }

    function db(a) {
        var b, c = a._a;
        return c && n(a).overflow === -2 && (b = c[fe] < 0 || c[fe] > 11 ? fe : c[ge] < 1 || c[ge] > ea(c[ee], c[fe]) ? ge : c[he] < 0 || c[he] > 24 || 24 === c[he] && (0 !== c[ie] || 0 !== c[je] || 0 !== c[ke]) ? he : c[ie] < 0 || c[ie] > 59 ? ie : c[je] < 0 || c[je] > 59 ? je : c[ke] < 0 || c[ke] > 999 ? ke : -1, n(a)._overflowDayOfYear && (b < ee || b > ge) && (b = ge), n(a)._overflowWeeks && b === -1 && (b = le), n(a)._overflowWeekday && b === -1 && (b = me), n(a).overflow = b), a
    }

    function eb(a) {
        var b, c, d, e, f, g, h = a._i,
            i = He.exec(h) || Ie.exec(h);
        if (i) {
            for (n(a).iso = !0, b = 0, c = Ke.length; b < c; b++)
                if (Ke[b][1].exec(i[1])) {
                    e = Ke[b][0], d = Ke[b][2] !== !1;
                    break
                }
            if (null == e) return void(a._isValid = !1);
            if (i[3]) {
                for (b = 0, c = Le.length; b < c; b++)
                    if (Le[b][1].exec(i[3])) {
                        f = (i[2] || " ") + Le[b][0];
                        break
                    }
                if (null == f) return void(a._isValid = !1)
            }
            if (!d && null != f) return void(a._isValid = !1);
            if (i[4]) {
                if (!Je.exec(i[4])) return void(a._isValid = !1);
                g = "Z"
            }
            a._f = e + (f || "") + (g || ""), lb(a)
        } else a._isValid = !1
    }

    function fb(a) {
        var b, c, d, e, f, g, h, i, j = {
                " GMT": " +0000",
                " EDT": " -0400",
                " EST": " -0500",
                " CDT": " -0500",
                " CST": " -0600",
                " MDT": " -0600",
                " MST": " -0700",
                " PDT": " -0700",
                " PST": " -0800"
            },
            k = "YXWVUTSRQPONZABCDEFGHIKLM";
        if (b = a._i.replace(/\([^\)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s|\s$/g, ""), c = Ne.exec(b)) {
            if (d = c[1] ? "ddd" + (5 === c[1].length ? ", " : " ") : "", e = "D MMM " + (c[2].length > 10 ? "YYYY " : "YY "), f = "HH:mm" + (c[4] ? ":ss" : ""), c[1]) {
                var l = new Date(c[2]),
                    m = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][l.getDay()];
                if (c[1].substr(0, 3) !== m) return n(a).weekdayMismatch = !0, void(a._isValid = !1)
            }
            switch (c[5].length) {
                case 2:
                    0 === i ? h = " +0000" : (i = k.indexOf(c[5][1].toUpperCase()) - 12, h = (i < 0 ? " -" : " +") + ("" + i).replace(/^-?/, "0").match(/..$/)[0] + "00");
                    break;
                case 4:
                    h = j[c[5]];
                    break;
                default:
                    h = j[" GMT"]
            }
            c[5] = h, a._i = c.splice(1).join(""), g = " ZZ", a._f = d + e + f + g, lb(a), n(a).rfc2822 = !0
        } else a._isValid = !1
    }

    function gb(b) {
        var c = Me.exec(b._i);
        return null !== c ? void(b._d = new Date(+c[1])) : (eb(b), void(b._isValid === !1 && (delete b._isValid, fb(b), b._isValid === !1 && (delete b._isValid, a.createFromInputFallback(b)))))
    }

    function hb(a, b, c) {
        return null != a ? a : null != b ? b : c
    }

    function ib(b) {
        var c = new Date(a.now());
        return b._useUTC ? [c.getUTCFullYear(), c.getUTCMonth(), c.getUTCDate()] : [c.getFullYear(), c.getMonth(), c.getDate()]
    }

    function jb(a) {
        var b, c, d, e, f = [];
        if (!a._d) {
            for (d = ib(a), a._w && null == a._a[ge] && null == a._a[fe] && kb(a), null != a._dayOfYear && (e = hb(a._a[ee], d[ee]), (a._dayOfYear > pa(e) || 0 === a._dayOfYear) && (n(a)._overflowDayOfYear = !0), c = ta(e, 0, a._dayOfYear), a._a[fe] = c.getUTCMonth(), a._a[ge] = c.getUTCDate()), b = 0; b < 3 && null == a._a[b]; ++b) a._a[b] = f[b] = d[b];
            for (; b < 7; b++) a._a[b] = f[b] = null == a._a[b] ? 2 === b ? 1 : 0 : a._a[b];
            24 === a._a[he] && 0 === a._a[ie] && 0 === a._a[je] && 0 === a._a[ke] && (a._nextDay = !0, a._a[he] = 0), a._d = (a._useUTC ? ta : sa).apply(null, f), null != a._tzm && a._d.setUTCMinutes(a._d.getUTCMinutes() - a._tzm), a._nextDay && (a._a[he] = 24)
        }
    }

    function kb(a) {
        var b, c, d, e, f, g, h, i;
        if (b = a._w, null != b.GG || null != b.W || null != b.E) f = 1, g = 4, c = hb(b.GG, a._a[ee], wa(tb(), 1, 4).year), d = hb(b.W, 1), e = hb(b.E, 1), (e < 1 || e > 7) && (i = !0);
        else {
            f = a._locale._week.dow, g = a._locale._week.doy;
            var j = wa(tb(), f, g);
            c = hb(b.gg, a._a[ee], j.year), d = hb(b.w, j.week), null != b.d ? (e = b.d, (e < 0 || e > 6) && (i = !0)) : null != b.e ? (e = b.e + f, (b.e < 0 || b.e > 6) && (i = !0)) : e = f
        }
        d < 1 || d > xa(c, f, g) ? n(a)._overflowWeeks = !0 : null != i ? n(a)._overflowWeekday = !0 : (h = va(c, d, e, f, g), a._a[ee] = h.year, a._dayOfYear = h.dayOfYear)
    }

    function lb(b) {
        if (b._f === a.ISO_8601) return void eb(b);
        if (b._f === a.RFC_2822) return void fb(b);
        b._a = [], n(b).empty = !0;
        var c, d, e, f, g, h = "" + b._i,
            i = h.length,
            j = 0;
        for (e = Y(b._f, b._locale).match(Jd) || [], c = 0; c < e.length; c++) f = e[c], d = (h.match($(f, b)) || [])[0], d && (g = h.substr(0, h.indexOf(d)), g.length > 0 && n(b).unusedInput.push(g), h = h.slice(h.indexOf(d) + d.length), j += d.length), Md[f] ? (d ? n(b).empty = !1 : n(b).unusedTokens.push(f), da(f, d, b)) : b._strict && !d && n(b).unusedTokens.push(f);
        n(b).charsLeftOver = i - j, h.length > 0 && n(b).unusedInput.push(h), b._a[he] <= 12 && n(b).bigHour === !0 && b._a[he] > 0 && (n(b).bigHour = void 0), n(b).parsedDateParts = b._a.slice(0), n(b).meridiem = b._meridiem, b._a[he] = mb(b._locale, b._a[he], b._meridiem), jb(b), db(b)
    }

    function mb(a, b, c) {
        var d;
        return null == c ? b : null != a.meridiemHour ? a.meridiemHour(b, c) : null != a.isPM ? (d = a.isPM(c), d && b < 12 && (b += 12), d || 12 !== b || (b = 0), b) : b
    }

    function nb(a) {
        var b, c, d, e, f;
        if (0 === a._f.length) return n(a).invalidFormat = !0, void(a._d = new Date(NaN));
        for (e = 0; e < a._f.length; e++) f = 0, b = q({}, a), null != a._useUTC && (b._useUTC = a._useUTC), b._f = a._f[e], lb(b), o(b) && (f += n(b).charsLeftOver, f += 10 * n(b).unusedTokens.length, n(b).score = f, (null == d || f < d) && (d = f, c = b));
        k(a, c || b)
    }

    function ob(a) {
        if (!a._d) {
            var b = L(a._i);
            a._a = i([b.year, b.month, b.day || b.date, b.hour, b.minute, b.second, b.millisecond], function(a) {
                return a && parseInt(a, 10)
            }), jb(a)
        }
    }

    function pb(a) {
        var b = new r(db(qb(a)));
        return b._nextDay && (b.add(1, "d"), b._nextDay = void 0), b
    }

    function qb(a) {
        var b = a._i,
            d = a._f;
        return a._locale = a._locale || bb(a._l), null === b || void 0 === d && "" === b ? p({
            nullInput: !0
        }) : ("string" == typeof b && (a._i = b = a._locale.preparse(b)), s(b) ? new r(db(b)) : (h(b) ? a._d = b : c(d) ? nb(a) : d ? lb(a) : rb(a), o(a) || (a._d = null), a))
    }

    function rb(b) {
        var e = b._i;
        f(e) ? b._d = new Date(a.now()) : h(e) ? b._d = new Date(e.valueOf()) : "string" == typeof e ? gb(b) : c(e) ? (b._a = i(e.slice(0), function(a) {
            return parseInt(a, 10)
        }), jb(b)) : d(e) ? ob(b) : g(e) ? b._d = new Date(e) : a.createFromInputFallback(b)
    }

    function sb(a, b, f, g, h) {
        var i = {};
        return f !== !0 && f !== !1 || (g = f, f = void 0), (d(a) && e(a) || c(a) && 0 === a.length) && (a = void 0), i._isAMomentObject = !0, i._useUTC = i._isUTC = h, i._l = f, i._i = a, i._f = b, i._strict = g, pb(i)
    }

    function tb(a, b, c, d) {
        return sb(a, b, c, d, !1)
    }

    function ub(a, b) {
        var d, e;
        if (1 === b.length && c(b[0]) && (b = b[0]), !b.length) return tb();
        for (d = b[0], e = 1; e < b.length; ++e) b[e].isValid() && !b[e][a](d) || (d = b[e]);
        return d
    }

    function vb() {
        var a = [].slice.call(arguments, 0);
        return ub("isBefore", a)
    }

    function wb() {
        var a = [].slice.call(arguments, 0);
        return ub("isAfter", a)
    }

    function xb(a) {
        for (var b in a)
            if (Re.indexOf(b) === -1 || null != a[b] && isNaN(a[b])) return !1;
        for (var c = !1, d = 0; d < Re.length; ++d)
            if (a[Re[d]]) {
                if (c) return !1;
                parseFloat(a[Re[d]]) !== u(a[Re[d]]) && (c = !0)
            }
        return !0
    }

    function yb() {
        return this._isValid
    }

    function zb() {
        return Sb(NaN)
    }

    function Ab(a) {
        var b = L(a),
            c = b.year || 0,
            d = b.quarter || 0,
            e = b.month || 0,
            f = b.week || 0,
            g = b.day || 0,
            h = b.hour || 0,
            i = b.minute || 0,
            j = b.second || 0,
            k = b.millisecond || 0;
        this._isValid = xb(b), this._milliseconds = +k + 1e3 * j + 6e4 * i + 1e3 * h * 60 * 60, this._days = +g + 7 * f, this._months = +e + 3 * d + 12 * c, this._data = {}, this._locale = bb(), this._bubble()
    }

    function Bb(a) {
        return a instanceof Ab
    }

    function Cb(a) {
        return a < 0 ? Math.round(-1 * a) * -1 : Math.round(a)
    }

    function Db(a, b) {
        U(a, 0, 0, function() {
            var a = this.utcOffset(),
                c = "+";
            return a < 0 && (a = -a, c = "-"), c + T(~~(a / 60), 2) + b + T(~~a % 60, 2)
        })
    }

    function Eb(a, b) {
        var c = (b || "").match(a);
        if (null === c) return null;
        var d = c[c.length - 1] || [],
            e = (d + "").match(Se) || ["-", 0, 0],
            f = +(60 * e[1]) + u(e[2]);
        return 0 === f ? 0 : "+" === e[0] ? f : -f
    }

    function Fb(b, c) {
        var d, e;
        return c._isUTC ? (d = c.clone(), e = (s(b) || h(b) ? b.valueOf() : tb(b).valueOf()) - d.valueOf(), d._d.setTime(d._d.valueOf() + e), a.updateOffset(d, !1), d) : tb(b).local()
    }

    function Gb(a) {
        return 15 * -Math.round(a._d.getTimezoneOffset() / 15)
    }

    function Hb(b, c, d) {
        var e, f = this._offset || 0;
        if (!this.isValid()) return null != b ? this : NaN;
        if (null != b) {
            if ("string" == typeof b) {
                if (b = Eb(_d, b), null === b) return this
            } else Math.abs(b) < 16 && !d && (b = 60 * b);
            return !this._isUTC && c && (e = Gb(this)), this._offset = b, this._isUTC = !0, null != e && this.add(e, "m"), f !== b && (!c || this._changeInProgress ? Xb(this, Sb(b - f, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, a.updateOffset(this, !0), this._changeInProgress = null)), this
        }
        return this._isUTC ? f : Gb(this)
    }

    function Ib(a, b) {
        return null != a ? ("string" != typeof a && (a = -a), this.utcOffset(a, b), this) : -this.utcOffset()
    }

    function Jb(a) {
        return this.utcOffset(0, a)
    }

    function Kb(a) {
        return this._isUTC && (this.utcOffset(0, a), this._isUTC = !1, a && this.subtract(Gb(this), "m")), this
    }

    function Lb() {
        if (null != this._tzm) this.utcOffset(this._tzm, !1, !0);
        else if ("string" == typeof this._i) {
            var a = Eb($d, this._i);
            null != a ? this.utcOffset(a) : this.utcOffset(0, !0)
        }
        return this
    }

    function Mb(a) {
        return !!this.isValid() && (a = a ? tb(a).utcOffset() : 0, (this.utcOffset() - a) % 60 === 0)
    }

    function Nb() {
        return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset()
    }

    function Ob() {
        if (!f(this._isDSTShifted)) return this._isDSTShifted;
        var a = {};
        if (q(a, this), a = qb(a), a._a) {
            var b = a._isUTC ? l(a._a) : tb(a._a);
            this._isDSTShifted = this.isValid() && v(a._a, b.toArray()) > 0
        } else this._isDSTShifted = !1;
        return this._isDSTShifted
    }

    function Pb() {
        return !!this.isValid() && !this._isUTC
    }

    function Qb() {
        return !!this.isValid() && this._isUTC
    }

    function Rb() {
        return !!this.isValid() && (this._isUTC && 0 === this._offset)
    }

    function Sb(a, b) {
        var c, d, e, f = a,
            h = null;
        return Bb(a) ? f = {
            ms: a._milliseconds,
            d: a._days,
            M: a._months
        } : g(a) ? (f = {}, b ? f[b] = a : f.milliseconds = a) : (h = Te.exec(a)) ? (c = "-" === h[1] ? -1 : 1, f = {
            y: 0,
            d: u(h[ge]) * c,
            h: u(h[he]) * c,
            m: u(h[ie]) * c,
            s: u(h[je]) * c,
            ms: u(Cb(1e3 * h[ke])) * c
        }) : (h = Ue.exec(a)) ? (c = "-" === h[1] ? -1 : 1, f = {
            y: Tb(h[2], c),
            M: Tb(h[3], c),
            w: Tb(h[4], c),
            d: Tb(h[5], c),
            h: Tb(h[6], c),
            m: Tb(h[7], c),
            s: Tb(h[8], c)
        }) : null == f ? f = {} : "object" == typeof f && ("from" in f || "to" in f) && (e = Vb(tb(f.from), tb(f.to)), f = {}, f.ms = e.milliseconds, f.M = e.months), d = new Ab(f), Bb(a) && j(a, "_locale") && (d._locale = a._locale), d
    }

    function Tb(a, b) {
        var c = a && parseFloat(a.replace(",", "."));
        return (isNaN(c) ? 0 : c) * b
    }

    function Ub(a, b) {
        var c = {
            milliseconds: 0,
            months: 0
        };
        return c.months = b.month() - a.month() + 12 * (b.year() - a.year()), a.clone().add(c.months, "M").isAfter(b) && --c.months, c.milliseconds = +b - +a.clone().add(c.months, "M"), c
    }

    function Vb(a, b) {
        var c;
        return a.isValid() && b.isValid() ? (b = Fb(b, a), a.isBefore(b) ? c = Ub(a, b) : (c = Ub(b, a), c.milliseconds = -c.milliseconds, c.months = -c.months), c) : {
            milliseconds: 0,
            months: 0
        }
    }

    function Wb(a, b) {
        return function(c, d) {
            var e, f;
            return null === d || isNaN(+d) || (y(b, "moment()." + b + "(period, number) is deprecated. Please use moment()." + b + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), f = c, c = d, d = f), c = "string" == typeof c ? +c : c, e = Sb(c, d), Xb(this, e, a), this
        }
    }

    function Xb(b, c, d, e) {
        var f = c._milliseconds,
            g = Cb(c._days),
            h = Cb(c._months);
        b.isValid() && (e = null == e || e, f && b._d.setTime(b._d.valueOf() + f * d), g && Q(b, "Date", P(b, "Date") + g * d), h && ja(b, P(b, "Month") + h * d), e && a.updateOffset(b, g || h))
    }

    function Yb(a, b) {
        var c = a.diff(b, "days", !0);
        return c < -6 ? "sameElse" : c < -1 ? "lastWeek" : c < 0 ? "lastDay" : c < 1 ? "sameDay" : c < 2 ? "nextDay" : c < 7 ? "nextWeek" : "sameElse"
    }

    function Zb(b, c) {
        var d = b || tb(),
            e = Fb(d, this).startOf("day"),
            f = a.calendarFormat(this, e) || "sameElse",
            g = c && (z(c[f]) ? c[f].call(this, d) : c[f]);
        return this.format(g || this.localeData().calendar(f, this, tb(d)))
    }

    function $b() {
        return new r(this)
    }

    function _b(a, b) {
        var c = s(a) ? a : tb(a);
        return !(!this.isValid() || !c.isValid()) && (b = K(f(b) ? "millisecond" : b), "millisecond" === b ? this.valueOf() > c.valueOf() : c.valueOf() < this.clone().startOf(b).valueOf())
    }

    function ac(a, b) {
        var c = s(a) ? a : tb(a);
        return !(!this.isValid() || !c.isValid()) && (b = K(f(b) ? "millisecond" : b), "millisecond" === b ? this.valueOf() < c.valueOf() : this.clone().endOf(b).valueOf() < c.valueOf())
    }

    function bc(a, b, c, d) {
        return d = d || "()", ("(" === d[0] ? this.isAfter(a, c) : !this.isBefore(a, c)) && (")" === d[1] ? this.isBefore(b, c) : !this.isAfter(b, c))
    }

    function cc(a, b) {
        var c, d = s(a) ? a : tb(a);
        return !(!this.isValid() || !d.isValid()) && (b = K(b || "millisecond"), "millisecond" === b ? this.valueOf() === d.valueOf() : (c = d.valueOf(), this.clone().startOf(b).valueOf() <= c && c <= this.clone().endOf(b).valueOf()))
    }

    function dc(a, b) {
        return this.isSame(a, b) || this.isAfter(a, b)
    }

    function ec(a, b) {
        return this.isSame(a, b) || this.isBefore(a, b)
    }

    function fc(a, b, c) {
        var d, e, f, g;
        return this.isValid() ? (d = Fb(a, this), d.isValid() ? (e = 6e4 * (d.utcOffset() - this.utcOffset()), b = K(b), "year" === b || "month" === b || "quarter" === b ? (g = gc(this, d), "quarter" === b ? g /= 3 : "year" === b && (g /= 12)) : (f = this - d, g = "second" === b ? f / 1e3 : "minute" === b ? f / 6e4 : "hour" === b ? f / 36e5 : "day" === b ? (f - e) / 864e5 : "week" === b ? (f - e) / 6048e5 : f), c ? g : t(g)) : NaN) : NaN
    }

    function gc(a, b) {
        var c, d, e = 12 * (b.year() - a.year()) + (b.month() - a.month()),
            f = a.clone().add(e, "months");
        return b - f < 0 ? (c = a.clone().add(e - 1, "months"), d = (b - f) / (f - c)) : (c = a.clone().add(e + 1, "months"), d = (b - f) / (c - f)), -(e + d) || 0
    }

    function hc() {
        return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")
    }

    function ic() {
        if (!this.isValid()) return null;
        var a = this.clone().utc();
        return a.year() < 0 || a.year() > 9999 ? X(a, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : z(Date.prototype.toISOString) ? this.toDate().toISOString() : X(a, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")
    }

    function jc() {
        if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)";
        var a = "moment",
            b = "";
        this.isLocal() || (a = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", b = "Z");
        var c = "[" + a + '("]',
            d = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY",
            e = "-MM-DD[T]HH:mm:ss.SSS",
            f = b + '[")]';
        return this.format(c + d + e + f)
    }

    function kc(b) {
        b || (b = this.isUtc() ? a.defaultFormatUtc : a.defaultFormat);
        var c = X(this, b);
        return this.localeData().postformat(c)
    }

    function lc(a, b) {
        return this.isValid() && (s(a) && a.isValid() || tb(a).isValid()) ? Sb({
            to: this,
            from: a
        }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate()
    }

    function mc(a) {
        return this.from(tb(), a)
    }

    function nc(a, b) {
        return this.isValid() && (s(a) && a.isValid() || tb(a).isValid()) ? Sb({
            from: this,
            to: a
        }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate()
    }

    function oc(a) {
        return this.to(tb(), a)
    }

    function pc(a) {
        var b;
        return void 0 === a ? this._locale._abbr : (b = bb(a), null != b && (this._locale = b), this)
    }

    function qc() {
        return this._locale
    }

    function rc(a) {
        switch (a = K(a)) {
            case "year":
                this.month(0);
            case "quarter":
            case "month":
                this.date(1);
            case "week":
            case "isoWeek":
            case "day":
            case "date":
                this.hours(0);
            case "hour":
                this.minutes(0);
            case "minute":
                this.seconds(0);
            case "second":
                this.milliseconds(0)
        }
        return "week" === a && this.weekday(0), "isoWeek" === a && this.isoWeekday(1), "quarter" === a && this.month(3 * Math.floor(this.month() / 3)), this
    }

    function sc(a) {
        return a = K(a), void 0 === a || "millisecond" === a ? this : ("date" === a && (a = "day"), this.startOf(a).add(1, "isoWeek" === a ? "week" : a).subtract(1, "ms"))
    }

    function tc() {
        return this._d.valueOf() - 6e4 * (this._offset || 0)
    }

    function uc() {
        return Math.floor(this.valueOf() / 1e3)
    }

    function vc() {
        return new Date(this.valueOf())
    }

    function wc() {
        var a = this;
        return [a.year(), a.month(), a.date(), a.hour(), a.minute(), a.second(), a.millisecond()]
    }

    function xc() {
        var a = this;
        return {
            years: a.year(),
            months: a.month(),
            date: a.date(),
            hours: a.hours(),
            minutes: a.minutes(),
            seconds: a.seconds(),
            milliseconds: a.milliseconds()
        }
    }

    function yc() {
        return this.isValid() ? this.toISOString() : null
    }

    function zc() {
        return o(this)
    }

    function Ac() {
        return k({}, n(this))
    }

    function Bc() {
        return n(this).overflow
    }

    function Cc() {
        return {
            input: this._i,
            format: this._f,
            locale: this._locale,
            isUTC: this._isUTC,
            strict: this._strict
        }
    }

    function Dc(a, b) {
        U(0, [a, a.length], 0, b)
    }

    function Ec(a) {
        return Ic.call(this, a, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy)
    }

    function Fc(a) {
        return Ic.call(this, a, this.isoWeek(), this.isoWeekday(), 1, 4)
    }

    function Gc() {
        return xa(this.year(), 1, 4)
    }

    function Hc() {
        var a = this.localeData()._week;
        return xa(this.year(), a.dow, a.doy)
    }

    function Ic(a, b, c, d, e) {
        var f;
        return null == a ? wa(this, d, e).year : (f = xa(a, d, e), b > f && (b = f), Jc.call(this, a, b, c, d, e))
    }

    function Jc(a, b, c, d, e) {
        var f = va(a, b, c, d, e),
            g = ta(f.year, 0, f.dayOfYear);
        return this.year(g.getUTCFullYear()), this.month(g.getUTCMonth()), this.date(g.getUTCDate()), this
    }

    function Kc(a) {
        return null == a ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (a - 1) + this.month() % 3)
    }

    function Lc(a) {
        var b = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1;
        return null == a ? b : this.add(a - b, "d")
    }

    function Mc(a, b) {
        b[ke] = u(1e3 * ("0." + a))
    }

    function Nc() {
        return this._isUTC ? "UTC" : ""
    }

    function Oc() {
        return this._isUTC ? "Coordinated Universal Time" : ""
    }

    function Pc(a) {
        return tb(1e3 * a)
    }

    function Qc() {
        return tb.apply(null, arguments).parseZone()
    }

    function Rc(a) {
        return a
    }

    function Sc(a, b, c, d) {
        var e = bb(),
            f = l().set(d, b);
        return e[c](f, a)
    }

    function Tc(a, b, c) {
        if (g(a) && (b = a, a = void 0), a = a || "", null != b) return Sc(a, b, c, "month");
        var d, e = [];
        for (d = 0; d < 12; d++) e[d] = Sc(a, d, c, "month");
        return e
    }

    function Uc(a, b, c, d) {
        "boolean" == typeof a ? (g(b) && (c = b, b = void 0), b = b || "") : (b = a, c = b, a = !1, g(b) && (c = b, b = void 0), b = b || "");
        var e = bb(),
            f = a ? e._week.dow : 0;
        if (null != c) return Sc(b, (c + f) % 7, d, "day");
        var h, i = [];
        for (h = 0; h < 7; h++) i[h] = Sc(b, (h + f) % 7, d, "day");
        return i
    }

    function Vc(a, b) {
        return Tc(a, b, "months")
    }

    function Wc(a, b) {
        return Tc(a, b, "monthsShort")
    }

    function Xc(a, b, c) {
        return Uc(a, b, c, "weekdays")
    }

    function Yc(a, b, c) {
        return Uc(a, b, c, "weekdaysShort")
    }

    function Zc(a, b, c) {
        return Uc(a, b, c, "weekdaysMin")
    }

    function $c() {
        var a = this._data;
        return this._milliseconds = df(this._milliseconds), this._days = df(this._days), this._months = df(this._months), a.milliseconds = df(a.milliseconds), a.seconds = df(a.seconds), a.minutes = df(a.minutes), a.hours = df(a.hours), a.months = df(a.months), a.years = df(a.years), this
    }

    function _c(a, b, c, d) {
        var e = Sb(b, c);
        return a._milliseconds += d * e._milliseconds, a._days += d * e._days, a._months += d * e._months, a._bubble()
    }

    function ad(a, b) {
        return _c(this, a, b, 1)
    }

    function bd(a, b) {
        return _c(this, a, b, -1)
    }

    function cd(a) {
        return a < 0 ? Math.floor(a) : Math.ceil(a)
    }

    function dd() {
        var a, b, c, d, e, f = this._milliseconds,
            g = this._days,
            h = this._months,
            i = this._data;
        return f >= 0 && g >= 0 && h >= 0 || f <= 0 && g <= 0 && h <= 0 || (f += 864e5 * cd(fd(h) + g), g = 0, h = 0), i.milliseconds = f % 1e3, a = t(f / 1e3), i.seconds = a % 60, b = t(a / 60), i.minutes = b % 60, c = t(b / 60), i.hours = c % 24, g += t(c / 24), e = t(ed(g)), h += e, g -= cd(fd(e)), d = t(h / 12), h %= 12, i.days = g, i.months = h, i.years = d, this
    }

    function ed(a) {
        return 4800 * a / 146097
    }

    function fd(a) {
        return 146097 * a / 4800
    }

    function gd(a) {
        if (!this.isValid()) return NaN;
        var b, c, d = this._milliseconds;
        if (a = K(a), "month" === a || "year" === a) return b = this._days + d / 864e5, c = this._months + ed(b), "month" === a ? c : c / 12;
        switch (b = this._days + Math.round(fd(this._months)), a) {
            case "week":
                return b / 7 + d / 6048e5;
            case "day":
                return b + d / 864e5;
            case "hour":
                return 24 * b + d / 36e5;
            case "minute":
                return 1440 * b + d / 6e4;
            case "second":
                return 86400 * b + d / 1e3;
            case "millisecond":
                return Math.floor(864e5 * b) + d;
            default:
                throw new Error("Unknown unit " + a)
        }
    }

    function hd() {
        return this.isValid() ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * u(this._months / 12) : NaN
    }

    function id(a) {
        return function() {
            return this.as(a)
        }
    }

    function jd(a) {
        return a = K(a), this.isValid() ? this[a + "s"]() : NaN
    }

    function kd(a) {
        return function() {
            return this.isValid() ? this._data[a] : NaN
        }
    }

    function ld() {
        return t(this.days() / 7)
    }

    function md(a, b, c, d, e) {
        return e.relativeTime(b || 1, !!c, a, d)
    }

    function nd(a, b, c) {
        var d = Sb(a).abs(),
            e = uf(d.as("s")),
            f = uf(d.as("m")),
            g = uf(d.as("h")),
            h = uf(d.as("d")),
            i = uf(d.as("M")),
            j = uf(d.as("y")),
            k = e <= vf.ss && ["s", e] || e < vf.s && ["ss", e] || f <= 1 && ["m"] || f < vf.m && ["mm", f] || g <= 1 && ["h"] || g < vf.h && ["hh", g] || h <= 1 && ["d"] || h < vf.d && ["dd", h] || i <= 1 && ["M"] || i < vf.M && ["MM", i] || j <= 1 && ["y"] || ["yy", j];
        return k[2] = b, k[3] = +a > 0, k[4] = c, md.apply(null, k)
    }

    function od(a) {
        return void 0 === a ? uf : "function" == typeof a && (uf = a, !0)
    }

    function pd(a, b) {
        return void 0 !== vf[a] && (void 0 === b ? vf[a] : (vf[a] = b, "s" === a && (vf.ss = b - 1), !0))
    }

    function qd(a) {
        if (!this.isValid()) return this.localeData().invalidDate();
        var b = this.localeData(),
            c = nd(this, !a, b);
        return a && (c = b.pastFuture(+this, c)), b.postformat(c)
    }

    function rd() {
        if (!this.isValid()) return this.localeData().invalidDate();
        var a, b, c, d = wf(this._milliseconds) / 1e3,
            e = wf(this._days),
            f = wf(this._months);
        a = t(d / 60), b = t(a / 60), d %= 60, a %= 60, c = t(f / 12), f %= 12;
        var g = c,
            h = f,
            i = e,
            j = b,
            k = a,
            l = d,
            m = this.asSeconds();
        return m ? (m < 0 ? "-" : "") + "P" + (g ? g + "Y" : "") + (h ? h + "M" : "") + (i ? i + "D" : "") + (j || k || l ? "T" : "") + (j ? j + "H" : "") + (k ? k + "M" : "") + (l ? l + "S" : "") : "P0D"
    }
    var sd, td;
    td = Array.prototype.some ? Array.prototype.some : function(a) {
        for (var b = Object(this), c = b.length >>> 0, d = 0; d < c; d++)
            if (d in b && a.call(this, b[d], d, b)) return !0;
        return !1
    };
    var ud = td,
        vd = a.momentProperties = [],
        wd = !1,
        xd = {};
    a.suppressDeprecationWarnings = !1, a.deprecationHandler = null;
    var yd;
    yd = Object.keys ? Object.keys : function(a) {
        var b, c = [];
        for (b in a) j(a, b) && c.push(b);
        return c
    };
    var zd, Ad = yd,
        Bd = {
            sameDay: "[Today at] LT",
            nextDay: "[Tomorrow at] LT",
            nextWeek: "dddd [at] LT",
            lastDay: "[Yesterday at] LT",
            lastWeek: "[Last] dddd [at] LT",
            sameElse: "L"
        },
        Cd = {
            LTS: "h:mm:ss A",
            LT: "h:mm A",
            L: "MM/DD/YYYY",
            LL: "MMMM D, YYYY",
            LLL: "MMMM D, YYYY h:mm A",
            LLLL: "dddd, MMMM D, YYYY h:mm A"
        },
        Dd = "Invalid date",
        Ed = "%d",
        Fd = /\d{1,2}/,
        Gd = {
            future: "in %s",
            past: "%s ago",
            s: "a few seconds",
            ss: "%d seconds",
            m: "a minute",
            mm: "%d minutes",
            h: "an hour",
            hh: "%d hours",
            d: "a day",
            dd: "%d days",
            M: "a month",
            MM: "%d months",
            y: "a year",
            yy: "%d years"
        },
        Hd = {},
        Id = {},
        Jd = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
        Kd = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
        Ld = {},
        Md = {},
        Nd = /\d/,
        Od = /\d\d/,
        Pd = /\d{3}/,
        Qd = /\d{4}/,
        Rd = /[+-]?\d{6}/,
        Sd = /\d\d?/,
        Td = /\d\d\d\d?/,
        Ud = /\d\d\d\d\d\d?/,
        Vd = /\d{1,3}/,
        Wd = /\d{1,4}/,
        Xd = /[+-]?\d{1,6}/,
        Yd = /\d+/,
        Zd = /[+-]?\d+/,
        $d = /Z|[+-]\d\d:?\d\d/gi,
        _d = /Z|[+-]\d\d(?::?\d\d)?/gi,
        ae = /[+-]?\d+(\.\d{1,3})?/,
        be = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,
        ce = {},
        de = {},
        ee = 0,
        fe = 1,
        ge = 2,
        he = 3,
        ie = 4,
        je = 5,
        ke = 6,
        le = 7,
        me = 8;
    zd = Array.prototype.indexOf ? Array.prototype.indexOf : function(a) {
        var b;
        for (b = 0; b < this.length; ++b)
            if (this[b] === a) return b;
        return -1
    };
    var ne = zd;
    U("M", ["MM", 2], "Mo", function() {
        return this.month() + 1
    }), U("MMM", 0, 0, function(a) {
        return this.localeData().monthsShort(this, a)
    }), U("MMMM", 0, 0, function(a) {
        return this.localeData().months(this, a)
    }), J("month", "M"), M("month", 8), Z("M", Sd), Z("MM", Sd, Od), Z("MMM", function(a, b) {
        return b.monthsShortRegex(a)
    }), Z("MMMM", function(a, b) {
        return b.monthsRegex(a)
    }), ba(["M", "MM"], function(a, b) {
        b[fe] = u(a) - 1
    }), ba(["MMM", "MMMM"], function(a, b, c, d) {
        var e = c._locale.monthsParse(a, d, c._strict);
        null != e ? b[fe] = e : n(c).invalidMonth = a
    });
    var oe = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,
        pe = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
        qe = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
        re = be,
        se = be;
    U("Y", 0, 0, function() {
        var a = this.year();
        return a <= 9999 ? "" + a : "+" + a
    }), U(0, ["YY", 2], 0, function() {
        return this.year() % 100
    }), U(0, ["YYYY", 4], 0, "year"), U(0, ["YYYYY", 5], 0, "year"), U(0, ["YYYYYY", 6, !0], 0, "year"), J("year", "y"), M("year", 1), Z("Y", Zd), Z("YY", Sd, Od), Z("YYYY", Wd, Qd), Z("YYYYY", Xd, Rd), Z("YYYYYY", Xd, Rd), ba(["YYYYY", "YYYYYY"], ee), ba("YYYY", function(b, c) {
        c[ee] = 2 === b.length ? a.parseTwoDigitYear(b) : u(b)
    }), ba("YY", function(b, c) {
        c[ee] = a.parseTwoDigitYear(b)
    }), ba("Y", function(a, b) {
        b[ee] = parseInt(a, 10)
    }), a.parseTwoDigitYear = function(a) {
        return u(a) + (u(a) > 68 ? 1900 : 2e3)
    };
    var te = O("FullYear", !0);
    U("w", ["ww", 2], "wo", "week"), U("W", ["WW", 2], "Wo", "isoWeek"), J("week", "w"), J("isoWeek", "W"), M("week", 5), M("isoWeek", 5), Z("w", Sd), Z("ww", Sd, Od), Z("W", Sd), Z("WW", Sd, Od), ca(["w", "ww", "W", "WW"], function(a, b, c, d) {
        b[d.substr(0, 1)] = u(a)
    });
    var ue = {
        dow: 0,
        doy: 6
    };
    U("d", 0, "do", "day"), U("dd", 0, 0, function(a) {
        return this.localeData().weekdaysMin(this, a)
    }), U("ddd", 0, 0, function(a) {
        return this.localeData().weekdaysShort(this, a)
    }), U("dddd", 0, 0, function(a) {
        return this.localeData().weekdays(this, a)
    }), U("e", 0, 0, "weekday"), U("E", 0, 0, "isoWeekday"), J("day", "d"), J("weekday", "e"), J("isoWeekday", "E"), M("day", 11), M("weekday", 11), M("isoWeekday", 11), Z("d", Sd), Z("e", Sd), Z("E", Sd), Z("dd", function(a, b) {
        return b.weekdaysMinRegex(a)
    }), Z("ddd", function(a, b) {
        return b.weekdaysShortRegex(a)
    }), Z("dddd", function(a, b) {
        return b.weekdaysRegex(a)
    }), ca(["dd", "ddd", "dddd"], function(a, b, c, d) {
        var e = c._locale.weekdaysParse(a, d, c._strict);
        null != e ? b.d = e : n(c).invalidWeekday = a
    }), ca(["d", "e", "E"], function(a, b, c, d) {
        b[d] = u(a)
    });
    var ve = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
        we = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
        xe = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
        ye = be,
        ze = be,
        Ae = be;
    U("H", ["HH", 2], 0, "hour"), U("h", ["hh", 2], 0, Ra), U("k", ["kk", 2], 0, Sa), U("hmm", 0, 0, function() {
        return "" + Ra.apply(this) + T(this.minutes(), 2)
    }), U("hmmss", 0, 0, function() {
        return "" + Ra.apply(this) + T(this.minutes(), 2) + T(this.seconds(), 2)
    }), U("Hmm", 0, 0, function() {
        return "" + this.hours() + T(this.minutes(), 2)
    }), U("Hmmss", 0, 0, function() {
        return "" + this.hours() + T(this.minutes(), 2) + T(this.seconds(), 2)
    }), Ta("a", !0), Ta("A", !1), J("hour", "h"), M("hour", 13), Z("a", Ua), Z("A", Ua), Z("H", Sd), Z("h", Sd), Z("k", Sd), Z("HH", Sd, Od), Z("hh", Sd, Od), Z("kk", Sd, Od), Z("hmm", Td), Z("hmmss", Ud), Z("Hmm", Td), Z("Hmmss", Ud), ba(["H", "HH"], he), ba(["k", "kk"], function(a, b, c) {
        var d = u(a);
        b[he] = 24 === d ? 0 : d
    }), ba(["a", "A"], function(a, b, c) {
        c._isPm = c._locale.isPM(a), c._meridiem = a
    }), ba(["h", "hh"], function(a, b, c) {
        b[he] = u(a), n(c).bigHour = !0
    }), ba("hmm", function(a, b, c) {
        var d = a.length - 2;
        b[he] = u(a.substr(0, d)), b[ie] = u(a.substr(d)), n(c).bigHour = !0
    }), ba("hmmss", function(a, b, c) {
        var d = a.length - 4,
            e = a.length - 2;
        b[he] = u(a.substr(0, d)), b[ie] = u(a.substr(d, 2)), b[je] = u(a.substr(e)), n(c).bigHour = !0
    }), ba("Hmm", function(a, b, c) {
        var d = a.length - 2;
        b[he] = u(a.substr(0, d)), b[ie] = u(a.substr(d))
    }), ba("Hmmss", function(a, b, c) {
        var d = a.length - 4,
            e = a.length - 2;
        b[he] = u(a.substr(0, d)), b[ie] = u(a.substr(d, 2)), b[je] = u(a.substr(e))
    });
    var Be, Ce = /[ap]\.?m?\.?/i,
        De = O("Hours", !0),
        Ee = {
            calendar: Bd,
            longDateFormat: Cd,
            invalidDate: Dd,
            ordinal: Ed,
            dayOfMonthOrdinalParse: Fd,
            relativeTime: Gd,
            months: pe,
            monthsShort: qe,
            week: ue,
            weekdays: ve,
            weekdaysMin: xe,
            weekdaysShort: we,
            meridiemParse: Ce
        },
        Fe = {},
        Ge = {},
        He = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
        Ie = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
        Je = /Z|[+-]\d\d(?::?\d\d)?/,
        Ke = [
            ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/],
            ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/],
            ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/],
            ["GGGG-[W]WW", /\d{4}-W\d\d/, !1],
            ["YYYY-DDD", /\d{4}-\d{3}/],
            ["YYYY-MM", /\d{4}-\d\d/, !1],
            ["YYYYYYMMDD", /[+-]\d{10}/],
            ["YYYYMMDD", /\d{8}/],
            ["GGGG[W]WWE", /\d{4}W\d{3}/],
            ["GGGG[W]WW", /\d{4}W\d{2}/, !1],
            ["YYYYDDD", /\d{7}/]
        ],
        Le = [
            ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/],
            ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/],
            ["HH:mm:ss", /\d\d:\d\d:\d\d/],
            ["HH:mm", /\d\d:\d\d/],
            ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/],
            ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/],
            ["HHmmss", /\d\d\d\d\d\d/],
            ["HHmm", /\d\d\d\d/],
            ["HH", /\d\d/]
        ],
        Me = /^\/?Date\((\-?\d+)/i,
        Ne = /^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;
    a.createFromInputFallback = x("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function(a) {
        a._d = new Date(a._i + (a._useUTC ? " UTC" : ""))
    }), a.ISO_8601 = function() {}, a.RFC_2822 = function() {};
    var Oe = x("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function() {
            var a = tb.apply(null, arguments);
            return this.isValid() && a.isValid() ? a < this ? this : a : p()
        }),
        Pe = x("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function() {
            var a = tb.apply(null, arguments);
            return this.isValid() && a.isValid() ? a > this ? this : a : p()
        }),
        Qe = function() {
            return Date.now ? Date.now() : +new Date
        },
        Re = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"];
    Db("Z", ":"), Db("ZZ", ""), Z("Z", _d), Z("ZZ", _d), ba(["Z", "ZZ"], function(a, b, c) {
        c._useUTC = !0, c._tzm = Eb(_d, a)
    });
    var Se = /([\+\-]|\d\d)/gi;
    a.updateOffset = function() {};
    var Te = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,
        Ue = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;
    Sb.fn = Ab.prototype, Sb.invalid = zb;
    var Ve = Wb(1, "add"),
        We = Wb(-1, "subtract");
    a.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", a.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]";
    var Xe = x("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function(a) {
        return void 0 === a ? this.localeData() : this.locale(a)
    });
    U(0, ["gg", 2], 0, function() {
        return this.weekYear() % 100
    }), U(0, ["GG", 2], 0, function() {
        return this.isoWeekYear() % 100
    }), Dc("gggg", "weekYear"), Dc("ggggg", "weekYear"), Dc("GGGG", "isoWeekYear"), Dc("GGGGG", "isoWeekYear"), J("weekYear", "gg"), J("isoWeekYear", "GG"), M("weekYear", 1), M("isoWeekYear", 1), Z("G", Zd), Z("g", Zd), Z("GG", Sd, Od), Z("gg", Sd, Od), Z("GGGG", Wd, Qd), Z("gggg", Wd, Qd), Z("GGGGG", Xd, Rd), Z("ggggg", Xd, Rd), ca(["gggg", "ggggg", "GGGG", "GGGGG"], function(a, b, c, d) {
        b[d.substr(0, 2)] = u(a)
    }), ca(["gg", "GG"], function(b, c, d, e) {
        c[e] = a.parseTwoDigitYear(b)
    }), U("Q", 0, "Qo", "quarter"), J("quarter", "Q"), M("quarter", 7), Z("Q", Nd), ba("Q", function(a, b) {
        b[fe] = 3 * (u(a) - 1)
    }), U("D", ["DD", 2], "Do", "date"), J("date", "D"), M("date", 9), Z("D", Sd), Z("DD", Sd, Od), Z("Do", function(a, b) {
        return a ? b._dayOfMonthOrdinalParse || b._ordinalParse : b._dayOfMonthOrdinalParseLenient
    }), ba(["D", "DD"], ge), ba("Do", function(a, b) {
        b[ge] = u(a.match(Sd)[0], 10)
    });
    var Ye = O("Date", !0);
    U("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), J("dayOfYear", "DDD"), M("dayOfYear", 4), Z("DDD", Vd), Z("DDDD", Pd), ba(["DDD", "DDDD"], function(a, b, c) {
        c._dayOfYear = u(a)
    }), U("m", ["mm", 2], 0, "minute"), J("minute", "m"), M("minute", 14), Z("m", Sd), Z("mm", Sd, Od), ba(["m", "mm"], ie);
    var Ze = O("Minutes", !1);
    U("s", ["ss", 2], 0, "second"), J("second", "s"), M("second", 15), Z("s", Sd), Z("ss", Sd, Od), ba(["s", "ss"], je);
    var $e = O("Seconds", !1);
    U("S", 0, 0, function() {
        return ~~(this.millisecond() / 100)
    }), U(0, ["SS", 2], 0, function() {
        return ~~(this.millisecond() / 10)
    }), U(0, ["SSS", 3], 0, "millisecond"), U(0, ["SSSS", 4], 0, function() {
        return 10 * this.millisecond()
    }), U(0, ["SSSSS", 5], 0, function() {
        return 100 * this.millisecond()
    }), U(0, ["SSSSSS", 6], 0, function() {
        return 1e3 * this.millisecond()
    }), U(0, ["SSSSSSS", 7], 0, function() {
        return 1e4 * this.millisecond()
    }), U(0, ["SSSSSSSS", 8], 0, function() {
        return 1e5 * this.millisecond()
    }), U(0, ["SSSSSSSSS", 9], 0, function() {
        return 1e6 * this.millisecond()
    }), J("millisecond", "ms"), M("millisecond", 16), Z("S", Vd, Nd), Z("SS", Vd, Od), Z("SSS", Vd, Pd);
    var _e;
    for (_e = "SSSS"; _e.length <= 9; _e += "S") Z(_e, Yd);
    for (_e = "S"; _e.length <= 9; _e += "S") ba(_e, Mc);
    var af = O("Milliseconds", !1);
    U("z", 0, 0, "zoneAbbr"), U("zz", 0, 0, "zoneName");
    var bf = r.prototype;
    bf.add = Ve, bf.calendar = Zb, bf.clone = $b, bf.diff = fc, bf.endOf = sc, bf.format = kc, bf.from = lc, bf.fromNow = mc, bf.to = nc, bf.toNow = oc, bf.get = R, bf.invalidAt = Bc, bf.isAfter = _b, bf.isBefore = ac, bf.isBetween = bc, bf.isSame = cc, bf.isSameOrAfter = dc, bf.isSameOrBefore = ec, bf.isValid = zc, bf.lang = Xe, bf.locale = pc, bf.localeData = qc, bf.max = Pe, bf.min = Oe, bf.parsingFlags = Ac, bf.set = S, bf.startOf = rc, bf.subtract = We, bf.toArray = wc, bf.toObject = xc, bf.toDate = vc, bf.toISOString = ic, bf.inspect = jc, bf.toJSON = yc, bf.toString = hc, bf.unix = uc, bf.valueOf = tc, bf.creationData = Cc, bf.year = te, bf.isLeapYear = ra, bf.weekYear = Ec, bf.isoWeekYear = Fc, bf.quarter = bf.quarters = Kc, bf.month = ka, bf.daysInMonth = la, bf.week = bf.weeks = Ba, bf.isoWeek = bf.isoWeeks = Ca, bf.weeksInYear = Hc, bf.isoWeeksInYear = Gc, bf.date = Ye, bf.day = bf.days = Ka, bf.weekday = La, bf.isoWeekday = Ma, bf.dayOfYear = Lc, bf.hour = bf.hours = De, bf.minute = bf.minutes = Ze, bf.second = bf.seconds = $e, bf.millisecond = bf.milliseconds = af, bf.utcOffset = Hb, bf.utc = Jb, bf.local = Kb, bf.parseZone = Lb, bf.hasAlignedHourOffset = Mb, bf.isDST = Nb, bf.isLocal = Pb, bf.isUtcOffset = Qb, bf.isUtc = Rb, bf.isUTC = Rb, bf.zoneAbbr = Nc, bf.zoneName = Oc, bf.dates = x("dates accessor is deprecated. Use date instead.", Ye), bf.months = x("months accessor is deprecated. Use month instead", ka), bf.years = x("years accessor is deprecated. Use year instead", te), bf.zone = x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", Ib), bf.isDSTShifted = x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", Ob);
    var cf = C.prototype;
    cf.calendar = D, cf.longDateFormat = E, cf.invalidDate = F, cf.ordinal = G, cf.preparse = Rc, cf.postformat = Rc, cf.relativeTime = H, cf.pastFuture = I, cf.set = A, cf.months = fa, cf.monthsShort = ga, cf.monthsParse = ia, cf.monthsRegex = na, cf.monthsShortRegex = ma, cf.week = ya, cf.firstDayOfYear = Aa, cf.firstDayOfWeek = za, cf.weekdays = Fa, cf.weekdaysMin = Ha, cf.weekdaysShort = Ga, cf.weekdaysParse = Ja, cf.weekdaysRegex = Na, cf.weekdaysShortRegex = Oa, cf.weekdaysMinRegex = Pa, cf.isPM = Va, cf.meridiem = Wa, $a("en", {
        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
        ordinal: function(a) {
            var b = a % 10,
                c = 1 === u(a % 100 / 10) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th";
            return a + c
        }
    }), a.lang = x("moment.lang is deprecated. Use moment.locale instead.", $a), a.langData = x("moment.langData is deprecated. Use moment.localeData instead.", bb);
    var df = Math.abs,
        ef = id("ms"),
        ff = id("s"),
        gf = id("m"),
        hf = id("h"),
        jf = id("d"),
        kf = id("w"),
        lf = id("M"),
        mf = id("y"),
        nf = kd("milliseconds"),
        of = kd("seconds"),
        pf = kd("minutes"),
        qf = kd("hours"),
        rf = kd("days"),
        sf = kd("months"),
        tf = kd("years"),
        uf = Math.round,
        vf = {
            ss: 44,
            s: 45,
            m: 45,
            h: 22,
            d: 26,
            M: 11
        },
        wf = Math.abs,
        xf = Ab.prototype;
    return xf.isValid = yb, xf.abs = $c, xf.add = ad, xf.subtract = bd, xf.as = gd, xf.asMilliseconds = ef, xf.asSeconds = ff, xf.asMinutes = gf, xf.asHours = hf, xf.asDays = jf, xf.asWeeks = kf, xf.asMonths = lf, xf.asYears = mf, xf.valueOf = hd, xf._bubble = dd, xf.get = jd, xf.milliseconds = nf, xf.seconds = of , xf.minutes = pf, xf.hours = qf, xf.days = rf, xf.weeks = ld, xf.months = sf, xf.years = tf, xf.humanize = qd, xf.toISOString = rd, xf.toString = rd, xf.toJSON = rd, xf.locale = pc, xf.localeData = qc, xf.toIsoString = x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", rd), xf.lang = Xe, U("X", 0, 0, "unix"), U("x", 0, 0, "valueOf"), Z("x", Zd), Z("X", ae), ba("X", function(a, b, c) {
        c._d = new Date(1e3 * parseFloat(a, 10))
    }), ba("x", function(a, b, c) {
        c._d = new Date(u(a))
    }), a.version = "2.18.1", b(tb), a.fn = bf, a.min = vb, a.max = wb, a.now = Qe, a.utc = l, a.unix = Pc, a.months = Vc, a.isDate = h, a.locale = $a, a.invalid = p, a.duration = Sb, a.isMoment = s, a.weekdays = Xc, a.parseZone = Qc, a.localeData = bb, a.isDuration = Bb, a.monthsShort = Wc, a.weekdaysMin = Zc, a.defineLocale = _a, a.updateLocale = ab, a.locales = cb, a.weekdaysShort = Yc, a.normalizeUnits = K, a.relativeTimeRounding = od, a.relativeTimeThreshold = pd, a.calendarFormat = Yb, a.prototype = bf, a
});

/**
 * @version: 2.1.25
 * @author: Dan Grossman http://www.dangrossman.info/
 * @copyright: Copyright (c) 2012-2017 Dan Grossman. All rights reserved.
 * @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php
 * @website: https://www.daterangepicker.com/
 */
! function(t, e) {
    if ("function" == typeof define && define.amd) define(["moment", "jquery"], function(a, i) {
        return t.daterangepicker = e(a, i)
    });
    else if ("object" == typeof module && module.exports) {
        var a = "undefined" != typeof window ? window.jQuery : void 0;
        a || (a = require("jquery")).fn || (a.fn = {}), module.exports = e(require("moment"), a)
    } else t.daterangepicker = e(t.moment, t.jQuery)
}(this, function(t, e) {
    var a = function(a, i, s) {
        if (this.parentEl = "body", this.element = e(a), this.startDate = t().startOf("day"), this.endDate = t().endOf("day"), this.minDate = !1, this.maxDate = !1, this.dateLimit = !1, this.autoApply = !1, this.singleDatePicker = !1, this.showDropdowns = !1, this.showWeekNumbers = !1, this.showISOWeekNumbers = !1, this.showCustomRangeLabel = !0, this.timePicker = !1, this.timePicker24Hour = !1, this.timePickerIncrement = 1, this.timePickerSeconds = !1, this.linkedCalendars = !0, this.autoUpdateInput = !0, this.alwaysShowCalendars = !1, this.ranges = {}, this.opens = "right", this.element.hasClass("pull-right") && (this.opens = "left"), this.drops = "down", this.element.hasClass("dropup") && (this.drops = "up"), this.buttonClasses = "btn btn-sm", this.applyClass = "btn-success", this.cancelClass = "btn-default", this.locale = {
                direction: "ltr",
                format: t.localeData().longDateFormat("L"),
                separator: " - ",
                applyLabel: "Apply",
                cancelLabel: "Cancel",
                weekLabel: "W",
                customRangeLabel: "Custom Range",
                daysOfWeek: t.weekdaysMin(),
                monthNames: t.monthsShort(),
                firstDay: t.localeData().firstDayOfWeek()
            }, this.callback = function() {}, this.isShowing = !1, this.leftCalendar = {}, this.rightCalendar = {}, ("object" != typeof i || null === i) && (i = {}), "string" == typeof(i = e.extend(this.element.data(), i)).template || i.template instanceof e || (i.template = '<div class="daterangepicker dropdown-menu"><div class="calendar left"><div class="daterangepicker_input"><input class="input-mini form-control" type="text" name="daterangepicker_start" value="" /><i class="fa fa-calendar glyphicon glyphicon-calendar"></i><div class="calendar-time"><div></div><i class="fa fa-clock-o glyphicon glyphicon-time"></i></div></div><div class="calendar-table"></div></div><div class="calendar right"><div class="daterangepicker_input"><input class="input-mini form-control" type="text" name="daterangepicker_end" value="" /><i class="fa fa-calendar glyphicon glyphicon-calendar"></i><div class="calendar-time"><div></div><i class="fa fa-clock-o glyphicon glyphicon-time"></i></div></div><div class="calendar-table"></div></div><div class="ranges"><div class="range_inputs"><button class="applyBtn" disabled="disabled" type="button"></button> <button class="cancelBtn" type="button"></button></div></div></div>'), this.parentEl = i.parentEl && e(i.parentEl).length ? e(i.parentEl) : e(this.parentEl), this.container = e(i.template).appendTo(this.parentEl), "object" == typeof i.locale && ("string" == typeof i.locale.direction && (this.locale.direction = i.locale.direction), "string" == typeof i.locale.format && (this.locale.format = i.locale.format), "string" == typeof i.locale.separator && (this.locale.separator = i.locale.separator), "object" == typeof i.locale.daysOfWeek && (this.locale.daysOfWeek = i.locale.daysOfWeek.slice()), "object" == typeof i.locale.monthNames && (this.locale.monthNames = i.locale.monthNames.slice()), "number" == typeof i.locale.firstDay && (this.locale.firstDay = i.locale.firstDay), "string" == typeof i.locale.applyLabel && (this.locale.applyLabel = i.locale.applyLabel), "string" == typeof i.locale.cancelLabel && (this.locale.cancelLabel = i.locale.cancelLabel), "string" == typeof i.locale.weekLabel && (this.locale.weekLabel = i.locale.weekLabel), "string" == typeof i.locale.customRangeLabel)) {
            var n, r, h, o = document.createElement("textarea");
            o.innerHTML = i.locale.customRangeLabel;
            var l = o.value;
            this.locale.customRangeLabel = l
        }
        if (this.container.addClass(this.locale.direction), "string" == typeof i.startDate && (this.startDate = t(i.startDate, this.locale.format)), "string" == typeof i.endDate && (this.endDate = t(i.endDate, this.locale.format)), "string" == typeof i.minDate && (this.minDate = t(i.minDate, this.locale.format)), "string" == typeof i.maxDate && (this.maxDate = t(i.maxDate, this.locale.format)), "object" == typeof i.startDate && (this.startDate = t(i.startDate)), "object" == typeof i.endDate && (this.endDate = t(i.endDate)), "object" == typeof i.minDate && (this.minDate = t(i.minDate)), "object" == typeof i.maxDate && (this.maxDate = t(i.maxDate)), this.minDate && this.startDate.isBefore(this.minDate) && (this.startDate = this.minDate.clone()), this.maxDate && this.endDate.isAfter(this.maxDate) && (this.endDate = this.maxDate.clone()), "string" == typeof i.applyClass && (this.applyClass = i.applyClass), "string" == typeof i.cancelClass && (this.cancelClass = i.cancelClass), "object" == typeof i.dateLimit && (this.dateLimit = i.dateLimit), "string" == typeof i.opens && (this.opens = i.opens), "string" == typeof i.drops && (this.drops = i.drops), "boolean" == typeof i.showWeekNumbers && (this.showWeekNumbers = i.showWeekNumbers), "boolean" == typeof i.showISOWeekNumbers && (this.showISOWeekNumbers = i.showISOWeekNumbers), "string" == typeof i.buttonClasses && (this.buttonClasses = i.buttonClasses), "object" == typeof i.buttonClasses && (this.buttonClasses = i.buttonClasses.join(" ")), "boolean" == typeof i.showDropdowns && (this.showDropdowns = i.showDropdowns), "boolean" == typeof i.showCustomRangeLabel && (this.showCustomRangeLabel = i.showCustomRangeLabel), "boolean" == typeof i.singleDatePicker && (this.singleDatePicker = i.singleDatePicker, this.singleDatePicker && (this.endDate = this.startDate.clone())), "boolean" == typeof i.timePicker && (this.timePicker = i.timePicker), "boolean" == typeof i.timePickerSeconds && (this.timePickerSeconds = i.timePickerSeconds), "number" == typeof i.timePickerIncrement && (this.timePickerIncrement = i.timePickerIncrement), "boolean" == typeof i.timePicker24Hour && (this.timePicker24Hour = i.timePicker24Hour), "boolean" == typeof i.autoApply && (this.autoApply = i.autoApply), "boolean" == typeof i.autoUpdateInput && (this.autoUpdateInput = i.autoUpdateInput), "boolean" == typeof i.linkedCalendars && (this.linkedCalendars = i.linkedCalendars), "function" == typeof i.isInvalidDate && (this.isInvalidDate = i.isInvalidDate), "function" == typeof i.isCustomDate && (this.isCustomDate = i.isCustomDate), "boolean" == typeof i.alwaysShowCalendars && (this.alwaysShowCalendars = i.alwaysShowCalendars), 0 != this.locale.firstDay)
            for (var c = this.locale.firstDay; c > 0;) this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()), c--;
        if (void 0 === i.startDate && void 0 === i.endDate && e(this.element).is("input[type=text]")) {
            var d = e(this.element).val(),
                m = d.split(this.locale.separator);
            n = r = null, 2 == m.length ? (n = t(m[0], this.locale.format), r = t(m[1], this.locale.format)) : this.singleDatePicker && "" !== d && (n = t(d, this.locale.format), r = t(d, this.locale.format)), null !== n && null !== r && (this.setStartDate(n), this.setEndDate(r))
        }
        if ("object" == typeof i.ranges) {
            for (h in i.ranges) {
                n = "string" == typeof i.ranges[h][0] ? t(i.ranges[h][0], this.locale.format) : t(i.ranges[h][0]), r = "string" == typeof i.ranges[h][1] ? t(i.ranges[h][1], this.locale.format) : t(i.ranges[h][1]), this.minDate && n.isBefore(this.minDate) && (n = this.minDate.clone());
                var f = this.maxDate;
                if (this.dateLimit && f && n.clone().add(this.dateLimit).isAfter(f) && (f = n.clone().add(this.dateLimit)), f && r.isAfter(f) && (r = f.clone()), !(this.minDate && r.isBefore(this.minDate, this.timepicker ? "minute" : "day") || f && n.isAfter(f, this.timepicker ? "minute" : "day"))) {
                    var o = document.createElement("textarea");
                    o.innerHTML = h;
                    var l = o.value;
                    this.ranges[l] = [n, r]
                }
            }
            var p = "<ul>";
            for (h in this.ranges) p += '<li data-range-key="' + h + '">' + h + "</li>";
            this.showCustomRangeLabel && (p += '<li data-range-key="' + this.locale.customRangeLabel + '">' + this.locale.customRangeLabel + "</li>"), p += "</ul>", this.container.find(".ranges").prepend(p)
        }
        "function" == typeof s && (this.callback = s), this.timePicker || (this.startDate = this.startDate.startOf("day"), this.endDate = this.endDate.endOf("day"), this.container.find(".calendar-time").hide()), this.timePicker && this.autoApply && (this.autoApply = !1), this.autoApply && "object" != typeof i.ranges ? this.container.find(".ranges").hide() : this.autoApply && this.container.find(".applyBtn, .cancelBtn").addClass("hide"), this.singleDatePicker && (this.container.addClass("single"), this.container.find(".calendar.left").addClass("single"), this.container.find(".calendar.left").show(), this.container.find(".calendar.right").hide(), this.container.find(".daterangepicker_input input, .daterangepicker_input > i").hide(), this.timePicker ? this.container.find(".ranges ul").hide() : this.container.find(".ranges").hide()), (void 0 === i.ranges && !this.singleDatePicker || this.alwaysShowCalendars) && this.container.addClass("show-calendar"), this.container.addClass("opens" + this.opens), void 0 !== i.ranges && "right" == this.opens && this.container.find(".ranges").prependTo(this.container.find(".calendar.left").parent()), this.container.find(".applyBtn, .cancelBtn").addClass(this.buttonClasses), this.applyClass.length && this.container.find(".applyBtn").addClass(this.applyClass), this.cancelClass.length && this.container.find(".cancelBtn").addClass(this.cancelClass), this.container.find(".applyBtn").html(this.locale.applyLabel), this.container.find(".cancelBtn").html(this.locale.cancelLabel), this.container.find(".calendar").on("click.daterangepicker", ".prev", e.proxy(this.clickPrev, this)).on("click.daterangepicker", ".next", e.proxy(this.clickNext, this)).on("mousedown.daterangepicker", "td.available", e.proxy(this.clickDate, this)).on("mouseenter.daterangepicker", "td.available", e.proxy(this.hoverDate, this)).on("mouseleave.daterangepicker", "td.available", e.proxy(this.updateFormInputs, this)).on("change.daterangepicker", "select.yearselect", e.proxy(this.monthOrYearChanged, this)).on("change.daterangepicker", "select.monthselect", e.proxy(this.monthOrYearChanged, this)).on("change.daterangepicker", "select.hourselect,select.minuteselect,select.secondselect,select.ampmselect", e.proxy(this.timeChanged, this)).on("click.daterangepicker", ".daterangepicker_input input", e.proxy(this.showCalendars, this)).on("focus.daterangepicker", ".daterangepicker_input input", e.proxy(this.formInputsFocused, this)).on("blur.daterangepicker", ".daterangepicker_input input", e.proxy(this.formInputsBlurred, this)).on("change.daterangepicker", ".daterangepicker_input input", e.proxy(this.formInputsChanged, this)), this.container.find(".ranges").on("click.daterangepicker", "button.applyBtn", e.proxy(this.clickApply, this)).on("click.daterangepicker", "button.cancelBtn", e.proxy(this.clickCancel, this)).on("click.daterangepicker", "li", e.proxy(this.clickRange, this)).on("mouseenter.daterangepicker", "li", e.proxy(this.hoverRange, this)).on("mouseleave.daterangepicker", "li", e.proxy(this.updateFormInputs, this)), this.element.is("input") || this.element.is("button") ? this.element.on({
            "click.daterangepicker": e.proxy(this.show, this),
            "focus.daterangepicker": e.proxy(this.show, this),
            "keyup.daterangepicker": e.proxy(this.elementChanged, this),
            "keydown.daterangepicker": e.proxy(this.keydown, this)
        }) : this.element.on("click.daterangepicker", e.proxy(this.toggle, this)), this.element.is("input") && !this.singleDatePicker && this.autoUpdateInput ? (this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)), this.element.trigger("change")) : this.element.is("input") && this.autoUpdateInput && (this.element.val(this.startDate.format(this.locale.format)), this.element.trigger("change"))
    };
    return a.prototype = {
        constructor: a,
        setStartDate: function(e) {
            "string" == typeof e && (this.startDate = t(e, this.locale.format)), "object" == typeof e && (this.startDate = t(e)), this.timePicker || (this.startDate = this.startDate.startOf("day")), this.timePicker && this.timePickerIncrement && this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement), this.minDate && this.startDate.isBefore(this.minDate) && (this.startDate = this.minDate.clone(), this.timePicker && this.timePickerIncrement && this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement)), this.maxDate && this.startDate.isAfter(this.maxDate) && (this.startDate = this.maxDate.clone(), this.timePicker && this.timePickerIncrement && this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement)), this.isShowing || this.updateElement(), this.updateMonthsInView()
        },
        setEndDate: function(e) {
            "string" == typeof e && (this.endDate = t(e, this.locale.format)), "object" == typeof e && (this.endDate = t(e)), this.timePicker || (this.endDate = this.endDate.endOf("day")), this.timePicker && this.timePickerIncrement && this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement), this.endDate.isBefore(this.startDate) && (this.endDate = this.startDate.clone()), this.maxDate && this.endDate.isAfter(this.maxDate) && (this.endDate = this.maxDate.clone()), this.dateLimit && this.startDate.clone().add(this.dateLimit).isBefore(this.endDate) && (this.endDate = this.startDate.clone().add(this.dateLimit)), this.previousRightTime = this.endDate.clone(), this.isShowing || this.updateElement(), this.updateMonthsInView()
        },
        isInvalidDate: function() {
            return !1
        },
        isCustomDate: function() {
            return !1
        },
        updateView: function() {
            this.timePicker && (this.renderTimePicker("left"), this.renderTimePicker("right"), this.endDate ? this.container.find(".right .calendar-time select").removeAttr("disabled").removeClass("disabled") : this.container.find(".right .calendar-time select").attr("disabled", "disabled").addClass("disabled")), this.endDate ? (this.container.find('input[name="daterangepicker_end"]').removeClass("active"), this.container.find('input[name="daterangepicker_start"]').addClass("active")) : (this.container.find('input[name="daterangepicker_end"]').addClass("active"), this.container.find('input[name="daterangepicker_start"]').removeClass("active")), this.updateMonthsInView(), this.updateCalendars(), this.updateFormInputs()
        },
        updateMonthsInView: function() {
            if (this.endDate) {
                if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month && (this.startDate.format("YYYY-MM") == this.leftCalendar.month.format("YYYY-MM") || this.startDate.format("YYYY-MM") == this.rightCalendar.month.format("YYYY-MM")) && (this.endDate.format("YYYY-MM") == this.leftCalendar.month.format("YYYY-MM") || this.endDate.format("YYYY-MM") == this.rightCalendar.month.format("YYYY-MM"))) return;
                this.leftCalendar.month = this.startDate.clone().date(2), this.linkedCalendars || this.endDate.month() == this.startDate.month() && this.endDate.year() == this.startDate.year() ? this.rightCalendar.month = this.startDate.clone().date(2).add(1, "month") : this.rightCalendar.month = this.endDate.clone().date(2)
            } else this.leftCalendar.month.format("YYYY-MM") != this.startDate.format("YYYY-MM") && this.rightCalendar.month.format("YYYY-MM") != this.startDate.format("YYYY-MM") && (this.leftCalendar.month = this.startDate.clone().date(2), this.rightCalendar.month = this.startDate.clone().date(2).add(1, "month"));
            this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate && (this.rightCalendar.month = this.maxDate.clone().date(2), this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, "month"))
        },
        updateCalendars: function() {
            if (this.timePicker) {
                var t, e, a;
                if (this.endDate) {
                    if (t = parseInt(this.container.find(".left .hourselect").val(), 10), e = parseInt(this.container.find(".left .minuteselect").val(), 10), a = this.timePickerSeconds ? parseInt(this.container.find(".left .secondselect").val(), 10) : 0, !this.timePicker24Hour) {
                        var i = this.container.find(".left .ampmselect").val();
                        "PM" === i && t < 12 && (t += 12), "AM" === i && 12 === t && (t = 0)
                    }
                } else if (t = parseInt(this.container.find(".right .hourselect").val(), 10), e = parseInt(this.container.find(".right .minuteselect").val(), 10), a = this.timePickerSeconds ? parseInt(this.container.find(".right .secondselect").val(), 10) : 0, !this.timePicker24Hour) {
                    var i = this.container.find(".right .ampmselect").val();
                    "PM" === i && t < 12 && (t += 12), "AM" === i && 12 === t && (t = 0)
                }
                this.leftCalendar.month.hour(t).minute(e).second(a), this.rightCalendar.month.hour(t).minute(e).second(a)
            }
            this.renderCalendar("left"), this.renderCalendar("right"), this.container.find(".ranges li").removeClass("active"), null != this.endDate && this.calculateChosenLabel()
        },
        renderCalendar: function(a) {
            var i, s, n = "left" == a ? this.leftCalendar : this.rightCalendar,
                r = n.month.month(),
                h = n.month.year(),
                o = n.month.hour(),
                l = n.month.minute(),
                c = n.month.second(),
                d = t([h, r]).daysInMonth(),
                m = t([h, r, 1]),
                f = t([h, r, d]),
                p = t(m).subtract(1, "month").month(),
                u = t(m).subtract(1, "month").year(),
                g = t([u, p]).daysInMonth(),
                D = m.day(),
                n = [];
            n.firstDay = m, n.lastDay = f;
            for (var k = 0; k < 6; k++) n[k] = [];
            var y = g - D + this.locale.firstDay + 1;
            y > g && (y -= 7), D == this.locale.firstDay && (y = g - 6);
            for (var v = t([u, p, y, 12, l, c]), k = 0, i = 0, s = 0; k < 42; k++, i++, v = t(v).add(24, "hour")) k > 0 && i % 7 == 0 && (i = 0, s++), n[s][i] = v.clone().hour(o).minute(l).second(c), v.hour(12), this.minDate && n[s][i].format("YYYY-MM-DD") == this.minDate.format("YYYY-MM-DD") && n[s][i].isBefore(this.minDate) && "left" == a && (n[s][i] = this.minDate.clone()), this.maxDate && n[s][i].format("YYYY-MM-DD") == this.maxDate.format("YYYY-MM-DD") && n[s][i].isAfter(this.maxDate) && "right" == a && (n[s][i] = this.maxDate.clone());
            "left" == a ? this.leftCalendar.calendar = n : this.rightCalendar.calendar = n;
            var b = "left" == a ? this.minDate : this.startDate,
                C = this.maxDate;
            "left" == a ? this.startDate : this.endDate;
            var _ = "ltr" == this.locale.direction ? {
                    left: "chevron-left",
                    right: "chevron-right"
                } : {
                    left: "chevron-right",
                    right: "chevron-left"
                },
                Y = '<table class="table-condensed">';
            Y += "<thead>", Y += "<tr>", (this.showWeekNumbers || this.showISOWeekNumbers) && (Y += "<th></th>"), (!b || b.isBefore(n.firstDay)) && (!this.linkedCalendars || "left" == a) ? Y += '<th class="prev available"><i class="fa fa-' + _.left + " glyphicon glyphicon-" + _.left + '"></i></th>' : Y += "<th></th>";
            var w = this.locale.monthNames[n[1][1].month()] + n[1][1].format(" YYYY");
            if (this.showDropdowns) {
                for (var P = n[1][1].month(), $ = n[1][1].year(), M = C && C.year() || $ + 5, x = b && b.year() || $ - 50, L = $ == x, I = $ == M, S = '<select class="monthselect">', A = 0; A < 12; A++)(!L || A >= b.month()) && (!I || A <= C.month()) ? S += "<option value='" + A + "'" + (A === P ? " selected='selected'" : "") + ">" + this.locale.monthNames[A] + "</option>" : S += "<option value='" + A + "'" + (A === P ? " selected='selected'" : "") + " disabled='disabled'>" + this.locale.monthNames[A] + "</option>";
                S += "</select>";
                for (var B = '<select class="yearselect">', E = x; E <= M; E++) B += '<option value="' + E + '"' + (E === $ ? ' selected="selected"' : "") + ">" + E + "</option>";
                B += "</select>", w = S + B
            }
            if (Y += '<th colspan="5" class="month">' + w + "</th>", (!C || C.isAfter(n.lastDay)) && (!this.linkedCalendars || "right" == a || this.singleDatePicker) ? Y += '<th class="next available"><i class="fa fa-' + _.right + " glyphicon glyphicon-" + _.right + '"></i></th>' : Y += "<th></th>", Y += "</tr>", Y += "<tr>", (this.showWeekNumbers || this.showISOWeekNumbers) && (Y += '<th class="week">' + this.locale.weekLabel + "</th>"), e.each(this.locale.daysOfWeek, function(t, e) {
                    Y += "<th>" + e + "</th>"
                }), Y += "</tr>", Y += "</thead>", Y += "<tbody>", null == this.endDate && this.dateLimit) {
                var W = this.startDate.clone().add(this.dateLimit).endOf("day");
                (!C || W.isBefore(C)) && (C = W)
            }
            for (var s = 0; s < 6; s++) {
                Y += "<tr>", this.showWeekNumbers ? Y += '<td class="week">' + n[s][0].week() + "</td>" : this.showISOWeekNumbers && (Y += '<td class="week">' + n[s][0].isoWeek() + "</td>");
                for (var i = 0; i < 7; i++) {
                    var O = [];
                    n[s][i].isSame(new Date, "day") && O.push("today"), n[s][i].isoWeekday() > 5 && O.push("weekend"), n[s][i].month() != n[1][1].month() && O.push("off"), this.minDate && n[s][i].isBefore(this.minDate, "day") && O.push("off", "disabled"), C && n[s][i].isAfter(C, "day") && O.push("off", "disabled"), this.isInvalidDate(n[s][i]) && O.push("off", "disabled"), n[s][i].format("YYYY-MM-DD") == this.startDate.format("YYYY-MM-DD") && O.push("active", "start-date"), null != this.endDate && n[s][i].format("YYYY-MM-DD") == this.endDate.format("YYYY-MM-DD") && O.push("active", "end-date"), null != this.endDate && n[s][i] > this.startDate && n[s][i] < this.endDate && O.push("in-range");
                    var N = this.isCustomDate(n[s][i]);
                    !1 !== N && ("string" == typeof N ? O.push(N) : Array.prototype.push.apply(O, N));
                    for (var R = "", j = !1, k = 0; k < O.length; k++) R += O[k] + " ", "disabled" == O[k] && (j = !0);
                    j || (R += "available"), Y += '<td class="' + R.replace(/^\s+|\s+$/g, "") + '" data-title="r' + s + "c" + i + '">' + n[s][i].date() + "</td>"
                }
                Y += "</tr>"
            }
            Y += "</tbody>", Y += "</table>", this.container.find(".calendar." + a + " .calendar-table").html(Y)
        },
        renderTimePicker: function(t) {
            if ("right" != t || this.endDate) {
                var e, a, i, s = this.maxDate;
                if (this.dateLimit && (!this.maxDate || this.startDate.clone().add(this.dateLimit).isAfter(this.maxDate)) && (s = this.startDate.clone().add(this.dateLimit)), "left" == t) a = this.startDate.clone(), i = this.minDate;
                else if ("right" == t) {
                    a = this.endDate.clone(), i = this.startDate;
                    var n = this.container.find(".calendar.right .calendar-time div");
                    if ("" != n.html() && (a.hour(n.find(".hourselect option:selected").val() || a.hour()), a.minute(n.find(".minuteselect option:selected").val() || a.minute()), a.second(n.find(".secondselect option:selected").val() || a.second()), !this.timePicker24Hour)) {
                        var r = n.find(".ampmselect option:selected").val();
                        "PM" === r && 12 > a.hour() && a.hour(a.hour() + 12), "AM" === r && 12 === a.hour() && a.hour(0)
                    }
                    a.isBefore(this.startDate) && (a = this.startDate.clone()), s && a.isAfter(s) && (a = s.clone())
                }
                e = '<select class="hourselect">';
                for (var h = this.timePicker24Hour ? 0 : 1, o = this.timePicker24Hour ? 23 : 12, l = h; l <= o; l++) {
                    var c = l;
                    this.timePicker24Hour || (c = a.hour() >= 12 ? 12 == l ? 12 : l + 12 : 12 == l ? 0 : l);
                    var d = a.clone().hour(c),
                        m = !1;
                    i && d.minute(59).isBefore(i) && (m = !0), s && d.minute(0).isAfter(s) && (m = !0), c != a.hour() || m ? m ? e += '<option value="' + l + '" disabled="disabled" class="disabled">' + l + "</option>" : e += '<option value="' + l + '">' + l + "</option>" : e += '<option value="' + l + '" selected="selected">' + l + "</option>"
                }
                e += "</select> ", e += ': <select class="minuteselect">';
                for (var l = 0; l < 60; l += this.timePickerIncrement) {
                    var f = l < 10 ? "0" + l : l,
                        d = a.clone().minute(l),
                        m = !1;
                    i && d.second(59).isBefore(i) && (m = !0), s && d.second(0).isAfter(s) && (m = !0), a.minute() != l || m ? m ? e += '<option value="' + l + '" disabled="disabled" class="disabled">' + f + "</option>" : e += '<option value="' + l + '">' + f + "</option>" : e += '<option value="' + l + '" selected="selected">' + f + "</option>"
                }
                if (e += "</select> ", this.timePickerSeconds) {
                    e += ': <select class="secondselect">';
                    for (var l = 0; l < 60; l++) {
                        var f = l < 10 ? "0" + l : l,
                            d = a.clone().second(l),
                            m = !1;
                        i && d.isBefore(i) && (m = !0), s && d.isAfter(s) && (m = !0), a.second() != l || m ? m ? e += '<option value="' + l + '" disabled="disabled" class="disabled">' + f + "</option>" : e += '<option value="' + l + '">' + f + "</option>" : e += '<option value="' + l + '" selected="selected">' + f + "</option>"
                    }
                    e += "</select> "
                }
                if (!this.timePicker24Hour) {
                    e += '<select class="ampmselect">';
                    var p = "",
                        u = "";
                    i && a.clone().hour(12).minute(0).second(0).isBefore(i) && (p = ' disabled="disabled" class="disabled"'), s && a.clone().hour(0).minute(0).second(0).isAfter(s) && (u = ' disabled="disabled" class="disabled"'), a.hour() >= 12 ? e += '<option value="AM"' + p + '>AM</option><option value="PM" selected="selected"' + u + ">PM</option>" : e += '<option value="AM" selected="selected"' + p + '>AM</option><option value="PM"' + u + ">PM</option>", e += "</select>"
                }
                this.container.find(".calendar." + t + " .calendar-time div").html(e)
            }
        },
        updateFormInputs: function() {
            this.container.find("input[name=daterangepicker_start]").is(":focus") || this.container.find("input[name=daterangepicker_end]").is(":focus") || (this.container.find("input[name=daterangepicker_start]").val(this.startDate.format(this.locale.format)), this.endDate && this.container.find("input[name=daterangepicker_end]").val(this.endDate.format(this.locale.format)), this.singleDatePicker || this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)) ? this.container.find("button.applyBtn").removeAttr("disabled") : this.container.find("button.applyBtn").attr("disabled", "disabled"))
        },
        move: function() {
            var t, a = {
                    top: 0,
                    left: 0
                },
                i = e(window).width();
            this.parentEl.is("body") || (a = {
                top: this.parentEl.offset().top - this.parentEl.scrollTop(),
                left: this.parentEl.offset().left - this.parentEl.scrollLeft()
            }, i = this.parentEl[0].clientWidth + this.parentEl.offset().left), t = "up" == this.drops ? this.element.offset().top - this.container.outerHeight() - a.top : this.element.offset().top + this.element.outerHeight() - a.top, this.container["up" == this.drops ? "addClass" : "removeClass"]("dropup"), "left" == this.opens ? (this.container.css({
                top: t,
                right: i - this.element.offset().left - this.element.outerWidth(),
                left: "auto"
            }), this.container.offset().left < 0 && this.container.css({
                right: "auto",
                left: 9
            })) : "center" == this.opens ? (this.container.css({
                top: t,
                left: this.element.offset().left - a.left + this.element.outerWidth() / 2 - this.container.outerWidth() / 2,
                right: "auto"
            }), this.container.offset().left < 0 && this.container.css({
                right: "auto",
                left: 9
            })) : (this.container.css({
                top: t,
                left: this.element.offset().left - a.left,
                right: "auto"
            }), this.container.offset().left + this.container.outerWidth() > e(window).width() && this.container.css({
                left: "auto",
                right: 0
            }))
        },
        show: function(t) {
            this.isShowing || (this._outsideClickProxy = e.proxy(function(t) {
                this.outsideClick(t)
            }, this), e(document).on("mousedown.daterangepicker", this._outsideClickProxy).on("touchend.daterangepicker", this._outsideClickProxy).on("click.daterangepicker", "[data-toggle=dropdown]", this._outsideClickProxy).on("focusin.daterangepicker", this._outsideClickProxy), e(window).on("resize.daterangepicker", e.proxy(function(t) {
                this.move(t)
            }, this)), this.oldStartDate = this.startDate.clone(), this.oldEndDate = this.endDate.clone(), this.previousRightTime = this.endDate.clone(), this.updateView(), this.container.show(), this.move(), this.element.trigger("show.daterangepicker", this), this.isShowing = !0)
        },
        hide: function(t) {
            this.isShowing && (this.endDate || (this.startDate = this.oldStartDate.clone(), this.endDate = this.oldEndDate.clone()), this.startDate.isSame(this.oldStartDate) && this.endDate.isSame(this.oldEndDate) || this.callback(this.startDate, this.endDate, this.chosenLabel), this.updateElement(), e(document).off(".daterangepicker"), e(window).off(".daterangepicker"), this.container.hide(), this.element.trigger("hide.daterangepicker", this), this.isShowing = !1)
        },
        toggle: function(t) {
            this.isShowing ? this.hide() : this.show()
        },
        outsideClick: function(t) {
            var a = e(t.target);
            "focusin" == t.type || a.closest(this.element).length || a.closest(this.container).length || a.closest(".calendar-table").length || (this.hide(), this.element.trigger("outsideClick.daterangepicker", this))
        },
        showCalendars: function() {
            this.container.addClass("show-calendar"), this.move(), this.element.trigger("showCalendar.daterangepicker", this)
        },
        hideCalendars: function() {
            this.container.removeClass("show-calendar"), this.element.trigger("hideCalendar.daterangepicker", this)
        },
        hoverRange: function(t) {
            if (!(this.container.find("input[name=daterangepicker_start]").is(":focus") || this.container.find("input[name=daterangepicker_end]").is(":focus"))) {
                var e = t.target.getAttribute("data-range-key");
                if (e == this.locale.customRangeLabel) this.updateView();
                else {
                    var a = this.ranges[e];
                    this.container.find("input[name=daterangepicker_start]").val(a[0].format(this.locale.format)), this.container.find("input[name=daterangepicker_end]").val(a[1].format(this.locale.format))
                }
            }
        },
        clickRange: function(t) {
            var e = t.target.getAttribute("data-range-key");
            if (this.chosenLabel = e, e == this.locale.customRangeLabel) this.showCalendars();
            else {
                var a = this.ranges[e];
                this.startDate = a[0], this.endDate = a[1], this.timePicker || (this.startDate.startOf("day"), this.endDate.endOf("day")), this.alwaysShowCalendars || this.hideCalendars(), this.clickApply()
            }
        },
        clickPrev: function(t) {
            e(t.target).parents(".calendar").hasClass("left") ? (this.leftCalendar.month.subtract(1, "month"), this.linkedCalendars && this.rightCalendar.month.subtract(1, "month")) : this.rightCalendar.month.subtract(1, "month"), this.updateCalendars()
        },
        clickNext: function(t) {
            e(t.target).parents(".calendar").hasClass("left") ? this.leftCalendar.month.add(1, "month") : (this.rightCalendar.month.add(1, "month"), this.linkedCalendars && this.leftCalendar.month.add(1, "month")), this.updateCalendars()
        },
        hoverDate: function(t) {
            if (e(t.target).hasClass("available")) {
                var a = e(t.target).attr("data-title"),
                    i = a.substr(1, 1),
                    s = a.substr(3, 1),
                    n = e(t.target).parents(".calendar").hasClass("left") ? this.leftCalendar.calendar[i][s] : this.rightCalendar.calendar[i][s];
                this.endDate && !this.container.find("input[name=daterangepicker_start]").is(":focus") ? this.container.find("input[name=daterangepicker_start]").val(n.format(this.locale.format)) : this.endDate || this.container.find("input[name=daterangepicker_end]").is(":focus") || this.container.find("input[name=daterangepicker_end]").val(n.format(this.locale.format));
                var r = this.leftCalendar,
                    h = this.rightCalendar,
                    o = this.startDate;
                this.endDate || this.container.find(".calendar tbody td").each(function(t, a) {
                    if (!e(a).hasClass("week")) {
                        var i = e(a).attr("data-title"),
                            s = i.substr(1, 1),
                            l = i.substr(3, 1),
                            c = e(a).parents(".calendar").hasClass("left") ? r.calendar[s][l] : h.calendar[s][l];
                        c.isAfter(o) && c.isBefore(n) || c.isSame(n, "day") ? e(a).addClass("in-range") : e(a).removeClass("in-range")
                    }
                })
            }
        },
        clickDate: function(t) {
            if (e(t.target).hasClass("available")) {
                var a = e(t.target).attr("data-title"),
                    i = a.substr(1, 1),
                    s = a.substr(3, 1),
                    n = e(t.target).parents(".calendar").hasClass("left") ? this.leftCalendar.calendar[i][s] : this.rightCalendar.calendar[i][s];
                if (this.endDate || n.isBefore(this.startDate, "day")) {
                    if (this.timePicker) {
                        var r = parseInt(this.container.find(".left .hourselect").val(), 10);
                        if (!this.timePicker24Hour) {
                            var h = this.container.find(".left .ampmselect").val();
                            "PM" === h && r < 12 && (r += 12), "AM" === h && 12 === r && (r = 0)
                        }
                        var o = parseInt(this.container.find(".left .minuteselect").val(), 10),
                            l = this.timePickerSeconds ? parseInt(this.container.find(".left .secondselect").val(), 10) : 0;
                        n = n.clone().hour(r).minute(o).second(l)
                    }
                    this.endDate = null, this.setStartDate(n.clone())
                } else if (!this.endDate && n.isBefore(this.startDate)) this.setEndDate(this.startDate.clone());
                else {
                    if (this.timePicker) {
                        var r = parseInt(this.container.find(".right .hourselect").val(), 10);
                        if (!this.timePicker24Hour) {
                            var h = this.container.find(".right .ampmselect").val();
                            "PM" === h && r < 12 && (r += 12), "AM" === h && 12 === r && (r = 0)
                        }
                        var o = parseInt(this.container.find(".right .minuteselect").val(), 10),
                            l = this.timePickerSeconds ? parseInt(this.container.find(".right .secondselect").val(), 10) : 0;
                        n = n.clone().hour(r).minute(o).second(l)
                    }
                    this.setEndDate(n.clone()), this.autoApply && (this.calculateChosenLabel(), this.clickApply())
                }
                this.singleDatePicker && (this.setEndDate(this.startDate), this.timePicker || this.clickApply()), this.updateView(), t.stopPropagation()
            }
        },
        calculateChosenLabel: function() {
            var t = !0,
                e = 0;
            for (var a in this.ranges) {
                if (this.timePicker) {
                    if (this.startDate.isSame(this.ranges[a][0]) && this.endDate.isSame(this.ranges[a][1])) {
                        t = !1, this.chosenLabel = this.container.find(".ranges li:eq(" + e + ")").addClass("active").html();
                        break
                    }
                } else if (this.startDate.format("YYYY-MM-DD") == this.ranges[a][0].format("YYYY-MM-DD") && this.endDate.format("YYYY-MM-DD") == this.ranges[a][1].format("YYYY-MM-DD")) {
                    t = !1, this.chosenLabel = this.container.find(".ranges li:eq(" + e + ")").addClass("active").html();
                    break
                }
                e++
            }
            t && (this.showCustomRangeLabel ? this.chosenLabel = this.container.find(".ranges li:last").addClass("active").html() : this.chosenLabel = null, this.showCalendars())
        },
        clickApply: function(t) {
            this.hide(), this.element.trigger("apply.daterangepicker", this)
        },
        clickCancel: function(t) {
            this.startDate = this.oldStartDate, this.endDate = this.oldEndDate, this.hide(), this.element.trigger("cancel.daterangepicker", this)
        },
        monthOrYearChanged: function(t) {
            var a = e(t.target).closest(".calendar").hasClass("left"),
                i = this.container.find(".calendar." + (a ? "left" : "right")),
                s = parseInt(i.find(".monthselect").val(), 10),
                n = i.find(".yearselect").val();
            !a && (n < this.startDate.year() || n == this.startDate.year() && s < this.startDate.month()) && (s = this.startDate.month(), n = this.startDate.year()), this.minDate && (n < this.minDate.year() || n == this.minDate.year() && s < this.minDate.month()) && (s = this.minDate.month(), n = this.minDate.year()), this.maxDate && (n > this.maxDate.year() || n == this.maxDate.year() && s > this.maxDate.month()) && (s = this.maxDate.month(), n = this.maxDate.year()), a ? (this.leftCalendar.month.month(s).year(n), this.linkedCalendars && (this.rightCalendar.month = this.leftCalendar.month.clone().add(1, "month"))) : (this.rightCalendar.month.month(s).year(n), this.linkedCalendars && (this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, "month"))), this.updateCalendars()
        },
        timeChanged: function(t) {
            var a = e(t.target).closest(".calendar"),
                i = a.hasClass("left"),
                s = parseInt(a.find(".hourselect").val(), 10),
                n = parseInt(a.find(".minuteselect").val(), 10),
                r = this.timePickerSeconds ? parseInt(a.find(".secondselect").val(), 10) : 0;
            if (!this.timePicker24Hour) {
                var h = a.find(".ampmselect").val();
                "PM" === h && s < 12 && (s += 12), "AM" === h && 12 === s && (s = 0)
            }
            if (i) {
                var o = this.startDate.clone();
                o.hour(s), o.minute(n), o.second(r), this.setStartDate(o), this.singleDatePicker ? this.endDate = this.startDate.clone() : this.endDate && this.endDate.format("YYYY-MM-DD") == o.format("YYYY-MM-DD") && this.endDate.isBefore(o) && this.setEndDate(o.clone())
            } else if (this.endDate) {
                var l = this.endDate.clone();
                l.hour(s), l.minute(n), l.second(r), this.setEndDate(l)
            }
            this.updateCalendars(), this.updateFormInputs(), this.renderTimePicker("left"), this.renderTimePicker("right")
        },
        formInputsChanged: function(a) {
            var i = e(a.target).closest(".calendar").hasClass("right"),
                s = t(this.container.find('input[name="daterangepicker_start"]').val(), this.locale.format),
                n = t(this.container.find('input[name="daterangepicker_end"]').val(), this.locale.format);
            s.isValid() && n.isValid() && (i && n.isBefore(s) && (s = n.clone()), this.setStartDate(s), this.setEndDate(n), i ? this.container.find('input[name="daterangepicker_start"]').val(this.startDate.format(this.locale.format)) : this.container.find('input[name="daterangepicker_end"]').val(this.endDate.format(this.locale.format))), this.updateView()
        },
        formInputsFocused: function(t) {
            this.container.find('input[name="daterangepicker_start"], input[name="daterangepicker_end"]').removeClass("active"), e(t.target).addClass("active"), e(t.target).closest(".calendar").hasClass("right") && (this.endDate = null, this.setStartDate(this.startDate.clone()), this.updateView())
        },
        formInputsBlurred: function(e) {
            if (!this.endDate) {
                var a = t(this.container.find('input[name="daterangepicker_end"]').val(), this.locale.format);
                a.isValid() && (this.setEndDate(a), this.updateView())
            }
        },
        elementChanged: function() {
            if (this.element.is("input") && this.element.val().length && !(this.element.val().length < this.locale.format.length)) {
                var e = this.element.val().split(this.locale.separator),
                    a = null,
                    i = null;
                2 === e.length && (a = t(e[0], this.locale.format), i = t(e[1], this.locale.format)), (this.singleDatePicker || null === a || null === i) && (i = a = t(this.element.val(), this.locale.format)), a.isValid() && i.isValid() && (this.setStartDate(a), this.setEndDate(i), this.updateView())
            }
        },
        keydown: function(t) {
            (9 === t.keyCode || 13 === t.keyCode) && this.hide()
        },
        updateElement: function() {
            this.element.is("input") && !this.singleDatePicker && this.autoUpdateInput ? (this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)), this.element.trigger("change")) : this.element.is("input") && this.autoUpdateInput && (this.element.val(this.startDate.format(this.locale.format)), this.element.trigger("change"))
        },
        remove: function() {
            this.container.remove(), this.element.off(".daterangepicker"), this.element.removeData()
        }
    }, e.fn.daterangepicker = function(t, i) {
        return this.each(function() {
            var s = e(this);
            s.data("daterangepicker") && s.data("daterangepicker").remove(), s.data("daterangepicker", new a(s, t, i))
        }), this
    }, a
});

MMCT - 2023