AyrA icon

Questionable YT MP3 Source

AyrA | PRO | 09/16/18 05:36:54 PM UTC | 0 ⭐ | 692 👁️ | Never ⏰ | []
JavaScript |

206.13 KB

|

None

|

0 👍

/

0 👎

//https://redd.it/9g5t45
!function (e) {
    var t = {};
    function n(r) {
        if (t[r])
            return t[r].exports;
        var i = t[r] = {
            i: r,
            l: !1,
            exports: {}
        };
        return e[r].call(i.exports, i, i.exports, n),
        i.l = !0,
        i.exports
    }
    n.m = e,
    n.c = t,
    n.d = function (e, t, r) {
        n.o(e, t) || Object.defineProperty(e, t, {
            configurable: !1,
            enumerable: !0,
            get: r
        })
    },
    n.n = function (e) {
        var t = e && e.__esModule ? function () {
            return e.default
        }
         : function () {
            return e
        };
        return n.d(t, "a", t),
        t
    },
    n.o = function (e, t) {
        return Object.prototype.hasOwnProperty.call(e, t)
    },
    n.p = "/",
    n(n.s = 0)
}
([function (e, t, n) {
            n(1),
            e.exports = n(6)
        }, function (e, t, n) {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            });
            var r = n(2),
            i = (n.n(r), n(3));
            window.jq = window.$ = window.jQuery = r;
            var o = n(4),
            a = {
                css: function () {
                    var e = document.createElement("link");
                    return e.setAttribute("href", "https://venipa.net/user-scripts/ytd/css/app.css"),
                    e.rel = "stylesheet",
                    e
                },
                converterUrl: "https://yt2mp3.venipa.net/",
                mp3Url: "https://www.convertmp3.io/fetch/?video=v=",
                test: {
                    url: "https://www.youtube.com/embed/Um15yw9Vp"
                },
                playerControls: ".ytp-chrome-controls .ytp-right-controls",
                title: function () {
                    var e = document.querySelector("title");
                    return e ? e.innerText : null
                },
                templates: {
                    button: '<button class="ytd-button">{{text}}</button>',
                    icon: '<i class="mdi mdi-{{icon}}"></i>',
                    videoControlButton: '<button class="ytd-download-button ytd-button" data-tippy aria-pressed="false" title="{{title}}">{{text}}</button>'
                },
                icons: {
                    download: function () {
                        return atob("PHN2ZyBzdHlsZT0id2lkdGg6MjRweDtoZWlnaHQ6MjRweCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGZpbGw9IiMwMDAwMDAiIGQ9Ik01LDIwSDE5VjE4SDVNMTksOUgxNVYzSDlWOUg1TDEyLDE2TDE5LDlaIiAvPgo8L3N2Zz4=")
                    }
                }
            };
            String.prototype.replaceVar || Object.defineProperty(String.prototype, "replaceVar", {
                value: function (e, t) {
                    return this.replace("{{" + e + "}}", t)
                },
                enumerable: !1
            }),
            function (e) {
                document.querySelector("head").appendChild(a.css());
                var t = e(a.templates.videoControlButton.replaceVar("title", "Download MP3").replaceVar("text", a.icons.download()));
                setInterval(function () {
                    (-1 === window.location.pathname.indexOf("embed") || -1 === window.location.pathname.indexOf("watch")) && e(".ytd-download-button").length > 0 || (t = e(a.playerControls).append(t), e(".ytd-download-button").on("click", function (e) {
                            e.preventDefault();
                            var t,
                            n = new URL(window.location.href);
                            if (n.pathname.indexOf("/embed/") > -1) {
                                var r = n.pathname.split("/");
                                t = r[r.length - 1]
                            } else {
                                if (!n.searchParams.has("v"))
                                    return;
                                t = n.searchParams.get("v")
                            }
                            i.nativeDownload(a.mp3Url + t, a.title() + ".mp3")
                        }), o("[data-tippy]"))
                }, 1e3)
            }
            (r)
        }, function (e, t, n) {
            var r,
            i,
            o;
            i = "undefined" != typeof window ? window : this,
            o = function (n, i) {
                var o = [],
                a = n.document,
                s = o.slice,
                u = o.concat,
                l = o.push,
                c = o.indexOf,
                f = {},
                d = f.toString,
                p = f.hasOwnProperty,
                h = {},
                m = function (e, t) {
                    return new m.fn.init(e, t)
                },
                v = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
                g = /^-ms-/,
                y = /-([\da-z])/gi,
                b = function (e, t) {
                    return t.toUpperCase()
                };
                function w(e) {
                    var t = !!e && "length" in e && e.length,
                    n = m.type(e);
                    return "function" !== n && !m.isWindow(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e)
                }
                m.fn = m.prototype = {
                    jquery: "1.12.4",
                    constructor: m,
                    selector: "",
                    length: 0,
                    toArray: function () {
                        return s.call(this)
                    },
                    get: function (e) {
                        return null != e ? e < 0 ? this[e + this.length] : this[e] : s.call(this)
                    },
                    pushStack: function (e) {
                        var t = m.merge(this.constructor(), e);
                        return t.prevObject = this,
                        t.context = this.context,
                        t
                    },
                    each: function (e) {
                        return m.each(this, e)
                    },
                    map: function (e) {
                        return this.pushStack(m.map(this, function (t, n) {
                                return e.call(t, n, t)
                            }))
                    },
                    slice: function () {
                        return this.pushStack(s.apply(this, arguments))
                    },
                    first: function () {
                        return this.eq(0)
                    },
                    last: function () {
                        return this.eq(-1)
                    },
                    eq: function (e) {
                        var t = this.length,
                        n = +e + (e < 0 ? t : 0);
                        return this.pushStack(n >= 0 && n < t ? [this[n]] : [])
                    },
                    end: function () {
                        return this.prevObject || this.constructor()
                    },
                    push: l,
                    sort: o.sort,
                    splice: o.splice
                },
                m.extend = m.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 || m.isFunction(a) || (a = {}), s === u && (a = this, s--); s < u; s++)
                        if (null != (i = arguments[s]))
                            for (r in i)
                                e = a[r], a !== (n = i[r]) && (l && n && (m.isPlainObject(n) || (t = m.isArray(n))) ? (t ? (t = !1, o = e && m.isArray(e) ? e : []) : o = e && m.isPlainObject(e) ? e : {}, a[r] = m.extend(l, o, n)) : void 0 !== n && (a[r] = n));
                    return a
                },
                m.extend({
                    expando: "jQuery" + ("1.12.4" + Math.random()).replace(/\D/g, ""),
                    isReady: !0,
                    error: function (e) {
                        throw new Error(e)
                    },
                    noop: function () {},
                    isFunction: function (e) {
                        return "function" === m.type(e)
                    },
                    isArray: Array.isArray || function (e) {
                        return "array" === m.type(e)
                    },
                    isWindow: function (e) {
                        return null != e && e == e.window
                    },
                    isNumeric: function (e) {
                        var t = e && e.toString();
                        return !m.isArray(e) && t - parseFloat(t) + 1 >= 0
                    },
                    isEmptyObject: function (e) {
                        var t;
                        for (t in e)
                            return !1;
                        return !0
                    },
                    isPlainObject: function (e) {
                        var t;
                        if (!e || "object" !== m.type(e) || e.nodeType || m.isWindow(e))
                            return !1;
                        try {
                            if (e.constructor && !p.call(e, "constructor") && !p.call(e.constructor.prototype, "isPrototypeOf"))
                                return !1
                        } catch (e) {
                            return !1
                        }
                        if (!h.ownFirst)
                            for (t in e)
                                return p.call(e, t);
                        for (t in e);
                        return void 0 === t || p.call(e, t)
                    },
                    type: function (e) {
                        return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? f[d.call(e)] || "object" : typeof e
                    },
                    globalEval: function (e) {
                        e && m.trim(e) && (n.execScript || function (e) {
                            n.eval.call(n, e)
                        })(e)
                    },
                    camelCase: function (e) {
                        return e.replace(g, "ms-").replace(y, b)
                    },
                    nodeName: function (e, t) {
                        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
                    },
                    each: function (e, t) {
                        var n,
                        r = 0;
                        if (w(e))
                            for (n = e.length; r < n && !1 !== t.call(e[r], r, e[r]); r++);
                        else
                            for (r in e)
                                if (!1 === t.call(e[r], r, e[r]))
                                    break;
                        return e
                    },
                    trim: function (e) {
                        return null == e ? "" : (e + "").replace(v, "")
                    },
                    makeArray: function (e, t) {
                        var n = t || [];
                        return null != e && (w(Object(e)) ? m.merge(n, "string" == typeof e ? [e] : e) : l.call(n, e)),
                        n
                    },
                    inArray: function (e, t, n) {
                        var r;
                        if (t) {
                            if (c)
                                return c.call(t, e, n);
                            for (r = t.length, n = n ? n < 0 ? Math.max(0, r + n) : n : 0; n < r; n++)
                                if (n in t && t[n] === e)
                                    return n
                        }
                        return -1
                    },
                    merge: function (e, t) {
                        for (var n = +t.length, r = 0, i = e.length; r < n; )
                            e[i++] = t[r++];
                        if (n != n)
                            for (; void 0 !== t[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 (w(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 u.apply([], a)
                    },
                    guid: 1,
                    proxy: function (e, t) {
                        var n,
                        r,
                        i;
                        if ("string" == typeof t && (i = e[t], t = e, e = i), m.isFunction(e))
                            return n = s.call(arguments, 2), (r = function () {
                                return e.apply(t || this, n.concat(s.call(arguments)))
                            }).guid = e.guid = e.guid || m.guid++, r
                    },
                    now: function () {
                        return +new Date
                    },
                    support: h
                }),
                "function" == typeof Symbol && (m.fn[Symbol.iterator] = o[Symbol.iterator]),
                m.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) {
                    f["[object " + t + "]"] = t.toLowerCase()
                });
                var x = function (e) {
                    var t,
                    n,
                    r,
                    i,
                    o,
                    a,
                    s,
                    u,
                    l,
                    c,
                    f,
                    d,
                    p,
                    h,
                    m,
                    v,
                    g,
                    y,
                    b,
                    w = "sizzle" + 1 * new Date,
                    x = e.document,
                    T = 0,
                    E = 0,
                    C = oe(),
                    k = oe(),
                    S = oe(),
                    L = function (e, t) {
                        return e === t && (f = !0),
                        0
                    },
                    N = 1 << 31,
                    A = {}
                    .hasOwnProperty,
                    D = [],
                    O = D.pop,
                    j = D.push,
                    H = D.push,
                    P = D.slice,
                    M = function (e, t) {
                        for (var n = 0, r = e.length; n < r; n++)
                            if (e[n] === t)
                                return n;
                        return -1
                    },
                    R = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
                    q = "[\\x20\\t\\r\\n\\f]",
                    I = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
                    F = "\\[" + q + "*(" + I + ")(?:" + q + "*([*^$|!~]?=)" + q + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + q + "*\\]",
                    B = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + F + ")*)|.*)\\)|)",
                    _ = new RegExp(q + "+", "g"),
                    W = new RegExp("^" + q + "+|((?:^|[^\\\\])(?:\\\\.)*)" + q + "+$", "g"),
                    z = new RegExp("^" + q + "*," + q + "*"),
                    U = new RegExp("^" + q + "*([>+~]|" + q + ")" + q + "*"),
                    $ = new RegExp("=" + q + "*([^\\]'\"]*?)" + q + "*\\]", "g"),
                    X = new RegExp(B),
                    V = new RegExp("^" + I + "$"),
                    Y = {
                        ID: new RegExp("^#(" + I + ")"),
                        CLASS: new RegExp("^\\.(" + I + ")"),
                        TAG: new RegExp("^(" + I + "|[*])"),
                        ATTR: new RegExp("^" + F),
                        PSEUDO: new RegExp("^" + B),
                        CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + q + "*(even|odd|(([+-]|)(\\d*)n|)" + q + "*(?:([+-]|)" + q + "*(\\d+)|))" + q + "*\\)|)", "i"),
                        bool: new RegExp("^(?:" + R + ")$", "i"),
                        needsContext: new RegExp("^" + q + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + q + "*((?:-\\d)?\\d*)" + q + "*\\)|)(?=[^-]|$)", "i")
                    },
                    G = /^(?:input|select|textarea|button)$/i,
                    J = /^h\d$/i,
                    K = /^[^{]+\{\s*\[native \w/,
                    Q = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
                    Z = /[+~]/,
                    ee = /'|\\/g,
                    te = new RegExp("\\\\([\\da-f]{1,6}" + q + "?|(" + q + ")|.)", "ig"),
                    ne = function (e, t, n) {
                        var r = "0x" + t - 65536;
                        return r != r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320)
                    },
                    re = function () {
                        d()
                    };
                    try {
                        H.apply(D = P.call(x.childNodes), x.childNodes),
                        D[x.childNodes.length].nodeType
                    } catch (e) {
                        H = {
                            apply: D.length ? function (e, t) {
                                j.apply(e, P.call(t))
                            }
                             : function (e, t) {
                                for (var n = e.length, r = 0; e[n++] = t[r++]; );
                                e.length = n - 1
                            }
                        }
                    }
                    function ie(e, t, r, i) {
                        var o,
                        s,
                        l,
                        c,
                        f,
                        h,
                        g,
                        y,
                        T = t && t.ownerDocument,
                        E = t ? t.nodeType : 9;
                        if (r = r || [], "string" != typeof e || !e || 1 !== E && 9 !== E && 11 !== E)
                            return r;
                        if (!i && ((t ? t.ownerDocument || t : x) !== p && d(t), t = t || p, m)) {
                            if (11 !== E && (h = Q.exec(e)))
                                if (o = h[1]) {
                                    if (9 === E) {
                                        if (!(l = t.getElementById(o)))
                                            return r;
                                        if (l.id === o)
                                            return r.push(l), r
                                    } else if (T && (l = T.getElementById(o)) && b(t, l) && l.id === o)
                                        return r.push(l), r
                                } else {
                                    if (h[2])
                                        return H.apply(r, t.getElementsByTagName(e)), r;
                                    if ((o = h[3]) && n.getElementsByClassName && t.getElementsByClassName)
                                        return H.apply(r, t.getElementsByClassName(o)), r
                                }
                            if (n.qsa && !S[e + " "] && (!v || !v.test(e))) {
                                if (1 !== E)
                                    T = t, y = e;
                                else if ("object" !== t.nodeName.toLowerCase()) {
                                    for ((c = t.getAttribute("id")) ? c = c.replace(ee, "\\$&") : t.setAttribute("id", c = w), s = (g = a(e)).length, f = V.test(c) ? "#" + c : "[id='" + c + "']"; s--; )
                                        g[s] = f + " " + me(g[s]);
                                    y = g.join(","),
                                    T = Z.test(e) && pe(t.parentNode) || t
                                }
                                if (y)
                                    try {
                                        return H.apply(r, T.querySelectorAll(y)),
                                        r
                                    } catch (e) {}
                                finally {
                                    c === w && t.removeAttribute("id")
                                }
                            }
                        }
                        return u(e.replace(W, "$1"), t, r, i)
                    }
                    function oe() {
                        var e = [];
                        return function t(n, i) {
                            return e.push(n + " ") > r.cacheLength && delete t[e.shift()],
                            t[n + " "] = i
                        }
                    }
                    function ae(e) {
                        return e[w] = !0,
                        e
                    }
                    function se(e) {
                        var t = p.createElement("div");
                        try {
                            return !!e(t)
                        } catch (e) {
                            return !1
                        }
                        finally {
                            t.parentNode && t.parentNode.removeChild(t),
                            t = null
                        }
                    }
                    function ue(e, t) {
                        for (var n = e.split("|"), i = n.length; i--; )
                            r.attrHandle[n[i]] = t
                    }
                    function le(e, t) {
                        var n = t && e,
                        r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || N) - (~e.sourceIndex || N);
                        if (r)
                            return r;
                        if (n)
                            for (; n = n.nextSibling; )
                                if (n === t)
                                    return -1;
                        return e ? 1 : -1
                    }
                    function ce(e) {
                        return function (t) {
                            return "input" === t.nodeName.toLowerCase() && t.type === e
                        }
                    }
                    function fe(e) {
                        return function (t) {
                            var n = t.nodeName.toLowerCase();
                            return ("input" === n || "button" === n) && t.type === e
                        }
                    }
                    function de(e) {
                        return ae(function (t) {
                            return t = +t,
                            ae(function (n, r) {
                                for (var i, o = e([], n.length, t), a = o.length; a--; )
                                    n[i = o[a]] && (n[i] = !(r[i] = n[i]))
                            })
                        })
                    }
                    function pe(e) {
                        return e && void 0 !== e.getElementsByTagName && e
                    }
                    for (t in n = ie.support = {}, o = ie.isXML = function (e) {
                        var t = e && (e.ownerDocument || e).documentElement;
                        return !!t && "HTML" !== t.nodeName
                    }, d = ie.setDocument = function (e) {
                        var t,
                        i,
                        a = e ? e.ownerDocument || e : x;
                        return a !== p && 9 === a.nodeType && a.documentElement ? (h = (p = a).documentElement, m = !o(p), (i = p.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", re, !1) : i.attachEvent && i.attachEvent("onunload", re)), n.attributes = se(function (e) {
                                    return e.className = "i",
                                    !e.getAttribute("className")
                                }), n.getElementsByTagName = se(function (e) {
                                    return e.appendChild(p.createComment("")),
                                    !e.getElementsByTagName("*").length
                                }), n.getElementsByClassName = K.test(p.getElementsByClassName), n.getById = se(function (e) {
                                    return h.appendChild(e).id = w,
                                    !p.getElementsByName || !p.getElementsByName(w).length
                                }), n.getById ? (r.find.ID = function (e, t) {
                                if (void 0 !== t.getElementById && m) {
                                    var n = t.getElementById(e);
                                    return n ? [n] : []
                                }
                            }, r.filter.ID = function (e) {
                                var t = e.replace(te, ne);
                                return function (e) {
                                    return e.getAttribute("id") === t
                                }
                            }) : (delete r.find.ID, r.filter.ID = function (e) {
                                var t = e.replace(te, ne);
                                return function (e) {
                                    var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id");
                                    return n && n.value === t
                                }
                            }), r.find.TAG = n.getElementsByTagName ? function (e, t) {
                            return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0
                        }
                             : function (e, t) {
                            var n,
                            r = [],
                            i = 0,
                            o = t.getElementsByTagName(e);
                            if ("*" === e) {
                                for (; n = o[i++]; )
                                    1 === n.nodeType && r.push(n);
                                    return r
                                }
                                return o
                            }, r.find.CLASS = n.getElementsByClassName && function (e, t) {
                                if (void 0 !== t.getElementsByClassName && m)
                                    return t.getElementsByClassName(e)
                            }, g = [], v = [], (n.qsa = K.test(p.querySelectorAll)) && (se(function (e) {
                                        h.appendChild(e).innerHTML = "<a id='" + w + "'></a><select id='" + w + "-\r\\' msallowcapture=''><option selected=''></option></select>",
                                        e.querySelectorAll("[msallowcapture^='']").length && v.push("[*^$]=" + q + "*(?:''|\"\")"),
                                        e.querySelectorAll("[selected]").length || v.push("\\[" + q + "*(?:value|" + R + ")"),
                                        e.querySelectorAll("[id~=" + w + "-]").length || v.push("~="),
                                        e.querySelectorAll(":checked").length || v.push(":checked"),
                                        e.querySelectorAll("a#" + w + "+*").length || v.push(".#.+[+~]")
                                    }), se(function (e) {
                                        var t = p.createElement("input");
                                        t.setAttribute("type", "hidden"),
                                        e.appendChild(t).setAttribute("name", "D"),
                                        e.querySelectorAll("[name=d]").length && v.push("name" + q + "*[*^$|!~]?="),
                                        e.querySelectorAll(":enabled").length || v.push(":enabled", ":disabled"),
                                        e.querySelectorAll("*,:x"),
                                        v.push(",.*:")
                                    })), (n.matchesSelector = K.test(y = h.matches || h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector)) && se(function (e) {
                                    n.disconnectedMatch = y.call(e, "div"),
                                    y.call(e, "[s!='']:x"),
                                    g.push("!=", B)
                                }), v = v.length && new RegExp(v.join("|")), g = g.length && new RegExp(g.join("|")), t = K.test(h.compareDocumentPosition), b = t || K.test(h.contains) ? function (e, t) {
                                var n = 9 === e.nodeType ? e.documentElement : e,
                                r = t && t.parentNode;
                                return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
                            }
                                 : function (e, t) {
                                if (t)
                                    for (; t = t.parentNode; )
                                        if (t === e)
                                            return !0;
                                return !1
                            }, L = t ? function (e, t) {
                                if (e === t)
                                    return f = !0, 0;
                                var r = !e.compareDocumentPosition - !t.compareDocumentPosition;
                                return r || (1 & (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !n.sortDetached && t.compareDocumentPosition(e) === r ? e === p || e.ownerDocument === x && b(x, e) ? -1 : t === p || t.ownerDocument === x && b(x, t) ? 1 : c ? M(c, e) - M(c, t) : 0 : 4 & r ? -1 : 1)
                            }
                                 : function (e, t) {
                                if (e === t)
                                    return f = !0, 0;
                                var n,
                                r = 0,
                                i = e.parentNode,
                                o = t.parentNode,
                                a = [e],
                                s = [t];
                                if (!i || !o)
                                    return e === p ? -1 : t === p ? 1 : i ? -1 : o ? 1 : c ? M(c, e) - M(c, t) : 0;
                                if (i === o)
                                    return le(e, t);
                                for (n = e; n = n.parentNode; )
                                    a.unshift(n);
                                for (n = t; n = n.parentNode; )
                                    s.unshift(n);
                                for (; a[r] === s[r]; )
                                    r++;
                                return r ? le(a[r], s[r]) : a[r] === x ? -1 : s[r] === x ? 1 : 0
                            }, p) : p
                        }, ie.matches = function (e, t) {
                            return ie(e, null, null, t)
                        }, ie.matchesSelector = function (e, t) {
                            if ((e.ownerDocument || e) !== p && d(e), t = t.replace($, "='$1']"), n.matchesSelector && m && !S[t + " "] && (!g || !g.test(t)) && (!v || !v.test(t)))
                                try {
                                    var r = y.call(e, t);
                                    if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType)
                                        return r
                                } catch (e) {}
                            return ie(t, p, null, [e]).length > 0
                        }, ie.contains = function (e, t) {
                            return (e.ownerDocument || e) !== p && d(e),
                            b(e, t)
                        }, ie.attr = function (e, t) {
                            (e.ownerDocument || e) !== p && d(e);
                            var i = r.attrHandle[t.toLowerCase()],
                            o = i && A.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !m) : void 0;
                            return void 0 !== o ? o : n.attributes || !m ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null
                        }, ie.error = function (e) {
                            throw new Error("Syntax error, unrecognized expression: " + e)
                        }, ie.uniqueSort = function (e) {
                            var t,
                            r = [],
                            i = 0,
                            o = 0;
                            if (f = !n.detectDuplicates, c = !n.sortStable && e.slice(0), e.sort(L), f) {
                                for (; t = e[o++]; )
                                    t === e[o] && (i = r.push(o));
                                for (; i--; )
                                    e.splice(r[i], 1)
                            }
                            return c = null,
                            e
                        }, i = ie.getText = function (e) {
                            var t,
                            n = "",
                            r = 0,
                            o = e.nodeType;
                            if (o) {
                                if (1 === o || 9 === o || 11 === o) {
                                    if ("string" == typeof e.textContent)
                                        return e.textContent;
                                    for (e = e.firstChild; e; e = e.nextSibling)
                                        n += i(e)
                                } else if (3 === o || 4 === o)
                                    return e.nodeValue
                            } else
                                for (; t = e[r++]; )
                                    n += i(t);
                            return n
                        }, (r = ie.selectors = {
                                    cacheLength: 50,
                                    createPseudo: ae,
                                    match: Y,
                                    attrHandle: {},
                                    find: {},
                                    relative: {
                                        ">": {
                                            dir: "parentNode",
                                            first: !0
                                        },
                                        " ": {
                                            dir: "parentNode"
                                        },
                                        "+": {
                                            dir: "previousSibling",
                                            first: !0
                                        },
                                        "~": {
                                            dir: "previousSibling"
                                        }
                                    },
                                    preFilter: {
                                        ATTR: function (e) {
                                            return e[1] = e[1].replace(te, ne),
                                            e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne),
                                            "~=" === e[2] && (e[3] = " " + e[3] + " "),
                                            e.slice(0, 4)
                                        },
                                        CHILD: function (e) {
                                            return e[1] = e[1].toLowerCase(),
                                            "nth" === e[1].slice(0, 3) ? (e[3] || ie.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] && ie.error(e[0]),
                                            e
                                        },
                                        PSEUDO: function (e) {
                                            var t,
                                            n = !e[6] && e[2];
                                            return Y.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = a(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
                                        }
                                    },
                                    filter: {
                                        TAG: function (e) {
                                            var t = e.replace(te, ne).toLowerCase();
                                            return "*" === e ? function () {
                                                return !0
                                            }
                                             : function (e) {
                                                return e.nodeName && e.nodeName.toLowerCase() === t
                                            }
                                        },
                                        CLASS: function (e) {
                                            var t = C[e + " "];
                                            return t || (t = new RegExp("(^|" + q + ")" + e + "(" + q + "|$)")) && C(e, function (e) {
                                                return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "")
                                            })
                                        },
                                        ATTR: function (e, t, n) {
                                            return function (r) {
                                                var i = ie.attr(r, e);
                                                return null == i ? "!=" === t : !t || (i += "", "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.slice(-n.length) === n : "~=" === t ? (" " + i.replace(_, " ") + " ").indexOf(n) > -1 : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-"))
                                            }
                                        },
                                        CHILD: function (e, t, n, r, i) {
                                            var o = "nth" !== e.slice(0, 3),
                                            a = "last" !== e.slice(-4),
                                            s = "of-type" === t;
                                            return 1 === r && 0 === i ? function (e) {
                                                return !!e.parentNode
                                            }
                                             : function (t, n, u) {
                                                var l,
                                                c,
                                                f,
                                                d,
                                                p,
                                                h,
                                                m = o !== a ? "nextSibling" : "previousSibling",
                                                v = t.parentNode,
                                                g = s && t.nodeName.toLowerCase(),
                                                y = !u && !s,
                                                b = !1;
                                                if (v) {
                                                    if (o) {
                                                        for (; m; ) {
                                                            for (d = t; d = d[m]; )
                                                                if (s ? d.nodeName.toLowerCase() === g : 1 === d.nodeType)
                                                                    return !1;
                                                            h = m = "only" === e && !h && "nextSibling"
                                                        }
                                                        return !0
                                                    }
                                                    if (h = [a ? v.firstChild : v.lastChild], a && y) {
                                                        for (b = (p = (l = (c = (f = (d = v)[w] || (d[w] = {}))[d.uniqueID] || (f[d.uniqueID] = {}))[e] || [])[0] === T && l[1]) && l[2], d = p && v.childNodes[p]; d = ++p && d && d[m] || (b = p = 0) || h.pop(); )
                                                            if (1 === d.nodeType && ++b && d === t) {
                                                                c[e] = [T, p, b];
                                                                break
                                                            }
                                                    } else if (y && (b = p = (l = (c = (f = (d = t)[w] || (d[w] = {}))[d.uniqueID] || (f[d.uniqueID] = {}))[e] || [])[0] === T && l[1]), !1 === b)
                                                        for (; (d = ++p && d && d[m] || (b = p = 0) || h.pop()) && ((s ? d.nodeName.toLowerCase() !== g : 1 !== d.nodeType) || !++b || (y && ((c = (f = d[w] || (d[w] = {}))[d.uniqueID] || (f[d.uniqueID] = {}))[e] = [T, b]), d !== t)); );
                                                    return (b -= i) === r || b % r == 0 && b / r >= 0
                                                }
                                            }
                                        },
                                        PSEUDO: function (e, t) {
                                            var n,
                                            i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || ie.error("unsupported pseudo: " + e);
                                            return i[w] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? ae(function (e, n) {
                                                    for (var r, o = i(e, t), a = o.length; a--; )
                                                        e[r = M(e, o[a])] = !(n[r] = o[a])
                                                }) : function (e) {
                                                return i(e, 0, n)
                                            }) : i
                                        }
                                    },
                                    pseudos: {
                                        not: ae(function (e) {
                                            var t = [],
                                            n = [],
                                            r = s(e.replace(W, "$1"));
                                            return r[w] ? ae(function (e, t, n, i) {
                                                for (var o, a = r(e, null, i, []), s = e.length; s--; )
                                                    (o = a[s]) && (e[s] = !(t[s] = o))
                                            }) : function (e, i, o) {
                                                return t[0] = e,
                                                r(t, null, o, n),
                                                t[0] = null,
                                                !n.pop()
                                            }
                                        }),
                                        has: ae(function (e) {
                                            return function (t) {
                                                return ie(e, t).length > 0
                                            }
                                        }),
                                        contains: ae(function (e) {
                                            return e = e.replace(te, ne),
                                            function (t) {
                                                return (t.textContent || t.innerText || i(t)).indexOf(e) > -1
                                            }
                                        }),
                                        lang: ae(function (e) {
                                            return V.test(e || "") || ie.error("unsupported lang: " + e),
                                            e = e.replace(te, ne).toLowerCase(),
                                            function (t) {
                                                var n;
                                                do {
                                                    if (n = m ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang"))
                                                        return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-")
                                                } while ((t = t.parentNode) && 1 === t.nodeType);
                                                return !1
                                            }
                                        }),
                                        target: function (t) {
                                            var n = e.location && e.location.hash;
                                            return n && n.slice(1) === t.id
                                        },
                                        root: function (e) {
                                            return e === h
                                        },
                                        focus: function (e) {
                                            return e === p.activeElement && (!p.hasFocus || p.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
                                        },
                                        enabled: function (e) {
                                            return !1 === e.disabled
                                        },
                                        disabled: function (e) {
                                            return !0 === e.disabled
                                        },
                                        checked: function (e) {
                                            var t = e.nodeName.toLowerCase();
                                            return "input" === t && !!e.checked || "option" === t && !!e.selected
                                        },
                                        selected: function (e) {
                                            return e.parentNode && e.parentNode.selectedIndex,
                                            !0 === e.selected
                                        },
                                        empty: function (e) {
                                            for (e = e.firstChild; e; e = e.nextSibling)
                                                if (e.nodeType < 6)
                                                    return !1;
                                            return !0
                                        },
                                        parent: function (e) {
                                            return !r.pseudos.empty(e)
                                        },
                                        header: function (e) {
                                            return J.test(e.nodeName)
                                        },
                                        input: function (e) {
                                            return G.test(e.nodeName)
                                        },
                                        button: function (e) {
                                            var t = e.nodeName.toLowerCase();
                                            return "input" === t && "button" === e.type || "button" === t
                                        },
                                        text: function (e) {
                                            var t;
                                            return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
                                        },
                                        first: de(function () {
                                            return [0]
                                        }),
                                        last: de(function (e, t) {
                                            return [t - 1]
                                        }),
                                        eq: de(function (e, t, n) {
                                            return [n < 0 ? n + t : n]
                                        }),
                                        even: de(function (e, t) {
                                            for (var n = 0; n < t; n += 2)
                                                e.push(n);
                                            return e
                                        }),
                                        odd: de(function (e, t) {
                                            for (var n = 1; n < t; n += 2)
                                                e.push(n);
                                            return e
                                        }),
                                        lt: de(function (e, t, n) {
                                            for (var r = n < 0 ? n + t : n; --r >= 0; )
                                                e.push(r);
                                            return e
                                        }),
                                        gt: de(function (e, t, n) {
                                            for (var r = n < 0 ? n + t : n; ++r < t; )
                                                e.push(r);
                                            return e
                                        })
                                    }
                                }).pseudos.nth = r.pseudos.eq, {
                            radio: !0,
                            checkbox: !0,
                            file: !0,
                            password: !0,
                            image: !0
                        })r.pseudos[t] = ce(t);
                    for (t in {
                        submit: !0,
                        reset: !0
                    })
                        r.pseudos[t] = fe(t);
                    function he() {}
                    function me(e) {
                        for (var t = 0, n = e.length, r = ""; t < n; t++)
                            r += e[t].value;
                        return r
                    }
                    function ve(e, t, n) {
                        var r = t.dir,
                        i = n && "parentNode" === r,
                        o = E++;
                        return t.first ? function (t, n, o) {
                            for (; t = t[r]; )
                                if (1 === t.nodeType || i)
                                    return e(t, n, o)
                        }
                         : function (t, n, a) {
                            var s,
                            u,
                            l,
                            c = [T, o];
                            if (a) {
                                for (; t = t[r]; )
                                    if ((1 === t.nodeType || i) && e(t, n, a))
                                        return !0
                            } else
                                for (; t = t[r]; )
                                    if (1 === t.nodeType || i) {
                                        if ((s = (u = (l = t[w] || (t[w] = {}))[t.uniqueID] || (l[t.uniqueID] = {}))[r]) && s[0] === T && s[1] === o)
                                            return c[2] = s[2];
                                        if (u[r] = c, c[2] = e(t, n, a))
                                            return !0
                                    }
                        }
                    }
                    function ge(e) {
                        return e.length > 1 ? function (t, n, r) {
                            for (var i = e.length; i--; )
                                if (!e[i](t, n, r))
                                    return !1;
                            return !0
                        }
                         : e[0]
                    }
                    function ye(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 be(e, t, n, r, i, o) {
                        return r && !r[w] && (r = be(r)),
                        i && !i[w] && (i = be(i, o)),
                        ae(function (o, a, s, u) {
                            var l,
                            c,
                            f,
                            d = [],
                            p = [],
                            h = a.length,
                            m = o || function (e, t, n) {
                                for (var r = 0, i = t.length; r < i; r++)
                                    ie(e, t[r], n);
                                return n
                            }
                            (t || "*", s.nodeType ? [s] : s, []),
                            v = !e || !o && t ? m : ye(m, d, e, s, u),
                            g = n ? i || (o ? e : h || r) ? [] : a : v;
                            if (n && n(v, g, s, u), r)
                                for (l = ye(g, p), r(l, [], s, u), c = l.length; c--; )
                                    (f = l[c]) && (g[p[c]] = !(v[p[c]] = f));
                            if (o) {
                                if (i || e) {
                                    if (i) {
                                        for (l = [], c = g.length; c--; )
                                            (f = g[c]) && l.push(v[c] = f);
                                        i(null, g = [], l, u)
                                    }
                                    for (c = g.length; c--; )
                                        (f = g[c]) && (l = i ? M(o, f) : d[c]) > -1 && (o[l] = !(a[l] = f))
                                }
                            } else
                                g = ye(g === a ? g.splice(h, g.length) : g), i ? i(null, a, g, u) : H.apply(a, g)
                        })
                    }
                    function we(e) {
                        for (var t, n, i, o = e.length, a = r.relative[e[0].type], s = a || r.relative[" "], u = a ? 1 : 0, c = ve(function (e) {
                                    return e === t
                                }, s, !0), f = ve(function (e) {
                                    return M(t, e) > -1
                                }, s, !0), d = [function (e, n, r) {
                                    var i = !a && (r || n !== l) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r));
                                    return t = null,
                                    i
                                }
                            ]; u < o; u++)
                            if (n = r.relative[e[u].type])
                                d = [ve(ge(d), n)];
                            else {
                                if ((n = r.filter[e[u].type].apply(null, e[u].matches))[w]) {
                                    for (i = ++u; i < o && !r.relative[e[i].type]; i++);
                                    return be(u > 1 && ge(d), u > 1 && me(e.slice(0, u - 1).concat({
                                                value: " " === e[u - 2].type ? "*" : ""
                                            })).replace(W, "$1"), n, u < i && we(e.slice(u, i)), i < o && we(e = e.slice(i)), i < o && me(e))
                                }
                                d.push(n)
                            }
                        return ge(d)
                    }
                    return he.prototype = r.filters = r.pseudos,
                    r.setFilters = new he,
                    a = ie.tokenize = function (e, t) {
                        var n,
                        i,
                        o,
                        a,
                        s,
                        u,
                        l,
                        c = k[e + " "];
                        if (c)
                            return t ? 0 : c.slice(0);
                        for (s = e, u = [], l = r.preFilter; s; ) {
                            for (a in n && !(i = z.exec(s)) || (i && (s = s.slice(i[0].length) || s), u.push(o = [])), n = !1, (i = U.exec(s)) && (n = i.shift(), o.push({
                                        value: n,
                                        type: i[0].replace(W, " ")
                                    }), s = s.slice(n.length)), r.filter)
                                !(i = Y[a].exec(s)) || l[a] && !(i = l[a](i)) || (n = i.shift(), o.push({
                                        value: n,
                                        type: a,
                                        matches: i
                                    }), s = s.slice(n.length));
                            if (!n)
                                break
                        }
                        return t ? s.length : s ? ie.error(e) : k(e, u).slice(0)
                    },
                    s = ie.compile = function (e, t) {
                        var n,
                        i = [],
                        o = [],
                        s = S[e + " "];
                        if (!s) {
                            for (t || (t = a(e)), n = t.length; n--; )
                                (s = we(t[n]))[w] ? i.push(s) : o.push(s);
                            (s = S(e, function (e, t) {
                                        var n = t.length > 0,
                                        i = e.length > 0,
                                        o = function (o, a, s, u, c) {
                                            var f,
                                            h,
                                            v,
                                            g = 0,
                                            y = "0",
                                            b = o && [],
                                            w = [],
                                            x = l,
                                            E = o || i && r.find.TAG("*", c),
                                            C = T += null == x ? 1 : Math.random() || .1,
                                            k = E.length;
                                            for (c && (l = a === p || a || c); y !== k && null != (f = E[y]); y++) {
                                                if (i && f) {
                                                    for (h = 0, a || f.ownerDocument === p || (d(f), s = !m); v = e[h++]; )
                                                        if (v(f, a || p, s)) {
                                                            u.push(f);
                                                            break
                                                        }
                                                    c && (T = C)
                                                }
                                                n && ((f = !v && f) && g--, o && b.push(f))
                                            }
                                            if (g += y, n && y !== g) {
                                                for (h = 0; v = t[h++]; )
                                                    v(b, w, a, s);
                                                if (o) {
                                                    if (g > 0)
                                                        for (; y--; )
                                                            b[y] || w[y] || (w[y] = O.call(u));
                                                    w = ye(w)
                                                }
                                                H.apply(u, w),
                                                c && !o && w.length > 0 && g + t.length > 1 && ie.uniqueSort(u)
                                            }
                                            return c && (T = C, l = x),
                                            b
                                        };
                                        return n ? ae(o) : o
                                    }
                                        (o, i))).selector = e
                        }
                        return s
                    },
                    u = ie.select = function (e, t, i, o) {
                        var u,
                        l,
                        c,
                        f,
                        d,
                        p = "function" == typeof e && e,
                        h = !o && a(e = p.selector || e);
                        if (i = i || [], 1 === h.length) {
                            if ((l = h[0] = h[0].slice(0)).length > 2 && "ID" === (c = l[0]).type && n.getById && 9 === t.nodeType && m && r.relative[l[1].type]) {
                                if (!(t = (r.find.ID(c.matches[0].replace(te, ne), t) || [])[0]))
                                    return i;
                                p && (t = t.parentNode),
                                e = e.slice(l.shift().value.length)
                            }
                            for (u = Y.needsContext.test(e) ? 0 : l.length; u-- && (c = l[u], !r.relative[f = c.type]); )
                                if ((d = r.find[f]) && (o = d(c.matches[0].replace(te, ne), Z.test(l[0].type) && pe(t.parentNode) || t))) {
                                    if (l.splice(u, 1), !(e = o.length && me(l)))
                                        return H.apply(i, o), i;
                                    break
                                }
                        }
                        return (p || s(e, h))(o, t, !m, i, !t || Z.test(e) && pe(t.parentNode) || t),
                        i
                    },
                    n.sortStable = w.split("").sort(L).join("") === w,
                    n.detectDuplicates = !!f,
                    d(),
                    n.sortDetached = se(function (e) {
                            return 1 & e.compareDocumentPosition(p.createElement("div"))
                        }),
                    se(function (e) {
                        return e.innerHTML = "<a href='#'></a>",
                        "#" === e.firstChild.getAttribute("href")
                    }) || ue("type|href|height|width", function (e, t, n) {
                        if (!n)
                            return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
                    }),
                    n.attributes && se(function (e) {
                        return e.innerHTML = "<input/>",
                        e.firstChild.setAttribute("value", ""),
                        "" === e.firstChild.getAttribute("value")
                    }) || ue("value", function (e, t, n) {
                        if (!n && "input" === e.nodeName.toLowerCase())
                            return e.defaultValue
                    }),
                    se(function (e) {
                        return null == e.getAttribute("disabled")
                    }) || ue(R, function (e, t, n) {
                        var r;
                        if (!n)
                            return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
                    }),
                    ie
                }
                (n);
                m.find = x,
                m.expr = x.selectors,
                m.expr[":"] = m.expr.pseudos,
                m.uniqueSort = m.unique = x.uniqueSort,
                m.text = x.getText,
                m.isXMLDoc = x.isXML,
                m.contains = x.contains;
                var T = function (e, t, n) {
                    for (var r = [], i = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; )
                        if (1 === e.nodeType) {
                            if (i && m(e).is(n))
                                break;
                            r.push(e)
                        }
                    return r
                },
                E = function (e, t) {
                    for (var n = []; e; e = e.nextSibling)
                        1 === e.nodeType && e !== t && n.push(e);
                    return n
                },
                C = m.expr.match.needsContext,
                k = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,
                S = /^.[^:#\[\.,]*$/;
                function L(e, t, n) {
                    if (m.isFunction(t))
                        return m.grep(e, function (e, r) {
                            return !!t.call(e, r, e) !== n
                        });
                    if (t.nodeType)
                        return m.grep(e, function (e) {
                            return e === t !== n
                        });
                    if ("string" == typeof t) {
                        if (S.test(t))
                            return m.filter(t, e, n);
                        t = m.filter(t, e)
                    }
                    return m.grep(e, function (e) {
                        return m.inArray(e, t) > -1 !== n
                    })
                }
                m.filter = function (e, t, n) {
                    var r = t[0];
                    return n && (e = ":not(" + e + ")"),
                    1 === t.length && 1 === r.nodeType ? m.find.matchesSelector(r, e) ? [r] : [] : m.find.matches(e, m.grep(t, function (e) {
                            return 1 === e.nodeType
                        }))
                },
                m.fn.extend({
                    find: function (e) {
                        var t,
                        n = [],
                        r = this,
                        i = r.length;
                        if ("string" != typeof e)
                            return this.pushStack(m(e).filter(function () {
                                    for (t = 0; t < i; t++)
                                        if (m.contains(r[t], this))
                                            return !0
                                }));
                        for (t = 0; t < i; t++)
                            m.find(e, r[t], n);
                        return (n = this.pushStack(i > 1 ? m.unique(n) : n)).selector = this.selector ? this.selector + " " + e : e,
                        n
                    },
                    filter: function (e) {
                        return this.pushStack(L(this, e || [], !1))
                    },
                    not: function (e) {
                        return this.pushStack(L(this, e || [], !0))
                    },
                    is: function (e) {
                        return !!L(this, "string" == typeof e && C.test(e) ? m(e) : e || [], !1).length
                    }
                });
                var N,
                A = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;
                (m.fn.init = function (e, t, n) {
                    var r,
                    i;
                    if (!e)
                        return this;
                    if (n = n || N, "string" == typeof e) {
                        if (!(r = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && e.length >= 3 ? [null, e, null] : A.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 m ? t[0] : t, m.merge(this, m.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : a, !0)), k.test(r[1]) && m.isPlainObject(t))
                                for (r in t)
                                    m.isFunction(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
                            return this
                        }
                        if ((i = a.getElementById(r[2])) && i.parentNode) {
                            if (i.id !== r[2])
                                return N.find(e);
                            this.length = 1,
                            this[0] = i
                        }
                        return this.context = a,
                        this.selector = e,
                        this
                    }
                    return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : m.isFunction(e) ? void 0 !== n.ready ? n.ready(e) : e(m) : (void 0 !== e.selector && (this.selector = e.selector, this.context = e.context), m.makeArray(e, this))
                }).prototype = m.fn,
                N = m(a);
                var D = /^(?:parents|prev(?:Until|All))/,
                O = {
                    children: !0,
                    contents: !0,
                    next: !0,
                    prev: !0
                };
                function j(e, t) {
                    do {
                        e = e[t]
                    } while (e && 1 !== e.nodeType);
                    return e
                }
                m.fn.extend({
                    has: function (e) {
                        var t,
                        n = m(e, this),
                        r = n.length;
                        return this.filter(function () {
                            for (t = 0; t < r; t++)
                                if (m.contains(this, n[t]))
                                    return !0
                        })
                    },
                    closest: function (e, t) {
                        for (var n, r = 0, i = this.length, o = [], a = C.test(e) || "string" != typeof e ? m(e, t || this.context) : 0; r < i; r++)
                            for (n = this[r]; n && n !== t; n = n.parentNode)
                                if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && m.find.matchesSelector(n, e))) {
                                    o.push(n);
                                    break
                                }
                        return this.pushStack(o.length > 1 ? m.uniqueSort(o) : o)
                    },
                    index: function (e) {
                        return e ? "string" == typeof e ? m.inArray(this[0], m(e)) : m.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
                    },
                    add: function (e, t) {
                        return this.pushStack(m.uniqueSort(m.merge(this.get(), m(e, t))))
                    },
                    addBack: function (e) {
                        return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
                    }
                }),
                m.each({
                    parent: function (e) {
                        var t = e.parentNode;
                        return t && 11 !== t.nodeType ? t : null
                    },
                    parents: function (e) {
                        return T(e, "parentNode")
                    },
                    parentsUntil: function (e, t, n) {
                        return T(e, "parentNode", n)
                    },
                    next: function (e) {
                        return j(e, "nextSibling")
                    },
                    prev: function (e) {
                        return j(e, "previousSibling")
                    },
                    nextAll: function (e) {
                        return T(e, "nextSibling")
                    },
                    prevAll: function (e) {
                        return T(e, "previousSibling")
                    },
                    nextUntil: function (e, t, n) {
                        return T(e, "nextSibling", n)
                    },
                    prevUntil: function (e, t, n) {
                        return T(e, "previousSibling", n)
                    },
                    siblings: function (e) {
                        return E((e.parentNode || {}).firstChild, e)
                    },
                    children: function (e) {
                        return E(e.firstChild)
                    },
                    contents: function (e) {
                        return m.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : m.merge([], e.childNodes)
                    }
                }, function (e, t) {
                    m.fn[e] = function (n, r) {
                        var i = m.map(this, t, n);
                        return "Until" !== e.slice(-5) && (r = n),
                        r && "string" == typeof r && (i = m.filter(r, i)),
                        this.length > 1 && (O[e] || (i = m.uniqueSort(i)), D.test(e) && (i = i.reverse())),
                        this.pushStack(i)
                    }
                });
                var H,
                P,
                M = /\S+/g;
                function R() {
                    a.addEventListener ? (a.removeEventListener("DOMContentLoaded", q), n.removeEventListener("load", q)) : (a.detachEvent("onreadystatechange", q), n.detachEvent("onload", q))
                }
                function q() {
                    (a.addEventListener || "load" === n.event.type || "complete" === a.readyState) && (R(), m.ready())
                }
                for (P in m.Callbacks = function (e) {
                    e = "string" == typeof e ? function (e) {
                        var t = {};
                        return m.each(e.match(M) || [], function (e, n) {
                            t[n] = !0
                        }),
                        t
                    }
                    (e) : m.extend({}, e);
                    var t,
                    n,
                    r,
                    i,
                    o = [],
                    a = [],
                    s = -1,
                    u = function () {
                        for (i = e.once, r = t = !0; a.length; s = -1)
                            for (n = a.shift(); ++s < o.length; )
                                !1 === o[s].apply(n[0], n[1])
                                     && e.stopOnFalse && (s = o.length, n = !1);
                            e.memory || (n = !1),
                            t = !1,
                            i && (o = n ? [] : "")
                        },
                        l = {
                            add: function () {
                                return o && (n && !t && (s = o.length - 1, a.push(n)), function t(n) {
                                    m.each(n, function (n, r) {
                                        m.isFunction(r) ? e.unique && l.has(r) || o.push(r) : r && r.length && "string" !== m.type(r) && t(r)
                                    })
                                }
                                    (arguments), n && !t && u()),
                                this
                            },
                            remove: function () {
                                return m.each(arguments, function (e, t) {
                                    for (var n; (n = m.inArray(t, o, n)) > -1; )
                                        o.splice(n, 1), n <= s && s--
                                }),
                                this
                            },
                            has: function (e) {
                                return e ? m.inArray(e, o) > -1 : o.length > 0
                            },
                            empty: function () {
                                return o && (o = []),
                                this
                            },
                            disable: function () {
                                return i = a = [],
                                o = n = "",
                                this
                            },
                            disabled: function () {
                                return !o
                            },
                            lock: function () {
                                return i = !0,
                                n || l.disable(),
                                this
                            },
                            locked: function () {
                                return !!i
                            },
                            fireWith: function (e, n) {
                                return i || (n = [e, (n = n || []).slice ? n.slice() : n], a.push(n), t || u()),
                                this
                            },
                            fire: function () {
                                return l.fireWith(this, arguments),
                                this
                            },
                            fired: function () {
                                return !!r
                            }
                        };
                        return l
                    }, m.extend({
                            Deferred: function (e) {
                                var t = [["resolve", "done", m.Callbacks("once memory"), "resolved"], ["reject", "fail", m.Callbacks("once memory"), "rejected"], ["notify", "progress", m.Callbacks("memory")]],
                                n = "pending",
                                r = {
                                    state: function () {
                                        return n
                                    },
                                    always: function () {
                                        return i.done(arguments).fail(arguments),
                                        this
                                    },
                                    then: function () {
                                        var e = arguments;
                                        return m.Deferred(function (n) {
                                            m.each(t, function (t, o) {
                                                var a = m.isFunction(e[t]) && e[t];
                                                i[o[1]](function () {
                                                    var e = a && a.apply(this, arguments);
                                                    e && m.isFunction(e.promise) ? e.promise().progress(n.notify).done(n.resolve).fail(n.reject) : n[o[0] + "With"](this === r ? n.promise() : this, a ? [e] : arguments)
                                                })
                                            }),
                                            e = null
                                        }).promise()
                                    },
                                    promise: function (e) {
                                        return null != e ? m.extend(e, r) : r
                                    }
                                },
                                i = {};
                                return r.pipe = r.then,
                                m.each(t, function (e, o) {
                                    var a = o[2],
                                    s = o[3];
                                    r[o[1]] = a.add,
                                    s && a.add(function () {
                                        n = s
                                    }, t[1 ^ e][2].disable, t[2][2].lock),
                                    i[o[0]] = function () {
                                        return i[o[0] + "With"](this === i ? r : this, arguments),
                                        this
                                    },
                                    i[o[0] + "With"] = a.fireWith
                                }),
                                r.promise(i),
                                e && e.call(i, i),
                                i
                            },
                            when: function (e) {
                                var t,
                                n,
                                r,
                                i = 0,
                                o = s.call(arguments),
                                a = o.length,
                                u = 1 !== a || e && m.isFunction(e.promise) ? a : 0,
                                l = 1 === u ? e : m.Deferred(),
                                c = function (e, n, r) {
                                    return function (i) {
                                        n[e] = this,
                                        r[e] = arguments.length > 1 ? s.call(arguments) : i,
                                        r === t ? l.notifyWith(n, r) : --u || l.resolveWith(n, r)
                                    }
                                };
                                if (a > 1)
                                    for (t = new Array(a), n = new Array(a), r = new Array(a); i < a; i++)
                                        o[i] && m.isFunction(o[i].promise) ? o[i].promise().progress(c(i, n, t)).done(c(i, r, o)).fail(l.reject) : --u;
                                return u || l.resolveWith(r, o),
                                l.promise()
                            }
                        }), m.fn.ready = function (e) {
                        return m.ready.promise().done(e),
                        this
                    }, m.extend({
                            isReady: !1,
                            readyWait: 1,
                            holdReady: function (e) {
                                e ? m.readyWait++ : m.ready(!0)
                            },
                            ready: function (e) {
                                (!0 === e ? --m.readyWait : m.isReady) || (m.isReady = !0, !0 !== e && --m.readyWait > 0 || (H.resolveWith(a, [m]), m.fn.triggerHandler && (m(a).triggerHandler("ready"), m(a).off("ready"))))
                            }
                        }), m.ready.promise = function (e) {
                        if (!H)
                            if (H = m.Deferred(), "complete" === a.readyState || "loading" !== a.readyState && !a.documentElement.doScroll)
                                n.setTimeout(m.ready);
                            else if (a.addEventListener)
                                a.addEventListener("DOMContentLoaded", q), n.addEventListener("load", q);
                            else {
                                a.attachEvent("onreadystatechange", q),
                                n.attachEvent("onload", q);
                                var t = !1;
                                try {
                                    t = null == n.frameElement && a.documentElement
                                } catch (e) {}
                                t && t.doScroll && function e() {
                                    if (!m.isReady) {
                                        try {
                                            t.doScroll("left")
                                        } catch (t) {
                                            return n.setTimeout(e, 50)
                                        }
                                        R(),
                                        m.ready()
                                    }
                                }
                                ()
                            }
                        return H.promise(e)
                    }, m.ready.promise(), m(h))break;
                h.ownFirst = "0" === P,
                h.inlineBlockNeedsLayout = !1,
                m(function () {
                    var e,
                    t,
                    n,
                    r;
                    (n = a.getElementsByTagName("body")[0]) && n.style && (t = a.createElement("div"), (r = a.createElement("div")).style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(r).appendChild(t), void 0 !== t.style.zoom && (t.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", h.inlineBlockNeedsLayout = e = 3 === t.offsetWidth, e && (n.style.zoom = 1)), n.removeChild(r))
                }),
                function () {
                    var e = a.createElement("div");
                    h.deleteExpando = !0;
                    try {
                        delete e.test
                    } catch (e) {
                        h.deleteExpando = !1
                    }
                    e = null
                }
                ();
                var I,
                F = function (e) {
                    var t = m.noData[(e.nodeName + " ").toLowerCase()],
                    n = +e.nodeType || 1;
                    return (1 === n || 9 === n) && (!t || !0 !== t && e.getAttribute("classid") === t)
                },
                B = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
                _ = /([A-Z])/g;
                function W(e, t, n) {
                    if (void 0 === n && 1 === e.nodeType) {
                        var r = "data-" + t.replace(_, "-$1").toLowerCase();
                        if ("string" == typeof(n = e.getAttribute(r))) {
                            try {
                                n = "true" === n || "false" !== n && ("null" === n ? null : +n + "" === n ? +n : B.test(n) ? m.parseJSON(n) : n)
                            } catch (e) {}
                            m.data(e, t, n)
                        } else
                            n = void 0
                    }
                    return n
                }
                function z(e) {
                    var t;
                    for (t in e)
                        if (("data" !== t || !m.isEmptyObject(e[t])) && "toJSON" !== t)
                            return !1;
                    return !0
                }
                function U(e, t, n, r) {
                    if (F(e)) {
                        var i,
                        a,
                        s = m.expando,
                        u = e.nodeType,
                        l = u ? m.cache : e,
                        c = u ? e[s] : e[s] && s;
                        if (c && l[c] && (r || l[c].data) || void 0 !== n || "string" != typeof t)
                            return c || (c = u ? e[s] = o.pop() || m.guid++ : s), l[c] || (l[c] = u ? {}
                                 : {
                                toJSON: m.noop
                            }), "object" != typeof t && "function" != typeof t || (r ? l[c] = m.extend(l[c], t) : l[c].data = m.extend(l[c].data, t)), a = l[c], r || (a.data || (a.data = {}), a = a.data), void 0 !== n && (a[m.camelCase(t)] = n), "string" == typeof t ? null == (i = a[t]) && (i = a[m.camelCase(t)]) : i = a, i
                    }
                }
                function $(e, t, n) {
                    if (F(e)) {
                        var r,
                        i,
                        o = e.nodeType,
                        a = o ? m.cache : e,
                        s = o ? e[m.expando] : m.expando;
                        if (a[s]) {
                            if (t && (r = n ? a[s] : a[s].data)) {
                                i = (t = m.isArray(t) ? t.concat(m.map(t, m.camelCase)) : t in r ? [t] : (t = m.camelCase(t))in r ? [t] : t.split(" ")).length;
                                for (; i--; )
                                    delete r[t[i]];
                                if (n ? !z(r) : !m.isEmptyObject(r))
                                    return
                            }
                            (n || (delete a[s].data, z(a[s]))) && (o ? m.cleanData([e], !0) : h.deleteExpando || a != a.window ? delete a[s] : a[s] = void 0)
                        }
                    }
                }
                m.extend({
                    cache: {},
                    noData: {
                        "applet ": !0,
                        "embed ": !0,
                        "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
                    },
                    hasData: function (e) {
                        return !!(e = e.nodeType ? m.cache[e[m.expando]] : e[m.expando]) && !z(e)
                    },
                    data: function (e, t, n) {
                        return U(e, t, n)
                    },
                    removeData: function (e, t) {
                        return $(e, t)
                    },
                    _data: function (e, t, n) {
                        return U(e, t, n, !0)
                    },
                    _removeData: function (e, t) {
                        return $(e, t, !0)
                    }
                }),
                m.fn.extend({
                    data: function (e, t) {
                        var n,
                        r,
                        i,
                        o = this[0],
                        a = o && o.attributes;
                        if (void 0 === e) {
                            if (this.length && (i = m.data(o), 1 === o.nodeType && !m._data(o, "parsedAttrs"))) {
                                for (n = a.length; n--; )
                                    a[n] && 0 === (r = a[n].name).indexOf("data-") && W(o, r = m.camelCase(r.slice(5)), i[r]);
                                m._data(o, "parsedAttrs", !0)
                            }
                            return i
                        }
                        return "object" == typeof e ? this.each(function () {
                            m.data(this, e)
                        }) : arguments.length > 1 ? this.each(function () {
                            m.data(this, e, t)
                        }) : o ? W(o, e, m.data(o, e)) : void 0
                    },
                    removeData: function (e) {
                        return this.each(function () {
                            m.removeData(this, e)
                        })
                    }
                }),
                m.extend({
                    queue: function (e, t, n) {
                        var r;
                        if (e)
                            return t = (t || "fx") + "queue", r = m._data(e, t), n && (!r || m.isArray(n) ? r = m._data(e, t, m.makeArray(n)) : r.push(n)), r || []
                    },
                    dequeue: function (e, t) {
                        t = t || "fx";
                        var n = m.queue(e, t),
                        r = n.length,
                        i = n.shift(),
                        o = m._queueHooks(e, t);
                        "inprogress" === i && (i = n.shift(), r--),
                        i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, function () {
                                m.dequeue(e, t)
                            }, o)),
                        !r && o && o.empty.fire()
                    },
                    _queueHooks: function (e, t) {
                        var n = t + "queueHooks";
                        return m._data(e, n) || m._data(e, n, {
                            empty: m.Callbacks("once memory").add(function () {
                                m._removeData(e, t + "queue"),
                                m._removeData(e, n)
                            })
                        })
                    }
                }),
                m.fn.extend({
                    queue: function (e, t) {
                        var n = 2;
                        return "string" != typeof e && (t = e, e = "fx", n--),
                        arguments.length < n ? m.queue(this[0], e) : void 0 === t ? this : this.each(function () {
                            var n = m.queue(this, e, t);
                            m._queueHooks(this, e),
                            "fx" === e && "inprogress" !== n[0] && m.dequeue(this, e)
                        })
                    },
                    dequeue: function (e) {
                        return this.each(function () {
                            m.dequeue(this, e)
                        })
                    },
                    clearQueue: function (e) {
                        return this.queue(e || "fx", [])
                    },
                    promise: function (e, t) {
                        var n,
                        r = 1,
                        i = m.Deferred(),
                        o = this,
                        a = this.length,
                        s = function () {
                            --r || i.resolveWith(o, [o])
                        };
                        for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; a--; )
                            (n = m._data(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s));
                        return s(),
                        i.promise(t)
                    }
                }),
                h.shrinkWrapBlocks = function () {
                    return null != I ? I : (I = !1, (t = a.getElementsByTagName("body")[0]) && t.style ? (e = a.createElement("div"), (n = a.createElement("div")).style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", t.appendChild(n).appendChild(e), void 0 !== e.style.zoom && (e.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", e.appendChild(a.createElement("div")).style.width = "5px", I = 3 !== e.offsetWidth), t.removeChild(n), I) : void 0);
                    var e,
                    t,
                    n
                };
                var X = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
                V = new RegExp("^(?:([+-])=|)(" + X + ")([a-z%]*)$", "i"),
                Y = ["Top", "Right", "Bottom", "Left"],
                G = function (e, t) {
                    return e = t || e,
                    "none" === m.css(e, "display") || !m.contains(e.ownerDocument, e)
                };
                function J(e, t, n, r) {
                    var i,
                    o = 1,
                    a = 20,
                    s = r ? function () {
                        return r.cur()
                    }
                     : function () {
                        return m.css(e, t, "")
                    },
                    u = s(),
                    l = n && n[3] || (m.cssNumber[t] ? "" : "px"),
                    c = (m.cssNumber[t] || "px" !== l && +u) && V.exec(m.css(e, t));
                    if (c && c[3] !== l) {
                        l = l || c[3],
                        n = n || [],
                        c = +u || 1;
                        do {
                            c /= o = o || ".5",
                            m.style(e, t, c + l)
                        } while (o !== (o = s() / u) && 1 !== o && --a)
                    }
                    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 K,
                Q,
                Z,
                ee = function (e, t, n, r, i, o, a) {
                    var s = 0,
                    u = e.length,
                    l = null == n;
                    if ("object" === m.type(n))
                        for (s in i = !0, n)
                            ee(e, t, s, n[s], !0, o, a);
                    else if (void 0 !== r && (i = !0, m.isFunction(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function (e, t, n) {
                                    return l.call(m(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
                },
                te = /^(?:checkbox|radio)$/i,
                ne = /<([\w:-]+)/,
                re = /^$|\/(?:java|ecma)script/i,
                ie = /^\s+/,
                oe = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";
                function ae(e) {
                    var t = oe.split("|"),
                    n = e.createDocumentFragment();
                    if (n.createElement)
                        for (; t.length; )
                            n.createElement(t.pop());
                    return n
                }
                K = a.createElement("div"),
                Q = a.createDocumentFragment(),
                Z = a.createElement("input"),
                K.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",
                h.leadingWhitespace = 3 === K.firstChild.nodeType,
                h.tbody = !K.getElementsByTagName("tbody").length,
                h.htmlSerialize = !!K.getElementsByTagName("link").length,
                h.html5Clone = "<:nav></:nav>" !== a.createElement("nav").cloneNode(!0).outerHTML,
                Z.type = "checkbox",
                Z.checked = !0,
                Q.appendChild(Z),
                h.appendChecked = Z.checked,
                K.innerHTML = "<textarea>x</textarea>",
                h.noCloneChecked = !!K.cloneNode(!0).lastChild.defaultValue,
                Q.appendChild(K),
                (Z = a.createElement("input")).setAttribute("type", "radio"),
                Z.setAttribute("checked", "checked"),
                Z.setAttribute("name", "t"),
                K.appendChild(Z),
                h.checkClone = K.cloneNode(!0).cloneNode(!0).lastChild.checked,
                h.noCloneEvent = !!K.addEventListener,
                K[m.expando] = 1,
                h.attributes = !K.getAttribute(m.expando);
                var se = {
                    option: [1, "<select multiple='multiple'>", "</select>"],
                    legend: [1, "<fieldset>", "</fieldset>"],
                    area: [1, "<map>", "</map>"],
                    param: [1, "<object>", "</object>"],
                    thead: [1, "<table>", "</table>"],
                    tr: [2, "<table><tbody>", "</tbody></table>"],
                    col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
                    td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
                    _default: h.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
                };
                function ue(e, t) {
                    var n,
                    r,
                    i = 0,
                    o = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : void 0;
                    if (!o)
                        for (o = [], n = e.childNodes || e; null != (r = n[i]); i++)
                            !t || m.nodeName(r, t) ? o.push(r) : m.merge(o, ue(r, t));
                    return void 0 === t || t && m.nodeName(e, t) ? m.merge([e], o) : o
                }
                function le(e, t) {
                    for (var n, r = 0; null != (n = e[r]); r++)
                        m._data(n, "globalEval", !t || m._data(t[r], "globalEval"))
                }
                se.optgroup = se.option,
                se.tbody = se.tfoot = se.colgroup = se.caption = se.thead,
                se.th = se.td;
                var ce = /<|&#?\w+;/,
                fe = /<tbody/i;
                function de(e) {
                    te.test(e.type) && (e.defaultChecked = e.checked)
                }
                function pe(e, t, n, r, i) {
                    for (var o, a, s, u, l, c, f, d = e.length, p = ae(t), v = [], g = 0; g < d; g++)
                        if ((a = e[g]) || 0 === a)
                            if ("object" === m.type(a))
                                m.merge(v, a.nodeType ? [a] : a);
                            else if (ce.test(a)) {
                                for (u = u || p.appendChild(t.createElement("div")), l = (ne.exec(a) || ["", ""])[1].toLowerCase(), f = se[l] || se._default, u.innerHTML = f[1] + m.htmlPrefilter(a) + f[2], o = f[0]; o--; )
                                    u = u.lastChild;
                                if (!h.leadingWhitespace && ie.test(a) && v.push(t.createTextNode(ie.exec(a)[0])), !h.tbody)
                                    for (o = (a = "table" !== l || fe.test(a) ? "<table>" !== f[1] || fe.test(a) ? 0 : u : u.firstChild) && a.childNodes.length; o--; )
                                        m.nodeName(c = a.childNodes[o], "tbody") && !c.childNodes.length && a.removeChild(c);
                                for (m.merge(v, u.childNodes), u.textContent = ""; u.firstChild; )
                                    u.removeChild(u.firstChild);
                                u = p.lastChild
                            } else
                                v.push(t.createTextNode(a));
                    for (u && p.removeChild(u), h.appendChecked || m.grep(ue(v, "input"), de), g = 0; a = v[g++]; )
                        if (r && m.inArray(a, r) > -1)
                            i && i.push(a);
                        else if (s = m.contains(a.ownerDocument, a), u = ue(p.appendChild(a), "script"), s && le(u), n)
                            for (o = 0; a = u[o++]; )
                                re.test(a.type || "") && n.push(a);
                    return u = null,
                    p
                }
                !function () {
                    var e,
                    t,
                    r = a.createElement("div");
                    for (e in {
                        submit: !0,
                        change: !0,
                        focusin: !0
                    })
                        t = "on" + e, (h[e] = t in n) || (r.setAttribute(t, "t"), h[e] = !1 === r.attributes[t].expando);
                    r = null
                }
                ();
                var he = /^(?:input|select|textarea)$/i,
                me = /^key/,
                ve = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
                ge = /^(?:focusinfocus|focusoutblur)$/,
                ye = /^([^.]*)(?:\.(.+)|)/;
                function be() {
                    return !0
                }
                function we() {
                    return !1
                }
                function xe() {
                    try {
                        return a.activeElement
                    } catch (e) {}
                }
                function Te(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)
                            Te(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 = we;
                    else if (!i)
                        return e;
                    return 1 === o && (a = i, (i = function (e) {
                            return m().off(e),
                            a.apply(this, arguments)
                        }).guid = a.guid || (a.guid = m.guid++)),
                    e.each(function () {
                        m.event.add(this, t, i, r, n)
                    })
                }
                m.event = {
                    global: {},
                    add: function (e, t, n, r, i) {
                        var o,
                        a,
                        s,
                        u,
                        l,
                        c,
                        f,
                        d,
                        p,
                        h,
                        v,
                        g = m._data(e);
                        if (g) {
                            for (n.handler && (n = (u = n).handler, i = u.selector), n.guid || (n.guid = m.guid++), (a = g.events) || (a = g.events = {}), (c = g.handle) || ((c = g.handle = function (e) {
                                        return void 0 === m || e && m.event.triggered === e.type ? void 0 : m.event.dispatch.apply(c.elem, arguments)
                                    }).elem = e), s = (t = (t || "").match(M) || [""]).length; s--; )
                                p = v = (o = ye.exec(t[s]) || [])[1], h = (o[2] || "").split(".").sort(), p && (l = m.event.special[p] || {}, p = (i ? l.delegateType : l.bindType) || p, l = m.event.special[p] || {}, f = m.extend({
                                            type: p,
                                            origType: v,
                                            data: r,
                                            handler: n,
                                            guid: n.guid,
                                            selector: i,
                                            needsContext: i && m.expr.match.needsContext.test(i),
                                            namespace: h.join(".")
                                        }, u), (d = a[p]) || ((d = a[p] = []).delegateCount = 0, l.setup && !1 !== l.setup.call(e, r, h, c) || (e.addEventListener ? e.addEventListener(p, c, !1) : e.attachEvent && e.attachEvent("on" + p, c))), l.add && (l.add.call(e, f), f.handler.guid || (f.handler.guid = n.guid)), i ? d.splice(d.delegateCount++, 0, f) : d.push(f), m.event.global[p] = !0);
                            e = null
                        }
                    },
                    remove: function (e, t, n, r, i) {
                        var o,
                        a,
                        s,
                        u,
                        l,
                        c,
                        f,
                        d,
                        p,
                        h,
                        v,
                        g = m.hasData(e) && m._data(e);
                        if (g && (c = g.events)) {
                            for (l = (t = (t || "").match(M) || [""]).length; l--; )
                                if (p = v = (s = ye.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), p) {
                                    for (f = m.event.special[p] || {}, d = c[p = (r ? f.delegateType : f.bindType) || p] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), u = o = d.length; o--; )
                                        a = d[o], !i && v !== a.origType || n && n.guid !== a.guid || s && !s.test(a.namespace) || r && r !== a.selector && ("**" !== r || !a.selector) || (d.splice(o, 1), a.selector && d.delegateCount--, f.remove && f.remove.call(e, a));
                                    u && !d.length && (f.teardown && !1 !== f.teardown.call(e, h, g.handle) || m.removeEvent(e, p, g.handle), delete c[p])
                                } else
                                    for (p in c)
                                        m.event.remove(e, p + t[l], n, r, !0);
                            m.isEmptyObject(c) && (delete g.handle, m._removeData(e, "events"))
                        }
                    },
                    trigger: function (e, t, r, i) {
                        var o,
                        s,
                        u,
                        l,
                        c,
                        f,
                        d,
                        h = [r || a],
                        v = p.call(e, "type") ? e.type : e,
                        g = p.call(e, "namespace") ? e.namespace.split(".") : [];
                        if (u = f = r = r || a, 3 !== r.nodeType && 8 !== r.nodeType && !ge.test(v + m.event.triggered) && (v.indexOf(".") > -1 && (v = (g = v.split(".")).shift(), g.sort()), s = v.indexOf(":") < 0 && "on" + v, (e = e[m.expando] ? e : new m.Event(v, "object" == typeof e && e)).isTrigger = i ? 2 : 3, e.namespace = g.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + g.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = r), t = null == t ? [e] : m.makeArray(t, [e]), c = m.event.special[v] || {}, i || !c.trigger || !1 !== c.trigger.apply(r, t))) {
                            if (!i && !c.noBubble && !m.isWindow(r)) {
                                for (l = c.delegateType || v, ge.test(l + v) || (u = u.parentNode); u; u = u.parentNode)
                                    h.push(u), f = u;
                                f === (r.ownerDocument || a) && h.push(f.defaultView || f.parentWindow || n)
                            }
                            for (d = 0; (u = h[d++]) && !e.isPropagationStopped(); )
                                e.type = d > 1 ? l : c.bindType || v, (o = (m._data(u, "events") || {})[e.type] && m._data(u, "handle")) && o.apply(u, t), (o = s && u[s]) && o.apply && F(u) && (e.result = o.apply(u, t), !1 === e.result && e.preventDefault());
                            if (e.type = v, !i && !e.isDefaultPrevented() && (!c._default || !1 === c._default.apply(h.pop(), t)) && F(r) && s && r[v] && !m.isWindow(r)) {
                                (f = r[s]) && (r[s] = null),
                                m.event.triggered = v;
                                try {
                                    r[v]()
                                } catch (e) {}
                                m.event.triggered = void 0,
                                f && (r[s] = f)
                            }
                            return e.result
                        }
                    },
                    dispatch: function (e) {
                        e = m.event.fix(e);
                        var t,
                        n,
                        r,
                        i,
                        o,
                        a,
                        u = s.call(arguments),
                        l = (m._data(this, "events") || {})[e.type] || [],
                        c = m.event.special[e.type] || {};
                        if (u[0] = e, e.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, e)) {
                            for (a = m.event.handlers.call(this, e, l), t = 0; (i = a[t++]) && !e.isPropagationStopped(); )
                                for (e.currentTarget = i.elem, n = 0; (o = i.handlers[n++]) && !e.isImmediatePropagationStopped(); )
                                    e.rnamespace && !e.rnamespace.test(o.namespace) || (e.handleObj = o, e.data = o.data, void 0 !== (r = ((m.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, u)) && !1 === (e.result = r) && (e.preventDefault(), e.stopPropagation()));
                            return c.postDispatch && c.postDispatch.call(this, e),
                            e.result
                        }
                    },
                    handlers: function (e, t) {
                        var n,
                        r,
                        i,
                        o,
                        a = [],
                        s = t.delegateCount,
                        u = e.target;
                        if (s && u.nodeType && ("click" !== e.type || isNaN(e.button) || e.button < 1))
                            for (; u != this; u = u.parentNode || this)
                                if (1 === u.nodeType && (!0 !== u.disabled || "click" !== e.type)) {
                                    for (r = [], n = 0; n < s; n++)
                                        void 0 === r[i = (o = t[n]).selector + " "] && (r[i] = o.needsContext ? m(i, this).index(u) > -1 : m.find(i, this, null, [u]).length), r[i] && r.push(o);
                                    r.length && a.push({
                                        elem: u,
                                        handlers: r
                                    })
                                }
                        return s < t.length && a.push({
                            elem: this,
                            handlers: t.slice(s)
                        }),
                        a
                    },
                    fix: function (e) {
                        if (e[m.expando])
                            return e;
                        var t,
                        n,
                        r,
                        i = e.type,
                        o = e,
                        s = this.fixHooks[i];
                        for (s || (this.fixHooks[i] = s = ve.test(i) ? this.mouseHooks : me.test(i) ? this.keyHooks : {}), r = s.props ? this.props.concat(s.props) : this.props, e = new m.Event(o), t = r.length; t--; )
                            e[n = r[t]] = o[n];
                        return e.target || (e.target = o.srcElement || a),
                        3 === e.target.nodeType && (e.target = e.target.parentNode),
                        e.metaKey = !!e.metaKey,
                        s.filter ? s.filter(e, o) : e
                    },
                    props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
                    fixHooks: {},
                    keyHooks: {
                        props: "char charCode key keyCode".split(" "),
                        filter: function (e, t) {
                            return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode),
                            e
                        }
                    },
                    mouseHooks: {
                        props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
                        filter: function (e, t) {
                            var n,
                            r,
                            i,
                            o = t.button,
                            s = t.fromElement;
                            return null == e.pageX && null != t.clientX && (i = (r = e.target.ownerDocument || a).documentElement, n = r.body, e.pageX = t.clientX + (i && i.scrollLeft || n && n.scrollLeft || 0) - (i && i.clientLeft || n && n.clientLeft || 0), e.pageY = t.clientY + (i && i.scrollTop || n && n.scrollTop || 0) - (i && i.clientTop || n && n.clientTop || 0)),
                            !e.relatedTarget && s && (e.relatedTarget = s === e.target ? t.toElement : s),
                            e.which || void 0 === o || (e.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0),
                            e
                        }
                    },
                    special: {
                        load: {
                            noBubble: !0
                        },
                        focus: {
                            trigger: function () {
                                if (this !== xe() && this.focus)
                                    try {
                                        return this.focus(),
                                        !1
                                    } catch (e) {}
                            },
                            delegateType: "focusin"
                        },
                        blur: {
                            trigger: function () {
                                if (this === xe() && this.blur)
                                    return this.blur(), !1
                            },
                            delegateType: "focusout"
                        },
                        click: {
                            trigger: function () {
                                if (m.nodeName(this, "input") && "checkbox" === this.type && this.click)
                                    return this.click(), !1
                            },
                            _default: function (e) {
                                return m.nodeName(e.target, "a")
                            }
                        },
                        beforeunload: {
                            postDispatch: function (e) {
                                void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
                            }
                        }
                    },
                    simulate: function (e, t, n) {
                        var r = m.extend(new m.Event, n, {
                                type: e,
                                isSimulated: !0
                            });
                        m.event.trigger(r, null, t),
                        r.isDefaultPrevented() && n.preventDefault()
                    }
                },
                m.removeEvent = a.removeEventListener ? function (e, t, n) {
                    e.removeEventListener && e.removeEventListener(t, n)
                }
                 : function (e, t, n) {
                    var r = "on" + t;
                    e.detachEvent && (void 0 === e[r] && (e[r] = null), e.detachEvent(r, n))
                },
                m.Event = function (e, t) {
                    if (!(this instanceof m.Event))
                        return new m.Event(e, t);
                    e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? be : we) : this.type = e,
                    t && m.extend(this, t),
                    this.timeStamp = e && e.timeStamp || m.now(),
                    this[m.expando] = !0
                },
                m.Event.prototype = {
                    constructor: m.Event,
                    isDefaultPrevented: we,
                    isPropagationStopped: we,
                    isImmediatePropagationStopped: we,
                    preventDefault: function () {
                        var e = this.originalEvent;
                        this.isDefaultPrevented = be,
                        e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1)
                    },
                    stopPropagation: function () {
                        var e = this.originalEvent;
                        this.isPropagationStopped = be,
                        e && !this.isSimulated && (e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0)
                    },
                    stopImmediatePropagation: function () {
                        var e = this.originalEvent;
                        this.isImmediatePropagationStopped = be,
                        e && e.stopImmediatePropagation && e.stopImmediatePropagation(),
                        this.stopPropagation()
                    }
                },
                m.each({
                    mouseenter: "mouseover",
                    mouseleave: "mouseout",
                    pointerenter: "pointerover",
                    pointerleave: "pointerout"
                }, function (e, t) {
                    m.event.special[e] = {
                        delegateType: t,
                        bindType: t,
                        handle: function (e) {
                            var n,
                            r = e.relatedTarget,
                            i = e.handleObj;
                            return r && (r === this || m.contains(this, r)) || (e.type = i.origType, n = i.handler.apply(this, arguments), e.type = t),
                            n
                        }
                    }
                }),
                h.submit || (m.event.special.submit = {
                        setup: function () {
                            if (m.nodeName(this, "form"))
                                return !1;
                            m.event.add(this, "click._submit keypress._submit", function (e) {
                                var t = e.target,
                                n = m.nodeName(t, "input") || m.nodeName(t, "button") ? m.prop(t, "form") : void 0;
                                n && !m._data(n, "submit") && (m.event.add(n, "submit._submit", function (e) {
                                        e._submitBubble = !0
                                    }), m._data(n, "submit", !0))
                            })
                        },
                        postDispatch: function (e) {
                            e._submitBubble && (delete e._submitBubble, this.parentNode && !e.isTrigger && m.event.simulate("submit", this.parentNode, e))
                        },
                        teardown: function () {
                            if (m.nodeName(this, "form"))
                                return !1;
                            m.event.remove(this, "._submit")
                        }
                    }),
                h.change || (m.event.special.change = {
                        setup: function () {
                            if (he.test(this.nodeName))
                                return "checkbox" !== this.type && "radio" !== this.type || (m.event.add(this, "propertychange._change", function (e) {
                                        "checked" === e.originalEvent.propertyName && (this._justChanged = !0)
                                    }), m.event.add(this, "click._change", function (e) {
                                        this._justChanged && !e.isTrigger && (this._justChanged = !1),
                                        m.event.simulate("change", this, e)
                                    })), !1;
                            m.event.add(this, "beforeactivate._change", function (e) {
                                var t = e.target;
                                he.test(t.nodeName) && !m._data(t, "change") && (m.event.add(t, "change._change", function (e) {
                                        !this.parentNode || e.isSimulated || e.isTrigger || m.event.simulate("change", this.parentNode, e)
                                    }), m._data(t, "change", !0))
                            })
                        },
                        handle: function (e) {
                            var t = e.target;
                            if (this !== t || e.isSimulated || e.isTrigger || "radio" !== t.type && "checkbox" !== t.type)
                                return e.handleObj.handler.apply(this, arguments)
                        },
                        teardown: function () {
                            return m.event.remove(this, "._change"),
                            !he.test(this.nodeName)
                        }
                    }),
                h.focusin || m.each({
                    focus: "focusin",
                    blur: "focusout"
                }, function (e, t) {
                    var n = function (e) {
                        m.event.simulate(t, e.target, m.event.fix(e))
                    };
                    m.event.special[t] = {
                        setup: function () {
                            var r = this.ownerDocument || this,
                            i = m._data(r, t);
                            i || r.addEventListener(e, n, !0),
                            m._data(r, t, (i || 0) + 1)
                        },
                        teardown: function () {
                            var r = this.ownerDocument || this,
                            i = m._data(r, t) - 1;
                            i ? m._data(r, t, i) : (r.removeEventListener(e, n, !0), m._removeData(r, t))
                        }
                    }
                }),
                m.fn.extend({
                    on: function (e, t, n, r) {
                        return Te(this, e, t, n, r)
                    },
                    one: function (e, t, n, r) {
                        return Te(this, e, t, n, r, 1)
                    },
                    off: function (e, t, n) {
                        var r,
                        i;
                        if (e && e.preventDefault && e.handleObj)
                            return r = e.handleObj, m(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 = we),
                        this.each(function () {
                            m.event.remove(this, e, n, t)
                        })
                    },
                    trigger: function (e, t) {
                        return this.each(function () {
                            m.event.trigger(e, t, this)
                        })
                    },
                    triggerHandler: function (e, t) {
                        var n = this[0];
                        if (n)
                            return m.event.trigger(e, t, n, !0)
                    }
                });
                var Ee = / jQuery\d+="(?:null|\d+)"/g,
                Ce = new RegExp("<(?:" + oe + ")[\\s/>]", "i"),
                ke = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
                Se = /<script|<style|<link/i,
                Le = /checked\s*(?:[^=]|=\s*.checked.)/i,
                Ne = /^true\/(.*)/,
                Ae = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
                De = ae(a).appendChild(a.createElement("div"));
                function Oe(e, t) {
                    return m.nodeName(e, "table") && m.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e
                }
                function je(e) {
                    return e.type = (null !== m.find.attr(e, "type")) + "/" + e.type,
                    e
                }
                function He(e) {
                    var t = Ne.exec(e.type);
                    return t ? e.type = t[1] : e.removeAttribute("type"),
                    e
                }
                function Pe(e, t) {
                    if (1 === t.nodeType && m.hasData(e)) {
                        var n,
                        r,
                        i,
                        o = m._data(e),
                        a = m._data(t, o),
                        s = o.events;
                        if (s)
                            for (n in delete a.handle, a.events = {}, s)
                                for (r = 0, i = s[n].length; r < i; r++)
                                    m.event.add(t, n, s[n][r]);
                        a.data && (a.data = m.extend({}, a.data))
                    }
                }
                function Me(e, t) {
                    var n,
                    r,
                    i;
                    if (1 === t.nodeType) {
                        if (n = t.nodeName.toLowerCase(), !h.noCloneEvent && t[m.expando]) {
                            for (r in(i = m._data(t)).events)
                                m.removeEvent(t, r, i.handle);
                            t.removeAttribute(m.expando)
                        }
                        "script" === n && t.text !== e.text ? (je(t).text = e.text, He(t)) : "object" === n ? (t.parentNode && (t.outerHTML = e.outerHTML), h.html5Clone && e.innerHTML && !m.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : "input" === n && te.test(e.type) ? (t.defaultChecked = t.checked = e.checked, t.value !== e.value && (t.value = e.value)) : "option" === n ? t.defaultSelected = t.selected = e.defaultSelected : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue)
                    }
                }
                function Re(e, t, n, r) {
                    t = u.apply([], t);
                    var i,
                    o,
                    a,
                    s,
                    l,
                    c,
                    f = 0,
                    d = e.length,
                    p = d - 1,
                    v = t[0],
                    g = m.isFunction(v);
                    if (g || d > 1 && "string" == typeof v && !h.checkClone && Le.test(v))
                        return e.each(function (i) {
                            var o = e.eq(i);
                            g && (t[0] = v.call(this, i, o.html())),
                            Re(o, t, n, r)
                        });
                    if (d && (i = (c = pe(t, e[0].ownerDocument, !1, e, r)).firstChild, 1 === c.childNodes.length && (c = i), i || r)) {
                        for (a = (s = m.map(ue(c, "script"), je)).length; f < d; f++)
                            o = c, f !== p && (o = m.clone(o, !0, !0), a && m.merge(s, ue(o, "script"))), n.call(e[f], o, f);
                        if (a)
                            for (l = s[s.length - 1].ownerDocument, m.map(s, He), f = 0; f < a; f++)
                                o = s[f], re.test(o.type || "") && !m._data(o, "globalEval") && m.contains(l, o) && (o.src ? m._evalUrl && m._evalUrl(o.src) : m.globalEval((o.text || o.textContent || o.innerHTML || "").replace(Ae, "")));
                        c = i = null
                    }
                    return e
                }
                function qe(e, t, n) {
                    for (var r, i = t ? m.filter(t, e) : e, o = 0; null != (r = i[o]); o++)
                        n || 1 !== r.nodeType || m.cleanData(ue(r)), r.parentNode && (n && m.contains(r.ownerDocument, r) && le(ue(r, "script")), r.parentNode.removeChild(r));
                    return e
                }
                m.extend({
                    htmlPrefilter: function (e) {
                        return e.replace(ke, "<$1></$2>")
                    },
                    clone: function (e, t, n) {
                        var r,
                        i,
                        o,
                        a,
                        s,
                        u = m.contains(e.ownerDocument, e);
                        if (h.html5Clone || m.isXMLDoc(e) || !Ce.test("<" + e.nodeName + ">") ? o = e.cloneNode(!0) : (De.innerHTML = e.outerHTML, De.removeChild(o = De.firstChild)), !(h.noCloneEvent && h.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || m.isXMLDoc(e)))
                            for (r = ue(o), s = ue(e), a = 0; null != (i = s[a]); ++a)
                                r[a] && Me(i, r[a]);
                        if (t)
                            if (n)
                                for (s = s || ue(e), r = r || ue(o), a = 0; null != (i = s[a]); a++)
                                    Pe(i, r[a]);
                            else
                                Pe(e, o);
                        return (r = ue(o, "script")).length > 0 && le(r, !u && ue(e, "script")),
                        r = s = i = null,
                        o
                    },
                    cleanData: function (e, t) {
                        for (var n, r, i, a, s = 0, u = m.expando, l = m.cache, c = h.attributes, f = m.event.special; null != (n = e[s]); s++)
                            if ((t || F(n)) && (a = (i = n[u]) && l[i])) {
                                if (a.events)
                                    for (r in a.events)
                                        f[r] ? m.event.remove(n, r) : m.removeEvent(n, r, a.handle);
                                l[i] && (delete l[i], c || void 0 === n.removeAttribute ? n[u] = void 0 : n.removeAttribute(u), o.push(i))
                            }
                    }
                }),
                m.fn.extend({
                    domManip: Re,
                    detach: function (e) {
                        return qe(this, e, !0)
                    },
                    remove: function (e) {
                        return qe(this, e)
                    },
                    text: function (e) {
                        return ee(this, function (e) {
                            return void 0 === e ? m.text(this) : this.empty().append((this[0] && this[0].ownerDocument || a).createTextNode(e))
                        }, null, e, arguments.length)
                    },
                    append: function () {
                        return Re(this, arguments, function (e) {
                            1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Oe(this, e).appendChild(e)
                        })
                    },
                    prepend: function () {
                        return Re(this, arguments, function (e) {
                            if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                                var t = Oe(this, e);
                                t.insertBefore(e, t.firstChild)
                            }
                        })
                    },
                    before: function () {
                        return Re(this, arguments, function (e) {
                            this.parentNode && this.parentNode.insertBefore(e, this)
                        })
                    },
                    after: function () {
                        return Re(this, arguments, function (e) {
                            this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
                        })
                    },
                    empty: function () {
                        for (var e, t = 0; null != (e = this[t]); t++) {
                            for (1 === e.nodeType && m.cleanData(ue(e, !1)); e.firstChild; )
                                e.removeChild(e.firstChild);
                            e.options && m.nodeName(e, "select") && (e.options.length = 0)
                        }
                        return this
                    },
                    clone: function (e, t) {
                        return e = null != e && e,
                        t = null == t ? e : t,
                        this.map(function () {
                            return m.clone(this, e, t)
                        })
                    },
                    html: function (e) {
                        return ee(this, function (e) {
                            var t = this[0] || {},
                            n = 0,
                            r = this.length;
                            if (void 0 === e)
                                return 1 === t.nodeType ? t.innerHTML.replace(Ee, "") : void 0;
                            if ("string" == typeof e && !Se.test(e) && (h.htmlSerialize || !Ce.test(e)) && (h.leadingWhitespace || !ie.test(e)) && !se[(ne.exec(e) || ["", ""])[1].toLowerCase()]) {
                                e = m.htmlPrefilter(e);
                                try {
                                    for (; n < r; n++)
                                        1 === (t = this[n] || {}).nodeType && (m.cleanData(ue(t, !1)), t.innerHTML = e);
                                    t = 0
                                } catch (e) {}
                            }
                            t && this.empty().append(e)
                        }, null, e, arguments.length)
                    },
                    replaceWith: function () {
                        var e = [];
                        return Re(this, arguments, function (t) {
                            var n = this.parentNode;
                            m.inArray(this, e) < 0 && (m.cleanData(ue(this)), n && n.replaceChild(t, this))
                        }, e)
                    }
                }),
                m.each({
                    appendTo: "append",
                    prependTo: "prepend",
                    insertBefore: "before",
                    insertAfter: "after",
                    replaceAll: "replaceWith"
                }, function (e, t) {
                    m.fn[e] = function (e) {
                        for (var n, r = 0, i = [], o = m(e), a = o.length - 1; r <= a; r++)
                            n = r === a ? this : this.clone(!0), m(o[r])[t](n), l.apply(i, n.get());
                        return this.pushStack(i)
                    }
                });
                var Ie,
                Fe = {
                    HTML: "block",
                    BODY: "block"
                };
                function Be(e, t) {
                    var n = m(t.createElement(e)).appendTo(t.body),
                    r = m.css(n[0], "display");
                    return n.detach(),
                    r
                }
                function _e(e) {
                    var t = a,
                    n = Fe[e];
                    return n || ("none" !== (n = Be(e, t)) && n || ((t = ((Ie = (Ie || m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement))[0].contentWindow || Ie[0].contentDocument).document).write(), t.close(), n = Be(e, t), Ie.detach()), Fe[e] = n),
                    n
                }
                var We = /^margin/,
                ze = new RegExp("^(" + X + ")(?!px)[a-z%]+$", "i"),
                Ue = function (e, t, n, r) {
                    var i,
                    o,
                    a = {};
                    for (o in t)
                        a[o] = e.style[o], e.style[o] = t[o];
                    for (o in i = n.apply(e, r || []), t)
                        e.style[o] = a[o];
                    return i
                },
                $e = a.documentElement;
                !function () {
                    var e,
                    t,
                    r,
                    i,
                    o,
                    s,
                    u = a.createElement("div"),
                    l = a.createElement("div");
                    function c() {
                        var c,
                        f,
                        d = a.documentElement;
                        d.appendChild(u),
                        l.style.cssText = "-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",
                        e = r = s = !1,
                        t = o = !0,
                        n.getComputedStyle && (f = n.getComputedStyle(l), e = "1%" !== (f || {}).top, s = "2px" === (f || {}).marginLeft, r = "4px" === (f || {
                                    width: "4px"
                                }).width, l.style.marginRight = "50%", t = "4px" === (f || {
                                    marginRight: "4px"
                                }).marginRight, (c = l.appendChild(a.createElement("div"))).style.cssText = l.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", c.style.marginRight = c.style.width = "0", l.style.width = "1px", o = !parseFloat((n.getComputedStyle(c) || {}).marginRight), l.removeChild(c)),
                        l.style.display = "none",
                        (i = 0 === l.getClientRects().length) && (l.style.display = "", l.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", l.childNodes[0].style.borderCollapse = "separate", (c = l.getElementsByTagName("td"))[0].style.cssText = "margin:0;border:0;padding:0;display:none", (i = 0 === c[0].offsetHeight) && (c[0].style.display = "", c[1].style.display = "none", i = 0 === c[0].offsetHeight)),
                        d.removeChild(u)
                    }
                    l.style && (l.style.cssText = "float:left;opacity:.5", h.opacity = "0.5" === l.style.opacity, h.cssFloat = !!l.style.cssFloat, l.style.backgroundClip = "content-box", l.cloneNode(!0).style.backgroundClip = "", h.clearCloneStyle = "content-box" === l.style.backgroundClip, (u = a.createElement("div")).style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", l.innerHTML = "", u.appendChild(l), h.boxSizing = "" === l.style.boxSizing || "" === l.style.MozBoxSizing || "" === l.style.WebkitBoxSizing, m.extend(h, {
                            reliableHiddenOffsets: function () {
                                return null == e && c(),
                                i
                            },
                            boxSizingReliable: function () {
                                return null == e && c(),
                                r
                            },
                            pixelMarginRight: function () {
                                return null == e && c(),
                                t
                            },
                            pixelPosition: function () {
                                return null == e && c(),
                                e
                            },
                            reliableMarginRight: function () {
                                return null == e && c(),
                                o
                            },
                            reliableMarginLeft: function () {
                                return null == e && c(),
                                s
                            }
                        }))
                }
                ();
                var Xe,
                Ve,
                Ye = /^(top|right|bottom|left)$/;
                function Ge(e, t) {
                    return {
                        get: function () {
                            if (!e())
                                return (this.get = t).apply(this, arguments);
                            delete this.get
                        }
                    }
                }
                n.getComputedStyle ? (Xe = function (e) {
                    var t = e.ownerDocument.defaultView;
                    return t && t.opener || (t = n),
                    t.getComputedStyle(e)
                }, Ve = function (e, t, n) {
                    var r,
                    i,
                    o,
                    a,
                    s = e.style;
                    return "" !== (a = (n = n || Xe(e)) ? n.getPropertyValue(t) || n[t] : void 0) && void 0 !== a || m.contains(e.ownerDocument, e) || (a = m.style(e, t)),
                    n && !h.pixelMarginRight() && ze.test(a) && We.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o),
                    void 0 === a ? a : a + ""
                }) : $e.currentStyle && (Xe = function (e) {
                    return e.currentStyle
                }, Ve = function (e, t, n) {
                    var r,
                    i,
                    o,
                    a,
                    s = e.style;
                    return null == (a = (n = n || Xe(e)) ? n[t] : void 0) && s && s[t] && (a = s[t]),
                    ze.test(a) && !Ye.test(t) && (r = s.left, (o = (i = e.runtimeStyle) && i.left) && (i.left = e.currentStyle.left), s.left = "fontSize" === t ? "1em" : a, a = s.pixelLeft + "px", s.left = r, o && (i.left = o)),
                    void 0 === a ? a : a + "" || "auto"
                });
                var Je = /alpha\([^)]*\)/i,
                Ke = /opacity\s*=\s*([^)]*)/i,
                Qe = /^(none|table(?!-c[ea]).+)/,
                Ze = new RegExp("^(" + X + ")(.*)$", "i"),
                et = {
                    position: "absolute",
                    visibility: "hidden",
                    display: "block"
                },
                tt = {
                    letterSpacing: "0",
                    fontWeight: "400"
                },
                nt = ["Webkit", "O", "Moz", "ms"],
                rt = a.createElement("div").style;
                function it(e) {
                    if (e in rt)
                        return e;
                    for (var t = e.charAt(0).toUpperCase() + e.slice(1), n = nt.length; n--; )
                        if ((e = nt[n] + t)in rt)
                            return e
                }
                function ot(e, t) {
                    for (var n, r, i, o = [], a = 0, s = e.length; a < s; a++)
                        (r = e[a]).style && (o[a] = m._data(r, "olddisplay"), n = r.style.display, t ? (o[a] || "none" !== n || (r.style.display = ""), "" === r.style.display && G(r) && (o[a] = m._data(r, "olddisplay", _e(r.nodeName)))) : (i = G(r), (n && "none" !== n || !i) && m._data(r, "olddisplay", i ? n : m.css(r, "display"))));
                    for (a = 0; a < s; a++)
                        (r = e[a]).style && (t && "none" !== r.style.display && "" !== r.style.display || (r.style.display = t ? o[a] || "" : "none"));
                    return e
                }
                function at(e, t, n) {
                    var r = Ze.exec(t);
                    return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t
                }
                function st(e, t, n, r, i) {
                    for (var o = n === (r ? "border" : "content") ? 4 : "width" === t ? 1 : 0, a = 0; o < 4; o += 2)
                        "margin" === n && (a += m.css(e, n + Y[o], !0, i)), r ? ("content" === n && (a -= m.css(e, "padding" + Y[o], !0, i)), "margin" !== n && (a -= m.css(e, "border" + Y[o] + "Width", !0, i))) : (a += m.css(e, "padding" + Y[o], !0, i), "padding" !== n && (a += m.css(e, "border" + Y[o] + "Width", !0, i)));
                    return a
                }
                function ut(e, t, n) {
                    var r = !0,
                    i = "width" === t ? e.offsetWidth : e.offsetHeight,
                    o = Xe(e),
                    a = h.boxSizing && "border-box" === m.css(e, "boxSizing", !1, o);
                    if (i <= 0 || null == i) {
                        if (((i = Ve(e, t, o)) < 0 || null == i) && (i = e.style[t]), ze.test(i))
                            return i;
                        r = a && (h.boxSizingReliable() || i === e.style[t]),
                        i = parseFloat(i) || 0
                    }
                    return i + st(e, t, n || (a ? "border" : "content"), r, o) + "px"
                }
                function lt(e, t, n, r, i) {
                    return new lt.prototype.init(e, t, n, r, i)
                }
                m.extend({
                    cssHooks: {
                        opacity: {
                            get: function (e, t) {
                                if (t) {
                                    var n = Ve(e, "opacity");
                                    return "" === n ? "1" : n
                                }
                            }
                        }
                    },
                    cssNumber: {
                        animationIterationCount: !0,
                        columnCount: !0,
                        fillOpacity: !0,
                        flexGrow: !0,
                        flexShrink: !0,
                        fontWeight: !0,
                        lineHeight: !0,
                        opacity: !0,
                        order: !0,
                        orphans: !0,
                        widows: !0,
                        zIndex: !0,
                        zoom: !0
                    },
                    cssProps: {
                        float: h.cssFloat ? "cssFloat" : "styleFloat"
                    },
                    style: function (e, t, n, r) {
                        if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
                            var i,
                            o,
                            a,
                            s = m.camelCase(t),
                            u = e.style;
                            if (t = m.cssProps[s] || (m.cssProps[s] = it(s) || s), a = m.cssHooks[t] || m.cssHooks[s], void 0 === n)
                                return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : u[t];
                            if ("string" === (o = typeof n) && (i = V.exec(n)) && i[1] && (n = J(e, t, i), o = "number"), null != n && n == n && ("number" === o && (n += i && i[3] || (m.cssNumber[s] ? "" : "px")), h.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (u[t] = "inherit"), !(a && "set" in a && void 0 === (n = a.set(e, n, r)))))
                                try {
                                    u[t] = n
                                } catch (e) {}
                        }
                    },
                    css: function (e, t, n, r) {
                        var i,
                        o,
                        a,
                        s = m.camelCase(t);
                        return t = m.cssProps[s] || (m.cssProps[s] = it(s) || s),
                        (a = m.cssHooks[t] || m.cssHooks[s]) && "get" in a && (o = a.get(e, !0, n)),
                        void 0 === o && (o = Ve(e, t, r)),
                        "normal" === o && t in tt && (o = tt[t]),
                        "" === n || n ? (i = parseFloat(o), !0 === n || isFinite(i) ? i || 0 : o) : o
                    }
                }),
                m.each(["height", "width"], function (e, t) {
                    m.cssHooks[t] = {
                        get: function (e, n, r) {
                            if (n)
                                return Qe.test(m.css(e, "display")) && 0 === e.offsetWidth ? Ue(e, et, function () {
                                    return ut(e, t, r)
                                }) : ut(e, t, r)
                        },
                        set: function (e, n, r) {
                            var i = r && Xe(e);
                            return at(0, n, r ? st(e, t, r, h.boxSizing && "border-box" === m.css(e, "boxSizing", !1, i), i) : 0)
                        }
                    }
                }),
                h.opacity || (m.cssHooks.opacity = {
                        get: function (e, t) {
                            return Ke.test((t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : t ? "1" : ""
                        },
                        set: function (e, t) {
                            var n = e.style,
                            r = e.currentStyle,
                            i = m.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : "",
                            o = r && r.filter || n.filter || "";
                            n.zoom = 1,
                            (t >= 1 || "" === t) && "" === m.trim(o.replace(Je, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === t || r && !r.filter) || (n.filter = Je.test(o) ? o.replace(Je, i) : o + " " + i)
                        }
                    }),
                m.cssHooks.marginRight = Ge(h.reliableMarginRight, function (e, t) {
                        if (t)
                            return Ue(e, {
                                display: "inline-block"
                            }, Ve, [e, "marginRight"])
                    }),
                m.cssHooks.marginLeft = Ge(h.reliableMarginLeft, function (e, t) {
                        if (t)
                            return (parseFloat(Ve(e, "marginLeft")) || (m.contains(e.ownerDocument, e) ? e.getBoundingClientRect().left - Ue(e, {
                                        marginLeft: 0
                                    }, function () {
                                        return e.getBoundingClientRect().left
                                    }) : 0)) + "px"
                    }),
                m.each({
                    margin: "",
                    padding: "",
                    border: "Width"
                }, function (e, t) {
                    m.cssHooks[e + t] = {
                        expand: function (n) {
                            for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++)
                                i[e + Y[r] + t] = o[r] || o[r - 2] || o[0];
                            return i
                        }
                    },
                    We.test(e) || (m.cssHooks[e + t].set = at)
                }),
                m.fn.extend({
                    css: function (e, t) {
                        return ee(this, function (e, t, n) {
                            var r,
                            i,
                            o = {},
                            a = 0;
                            if (m.isArray(t)) {
                                for (r = Xe(e), i = t.length; a < i; a++)
                                    o[t[a]] = m.css(e, t[a], !1, r);
                                return o
                            }
                            return void 0 !== n ? m.style(e, t, n) : m.css(e, t)
                        }, e, t, arguments.length > 1)
                    },
                    show: function () {
                        return ot(this, !0)
                    },
                    hide: function () {
                        return ot(this)
                    },
                    toggle: function (e) {
                        return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () {
                            G(this) ? m(this).show() : m(this).hide()
                        })
                    }
                }),
                m.Tween = lt,
                lt.prototype = {
                    constructor: lt,
                    init: function (e, t, n, r, i, o) {
                        this.elem = e,
                        this.prop = n,
                        this.easing = i || m.easing._default,
                        this.options = t,
                        this.start = this.now = this.cur(),
                        this.end = r,
                        this.unit = o || (m.cssNumber[n] ? "" : "px")
                    },
                    cur: function () {
                        var e = lt.propHooks[this.prop];
                        return e && e.get ? e.get(this) : lt.propHooks._default.get(this)
                    },
                    run: function (e) {
                        var t,
                        n = lt.propHooks[this.prop];
                        return this.options.duration ? this.pos = t = m.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) : lt.propHooks._default.set(this),
                        this
                    }
                },
                lt.prototype.init.prototype = lt.prototype,
                lt.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 = m.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0
                        },
                        set: function (e) {
                            m.fx.step[e.prop] ? m.fx.step[e.prop](e) : 1 !== e.elem.nodeType || null == e.elem.style[m.cssProps[e.prop]] && !m.cssHooks[e.prop] ? e.elem[e.prop] = e.now : m.style(e.elem, e.prop, e.now + e.unit)
                        }
                    }
                },
                lt.propHooks.scrollTop = lt.propHooks.scrollLeft = {
                    set: function (e) {
                        e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
                    }
                },
                m.easing = {
                    linear: function (e) {
                        return e
                    },
                    swing: function (e) {
                        return .5 - Math.cos(e * Math.PI) / 2
                    },
                    _default: "swing"
                },
                m.fx = lt.prototype.init,
                m.fx.step = {};
                var ct,
                ft,
                dt = /^(?:toggle|show|hide)$/,
                pt = /queueHooks$/;
                function ht() {
                    return n.setTimeout(function () {
                        ct = void 0
                    }),
                    ct = m.now()
                }
                function mt(e, t) {
                    var n,
                    r = {
                        height: e
                    },
                    i = 0;
                    for (t = t ? 1 : 0; i < 4; i += 2 - t)
                        r["margin" + (n = Y[i])] = r["padding" + n] = e;
                    return t && (r.opacity = r.width = e),
                    r
                }
                function vt(e, t, n) {
                    for (var r, i = (gt.tweeners[t] || []).concat(gt.tweeners["*"]), o = 0, a = i.length; o < a; o++)
                        if (r = i[o].call(n, t, e))
                            return r
                }
                function gt(e, t, n) {
                    var r,
                    i,
                    o = 0,
                    a = gt.prefilters.length,
                    s = m.Deferred().always(function () {
                            delete u.elem
                        }),
                    u = function () {
                        if (i)
                            return !1;
                        for (var t = ct || ht(), n = Math.max(0, l.startTime + l.duration - t), r = 1 - (n / l.duration || 0), o = 0, a = l.tweens.length; o < a; o++)
                            l.tweens[o].run(r);
                        return s.notifyWith(e, [l, r, n]),
                        r < 1 && a ? n : (s.resolveWith(e, [l]), !1)
                    },
                    l = s.promise({
                            elem: e,
                            props: m.extend({}, t),
                            opts: m.extend(!0, {
                                specialEasing: {},
                                easing: m.easing._default
                            }, n),
                            originalProperties: t,
                            originalOptions: n,
                            startTime: ct || ht(),
                            duration: n.duration,
                            tweens: [],
                            createTween: function (t, n) {
                                var r = m.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing);
                                return l.tweens.push(r),
                                r
                            },
                            stop: function (t) {
                                var n = 0,
                                r = t ? l.tweens.length : 0;
                                if (i)
                                    return this;
                                for (i = !0; n < r; n++)
                                    l.tweens[n].run(1);
                                return t ? (s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l, t])) : s.rejectWith(e, [l, t]),
                                this
                            }
                        }),
                    c = l.props;
                    for (!function (e, t) {
                        var n,
                        r,
                        i,
                        o,
                        a;
                        for (n in e)
                            if (i = t[r = m.camelCase(n)], o = e[n], m.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = m.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); o < a; o++)if (r = gt.prefilters[o].call(l, e, c, l.opts))
                            return m.isFunction(r.stop) && (m._queueHooks(l.elem, l.opts.queue).stop = m.proxy(r.stop, r)), r;
                    return m.map(c, vt, l),
                    m.isFunction(l.opts.start) && l.opts.start.call(e, l),
                    m.fx.timer(m.extend(u, {
                            elem: e,
                            anim: l,
                            queue: l.opts.queue
                        })),
                    l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always)
                }
                m.Animation = m.extend(gt, {
                        tweeners: {
                            "*": [function (e, t) {
                                    var n = this.createTween(e, t);
                                    return J(n.elem, e, V.exec(t), n),
                                    n
                                }
                            ]
                        },
                        tweener: function (e, t) {
                            m.isFunction(e) ? (t = e, e = ["*"]) : e = e.match(M);
                            for (var n, r = 0, i = e.length; r < i; r++)
                                n = e[r], gt.tweeners[n] = gt.tweeners[n] || [], gt.tweeners[n].unshift(t)
                        },
                        prefilters: [function (e, t, n) {
                                var r,
                                i,
                                o,
                                a,
                                s,
                                u,
                                l,
                                c = this,
                                f = {},
                                d = e.style,
                                p = e.nodeType && G(e),
                                v = m._data(e, "fxshow");
                                for (r in n.queue || (null == (s = m._queueHooks(e, "fx")).unqueued && (s.unqueued = 0, u = s.empty.fire, s.empty.fire = function () {
                                            s.unqueued || u()
                                        }), s.unqueued++, c.always(function () {
                                            c.always(function () {
                                                s.unqueued--,
                                                m.queue(e, "fx").length || s.empty.fire()
                                            })
                                        })), 1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [d.overflow, d.overflowX, d.overflowY], "inline" === ("none" === (l = m.css(e, "display")) ? m._data(e, "olddisplay") || _e(e.nodeName) : l) && "none" === m.css(e, "float") && (h.inlineBlockNeedsLayout && "inline" !== _e(e.nodeName) ? d.zoom = 1 : d.display = "inline-block")), n.overflow && (d.overflow = "hidden", h.shrinkWrapBlocks() || c.always(function () {
                                            d.overflow = n.overflow[0],
                                            d.overflowX = n.overflow[1],
                                            d.overflowY = n.overflow[2]
                                        })), t)
                                    if (i = t[r], dt.exec(i)) {
                                        if (delete t[r], o = o || "toggle" === i, i === (p ? "hide" : "show")) {
                                            if ("show" !== i || !v || void 0 === v[r])
                                                continue;
                                            p = !0
                                        }
                                        f[r] = v && v[r] || m.style(e, r)
                                    } else
                                        l = void 0;
                                if (m.isEmptyObject(f))
                                    "inline" === ("none" === l ? _e(e.nodeName) : l) && (d.display = l);
                                else
                                    for (r in v ? "hidden" in v && (p = v.hidden) : v = m._data(e, "fxshow", {}), o && (v.hidden = !p), p ? m(e).show() : c.done(function () {
                                            m(e).hide()
                                        }), c.done(function () {
                                            var t;
                                            for (t in m._removeData(e, "fxshow"), f)
                                                m.style(e, t, f[t])
                                            }), f)a = vt(p ? v[r] : 0, r, c), r in v || (v[r] = a.start, p && (a.end = a.start, a.start = "width" === r || "height" === r ? 1 : 0))
                            }
                        ],
                        prefilter: function (e, t) {
                            t ? gt.prefilters.unshift(e) : gt.prefilters.push(e)
                        }
                    }),
                m.speed = function (e, t, n) {
                    var r = e && "object" == typeof e ? m.extend({}, e) : {
                        complete: n || !n && t || m.isFunction(e) && e,
                        duration: e,
                        easing: n && t || t && !m.isFunction(t) && t
                    };
                    return r.duration = m.fx.off ? 0 : "number" == typeof r.duration ? r.duration : r.duration in m.fx.speeds ? m.fx.speeds[r.duration] : m.fx.speeds._default,
                    null != r.queue && !0 !== r.queue || (r.queue = "fx"),
                    r.old = r.complete,
                    r.complete = function () {
                        m.isFunction(r.old) && r.old.call(this),
                        r.queue && m.dequeue(this, r.queue)
                    },
                    r
                },
                m.fn.extend({
                    fadeTo: function (e, t, n, r) {
                        return this.filter(G).css("opacity", 0).show().end().animate({
                            opacity: t
                        }, e, n, r)
                    },
                    animate: function (e, t, n, r) {
                        var i = m.isEmptyObject(e),
                        o = m.speed(t, n, r),
                        a = function () {
                            var t = gt(this, m.extend({}, e), o);
                            (i || m._data(this, "finish")) && t.stop(!0)
                        };
                        return a.finish = a,
                        i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
                    },
                    stop: function (e, t, n) {
                        var r = function (e) {
                            var t = e.stop;
                            delete e.stop,
                            t(n)
                        };
                        return "string" != typeof e && (n = t, t = e, e = void 0),
                        t && !1 !== e && this.queue(e || "fx", []),
                        this.each(function () {
                            var t = !0,
                            i = null != e && e + "queueHooks",
                            o = m.timers,
                            a = m._data(this);
                            if (i)
                                a[i] && a[i].stop && r(a[i]);
                            else
                                for (i in a)
                                    a[i] && a[i].stop && pt.test(i) && r(a[i]);
                            for (i = o.length; i--; )
                                o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n), t = !1, o.splice(i, 1));
                            !t && n || m.dequeue(this, e)
                        })
                    },
                    finish: function (e) {
                        return !1 !== e && (e = e || "fx"),
                        this.each(function () {
                            var t,
                            n = m._data(this),
                            r = n[e + "queue"],
                            i = n[e + "queueHooks"],
                            o = m.timers,
                            a = r ? r.length : 0;
                            for (n.finish = !0, m.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--; )
                                o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1));
                            for (t = 0; t < a; t++)
                                r[t] && r[t].finish && r[t].finish.call(this);
                            delete n.finish
                        })
                    }
                }),
                m.each(["toggle", "show", "hide"], function (e, t) {
                    var n = m.fn[t];
                    m.fn[t] = function (e, r, i) {
                        return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(mt(t, !0), e, r, i)
                    }
                }),
                m.each({
                    slideDown: mt("show"),
                    slideUp: mt("hide"),
                    slideToggle: mt("toggle"),
                    fadeIn: {
                        opacity: "show"
                    },
                    fadeOut: {
                        opacity: "hide"
                    },
                    fadeToggle: {
                        opacity: "toggle"
                    }
                }, function (e, t) {
                    m.fn[e] = function (e, n, r) {
                        return this.animate(t, e, n, r)
                    }
                }),
                m.timers = [],
                m.fx.tick = function () {
                    var e,
                    t = m.timers,
                    n = 0;
                    for (ct = m.now(); n < t.length; n++)
                        (e = t[n])() || t[n] !== e || t.splice(n--, 1);
                    t.length || m.fx.stop(),
                    ct = void 0
                },
                m.fx.timer = function (e) {
                    m.timers.push(e),
                    e() ? m.fx.start() : m.timers.pop()
                },
                m.fx.interval = 13,
                m.fx.start = function () {
                    ft || (ft = n.setInterval(m.fx.tick, m.fx.interval))
                },
                m.fx.stop = function () {
                    n.clearInterval(ft),
                    ft = null
                },
                m.fx.speeds = {
                    slow: 600,
                    fast: 200,
                    _default: 400
                },
                m.fn.delay = function (e, t) {
                    return e = m.fx && m.fx.speeds[e] || e,
                    t = t || "fx",
                    this.queue(t, function (t, r) {
                        var i = n.setTimeout(t, e);
                        r.stop = function () {
                            n.clearTimeout(i)
                        }
                    })
                },
                function () {
                    var e,
                    t = a.createElement("input"),
                    n = a.createElement("div"),
                    r = a.createElement("select"),
                    i = r.appendChild(a.createElement("option"));
                    (n = a.createElement("div")).setAttribute("className", "t"),
                    n.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",
                    e = n.getElementsByTagName("a")[0],
                    t.setAttribute("type", "checkbox"),
                    n.appendChild(t),
                    (e = n.getElementsByTagName("a")[0]).style.cssText = "top:1px",
                    h.getSetAttribute = "t" !== n.className,
                    h.style = /top/.test(e.getAttribute("style")),
                    h.hrefNormalized = "/a" === e.getAttribute("href"),
                    h.checkOn = !!t.value,
                    h.optSelected = i.selected,
                    h.enctype = !!a.createElement("form").enctype,
                    r.disabled = !0,
                    h.optDisabled = !i.disabled,
                    (t = a.createElement("input")).setAttribute("value", ""),
                    h.input = "" === t.getAttribute("value"),
                    t.value = "t",
                    t.setAttribute("type", "radio"),
                    h.radioValue = "t" === t.value
                }
                ();
                var yt = /\r/g,
                bt = /[\x20\t\r\n\f]+/g;
                m.fn.extend({
                    val: function (e) {
                        var t,
                        n,
                        r,
                        i = this[0];
                        return arguments.length ? (r = m.isFunction(e), this.each(function (n) {
                                var i;
                                1 === this.nodeType && (null == (i = r ? e.call(this, n, m(this).val()) : e) ? i = "" : "number" == typeof i ? i += "" : m.isArray(i) && (i = m.map(i, function (e) {
                                                    return null == e ? "" : e + ""
                                                })), (t = m.valHooks[this.type] || m.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, i, "value") || (this.value = i))
                            })) : i ? (t = m.valHooks[i.type] || m.valHooks[i.nodeName.toLowerCase()]) && "get" in t && void 0 !== (n = t.get(i, "value")) ? n : "string" == typeof(n = i.value) ? n.replace(yt, "") : null == n ? "" : n : void 0
                    }
                }),
                m.extend({
                    valHooks: {
                        option: {
                            get: function (e) {
                                var t = m.find.attr(e, "value");
                                return null != t ? t : m.trim(m.text(e)).replace(bt, " ")
                            }
                        },
                        select: {
                            get: function (e) {
                                for (var t, n, r = e.options, i = e.selectedIndex, o = "select-one" === e.type || i < 0, a = o ? null : [], s = o ? i + 1 : r.length, u = i < 0 ? s : o ? i : 0; u < s; u++)
                                    if (((n = r[u]).selected || u === i) && (h.optDisabled ? !n.disabled : null === n.getAttribute("disabled")) && (!n.parentNode.disabled || !m.nodeName(n.parentNode, "optgroup"))) {
                                        if (t = m(n).val(), o)
                                            return t;
                                        a.push(t)
                                    }
                                return a
                            },
                            set: function (e, t) {
                                for (var n, r, i = e.options, o = m.makeArray(t), a = i.length; a--; )
                                    if (r = i[a], m.inArray(m.valHooks.option.get(r), o) > -1)
                                        try {
                                            r.selected = n = !0
                                        } catch (e) {
                                            r.scrollHeight
                                        }
                                    else
                                        r.selected = !1;
                                return n || (e.selectedIndex = -1),
                                i
                            }
                        }
                    }
                }),
                m.each(["radio", "checkbox"], function () {
                    m.valHooks[this] = {
                        set: function (e, t) {
                            if (m.isArray(t))
                                return e.checked = m.inArray(m(e).val(), t) > -1
                        }
                    },
                    h.checkOn || (m.valHooks[this].get = function (e) {
                        return null === e.getAttribute("value") ? "on" : e.value
                    })
                });
                var wt,
                xt,
                Tt = m.expr.attrHandle,
                Et = /^(?:checked|selected)$/i,
                Ct = h.getSetAttribute,
                kt = h.input;
                m.fn.extend({
                    attr: function (e, t) {
                        return ee(this, m.attr, e, t, arguments.length > 1)
                    },
                    removeAttr: function (e) {
                        return this.each(function () {
                            m.removeAttr(this, e)
                        })
                    }
                }),
                m.extend({
                    attr: function (e, t, n) {
                        var r,
                        i,
                        o = e.nodeType;
                        if (3 !== o && 8 !== o && 2 !== o)
                            return void 0 === e.getAttribute ? m.prop(e, t, n) : (1 === o && m.isXMLDoc(e) || (t = t.toLowerCase(), i = m.attrHooks[t] || (m.expr.match.bool.test(t) ? xt : wt)), void 0 !== n ? null === n ? void m.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 = m.find.attr(e, t)) ? void 0 : r)
                    },
                    attrHooks: {
                        type: {
                            set: function (e, t) {
                                if (!h.radioValue && "radio" === t && m.nodeName(e, "input")) {
                                    var n = e.value;
                                    return e.setAttribute("type", t),
                                    n && (e.value = n),
                                    t
                                }
                            }
                        }
                    },
                    removeAttr: function (e, t) {
                        var n,
                        r,
                        i = 0,
                        o = t && t.match(M);
                        if (o && 1 === e.nodeType)
                            for (; n = o[i++]; )
                                r = m.propFix[n] || n, m.expr.match.bool.test(n) ? kt && Ct || !Et.test(n) ? e[r] = !1 : e[m.camelCase("default-" + n)] = e[r] = !1 : m.attr(e, n, ""), e.removeAttribute(Ct ? n : r)
                    }
                }),
                xt = {
                    set: function (e, t, n) {
                        return !1 === t ? m.removeAttr(e, n) : kt && Ct || !Et.test(n) ? e.setAttribute(!Ct && m.propFix[n] || n, n) : e[m.camelCase("default-" + n)] = e[n] = !0,
                        n
                    }
                },
                m.each(m.expr.match.bool.source.match(/\w+/g), function (e, t) {
                    var n = Tt[t] || m.find.attr;
                    kt && Ct || !Et.test(t) ? Tt[t] = function (e, t, r) {
                        var i,
                        o;
                        return r || (o = Tt[t], Tt[t] = i, i = null != n(e, t, r) ? t.toLowerCase() : null, Tt[t] = o),
                        i
                    }
                     : Tt[t] = function (e, t, n) {
                        if (!n)
                            return e[m.camelCase("default-" + t)] ? t.toLowerCase() : null
                    }
                }),
                kt && Ct || (m.attrHooks.value = {
                        set: function (e, t, n) {
                            if (!m.nodeName(e, "input"))
                                return wt && wt.set(e, t, n);
                            e.defaultValue = t
                        }
                    }),
                Ct || (wt = {
                        set: function (e, t, n) {
                            var r = e.getAttributeNode(n);
                            if (r || e.setAttributeNode(r = e.ownerDocument.createAttribute(n)), r.value = t += "", "value" === n || t === e.getAttribute(n))
                                return t
                        }
                    }, Tt.id = Tt.name = Tt.coords = function (e, t, n) {
                    var r;
                    if (!n)
                        return (r = e.getAttributeNode(t)) && "" !== r.value ? r.value : null
                }, m.valHooks.button = {
                        get: function (e, t) {
                            var n = e.getAttributeNode(t);
                            if (n && n.specified)
                                return n.value
                        },
                        set: wt.set
                    }, m.attrHooks.contenteditable = {
                        set: function (e, t, n) {
                            wt.set(e, "" !== t && t, n)
                        }
                    }, m.each(["width", "height"], function (e, t) {
                        m.attrHooks[t] = {
                            set: function (e, n) {
                                if ("" === n)
                                    return e.setAttribute(t, "auto"), n
                            }
                        }
                    })),
                h.style || (m.attrHooks.style = {
                        get: function (e) {
                            return e.style.cssText || void 0
                        },
                        set: function (e, t) {
                            return e.style.cssText = t + ""
                        }
                    });
                var St = /^(?:input|select|textarea|button|object)$/i,
                Lt = /^(?:a|area)$/i;
                m.fn.extend({
                    prop: function (e, t) {
                        return ee(this, m.prop, e, t, arguments.length > 1)
                    },
                    removeProp: function (e) {
                        return e = m.propFix[e] || e,
                        this.each(function () {
                            try {
                                this[e] = void 0,
                                delete this[e]
                            } catch (e) {}
                        })
                    }
                }),
                m.extend({
                    prop: function (e, t, n) {
                        var r,
                        i,
                        o = e.nodeType;
                        if (3 !== o && 8 !== o && 2 !== o)
                            return 1 === o && m.isXMLDoc(e) || (t = m.propFix[t] || t, i = m.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 = m.find.attr(e, "tabindex");
                                return t ? parseInt(t, 10) : St.test(e.nodeName) || Lt.test(e.nodeName) && e.href ? 0 : -1
                            }
                        }
                    },
                    propFix: {
                        for : "htmlFor", class: "className"
                }
            }),
            h.hrefNormalized || m.each(["href", "src"], function (e, t) {
                m.propHooks[t] = {
                    get: function (e) {
                        return e.getAttribute(t, 4)
                    }
                }
            }),
            h.optSelected || (m.propHooks.selected = {
                    get: function (e) {
                        var t = e.parentNode;
                        return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex),
                        null
                    },
                    set: function (e) {
                        var t = e.parentNode;
                        t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex)
                    }
                }),
            m.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () {
                m.propFix[this.toLowerCase()] = this
            }),
            h.enctype || (m.propFix.enctype = "encoding");
            var Nt = /[\t\r\n\f]/g;
            function At(e) {
                return m.attr(e, "class") || ""
            }
            m.fn.extend({
                addClass: function (e) {
                    var t,
                    n,
                    r,
                    i,
                    o,
                    a,
                    s,
                    u = 0;
                    if (m.isFunction(e))
                        return this.each(function (t) {
                            m(this).addClass(e.call(this, t, At(this)))
                        });
                        if ("string" == typeof e && e)
                            for (t = e.match(M) || []; n = this[u++]; )
                                if (i = At(n), r = 1 === n.nodeType && (" " + i + " ").replace(Nt, " ")) {
                                    for (a = 0; o = t[a++]; )
                                        r.indexOf(" " + o + " ") < 0 && (r += o + " ");
                                    i !== (s = m.trim(r)) && m.attr(n, "class", s)
                                }
                        return this
                    },
                    removeClass: function (e) {
                        var t,
                        n,
                        r,
                        i,
                        o,
                        a,
                        s,
                        u = 0;
                        if (m.isFunction(e))
                            return this.each(function (t) {
                                m(this).removeClass(e.call(this, t, At(this)))
                            });
                        if (!arguments.length)
                            return this.attr("class", "");
                        if ("string" == typeof e && e)
                            for (t = e.match(M) || []; n = this[u++]; )
                                if (i = At(n), r = 1 === n.nodeType && (" " + i + " ").replace(Nt, " ")) {
                                    for (a = 0; o = t[a++]; )
                                        for (; r.indexOf(" " + o + " ") > -1; )
                                            r = r.replace(" " + o + " ", " ");
                                    i !== (s = m.trim(r)) && m.attr(n, "class", s)
                                }
                        return this
                    },
                    toggleClass: function (e, t) {
                        var n = typeof e;
                        return "boolean" == typeof t && "string" === n ? t ? this.addClass(e) : this.removeClass(e) : m.isFunction(e) ? this.each(function (n) {
                            m(this).toggleClass(e.call(this, n, At(this), t), t)
                        }) : this.each(function () {
                            var t,
                            r,
                            i,
                            o;
                            if ("string" === n)
                                for (r = 0, i = m(this), o = e.match(M) || []; t = o[r++]; )
                                    i.hasClass(t) ? i.removeClass(t) : i.addClass(t);
                            else
                                void 0 !== e && "boolean" !== n || ((t = At(this)) && m._data(this, "__className__", t), m.attr(this, "class", t || !1 === e ? "" : m._data(this, "__className__") || ""))
                        })
                    },
                    hasClass: function (e) {
                        var t,
                        n,
                        r = 0;
                        for (t = " " + e + " "; n = this[r++]; )
                            if (1 === n.nodeType && (" " + At(n) + " ").replace(Nt, " ").indexOf(t) > -1)
                                return !0;
                        return !1
                    }
                }),
                m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function (e, t) {
                    m.fn[t] = function (e, n) {
                        return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
                    }
                }),
                m.fn.extend({
                    hover: function (e, t) {
                        return this.mouseenter(e).mouseleave(t || e)
                    }
                });
                var Dt = n.location,
                Ot = m.now(),
                jt = /\?/,
                Ht = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
                m.parseJSON = function (e) {
                    if (n.JSON && n.JSON.parse)
                        return n.JSON.parse(e + "");
                    var t,
                    r = null,
                    i = m.trim(e + "");
                    return i && !m.trim(i.replace(Ht, function (e, n, i, o) {
                            return t && n && (r = 0),
                            0 === r ? e : (t = i || n, r += !o - !i, "")
                        })) ? Function("return " + i)() : m.error("Invalid JSON: " + e)
                },
                m.parseXML = function (e) {
                    var t;
                    if (!e || "string" != typeof e)
                        return null;
                    try {
                        n.DOMParser ? t = (new n.DOMParser).parseFromString(e, "text/xml") : ((t = new n.ActiveXObject("Microsoft.XMLDOM")).async = "false", t.loadXML(e))
                    } catch (e) {
                        t = void 0
                    }
                    return t && t.documentElement && !t.getElementsByTagName("parsererror").length || m.error("Invalid XML: " + e),
                    t
                };
                var Pt = /#.*$/,
                Mt = /([?&])_=[^&]*/,
                Rt = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
                qt = /^(?:GET|HEAD)$/,
                It = /^\/\//,
                Ft = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
                Bt = {},
                _t = {},
                Wt = "*/".concat("*"),
                zt = Dt.href,
                Ut = Ft.exec(zt.toLowerCase()) || [];
                function $t(e) {
                    return function (t, n) {
                        "string" != typeof t && (n = t, t = "*");
                        var r,
                        i = 0,
                        o = t.toLowerCase().match(M) || [];
                        if (m.isFunction(n))
                            for (; r = o[i++]; )
                                "+" === r.charAt(0) ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n)
                    }
                }
                function Xt(e, t, n, r) {
                    var i = {},
                    o = e === _t;
                    function a(s) {
                        var u;
                        return i[s] = !0,
                        m.each(e[s] || [], function (e, s) {
                            var l = s(t, n, r);
                            return "string" != typeof l || o || i[l] ? o ? !(u = l) : void 0 : (t.dataTypes.unshift(l), a(l), !1)
                        }),
                        u
                    }
                    return a(t.dataTypes[0]) || !i["*"] && a("*")
                }
                function Vt(e, t) {
                    var n,
                    r,
                    i = m.ajaxSettings.flatOptions || {};
                    for (r in t)
                        void 0 !== t[r] && ((i[r] ? e : n || (n = {}))[r] = t[r]);
                    return n && m.extend(!0, e, n),
                    e
                }
                function Yt(e) {
                    return e.style && e.style.display || m.css(e, "display")
                }
                m.extend({
                    active: 0,
                    lastModified: {},
                    etag: {},
                    ajaxSettings: {
                        url: zt,
                        type: "GET",
                        isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Ut[1]),
                        global: !0,
                        processData: !0,
                        async: !0,
                        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
                        accepts: {
                            "*": Wt,
                            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": m.parseJSON,
                            "text xml": m.parseXML
                        },
                        flatOptions: {
                            url: !0,
                            context: !0
                        }
                    },
                    ajaxSetup: function (e, t) {
                        return t ? Vt(Vt(e, m.ajaxSettings), t) : Vt(m.ajaxSettings, e)
                    },
                    ajaxPrefilter: $t(Bt),
                    ajaxTransport: $t(_t),
                    ajax: function (e, t) {
                        "object" == typeof e && (t = e, e = void 0),
                        t = t || {};
                        var r,
                        i,
                        o,
                        a,
                        s,
                        u,
                        l,
                        c,
                        f = m.ajaxSetup({}, t),
                        d = f.context || f,
                        p = f.context && (d.nodeType || d.jquery) ? m(d) : m.event,
                        h = m.Deferred(),
                        v = m.Callbacks("once memory"),
                        g = f.statusCode || {},
                        y = {},
                        b = {},
                        w = 0,
                        x = "canceled",
                        T = {
                            readyState: 0,
                            getResponseHeader: function (e) {
                                var t;
                                if (2 === w) {
                                    if (!c)
                                        for (c = {}; t = Rt.exec(a); )
                                            c[t[1].toLowerCase()] = t[2];
                                    t = c[e.toLowerCase()]
                                }
                                return null == t ? null : t
                            },
                            getAllResponseHeaders: function () {
                                return 2 === w ? a : null
                            },
                            setRequestHeader: function (e, t) {
                                var n = e.toLowerCase();
                                return w || (e = b[n] = b[n] || e, y[e] = t),
                                this
                            },
                            overrideMimeType: function (e) {
                                return w || (f.mimeType = e),
                                this
                            },
                            statusCode: function (e) {
                                var t;
                                if (e)
                                    if (w < 2)
                                        for (t in e)
                                            g[t] = [g[t], e[t]];
                                    else
                                        T.always(e[T.status]);
                                return this
                            },
                            abort: function (e) {
                                var t = e || x;
                                return l && l.abort(t),
                                E(0, t),
                                this
                            }
                        };
                        if (h.promise(T).complete = v.add, T.success = T.done, T.error = T.fail, f.url = ((e || f.url || zt) + "").replace(Pt, "").replace(It, Ut[1] + "//"), f.type = t.method || t.type || f.method || f.type, f.dataTypes = m.trim(f.dataType || "*").toLowerCase().match(M) || [""], null == f.crossDomain && (r = Ft.exec(f.url.toLowerCase()), f.crossDomain = !(!r || r[1] === Ut[1] && r[2] === Ut[2] && (r[3] || ("http:" === r[1] ? "80" : "443")) === (Ut[3] || ("http:" === Ut[1] ? "80" : "443")))), f.data && f.processData && "string" != typeof f.data && (f.data = m.param(f.data, f.traditional)), Xt(Bt, f, t, T), 2 === w)
                            return T;
                        for (i in(u = m.event && f.global) && 0 == m.active++ && m.event.trigger("ajaxStart"), f.type = f.type.toUpperCase(), f.hasContent = !qt.test(f.type), o = f.url, f.hasContent || (f.data && (o = f.url += (jt.test(o) ? "&" : "?") + f.data, delete f.data), !1 === f.cache && (f.url = Mt.test(o) ? o.replace(Mt, "$1_=" + Ot++) : o + (jt.test(o) ? "&" : "?") + "_=" + Ot++)), f.ifModified && (m.lastModified[o] && T.setRequestHeader("If-Modified-Since", m.lastModified[o]), m.etag[o] && T.setRequestHeader("If-None-Match", m.etag[o])), (f.data && f.hasContent && !1 !== f.contentType || t.contentType) && T.setRequestHeader("Content-Type", f.contentType), T.setRequestHeader("Accept", f.dataTypes[0] && f.accepts[f.dataTypes[0]] ? f.accepts[f.dataTypes[0]] + ("*" !== f.dataTypes[0] ? ", " + Wt + "; q=0.01" : "") : f.accepts["*"]), f.headers)
                            T.setRequestHeader(i, f.headers[i]);
                        if (f.beforeSend && (!1 === f.beforeSend.call(d, T, f) || 2 === w))
                            return T.abort();
                        for (i in x = "abort", {
                            success: 1,
                            error: 1,
                            complete: 1
                        })
                            T[i](f[i]);
                        if (l = Xt(_t, f, t, T)) {
                            if (T.readyState = 1, u && p.trigger("ajaxSend", [T, f]), 2 === w)
                                return T;
                            f.async && f.timeout > 0 && (s = n.setTimeout(function () {
                                        T.abort("timeout")
                                    }, f.timeout));
                            try {
                                w = 1,
                                l.send(y, E)
                            } catch (e) {
                                if (!(w < 2))
                                    throw e;
                                E(-1, e)
                            }
                        } else
                            E(-1, "No Transport");
                        function E(e, t, r, i) {
                            var c,
                            y,
                            b,
                            x,
                            E,
                            C = t;
                            2 !== w && (w = 2, s && n.clearTimeout(s), l = void 0, a = i || "", T.readyState = e > 0 ? 4 : 0, c = e >= 200 && e < 300 || 304 === e, r && (x = function (e, t, n) {
                                    for (var r, i, o, a, s = e.contents, u = e.dataTypes; "*" === u[0]; )
                                        u.shift(), void 0 === i && (i = e.mimeType || t.getResponseHeader("Content-Type"));
                                    if (i)
                                        for (a in s)
                                            if (s[a] && s[a].test(i)) {
                                                u.unshift(a);
                                                break
                                            }
                                    if (u[0]in n)
                                        o = u[0];
                                    else {
                                        for (a in n) {
                                            if (!u[0] || e.converters[a + " " + u[0]]) {
                                                o = a;
                                                break
                                            }
                                            r || (r = a)
                                        }
                                        o = o || r
                                    }
                                    if (o)
                                        return o !== u[0] && u.unshift(o), n[o]
                                }
                                    (f, T, r)), x = 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];
                                for (o = c.shift(); 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
                                }
                            }
                                (f, x, T, c), c ? (f.ifModified && ((E = T.getResponseHeader("Last-Modified")) && (m.lastModified[o] = E), (E = T.getResponseHeader("etag")) && (m.etag[o] = E)), 204 === e || "HEAD" === f.type ? C = "nocontent" : 304 === e ? C = "notmodified" : (C = x.state, y = x.data, c = !(b = x.error))) : (b = C, !e && C || (C = "error", e < 0 && (e = 0))), T.status = e, T.statusText = (t || C) + "", c ? h.resolveWith(d, [y, C, T]) : h.rejectWith(d, [T, C, b]), T.statusCode(g), g = void 0, u && p.trigger(c ? "ajaxSuccess" : "ajaxError", [T, f, c ? y : b]), v.fireWith(d, [T, C]), u && (p.trigger("ajaxComplete", [T, f]), --m.active || m.event.trigger("ajaxStop")))
                        }
                        return T
                    },
                    getJSON: function (e, t, n) {
                        return m.get(e, t, n, "json")
                    },
                    getScript: function (e, t) {
                        return m.get(e, void 0, t, "script")
                    }
                }),
                m.each(["get", "post"], function (e, t) {
                    m[t] = function (e, n, r, i) {
                        return m.isFunction(n) && (i = i || r, r = n, n = void 0),
                        m.ajax(m.extend({
                                url: e,
                                type: t,
                                dataType: i,
                                data: n,
                                success: r
                            }, m.isPlainObject(e) && e))
                    }
                }),
                m._evalUrl = function (e) {
                    return m.ajax({
                        url: e,
                        type: "GET",
                        dataType: "script",
                        cache: !0,
                        async: !1,
                        global: !1,
                        throws: !0
                    })
                },
                m.fn.extend({
                    wrapAll: function (e) {
                        if (m.isFunction(e))
                            return this.each(function (t) {
                                m(this).wrapAll(e.call(this, t))
                            });
                        if (this[0]) {
                            var t = m(e, this[0].ownerDocument).eq(0).clone(!0);
                            this[0].parentNode && t.insertBefore(this[0]),
                            t.map(function () {
                                for (var e = this; e.firstChild && 1 === e.firstChild.nodeType; )
                                    e = e.firstChild;
                                return e
                            }).append(this)
                        }
                        return this
                    },
                    wrapInner: function (e) {
                        return m.isFunction(e) ? this.each(function (t) {
                            m(this).wrapInner(e.call(this, t))
                        }) : this.each(function () {
                            var t = m(this),
                            n = t.contents();
                            n.length ? n.wrapAll(e) : t.append(e)
                        })
                    },
                    wrap: function (e) {
                        var t = m.isFunction(e);
                        return this.each(function (n) {
                            m(this).wrapAll(t ? e.call(this, n) : e)
                        })
                    },
                    unwrap: function () {
                        return this.parent().each(function () {
                            m.nodeName(this, "body") || m(this).replaceWith(this.childNodes)
                        }).end()
                    }
                }),
                m.expr.filters.hidden = function (e) {
                    return h.reliableHiddenOffsets() ? e.offsetWidth <= 0 && e.offsetHeight <= 0 && !e.getClientRects().length : function (e) {
                        if (!m.contains(e.ownerDocument || a, e))
                            return !0;
                        for (; e && 1 === e.nodeType; ) {
                            if ("none" === Yt(e) || "hidden" === e.type)
                                return !0;
                            e = e.parentNode
                        }
                        return !1
                    }
                    (e)
                },
                m.expr.filters.visible = function (e) {
                    return !m.expr.filters.hidden(e)
                };
                var Gt = /%20/g,
                Jt = /\[\]$/,
                Kt = /\r?\n/g,
                Qt = /^(?:submit|button|image|reset|file)$/i,
                Zt = /^(?:input|select|textarea|keygen)/i;
                function en(e, t, n, r) {
                    var i;
                    if (m.isArray(t))
                        m.each(t, function (t, i) {
                            n || Jt.test(e) ? r(e, i) : en(e + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, n, r)
                        });
                    else if (n || "object" !== m.type(t))
                        r(e, t);
                    else
                        for (i in t)
                            en(e + "[" + i + "]", t[i], n, r)
                }
                m.param = function (e, t) {
                    var n,
                    r = [],
                    i = function (e, t) {
                        t = m.isFunction(t) ? t() : null == t ? "" : t,
                        r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
                    };
                    if (void 0 === t && (t = m.ajaxSettings && m.ajaxSettings.traditional), m.isArray(e) || e.jquery && !m.isPlainObject(e))
                        m.each(e, function () {
                            i(this.name, this.value)
                        });
                    else
                        for (n in e)
                            en(n, e[n], t, i);
                    return r.join("&").replace(Gt, "+")
                },
                m.fn.extend({
                    serialize: function () {
                        return m.param(this.serializeArray())
                    },
                    serializeArray: function () {
                        return this.map(function () {
                            var e = m.prop(this, "elements");
                            return e ? m.makeArray(e) : this
                        }).filter(function () {
                            var e = this.type;
                            return this.name && !m(this).is(":disabled") && Zt.test(this.nodeName) && !Qt.test(e) && (this.checked || !te.test(e))
                        }).map(function (e, t) {
                            var n = m(this).val();
                            return null == n ? null : m.isArray(n) ? m.map(n, function (e) {
                                return {
                                    name: t.name,
                                    value: e.replace(Kt, "\r\n")
                                }
                            }) : {
                                name: t.name,
                                value: n.replace(Kt, "\r\n")
                            }
                        }).get()
                    }
                }),
                m.ajaxSettings.xhr = void 0 !== n.ActiveXObject ? function () {
                    return this.isLocal ? an() : a.documentMode > 8 ? on() : /^(get|post|head|put|delete|options)$/i.test(this.type) && on() || an()
                }
                 : on;
                var tn = 0,
                nn = {},
                rn = m.ajaxSettings.xhr();
                function on() {
                    try {
                        return new n.XMLHttpRequest
                    } catch (e) {}
                }
                function an() {
                    try {
                        return new n.ActiveXObject("Microsoft.XMLHTTP")
                    } catch (e) {}
                }
                n.attachEvent && n.attachEvent("onunload", function () {
                    for (var e in nn)
                        nn[e](void 0, !0)
                }),
                h.cors = !!rn && "withCredentials" in rn,
                (rn = h.ajax = !!rn) && m.ajaxTransport(function (e) {
                    var t;
                    if (!e.crossDomain || h.cors)
                        return {
                            send: function (r, i) {
                                var o,
                                a = e.xhr(),
                                s = ++tn;
                                if (a.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields)
                                    for (o in e.xhrFields)
                                        a[o] = e.xhrFields[o];
                                for (o in e.mimeType && a.overrideMimeType && a.overrideMimeType(e.mimeType), e.crossDomain || r["X-Requested-With"] || (r["X-Requested-With"] = "XMLHttpRequest"), r)
                                    void 0 !== r[o] && a.setRequestHeader(o, r[o] + "");
                                a.send(e.hasContent && e.data || null),
                                t = function (n, r) {
                                    var o,
                                    u,
                                    l;
                                    if (t && (r || 4 === a.readyState))
                                        if (delete nn[s], t = void 0, a.onreadystatechange = m.noop, r)
                                            4 !== a.readyState && a.abort();
                                        else {
                                            l = {},
                                            o = a.status,
                                            "string" == typeof a.responseText && (l.text = a.responseText);
                                            try {
                                                u = a.statusText
                                            } catch (e) {
                                                u = ""
                                            }
                                            o || !e.isLocal || e.crossDomain ? 1223 === o && (o = 204) : o = l.text ? 200 : 404
                                        }
                                    l && i(o, u, l, a.getAllResponseHeaders())
                                },
                                e.async ? 4 === a.readyState ? n.setTimeout(t) : a.onreadystatechange = nn[s] = t : t()
                            },
                            abort: function () {
                                t && t(void 0, !0)
                            }
                        }
                }),
                m.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 m.globalEval(e),
                            e
                        }
                    }
                }),
                m.ajaxPrefilter("script", function (e) {
                    void 0 === e.cache && (e.cache = !1),
                    e.crossDomain && (e.type = "GET", e.global = !1)
                }),
                m.ajaxTransport("script", function (e) {
                    if (e.crossDomain) {
                        var t,
                        n = a.head || m("head")[0] || a.documentElement;
                        return {
                            send: function (r, i) {
                                (t = a.createElement("script")).async = !0,
                                e.scriptCharset && (t.charset = e.scriptCharset),
                                t.src = e.url,
                                t.onload = t.onreadystatechange = function (e, n) {
                                    (n || !t.readyState || /loaded|complete/.test(t.readyState)) && (t.onload = t.onreadystatechange = null, t.parentNode && t.parentNode.removeChild(t), t = null, n || i(200, "success"))
                                },
                                n.insertBefore(t, n.firstChild)
                            },
                            abort: function () {
                                t && t.onload(void 0, !0)
                            }
                        }
                    }
                });
                var sn = [],
                un = /(=)\?(?=&|$)|\?\?/;
                m.ajaxSetup({
                    jsonp: "callback",
                    jsonpCallback: function () {
                        var e = sn.pop() || m.expando + "_" + Ot++;
                        return this[e] = !0,
                        e
                    }
                }),
                m.ajaxPrefilter("json jsonp", function (e, t, r) {
                    var i,
                    o,
                    a,
                    s = !1 !== e.jsonp && (un.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && un.test(e.data) && "data");
                    if (s || "jsonp" === e.dataTypes[0])
                        return i = e.jsonpCallback = m.isFunction(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, s ? e[s] = e[s].replace(un, "$1" + i) : !1 !== e.jsonp && (e.url += (jt.test(e.url) ? "&" : "?") + e.jsonp + "=" + i), e.converters["script json"] = function () {
                            return a || m.error(i + " was not called"),
                            a[0]
                        },
                    e.dataTypes[0] = "json",
                    o = n[i],
                    n[i] = function () {
                        a = arguments
                    },
                    r.always(function () {
                        void 0 === o ? m(n).removeProp(i) : n[i] = o,
                        e[i] && (e.jsonpCallback = t.jsonpCallback, sn.push(i)),
                        a && m.isFunction(o) && o(a[0]),
                        a = o = void 0
                    }),
                    "script"
                }),
                m.parseHTML = function (e, t, n) {
                    if (!e || "string" != typeof e)
                        return null;
                    "boolean" == typeof t && (n = t, t = !1),
                    t = t || a;
                    var r = k.exec(e),
                    i = !n && [];
                    return r ? [t.createElement(r[1])] : (r = pe([e], t, i), i && i.length && m(i).remove(), m.merge([], r.childNodes))
                };
                var ln = m.fn.load;
                function cn(e) {
                    return m.isWindow(e) ? e : 9 === e.nodeType && (e.defaultView || e.parentWindow)
                }
                m.fn.load = function (e, t, n) {
                    if ("string" != typeof e && ln)
                        return ln.apply(this, arguments);
                    var r,
                    i,
                    o,
                    a = this,
                    s = e.indexOf(" ");
                    return s > -1 && (r = m.trim(e.slice(s, e.length)), e = e.slice(0, s)),
                    m.isFunction(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"),
                    a.length > 0 && m.ajax({
                        url: e,
                        type: i || "GET",
                        dataType: "html",
                        data: t
                    }).done(function (e) {
                        o = arguments,
                        a.html(r ? m("<div>").append(m.parseHTML(e)).find(r) : e)
                    }).always(n && function (e, t) {
                        a.each(function () {
                            n.apply(this, o || [e.responseText, t, e])
                        })
                    }),
                    this
                },
                m.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) {
                    m.fn[t] = function (e) {
                        return this.on(t, e)
                    }
                }),
                m.expr.filters.animated = function (e) {
                    return m.grep(m.timers, function (t) {
                        return e === t.elem
                    }).length
                },
                m.offset = {
                    setOffset: function (e, t, n) {
                        var r,
                        i,
                        o,
                        a,
                        s,
                        u,
                        l = m.css(e, "position"),
                        c = m(e),
                        f = {};
                        "static" === l && (e.style.position = "relative"),
                        s = c.offset(),
                        o = m.css(e, "top"),
                        u = m.css(e, "left"),
                        ("absolute" === l || "fixed" === l) && m.inArray("auto", [o, u]) > -1 ? (a = (r = c.position()).top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(u) || 0),
                        m.isFunction(t) && (t = t.call(e, n, m.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)
                    }
                },
                m.fn.extend({
                    offset: function (e) {
                        if (arguments.length)
                            return void 0 === e ? this : this.each(function (t) {
                                m.offset.setOffset(this, e, t)
                            });
                        var t,
                        n,
                        r = {
                            top: 0,
                            left: 0
                        },
                        i = this[0],
                        o = i && i.ownerDocument;
                        return o ? (t = o.documentElement, m.contains(t, i) ? (void 0 !== i.getBoundingClientRect && (r = i.getBoundingClientRect()), n = cn(o), {
                                top: r.top + (n.pageYOffset || t.scrollTop) - (t.clientTop || 0),
                                left: r.left + (n.pageXOffset || t.scrollLeft) - (t.clientLeft || 0)
                            }) : r) : void 0
                    },
                    position: function () {
                        if (this[0]) {
                            var e,
                            t,
                            n = {
                                top: 0,
                                left: 0
                            },
                            r = this[0];
                            return "fixed" === m.css(r, "position") ? t = r.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), m.nodeName(e[0], "html") || (n = e.offset()), n.top += m.css(e[0], "borderTopWidth", !0), n.left += m.css(e[0], "borderLeftWidth", !0)), {
                                top: t.top - n.top - m.css(r, "marginTop", !0),
                                left: t.left - n.left - m.css(r, "marginLeft", !0)
                            }
                        }
                    },
                    offsetParent: function () {
                        return this.map(function () {
                            for (var e = this.offsetParent; e && !m.nodeName(e, "html") && "static" === m.css(e, "position"); )
                                e = e.offsetParent;
                            return e || $e
                        })
                    }
                }),
                m.each({
                    scrollLeft: "pageXOffset",
                    scrollTop: "pageYOffset"
                }, function (e, t) {
                    var n = /Y/.test(t);
                    m.fn[e] = function (r) {
                        return ee(this, function (e, r, i) {
                            var o = cn(e);
                            if (void 0 === i)
                                return o ? t in o ? o[t] : o.document.documentElement[r] : e[r];
                            o ? o.scrollTo(n ? m(o).scrollLeft() : i, n ? i : m(o).scrollTop()) : e[r] = i
                        }, e, r, arguments.length, null)
                    }
                }),
                m.each(["top", "left"], function (e, t) {
                    m.cssHooks[t] = Ge(h.pixelPosition, function (e, n) {
                            if (n)
                                return n = Ve(e, t), ze.test(n) ? m(e).position()[t] + "px" : n
                        })
                }),
                m.each({
                    Height: "height",
                    Width: "width"
                }, function (e, t) {
                    m.each({
                        padding: "inner" + e,
                        content: t,
                        "": "outer" + e
                    }, function (n, r) {
                        m.fn[r] = function (r, i) {
                            var o = arguments.length && (n || "boolean" != typeof r),
                            a = n || (!0 === r || !0 === i ? "margin" : "border");
                            return ee(this, function (t, n, r) {
                                var i;
                                return m.isWindow(t) ? t.document.documentElement["client" + e] : 9 === t.nodeType ? (i = t.documentElement, Math.max(t.body["scroll" + e], i["scroll" + e], t.body["offset" + e], i["offset" + e], i["client" + e])) : void 0 === r ? m.css(t, n, a) : m.style(t, n, r, a)
                            }, t, o ? r : void 0, o, null)
                        }
                    })
                }),
                m.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)
                    }
                }),
                m.fn.size = function () {
                    return this.length
                },
                m.fn.andSelf = m.fn.addBack,
                void 0 === (r = function () {
                    return m
                }
                    .apply(t, [])) || (e.exports = r);
                var fn = n.jQuery,
                dn = n.$;
                return m.noConflict = function (e) {
                    return n.$ === m && (n.$ = dn),
                    e && n.jQuery === m && (n.jQuery = fn),
                    m
                },
                i || (n.jQuery = n.$ = m),
                m
            },
            "object" == typeof e && "object" == typeof e.exports ? e.exports = i.document ? o(i, !0) : function (e) {
                if (!e.document)
                    throw new Error("jQuery requires a window with a document");
                return o(e)
            }
             : o(i)
        }, function (e, t) {
            e.exports = {
                openUrl: function (e) {
                    window.location.href = e
                },
                nativeDownload: function (e, t) {
                    var n = document.createElement("a");
                    n.setAttribute("href", e),
                    n.setAttribute("download", t),
                    n.style.display = "none",
                    document.body.appendChild(n),
                    n.click(),
                    setTimeout(function () {
                        document.body.removeChild(n)
                    }, 100)
                },
                download: function (e, t, n) {
                    var r,
                    i,
                    o,
                    a = window,
                    s = "application/octet-stream",
                    u = n || s,
                    l = e,
                    c = document,
                    f = c.createElement("a"),
                    d = function (e) {
                        return String(e)
                    },
                    p = a.Blob || a.MozBlob || a.WebKitBlob || d,
                    h = a.MSBlobBuilder || a.WebKitBlobBuilder || a.BlobBuilder,
                    m = t || "download";
                    if ("true" === String(this) && (u = (l = [l, u])[0], l = l[1]), String(l).match(/^data\:[\w+\-]+\/[\w+\-]+[,;]/))
                        return navigator.msSaveBlob ? navigator.msSaveBlob(function (e) {
                            var t = e.split(/[:;,]/),
                            n = t[1],
                            r = ("base64" == t[2] ? atob : decodeURIComponent)(t.pop()),
                            i = r.length,
                            o = 0,
                            a = new Uint8Array(i);
                            for (; o < i; ++o)
                                a[o] = r.charCodeAt(o);
                            return new p([a], {
                                type: n
                            })
                        }
                            (l), m) : v(l);
                    try {
                        r = l instanceof p ? l : new p([l], {
                                type: u
                            })
                    } catch (e) {
                        h && ((i = new h).append([l]), r = i.getBlob(u))
                    }
                    function v(e, t) {
                        if ("download" in f)
                            return f.href = e, f.setAttribute("download", m), f.innerHTML = "downloading...", c.body.appendChild(f), setTimeout(function () {
                                f.click(),
                                c.body.removeChild(f),
                                !0 === t && setTimeout(function () {
                                    a.URL.revokeObjectURL(f.href)
                                }, 250)
                            }, 66), !0;
                        var n = c.createElement("iframe");
                        c.body.appendChild(n),
                        t || (e = "data:" + e.replace(/^data:([\w\/\-\+]+)/, s)),
                        n.src = e,
                        setTimeout(function () {
                            c.body.removeChild(n)
                        }, 333)
                    }
                    if (navigator.msSaveBlob)
                        return navigator.msSaveBlob(r, m);
                    if (a.URL)
                        v(a.URL.createObjectURL(r), !0);
                    else {
                        if ("string" == typeof r || r.constructor === d)
                            try {
                                return v("data:" + u + ";base64," + a.btoa(r))
                            } catch (e) {
                                return v("data:" + u + "," + encodeURIComponent(r))
                            }
                        (o = new FileReader).onload = function (e) {
                            v(this.result)
                        },
                        o.readAsDataURL(r)
                    }
                    return !0
                }
            }
        }, function (e, t, n) {
            (function (t) {
                var n;
                n = function () {
                    "use strict";
                    var e = {};
                    "undefined" != typeof window && (e.SUPPORTED = "requestAnimationFrame" in window, e.SUPPORTS_TOUCH = "ontouchstart" in window, e.touch = !1, e.dynamicInputDetection = !0, e.iOS = function () {
                        return /iPhone|iPad|iPod/.test(navigator.userAgent) && !window.MSStream
                    });
                    var n = [],
                    r = {
                        POPPER: ".tippy-popper",
                        TOOLTIP: ".tippy-tooltip",
                        CONTENT: ".tippy-tooltip-content",
                        CIRCLE: "[x-circle]",
                        ARROW: "[x-arrow]",
                        TOOLTIPPED_EL: "[data-tooltipped]",
                        CONTROLLER: "[data-tippy-controller]"
                    },
                    i = {
                        html: !1,
                        position: "top",
                        animation: "shift",
                        animateFill: !0,
                        arrow: !1,
                        arrowSize: "regular",
                        delay: 0,
                        trigger: "mouseenter focus",
                        duration: 350,
                        interactive: !1,
                        interactiveBorder: 2,
                        theme: "dark",
                        size: "regular",
                        distance: 10,
                        offset: 0,
                        hideOnClick: !0,
                        multiple: !1,
                        followCursor: !1,
                        inertia: !1,
                        flipDuration: 350,
                        sticky: !1,
                        stickyDuration: 200,
                        appendTo: function () {
                            return document.body
                        },
                        zIndex: 9999,
                        touchHold: !1,
                        performance: !1,
                        dynamicTitle: !1,
                        popperOptions: {}
                    },
                    o = e.SUPPORTED && Object.keys(i);
                    function a(e) {
                        n.forEach(function (t) {
                            var n = t.popper,
                            r = t.tippyInstance,
                            i = t.settings,
                            o = i.appendTo,
                            a = i.hideOnClick,
                            s = i.trigger;
                            if (o.contains(n)) {
                                var u = !0 === a || -1 !== s.indexOf("focus"),
                                l = !e || n !== e.popper;
                                u && l && r.hide(n)
                            }
                        })
                    }
                    var s = {};
                    if ("undefined" != typeof Element) {
                        var u = Element.prototype;
                        s = u.matches || u.matchesSelector || u.webkitMatchesSelector || u.mozMatchesSelector || u.msMatchesSelector || function (e) {
                            for (var t = (this.document || this.ownerDocument).querySelectorAll(e), n = t.length; --n >= 0 && t.item(n) !== this; );
                            return n > -1
                        }
                    }
                    var l = s;
                    function c(e, t) {
                        return (Element.prototype.closest || function (e) {
                            for (var t = this; t; ) {
                                if (l.call(t, e))
                                    return t;
                                t = t.parentElement
                            }
                        }).call(e, t)
                    }
                    function f(e, t) {
                        return Array.prototype.find ? e.find(t) : e.filter(t)[0]
                    }
                    function d() {
                        return !d.done && (d.done = !0, i = function () {
                            e.touch = !0,
                            e.iOS() && document.body.classList.add("tippy-touch"),
                            e.dynamicInputDetection && window.performance && document.addEventListener("mousemove", o)
                        }, t = void 0, o = function () {
                            var n = performance.now();
                            n - t < 20 && (e.touch = !1, document.removeEventListener("mousemove", o), e.iOS() || document.body.classList.remove("tippy-touch")),
                            t = n
                        }, document.addEventListener("click", function (t) {
                                if (!(t.target instanceof Element))
                                    return a();
                                var i = c(t.target, r.TOOLTIPPED_EL),
                                o = c(t.target, r.POPPER);
                                if (!o || !f(n, function (e) {
                                        return e.popper === o
                                    }).settings.interactive) {
                                    if (i) {
                                        var s = f(n, function (e) {
                                                return e.el === i
                                            }),
                                        u = s.settings,
                                        l = u.hideOnClick,
                                        d = u.multiple,
                                        p = u.trigger;
                                        if (!d && e.touch || !d && -1 !== p.indexOf("click"))
                                            return a(s);
                                        if (!0 !== l || -1 !== p.indexOf("click"))
                                            return
                                    }
                                    !c(t.target, r.CONTROLLER) && document.querySelector(r.POPPER) && a()
                                }
                            }), document.addEventListener("touchstart", i), window.addEventListener("blur", function (e) {
                                var t = document.activeElement;
                                t && t.blur && l.call(t, r.TOOLTIPPED_EL) && t.blur()
                            }), !e.SUPPORTS_TOUCH && (navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0) && document.addEventListener("pointerdown", i), !0);
                        var t,
                        i,
                        o
                    }
                    function p(e) {
                        window.requestAnimationFrame(function () {
                            setTimeout(e, 0)
                        })
                    }
                    function h(e) {
                        for (var t = [!1, "webkit"], n = e.charAt(0).toUpperCase() + e.slice(1), r = 0; r < t.length; r++) {
                            var i = t[r],
                            o = i ? "" + i + n : e;
                            if (void 0 !== window.document.body.style[o])
                                return o
                        }
                        return null
                    }
                    function m(e) {
                        var t = e.getAttribute("title");
                        t && e.setAttribute("data-original-title", t),
                        e.removeAttribute("title")
                    }
                    function v(e, t) {
                        e.forEach(function (e) {
                            e && t(e.classList)
                        })
                    }
                    function g(e) {
                        return {
                            tooltip: e.querySelector(r.TOOLTIP),
                            circle: e.querySelector(r.CIRCLE),
                            content: e.querySelector(r.CONTENT)
                        }
                    }
                    function y(e, t) {
                        e.forEach(function (e) {
                            if (e) {
                                var n = l.call(e, r.CONTENT) ? Math.round(t / 1.3) : t;
                                e.style[h("transitionDuration")] = n + "ms"
                            }
                        })
                    }
                    function b(e) {
                        return "visible" === e.style.visibility
                    }
                    function w() {}
                    function x(e) {
                        return !!e && "[object Object]" === e.toString()
                    }
                    function T(e) {
                        return e.replace(/-.+/, "")
                    }
                    function E(e) {
                        var t = this,
                        r = f(n, function (e) {
                                return e.el === t
                            }),
                        i = r.popper,
                        o = r.settings.offset,
                        a = T(i.getAttribute("x-placement")),
                        s = Math.round(i.offsetWidth / 2),
                        u = Math.round(i.offsetHeight / 2),
                        l = document.documentElement.offsetWidth || document.body.offsetWidth,
                        c = e.pageX,
                        d = e.pageY,
                        p = void 0,
                        m = void 0;
                        switch (a) {
                        case "top":
                            p = c - s + o,
                            m = d - 2 * u;
                            break;
                        case "bottom":
                            p = c - s + o,
                            m = d + 10;
                            break;
                        case "left":
                            p = c - 2 * s,
                            m = d - u + o;
                            break;
                        case "right":
                            p = c + 5,
                            m = d - u + o
                        }
                        "top" !== a && "bottom" !== a || (c + 5 + s + o > l && (p = l - 5 - 2 * s), c - 5 - s + o < 0 && (p = 5)),
                        i.style[h("transform")] = "translate3d(" + p + "px, " + m + "px, 0)"
                    }
                    function C(e, t, n) {
                        if (!t)
                            return n();
                        var r = g(e.popper).tooltip,
                        i = !1,
                        o = function (e) {
                            r[e + "EventListener"]("webkitTransitionEnd", a),
                            r[e + "EventListener"]("transitionend", a)
                        },
                        a = function (e) {
                            e.target !== r || i || (i = !0, o("remove"), n())
                        };
                        o("add"),
                        clearTimeout(e._transitionendTimeout),
                        e._transitionendTimeout = setTimeout(function () {
                                i || (o("remove"), n())
                            }, t)
                    }
                    for (var k = "undefined" != typeof window && "undefined" != typeof document, S = ["Edge", "Trident", "Firefox"], L = 0, N = 0; N < S.length; N += 1)
                        if (k && navigator.userAgent.indexOf(S[N]) >= 0) {
                            L = 1;
                            break
                        }
                    var A = k && window.Promise ? function (e) {
                        var t = !1;
                        return function () {
                            t || (t = !0, window.Promise.resolve().then(function () {
                                    t = !1,
                                    e()
                                }))
                        }
                    }
                     : function (e) {
                        var t = !1;
                        return function () {
                            t || (t = !0, setTimeout(function () {
                                    t = !1,
                                    e()
                                }, L))
                        }
                    };
                    function D(e) {
                        return e && "[object Function]" === {}
                        .toString.call(e)
                    }
                    function O(e, t) {
                        if (1 !== e.nodeType)
                            return [];
                        var n = getComputedStyle(e, null);
                        return t ? n[t] : n
                    }
                    function j(e) {
                        return "HTML" === e.nodeName ? e : e.parentNode || e.host
                    }
                    function H(e) {
                        if (!e)
                            return document.body;
                        switch (e.nodeName) {
                        case "HTML":
                        case "BODY":
                            return e.ownerDocument.body;
                        case "#document":
                            return e.body
                        }
                        var t = O(e),
                        n = t.overflow,
                        r = t.overflowX,
                        i = t.overflowY;
                        return /(auto|scroll)/.test(n + i + r) ? e : H(j(e))
                    }
                    function P(e) {
                        var t = e && e.offsetParent,
                        n = t && t.nodeName;
                        return n && "BODY" !== n && "HTML" !== n ? -1 !== ["TD", "TABLE"].indexOf(t.nodeName) && "static" === O(t, "position") ? P(t) : t : e ? e.ownerDocument.documentElement : document.documentElement
                    }
                    function M(e) {
                        return null !== e.parentNode ? M(e.parentNode) : e
                    }
                    function R(e, t) {
                        if (!(e && e.nodeType && t && t.nodeType))
                            return document.documentElement;
                        var n = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING,
                        r = n ? e : t,
                        i = n ? t : e,
                        o = document.createRange();
                        o.setStart(r, 0),
                        o.setEnd(i, 0);
                        var a,
                        s,
                        u = o.commonAncestorContainer;
                        if (e !== u && t !== u || r.contains(i))
                            return "BODY" === (s = (a = u).nodeName) || "HTML" !== s && P(a.firstElementChild) !== a ? P(u) : u;
                        var l = M(e);
                        return l.host ? R(l.host, t) : R(e, M(t).host)
                    }
                    function q(e) {
                        var t = "top" === (arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "top") ? "scrollTop" : "scrollLeft",
                        n = e.nodeName;
                        if ("BODY" === n || "HTML" === n) {
                            var r = e.ownerDocument.documentElement;
                            return (e.ownerDocument.scrollingElement || r)[t]
                        }
                        return e[t]
                    }
                    function I(e, t) {
                        var n = "x" === t ? "Left" : "Top",
                        r = "Left" === n ? "Right" : "Bottom";
                        return parseFloat(e["border" + n + "Width"], 10) + parseFloat(e["border" + r + "Width"], 10)
                    }
                    var F = void 0,
                    B = function () {
                        return void 0 === F && (F = -1 !== navigator.appVersion.indexOf("MSIE 10")),
                        F
                    };
                    function _(e, t, n, r) {
                        return Math.max(t["offset" + e], t["scroll" + e], n["client" + e], n["offset" + e], n["scroll" + e], B() ? n["offset" + e] + r["margin" + ("Height" === e ? "Top" : "Left")] + r["margin" + ("Height" === e ? "Bottom" : "Right")] : 0)
                    }
                    function W() {
                        var e = document.body,
                        t = document.documentElement,
                        n = B() && getComputedStyle(t);
                        return {
                            height: _("Height", e, t, n),
                            width: _("Width", e, t, n)
                        }
                    }
                    var z = function (e, t) {
                        if (!(e instanceof t))
                            throw new TypeError("Cannot call a class as a function")
                    },
                    U = function () {
                        function e(e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var r = t[n];
                                r.enumerable = r.enumerable || !1,
                                r.configurable = !0,
                                "value" in r && (r.writable = !0),
                                Object.defineProperty(e, r.key, r)
                            }
                        }
                        return function (t, n, r) {
                            return n && e(t.prototype, n),
                            r && e(t, r),
                            t
                        }
                    }
                    (),
                    $ = function (e, t, n) {
                        return t in e ? Object.defineProperty(e, t, {
                            value: n,
                            enumerable: !0,
                            configurable: !0,
                            writable: !0
                        }) : e[t] = n,
                        e
                    },
                    X = Object.assign || function (e) {
                        for (var t = 1; t < arguments.length; t++) {
                            var n = arguments[t];
                            for (var r in n)
                                Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r])
                        }
                        return e
                    };
                    function V(e) {
                        return X({}, e, {
                            right: e.left + e.width,
                            bottom: e.top + e.height
                        })
                    }
                    function Y(e) {
                        var t = {};
                        if (B())
                            try {
                                t = e.getBoundingClientRect();
                                var n = q(e, "top"),
                                r = q(e, "left");
                                t.top += n,
                                t.left += r,
                                t.bottom += n,
                                t.right += r
                            } catch (e) {}
                        else
                            t = e.getBoundingClientRect();
                        var i = {
                            left: t.left,
                            top: t.top,
                            width: t.right - t.left,
                            height: t.bottom - t.top
                        },
                        o = "HTML" === e.nodeName ? W() : {},
                        a = o.width || e.clientWidth || i.right - i.left,
                        s = o.height || e.clientHeight || i.bottom - i.top,
                        u = e.offsetWidth - a,
                        l = e.offsetHeight - s;
                        if (u || l) {
                            var c = O(e);
                            u -= I(c, "x"),
                            l -= I(c, "y"),
                            i.width -= u,
                            i.height -= l
                        }
                        return V(i)
                    }
                    function G(e, t) {
                        var n = B(),
                        r = "HTML" === t.nodeName,
                        i = Y(e),
                        o = Y(t),
                        a = H(e),
                        s = O(t),
                        u = parseFloat(s.borderTopWidth, 10),
                        l = parseFloat(s.borderLeftWidth, 10),
                        c = V({
                                top: i.top - o.top - u,
                                left: i.left - o.left - l,
                                width: i.width,
                                height: i.height
                            });
                        if (c.marginTop = 0, c.marginLeft = 0, !n && r) {
                            var f = parseFloat(s.marginTop, 10),
                            d = parseFloat(s.marginLeft, 10);
                            c.top -= u - f,
                            c.bottom -= u - f,
                            c.left -= l - d,
                            c.right -= l - d,
                            c.marginTop = f,
                            c.marginLeft = d
                        }
                        return (n ? t.contains(a) : t === a && "BODY" !== a.nodeName) && (c = function (e, t) {
                            var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
                            r = q(t, "top"),
                            i = q(t, "left"),
                            o = n ? -1 : 1;
                            return e.top += r * o,
                            e.bottom += r * o,
                            e.left += i * o,
                            e.right += i * o,
                            e
                        }
                            (c, t)),
                        c
                    }
                    function J(e, t, n, r) {
                        var i = {
                            top: 0,
                            left: 0
                        },
                        o = R(e, t);
                        if ("viewport" === r)
                            i = function (e) {
                                var t = e.ownerDocument.documentElement,
                                n = G(e, t),
                                r = Math.max(t.clientWidth, window.innerWidth || 0),
                                i = Math.max(t.clientHeight, window.innerHeight || 0),
                                o = q(t),
                                a = q(t, "left");
                                return V({
                                    top: o - n.top + n.marginTop,
                                    left: a - n.left + n.marginLeft,
                                    width: r,
                                    height: i
                                })
                            }
                        (o);
                        else {
                            var a = void 0;
                            "scrollParent" === r ? "BODY" === (a = H(j(t))).nodeName && (a = e.ownerDocument.documentElement) : a = "window" === r ? e.ownerDocument.documentElement : r;
                            var s = G(a, o);
                            if ("HTML" !== a.nodeName || function e(t) {
                                var n = t.nodeName;
                                return "BODY" !== n && "HTML" !== n && ("fixed" === O(t, "position") || e(j(t)))
                            }
                                (o))
                                i = s;
                            else {
                                var u = W(),
                                l = u.height,
                                c = u.width;
                                i.top += s.top - s.marginTop,
                                i.bottom = l + s.top,
                                i.left += s.left - s.marginLeft,
                                i.right = c + s.left
                            }
                        }
                        return i.left += n,
                        i.top += n,
                        i.right -= n,
                        i.bottom -= n,
                        i
                    }
                    function K(e, t, n, r, i) {
                        var o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0;
                        if (-1 === e.indexOf("auto"))
                            return e;
                        var a = J(n, r, o, i),
                        s = {
                            top: {
                                width: a.width,
                                height: t.top - a.top
                            },
                            right: {
                                width: a.right - t.right,
                                height: a.height
                            },
                            bottom: {
                                width: a.width,
                                height: a.bottom - t.bottom
                            },
                            left: {
                                width: t.left - a.left,
                                height: a.height
                            }
                        },
                        u = Object.keys(s).map(function (e) {
                                return X({
                                    key: e
                                }, s[e], {
                                    area: (t = s[e], t.width * t.height)
                                });
                                var t
                            }).sort(function (e, t) {
                                return t.area - e.area
                            }),
                        l = u.filter(function (e) {
                                var t = e.width,
                                r = e.height;
                                return t >= n.clientWidth && r >= n.clientHeight
                            }),
                        c = l.length > 0 ? l[0].key : u[0].key,
                        f = e.split("-")[1];
                        return c + (f ? "-" + f : "")
                    }
                    function Q(e, t, n) {
                        return G(n, R(t, n))
                    }
                    function Z(e) {
                        var t = getComputedStyle(e),
                        n = parseFloat(t.marginTop) + parseFloat(t.marginBottom),
                        r = parseFloat(t.marginLeft) + parseFloat(t.marginRight);
                        return {
                            width: e.offsetWidth + r,
                            height: e.offsetHeight + n
                        }
                    }
                    function ee(e) {
                        var t = {
                            left: "right",
                            right: "left",
                            bottom: "top",
                            top: "bottom"
                        };
                        return e.replace(/left|right|bottom|top/g, function (e) {
                            return t[e]
                        })
                    }
                    function te(e, t, n) {
                        n = n.split("-")[0];
                        var r = Z(e),
                        i = {
                            width: r.width,
                            height: r.height
                        },
                        o = -1 !== ["right", "left"].indexOf(n),
                        a = o ? "top" : "left",
                        s = o ? "left" : "top",
                        u = o ? "height" : "width",
                        l = o ? "width" : "height";
                        return i[a] = t[a] + t[u] / 2 - r[u] / 2,
                        i[s] = n === s ? t[s] - r[l] : t[ee(s)],
                        i
                    }
                    function ne(e, t) {
                        return Array.prototype.find ? e.find(t) : e.filter(t)[0]
                    }
                    function re(e, t, n) {
                        return (void 0 === n ? e : e.slice(0, function (e, t, n) {
                                if (Array.prototype.findIndex)
                                    return e.findIndex(function (e) {
                                        return e[t] === n
                                    });
                                var r = ne(e, function (e) {
                                        return e[t] === n
                                    });
                                return e.indexOf(r)
                            }
                                (e, "name", n))).forEach(function (e) {
                            e.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!");
                            var n = e.function || e.fn;
                            e.enabled && D(n) && (t.offsets.popper = V(t.offsets.popper), t.offsets.reference = V(t.offsets.reference), t = n(t, e))
                        }),
                        t
                    }
                    function ie(e, t) {
                        return e.some(function (e) {
                            var n = e.name;
                            return e.enabled && n === t
                        })
                    }
                    function oe(e) {
                        for (var t = [!1, "ms", "Webkit", "Moz", "O"], n = e.charAt(0).toUpperCase() + e.slice(1), r = 0; r < t.length - 1; r++) {
                            var i = t[r],
                            o = i ? "" + i + n : e;
                            if (void 0 !== document.body.style[o])
                                return o
                        }
                        return null
                    }
                    function ae(e) {
                        var t = e.ownerDocument;
                        return t ? t.defaultView : window
                    }
                    function se(e, t, n, r) {
                        n.updateBound = r,
                        ae(e).addEventListener("resize", n.updateBound, {
                            passive: !0
                        });
                        var i = H(e);
                        return function e(t, n, r, i) {
                            var o = "BODY" === t.nodeName,
                            a = o ? t.ownerDocument.defaultView : t;
                            a.addEventListener(n, r, {
                                passive: !0
                            }),
                            o || e(H(a.parentNode), n, r, i),
                            i.push(a)
                        }
                        (i, "scroll", n.updateBound, n.scrollParents),
                        n.scrollElement = i,
                        n.eventsEnabled = !0,
                        n
                    }
                    function ue() {
                        var e,
                        t;
                        this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = (e = this.reference, t = this.state, ae(e).removeEventListener("resize", t.updateBound), t.scrollParents.forEach(function (e) {
                                    e.removeEventListener("scroll", t.updateBound)
                                }), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t))
                    }
                    function le(e) {
                        return "" !== e && !isNaN(parseFloat(e)) && isFinite(e)
                    }
                    function ce(e, t) {
                        Object.keys(t).forEach(function (n) {
                            var r = "";
                            -1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(n) && le(t[n]) && (r = "px"),
                            e.style[n] = t[n] + r
                        })
                    }
                    function fe(e, t, n) {
                        var r = ne(e, function (e) {
                                return e.name === t
                            }),
                        i = !!r && e.some(function (e) {
                                return e.name === n && e.enabled && e.order < r.order
                            });
                        if (!i) {
                            var o = "`" + t + "`",
                            a = "`" + n + "`";
                            console.warn(a + " modifier is required by " + o + " modifier in order to work, be sure to include it before " + o + "!")
                        }
                        return i
                    }
                    var de = ["auto-start", "auto", "auto-end", "top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-end", "bottom", "bottom-start", "left-end", "left", "left-start"],
                    pe = de.slice(3);
                    function he(e) {
                        var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
                        n = pe.indexOf(e),
                        r = pe.slice(n + 1).concat(pe.slice(0, n));
                        return t ? r.reverse() : r
                    }
                    var me = {
                        FLIP: "flip",
                        CLOCKWISE: "clockwise",
                        COUNTERCLOCKWISE: "counterclockwise"
                    };
                    function ve(e, t, n, r) {
                        var i = [0, 0],
                        o = -1 !== ["right", "left"].indexOf(r),
                        a = e.split(/(\+|\-)/).map(function (e) {
                                return e.trim()
                            }),
                        s = a.indexOf(ne(a, function (e) {
                                    return -1 !== e.search(/,|\s/)
                                }));
                        a[s] && -1 === a[s].indexOf(",") && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");
                        var u = /\s*,\s*|\s+/,
                        l = -1 !== s ? [a.slice(0, s).concat([a[s].split(u)[0]]), [a[s].split(u)[1]].concat(a.slice(s + 1))] : [a];
                        return (l = l.map(function (e, r) {
                                    var i = (1 === r ? !o : o) ? "height" : "width",
                                    a = !1;
                                    return e.reduce(function (e, t) {
                                        return "" === e[e.length - 1] && -1 !== ["+", "-"].indexOf(t) ? (e[e.length - 1] = t, a = !0, e) : a ? (e[e.length - 1] += t, a = !1, e) : e.concat(t)
                                    }, []).map(function (e) {
                                        return function (e, t, n, r) {
                                            var i = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),
                                            o = +i[1],
                                            a = i[2];
                                            if (!o)
                                                return e;
                                            if (0 === a.indexOf("%")) {
                                                var s = void 0;
                                                switch (a) {
                                                case "%p":
                                                    s = n;
                                                    break;
                                                case "%":
                                                case "%r":
                                                default:
                                                    s = r
                                                }
                                                return V(s)[t] / 100 * o
                                            }
                                            if ("vh" === a || "vw" === a)
                                                return ("vh" === a ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) : Math.max(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * o;
                                            return o
                                        }
                                        (e, i, t, n)
                                    })
                                })).forEach(function (e, t) {
                            e.forEach(function (n, r) {
                                le(n) && (i[t] += n * ("-" === e[r - 1] ? -1 : 1))
                            })
                        }),
                        i
                    }
                    var ge = {
                        placement: "bottom",
                        eventsEnabled: !0,
                        removeOnDestroy: !1,
                        onCreate: function () {},
                        onUpdate: function () {},
                        modifiers: {
                            shift: {
                                order: 100,
                                enabled: !0,
                                fn: function (e) {
                                    var t = e.placement,
                                    n = t.split("-")[0],
                                    r = t.split("-")[1];
                                    if (r) {
                                        var i = e.offsets,
                                        o = i.reference,
                                        a = i.popper,
                                        s = -1 !== ["bottom", "top"].indexOf(n),
                                        u = s ? "left" : "top",
                                        l = s ? "width" : "height",
                                        c = {
                                            start: $({}, u, o[u]),
                                            end: $({}, u, o[u] + o[l] - a[l])
                                        };
                                        e.offsets.popper = X({}, a, c[r])
                                    }
                                    return e
                                }
                            },
                            offset: {
                                order: 200,
                                enabled: !0,
                                fn: function (e, t) {
                                    var n = t.offset,
                                    r = e.placement,
                                    i = e.offsets,
                                    o = i.popper,
                                    a = i.reference,
                                    s = r.split("-")[0],
                                    u = void 0;
                                    return u = le(+n) ? [+n, 0] : ve(n, o, a, s),
                                    "left" === s ? (o.top += u[0], o.left -= u[1]) : "right" === s ? (o.top += u[0], o.left += u[1]) : "top" === s ? (o.left += u[0], o.top -= u[1]) : "bottom" === s && (o.left += u[0], o.top += u[1]),
                                    e.popper = o,
                                    e
                                },
                                offset: 0
                            },
                            preventOverflow: {
                                order: 300,
                                enabled: !0,
                                fn: function (e, t) {
                                    var n = t.boundariesElement || P(e.instance.popper);
                                    e.instance.reference === n && (n = P(n));
                                    var r = J(e.instance.popper, e.instance.reference, t.padding, n);
                                    t.boundaries = r;
                                    var i = t.priority,
                                    o = e.offsets.popper,
                                    a = {
                                        primary: function (e) {
                                            var n = o[e];
                                            return o[e] < r[e] && !t.escapeWithReference && (n = Math.max(o[e], r[e])),
                                            $({}, e, n)
                                        },
                                        secondary: function (e) {
                                            var n = "right" === e ? "left" : "top",
                                            i = o[n];
                                            return o[e] > r[e] && !t.escapeWithReference && (i = Math.min(o[n], r[e] - ("right" === e ? o.width : o.height))),
                                            $({}, n, i)
                                        }
                                    };
                                    return i.forEach(function (e) {
                                        var t = -1 !== ["left", "top"].indexOf(e) ? "primary" : "secondary";
                                        o = X({}, o, a[t](e))
                                    }),
                                    e.offsets.popper = o,
                                    e
                                },
                                priority: ["left", "right", "top", "bottom"],
                                padding: 5,
                                boundariesElement: "scrollParent"
                            },
                            keepTogether: {
                                order: 400,
                                enabled: !0,
                                fn: function (e) {
                                    var t = e.offsets,
                                    n = t.popper,
                                    r = t.reference,
                                    i = e.placement.split("-")[0],
                                    o = Math.floor,
                                    a = -1 !== ["top", "bottom"].indexOf(i),
                                    s = a ? "right" : "bottom",
                                    u = a ? "left" : "top",
                                    l = a ? "width" : "height";
                                    return n[s] < o(r[u]) && (e.offsets.popper[u] = o(r[u]) - n[l]),
                                    n[u] > o(r[s]) && (e.offsets.popper[u] = o(r[s])),
                                    e
                                }
                            },
                            arrow: {
                                order: 500,
                                enabled: !0,
                                fn: function (e, t) {
                                    var n;
                                    if (!fe(e.instance.modifiers, "arrow", "keepTogether"))
                                        return e;
                                    var r = t.element;
                                    if ("string" == typeof r) {
                                        if (!(r = e.instance.popper.querySelector(r)))
                                            return e
                                    } else if (!e.instance.popper.contains(r))
                                        return console.warn("WARNING: `arrow.element` must be child of its popper element!"), e;
                                    var i = e.placement.split("-")[0],
                                    o = e.offsets,
                                    a = o.popper,
                                    s = o.reference,
                                    u = -1 !== ["left", "right"].indexOf(i),
                                    l = u ? "height" : "width",
                                    c = u ? "Top" : "Left",
                                    f = c.toLowerCase(),
                                    d = u ? "left" : "top",
                                    p = u ? "bottom" : "right",
                                    h = Z(r)[l];
                                    s[p] - h < a[f] && (e.offsets.popper[f] -= a[f] - (s[p] - h)),
                                    s[f] + h > a[p] && (e.offsets.popper[f] += s[f] + h - a[p]),
                                    e.offsets.popper = V(e.offsets.popper);
                                    var m = s[f] + s[l] / 2 - h / 2,
                                    v = O(e.instance.popper),
                                    g = parseFloat(v["margin" + c], 10),
                                    y = parseFloat(v["border" + c + "Width"], 10),
                                    b = m - e.offsets.popper[f] - g - y;
                                    return b = Math.max(Math.min(a[l] - h, b), 0),
                                    e.arrowElement = r,
                                    e.offsets.arrow = ($(n = {}, f, Math.round(b)), $(n, d, ""), n),
                                    e
                                },
                                element: "[x-arrow]"
                            },
                            flip: {
                                order: 600,
                                enabled: !0,
                                fn: function (e, t) {
                                    if (ie(e.instance.modifiers, "inner"))
                                        return e;
                                    if (e.flipped && e.placement === e.originalPlacement)
                                        return e;
                                    var n = J(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement),
                                    r = e.placement.split("-")[0],
                                    i = ee(r),
                                    o = e.placement.split("-")[1] || "",
                                    a = [];
                                    switch (t.behavior) {
                                    case me.FLIP:
                                        a = [r, i];
                                        break;
                                    case me.CLOCKWISE:
                                        a = he(r);
                                        break;
                                    case me.COUNTERCLOCKWISE:
                                        a = he(r, !0);
                                        break;
                                    default:
                                        a = t.behavior
                                    }
                                    return a.forEach(function (s, u) {
                                        if (r !== s || a.length === u + 1)
                                            return e;
                                        r = e.placement.split("-")[0],
                                        i = ee(r);
                                        var l = e.offsets.popper,
                                        c = e.offsets.reference,
                                        f = Math.floor,
                                        d = "left" === r && f(l.right) > f(c.left) || "right" === r && f(l.left) < f(c.right) || "top" === r && f(l.bottom) > f(c.top) || "bottom" === r && f(l.top) < f(c.bottom),
                                        p = f(l.left) < f(n.left),
                                        h = f(l.right) > f(n.right),
                                        m = f(l.top) < f(n.top),
                                        v = f(l.bottom) > f(n.bottom),
                                        g = "left" === r && p || "right" === r && h || "top" === r && m || "bottom" === r && v,
                                        y = -1 !== ["top", "bottom"].indexOf(r),
                                        b = !!t.flipVariations && (y && "start" === o && p || y && "end" === o && h || !y && "start" === o && m || !y && "end" === o && v);
                                        (d || g || b) && (e.flipped = !0, (d || g) && (r = a[u + 1]), b && (o = function (e) {
                                                return "end" === e ? "start" : "start" === e ? "end" : e
                                            }
                                                (o)), e.placement = r + (o ? "-" + o : ""), e.offsets.popper = X({}, e.offsets.popper, te(e.instance.popper, e.offsets.reference, e.placement)), e = re(e.instance.modifiers, e, "flip"))
                                    }),
                                    e
                                },
                                behavior: "flip",
                                padding: 5,
                                boundariesElement: "viewport"
                            },
                            inner: {
                                order: 700,
                                enabled: !1,
                                fn: function (e) {
                                    var t = e.placement,
                                    n = t.split("-")[0],
                                    r = e.offsets,
                                    i = r.popper,
                                    o = r.reference,
                                    a = -1 !== ["left", "right"].indexOf(n),
                                    s = -1 === ["top", "left"].indexOf(n);
                                    return i[a ? "left" : "top"] = o[n] - (s ? i[a ? "width" : "height"] : 0),
                                    e.placement = ee(t),
                                    e.offsets.popper = V(i),
                                    e
                                }
                            },
                            hide: {
                                order: 800,
                                enabled: !0,
                                fn: function (e) {
                                    if (!fe(e.instance.modifiers, "hide", "preventOverflow"))
                                        return e;
                                    var t = e.offsets.reference,
                                    n = ne(e.instance.modifiers, function (e) {
                                            return "preventOverflow" === e.name
                                        }).boundaries;
                                    if (t.bottom < n.top || t.left > n.right || t.top > n.bottom || t.right < n.left) {
                                        if (!0 === e.hide)
                                            return e;
                                        e.hide = !0,
                                        e.attributes["x-out-of-boundaries"] = ""
                                    } else {
                                        if (!1 === e.hide)
                                            return e;
                                        e.hide = !1,
                                        e.attributes["x-out-of-boundaries"] = !1
                                    }
                                    return e
                                }
                            },
                            computeStyle: {
                                order: 850,
                                enabled: !0,
                                fn: function (e, t) {
                                    var n = t.x,
                                    r = t.y,
                                    i = e.offsets.popper,
                                    o = ne(e.instance.modifiers, function (e) {
                                            return "applyStyle" === e.name
                                        }).gpuAcceleration;
                                    void 0 !== o && console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");
                                    var a = void 0 !== o ? o : t.gpuAcceleration,
                                    s = Y(P(e.instance.popper)),
                                    u = {
                                        position: i.position
                                    },
                                    l = {
                                        left: Math.floor(i.left),
                                        top: Math.floor(i.top),
                                        bottom: Math.floor(i.bottom),
                                        right: Math.floor(i.right)
                                    },
                                    c = "bottom" === n ? "top" : "bottom",
                                    f = "right" === r ? "left" : "right",
                                    d = oe("transform"),
                                    p = void 0,
                                    h = void 0;
                                    if (h = "bottom" === c ? -s.height + l.bottom : l.top, p = "right" === f ? -s.width + l.right : l.left, a && d)
                                        u[d] = "translate3d(" + p + "px, " + h + "px, 0)", u[c] = 0, u[f] = 0, u.willChange = "transform";
                                    else {
                                        var m = "bottom" === c ? -1 : 1,
                                        v = "right" === f ? -1 : 1;
                                        u[c] = h * m,
                                        u[f] = p * v,
                                        u.willChange = c + ", " + f
                                    }
                                    var g = {
                                        "x-placement": e.placement
                                    };
                                    return e.attributes = X({}, g, e.attributes),
                                    e.styles = X({}, u, e.styles),
                                    e.arrowStyles = X({}, e.offsets.arrow, e.arrowStyles),
                                    e
                                },
                                gpuAcceleration: !0,
                                x: "bottom",
                                y: "right"
                            },
                            applyStyle: {
                                order: 900,
                                enabled: !0,
                                fn: function (e) {
                                    var t,
                                    n;
                                    return ce(e.instance.popper, e.styles),
                                    t = e.instance.popper,
                                    n = e.attributes,
                                    Object.keys(n).forEach(function (e) {
                                        !1 !== n[e] ? t.setAttribute(e, n[e]) : t.removeAttribute(e)
                                    }),
                                    e.arrowElement && Object.keys(e.arrowStyles).length && ce(e.arrowElement, e.arrowStyles),
                                    e
                                },
                                onLoad: function (e, t, n, r, i) {
                                    var o = Q(0, t, e),
                                    a = K(n.placement, o, t, e, n.modifiers.flip.boundariesElement, n.modifiers.flip.padding);
                                    return t.setAttribute("x-placement", a),
                                    ce(t, {
                                        position: "absolute"
                                    }),
                                    n
                                },
                                gpuAcceleration: void 0
                            }
                        }
                    },
                    ye = function () {
                        function e(t, n) {
                            var r = this,
                            i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
                            z(this, e),
                            this.scheduleUpdate = function () {
                                return requestAnimationFrame(r.update)
                            },
                            this.update = A(this.update.bind(this)),
                            this.options = X({}, e.Defaults, i),
                            this.state = {
                                isDestroyed: !1,
                                isCreated: !1,
                                scrollParents: []
                            },
                            this.reference = t && t.jquery ? t[0] : t,
                            this.popper = n && n.jquery ? n[0] : n,
                            this.options.modifiers = {},
                            Object.keys(X({}, e.Defaults.modifiers, i.modifiers)).forEach(function (t) {
                                r.options.modifiers[t] = X({}, e.Defaults.modifiers[t] || {}, i.modifiers ? i.modifiers[t] : {})
                            }),
                            this.modifiers = Object.keys(this.options.modifiers).map(function (e) {
                                    return X({
                                        name: e
                                    }, r.options.modifiers[e])
                                }).sort(function (e, t) {
                                    return e.order - t.order
                                }),
                            this.modifiers.forEach(function (e) {
                                e.enabled && D(e.onLoad) && e.onLoad(r.reference, r.popper, r.options, e, r.state)
                            }),
                            this.update();
                            var o = this.options.eventsEnabled;
                            o && this.enableEventListeners(),
                            this.state.eventsEnabled = o
                        }
                        return U(e, [{
                                    key: "update",
                                    value: function () {
                                        return function () {
                                            if (!this.state.isDestroyed) {
                                                var e = {
                                                    instance: this,
                                                    styles: {},
                                                    arrowStyles: {},
                                                    attributes: {},
                                                    flipped: !1,
                                                    offsets: {}
                                                };
                                                e.offsets.reference = Q(this.state, this.popper, this.reference),
                                                e.placement = K(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding),
                                                e.originalPlacement = e.placement,
                                                e.offsets.popper = te(this.popper, e.offsets.reference, e.placement),
                                                e.offsets.popper.position = "absolute",
                                                e = re(this.modifiers, e),
                                                this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e))
                                            }
                                        }
                                        .call(this)
                                    }
                                }, {
                                    key: "destroy",
                                    value: function () {
                                        return function () {
                                            return this.state.isDestroyed = !0,
                                            ie(this.modifiers, "applyStyle") && (this.popper.removeAttribute("x-placement"), this.popper.style.left = "", this.popper.style.position = "", this.popper.style.top = "", this.popper.style[oe("transform")] = ""),
                                            this.disableEventListeners(),
                                            this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper),
                                            this
                                        }
                                        .call(this)
                                    }
                                }, {
                                    key: "enableEventListeners",
                                    value: function () {
                                        return function () {
                                            this.state.eventsEnabled || (this.state = se(this.reference, this.options, this.state, this.scheduleUpdate))
                                        }
                                        .call(this)
                                    }
                                }, {
                                    key: "disableEventListeners",
                                    value: function () {
                                        return ue.call(this)
                                    }
                                }
                            ]),
                        e
                    }
                    ();
                    function be(e) {
                        return  - (e - i.distance) + "px"
                    }
                    ye.Utils = ("undefined" != typeof window ? window : t).PopperUtils,
                    ye.placements = de,
                    ye.Defaults = ge;
                    var we = function (e, t) {
                        if (!(e instanceof t))
                            throw new TypeError("Cannot call a class as a function")
                    },
                    xe = function () {
                        function e(e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var r = t[n];
                                r.enumerable = r.enumerable || !1,
                                r.configurable = !0,
                                "value" in r && (r.writable = !0),
                                Object.defineProperty(e, r.key, r)
                            }
                        }
                        return function (t, n, r) {
                            return n && e(t.prototype, n),
                            r && e(t, r),
                            t
                        }
                    }
                    (),
                    Te = Object.assign || function (e) {
                        for (var t = 1; t < arguments.length; t++) {
                            var n = arguments[t];
                            for (var r in n)
                                Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r])
                        }
                        return e
                    };
                    function Ee(t) {
                        var n = t.el,
                        r = t.popper,
                        i = t.settings,
                        o = i.appendTo,
                        a = i.followCursor;
                        o.contains(r) || (o.appendChild(r), t.popperInstance ? (t.popperInstance.update(), a && !e.touch || t.popperInstance.enableEventListeners()) : t.popperInstance = function (e) {
                            var t = e.el,
                            n = e.popper,
                            r = e.settings,
                            i = r.position,
                            o = r.popperOptions,
                            a = r.offset,
                            s = r.distance,
                            u = r.flipDuration,
                            l = g(n).tooltip,
                            c = Te({
                                    placement: i
                                }, o || {}, {
                                    modifiers: Te({}, o ? o.modifiers : {}, {
                                        flip: Te({
                                            padding: s + 5
                                        }, o && o.modifiers ? o.modifiers.flip : {}),
                                        offset: Te({
                                            offset: a
                                        }, o && o.modifiers ? o.modifiers.offset : {})
                                    }),
                                    onUpdate: function () {
                                        var e = l.style;
                                        e.top = "",
                                        e.bottom = "",
                                        e.left = "",
                                        e.right = "",
                                        e[T(n.getAttribute("x-placement"))] = be(s)
                                    }
                                });
                            if (window.MutationObserver) {
                                var f = n.style,
                                d = new MutationObserver(function () {
                                        f[h("transitionDuration")] = "0ms",
                                        e.popperInstance.update(),
                                        p(function () {
                                            f[h("transitionDuration")] = u + "ms"
                                        })
                                    });
                                d.observe(n, {
                                    childList: !0,
                                    subtree: !0,
                                    characterData: !0
                                }),
                                e._mutationObservers.push(d)
                            }
                            return new ye(t, n, c)
                        }
                            (t), a && !e.touch && (n.addEventListener("mousemove", E), t.popperInstance.disableEventListeners()))
                    }
                    function Ce(e) {
                        var t = e.popper,
                        n = e.popperInstance,
                        r = e.settings.stickyDuration;
                        p(function e() {
                            n && n.scheduleUpdate(),
                            t.style[h("transitionDuration")] = r + "ms",
                            b(t) ? window.requestAnimationFrame(e) : t.style[h("transitionDuration")] = ""
                        })
                    }
                    function ke(t, n, i) {
                        var o = this,
                        a = (i.position, i.delay),
                        s = (i.duration, i.interactive),
                        u = (i.interactiveBorder, i.distance, i.hideOnClick),
                        l = i.trigger,
                        f = i.touchHold,
                        d = (i.touchWait, void 0),
                        p = void 0,
                        h = function () {
                            clearTimeout(d),
                            clearTimeout(p)
                        },
                        m = function () {
                            if (h(), !b(n)) {
                                var e = Array.isArray(a) ? a[0] : a;
                                a ? d = setTimeout(function () {
                                        return o.show(n)
                                    }, e) : o.show(n)
                            }
                        },
                        v = function () {
                            h();
                            var e = Array.isArray(a) ? a[1] : a;
                            a ? p = setTimeout(function () {
                                    return o.hide(n)
                                }, e) : o.hide(n)
                        };
                        return {
                            handleTrigger: function (r) {
                                var i = "mouseenter" === r.type && e.SUPPORTS_TOUCH && e.touch;
                                if (!i || !f) {
                                    var a = "click" === r.type,
                                    s = "persistent" !== u;
                                    a && b(n) && s ? v() : function (e) {
                                        o.callbacks.wait ? o.callbacks.wait.call(n, m, e) : m()
                                    }
                                    (r),
                                    i && e.iOS() && t.click && t.click()
                                }
                            },
                            handleMouseleave: function (o) {
                                if (!("mouseleave" === o.type && e.SUPPORTS_TOUCH && e.touch && f)) {
                                    if (s)
                                        return document.body.addEventListener("mouseleave", v), void document.addEventListener("mousemove", function e(o) {
                                            var a = function () {
                                                document.body.removeEventListener("mouseleave", v),
                                                document.removeEventListener("mousemove", e),
                                                v()
                                            },
                                            s = c(o.target, r.TOOLTIPPED_EL),
                                            u = c(o.target, r.POPPER) === n,
                                            f = s === t,
                                            d = -1 !== l.indexOf("click");
                                            if (s && s !== t)
                                                return a();
                                            u || f || d || function (e, t, n) {
                                                if (!t.getAttribute("x-placement"))
                                                    return !0;
                                                var r = e.clientX,
                                                i = e.clientY,
                                                o = n.interactiveBorder,
                                                a = n.distance,
                                                s = t.getBoundingClientRect(),
                                                u = T(t.getAttribute("x-placement")),
                                                l = o + a,
                                                c = {
                                                    top: s.top - i > o,
                                                    bottom: i - s.bottom > o,
                                                    left: s.left - r > o,
                                                    right: r - s.right > o
                                                };
                                                switch (u) {
                                                case "top":
                                                    c.top = s.top - i > l;
                                                    break;
                                                case "bottom":
                                                    c.bottom = i - s.bottom > l;
                                                    break;
                                                case "left":
                                                    c.left = s.left - r > l;
                                                    break;
                                                case "right":
                                                    c.right = r - s.right > l
                                                }
                                                return c.top || c.bottom || c.left || c.right
                                            }
                                            (o, n, i) && a()
                                        });
                                    v()
                                }
                            },
                            handleBlur: function (t) {
                                t.relatedTarget && !e.touch && (c(t.relatedTarget, r.POPPER) || v())
                            }
                        }
                    }
                    var Se = 1;
                    function Le(t) {
                        var n = this;
                        return t.reduce(function (t, r) {
                            var i = Se,
                            a = Te({}, function (e) {
                                    return e.arrow && (e.animateFill = !1),
                                    e.appendTo && "function" == typeof e.appendTo && (e.appendTo = e.appendTo()),
                                    e
                                }
                                    (n.settings.performance ? n.settings : function (e, t) {
                                        var n = o.reduce(function (n, r) {
                                                var i = e.getAttribute("data-" + r.toLowerCase()) || t[r];
                                                return "false" === i && (i = !1),
                                                "true" === i && (i = !0),
                                                isFinite(i) && !isNaN(parseFloat(i)) && (i = parseFloat(i)),
                                                "string" == typeof i && "[" === i.trim().charAt(0) && (i = JSON.parse(i)),
                                                n[r] = i,
                                                n
                                            }, {});
                                        return Te({}, t, n)
                                    }
                                        (r, n.settings)));
                            "function" == typeof a.html && (a.html = a.html(r));
                            var s = a.html,
                            u = a.trigger,
                            l = a.touchHold,
                            c = a.dynamicTitle,
                            f = r.getAttribute("title");
                            if (!f && !s)
                                return t;
                            r.setAttribute("data-tooltipped", ""),
                            r.setAttribute("aria-describedby", "tippy-tooltip-" + i),
                            m(r);
                            var d = function (e, t, n) {
                                var r = n.position,
                                i = n.distance,
                                o = n.arrow,
                                a = n.animateFill,
                                s = n.inertia,
                                u = n.animation,
                                l = n.arrowSize,
                                c = n.size,
                                f = n.theme,
                                d = n.html,
                                p = n.zIndex,
                                h = n.interactive,
                                m = document.createElement("div");
                                m.setAttribute("class", "tippy-popper"),
                                m.setAttribute("role", "tooltip"),
                                m.setAttribute("aria-hidden", "true"),
                                m.setAttribute("id", "tippy-tooltip-" + e),
                                m.style.zIndex = p;
                                var v = document.createElement("div");
                                if (v.setAttribute("class", "tippy-tooltip tippy-tooltip--" + c + " leave"), v.setAttribute("data-animation", u), f.split(" ").forEach(function (e) {
                                        v.classList.add(e + "-theme")
                                    }), o) {
                                    var g = document.createElement("div");
                                    g.setAttribute("class", "arrow-" + l),
                                    g.setAttribute("x-arrow", ""),
                                    v.appendChild(g)
                                }
                                if (a) {
                                    v.setAttribute("data-animatefill", "");
                                    var y = document.createElement("div");
                                    y.setAttribute("class", "leave"),
                                    y.setAttribute("x-circle", ""),
                                    v.appendChild(y)
                                }
                                s && v.setAttribute("data-inertia", ""),
                                h && v.setAttribute("data-interactive", "");
                                var b = document.createElement("div");
                                if (b.setAttribute("class", "tippy-tooltip-content"), d) {
                                    var w = void 0;
                                    d instanceof Element ? (b.appendChild(d), w = "#" + d.id || "tippy-html-template") : (b.innerHTML = document.getElementById(d.replace("#", "")).innerHTML, w = d),
                                    m.classList.add("html-template"),
                                    h && m.setAttribute("tabindex", "-1"),
                                    v.setAttribute("data-template-id", w)
                                } else
                                    b.innerHTML = t;
                                return v.style[T(r)] = be(i),
                                v.appendChild(b),
                                m.appendChild(v),
                                m
                            }
                            (i, f, a),
                            p = ke.call(n, r, d, a),
                            h = [];
                            u.trim().split(" ").forEach(function (t) {
                                return h = h.concat(function (t, n, r, i) {
                                        var o = [];
                                        return "manual" === t ? o : (n.addEventListener(t, r.handleTrigger), o.push({
                                                event: t,
                                                handler: r.handleTrigger
                                            }), "mouseenter" === t && (e.SUPPORTS_TOUCH && i && (n.addEventListener("touchstart", r.handleTrigger), o.push({
                                                        event: "touchstart",
                                                        handler: r.handleTrigger
                                                    }), n.addEventListener("touchend", r.handleMouseleave), o.push({
                                                        event: "touchend",
                                                        handler: r.handleMouseleave
                                                    })), n.addEventListener("mouseleave", r.handleMouseleave), o.push({
                                                    event: "mouseleave",
                                                    handler: r.handleMouseleave
                                                })), "focus" === t && (n.addEventListener("blur", r.handleBlur), o.push({
                                                    event: "blur",
                                                    handler: r.handleBlur
                                                })), o)
                                    }
                                        (t, r, p, l))
                            });
                            var v = void 0;
                            if (c && window.MutationObserver) {
                                var y = g(d).content;
                                (v = new MutationObserver(function () {
                                            var e = r.getAttribute("title");
                                            e && (y.innerHTML = e, m(r))
                                        })).observe(r, {
                                    attributes: !0
                                })
                            }
                            return t.push({
                                id: i,
                                el: r,
                                popper: d,
                                settings: a,
                                listeners: h,
                                tippyInstance: n,
                                _mutationObservers: [v]
                            }),
                            Se++,
                            t
                        }, [])
                    }
                    var Ne = function () {
                        function t(r) {
                            var o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                            we(this, t),
                            e.SUPPORTED && (d(), this.state = {
                                    destroyed: !1
                                }, this.selector = r, this.settings = Te({}, i, o), (o.show || o.shown || o.hide || o.hidden) && console.warn("Callbacks without the `on` prefix are deprecated (with the exception of `wait`). Use onShow, onShown, onHide, and onHidden instead."), this.callbacks = {
                                    wait: o.wait,
                                    show: o.onShow || o.show || w,
                                    shown: o.onShown || o.shown || w,
                                    hide: o.onHide || o.hide || w,
                                    hidden: o.onHidden || o.hidden || w
                                }, this.store = Le.call(this, function (e) {
                                        if (e instanceof Element || x(e))
                                            return [e];
                                        if (e instanceof NodeList)
                                            return [].slice.call(e);
                                        if (Array.isArray(e))
                                            return e;
                                        try {
                                            return [].slice.call(document.querySelectorAll(e))
                                        } catch (e) {
                                            return []
                                        }
                                    }
                                        (r)), n.push.apply(n, this.store))
                        }
                        return xe(t, [{
                                    key: "getPopperElement",
                                    value: function (e) {
                                        try {
                                            return f(this.store, function (t) {
                                                return t.el === e
                                            }).popper
                                        } catch (e) {
                                            console.error("[getPopperElement]: Element passed as the argument does not exist in the instance")
                                        }
                                    }
                                }, {
                                    key: "getReferenceElement",
                                    value: function (e) {
                                        try {
                                            return f(this.store, function (t) {
                                                return t.popper === e
                                            }).el
                                        } catch (e) {
                                            console.error("[getReferenceElement]: Popper passed as the argument does not exist in the instance")
                                        }
                                    }
                                }, {
                                    key: "getReferenceData",
                                    value: function (e) {
                                        return f(this.store, function (t) {
                                            return t.el === e || t.popper === e
                                        })
                                    }
                                }, {
                                    key: "show",
                                    value: function (t, n) {
                                        var r = this;
                                        if (!this.state.destroyed) {
                                            var i = f(this.store, function (e) {
                                                    return e.popper === t
                                                }),
                                            o = g(t),
                                            a = o.tooltip,
                                            s = o.circle,
                                            u = o.content;
                                            if (this.selector.refObj || document.body.contains(i.el)) {
                                                this.callbacks.show.call(t);
                                                var l = i.el,
                                                c = i.settings,
                                                d = (c.appendTo, c.sticky),
                                                m = c.interactive,
                                                w = c.followCursor,
                                                x = c.flipDuration,
                                                T = c.duration,
                                                E = void 0 !== n ? n : Array.isArray(T) ? T[0] : T;
                                                y([t, a, s], 0),
                                                Ee(i),
                                                t.style.visibility = "visible",
                                                t.setAttribute("aria-hidden", "false"),
                                                p(function () {
                                                    b(t) && (w && !e.touch || (i.popperInstance.update(), y([t], x)), y([a, s], E), s && (u.style.opacity = 1), m && l.classList.add("active"), d && Ce(i), function (e, t) {
                                                        t ? window.getComputedStyle(t)[h("transform")] : window.getComputedStyle(e).opacity
                                                    }
                                                        (a, s), v([a, s], function (e) {
                                                            e.contains("tippy-notransition") && e.remove("tippy-notransition"),
                                                            e.remove("leave"),
                                                            e.add("enter")
                                                        }), C(i, E, function () {
                                                            b(t) && !i._onShownFired && (m && t.focus(), a.classList.add("tippy-notransition"), i._onShownFired = !0, r.callbacks.shown.call(t))
                                                        }))
                                                })
                                            } else
                                                this.destroy(t)
                                        }
                                    }
                                }, {
                                    key: "hide",
                                    value: function (e, t) {
                                        var n = this;
                                        if (!this.state.destroyed) {
                                            this.callbacks.hide.call(e);
                                            var r = f(this.store, function (t) {
                                                    return t.popper === e
                                                }),
                                            i = g(e),
                                            o = i.tooltip,
                                            a = i.circle,
                                            s = i.content,
                                            u = r.el,
                                            l = r.settings,
                                            c = l.appendTo,
                                            d = (l.sticky, l.interactive),
                                            p = (l.followCursor, l.html),
                                            h = l.trigger,
                                            m = l.duration,
                                            w = void 0 !== t ? t : Array.isArray(m) ? m[1] : m;
                                            r._onShownFired = !1,
                                            d && u.classList.remove("active"),
                                            e.style.visibility = "hidden",
                                            e.setAttribute("aria-hidden", "true"),
                                            y([o, a, a ? s : null], w),
                                            a && (s.style.opacity = 0),
                                            v([o, a], function (e) {
                                                e.contains("tippy-tooltip") && e.remove("tippy-notransition"),
                                                e.remove("enter"),
                                                e.add("leave")
                                            }),
                                            p && -1 !== h.indexOf("click") && function (e) {
                                                var t = e.getBoundingClientRect();
                                                return t.top >= 0 && t.left >= 0 && t.bottom <= (window.innerHeight || document.documentElement.clientHeight) && t.right <= (window.innerWidth || document.documentElement.clientWidth)
                                            }
                                            (u) && u.focus(),
                                            C(r, w, function () {
                                                !b(e) && c.contains(e) && "1" !== getComputedStyle(o).opacity && (u.removeEventListener("mousemove", E), r.popperInstance.disableEventListeners(), c.removeChild(e), n.callbacks.hidden.call(e))
                                            })
                                        }
                                    }
                                }, {
                                    key: "update",
                                    value: function (e) {
                                        if (!this.state.destroyed) {
                                            var t = f(this.store, function (t) {
                                                    return t.popper === e
                                                }),
                                            n = g(e).content,
                                            r = t.el,
                                            i = t.settings.html;
                                            i instanceof Element ? console.warn("Aborted: update() should not be used if `html` is a DOM element") : (n.innerHTML = i ? document.getElementById(i.replace("#", "")).innerHTML : r.getAttribute("title") || r.getAttribute("data-original-title"), i || m(r))
                                        }
                                    }
                                }, {
                                    key: "destroy",
                                    value: function (e, t) {
                                        var r = this;
                                        if (!this.state.destroyed) {
                                            var i,
                                            o,
                                            a = f(this.store, function (t) {
                                                    return t.popper === e
                                                }),
                                            s = a.el,
                                            u = a.popperInstance,
                                            l = a.listeners,
                                            c = a._mutationObservers;
                                            b(e) && this.hide(e, 0),
                                            l.forEach(function (e) {
                                                return s.removeEventListener(e.event, e.handler)
                                            }),
                                            s.setAttribute("title", s.getAttribute("data-original-title")),
                                            s.removeAttribute("data-original-title"),
                                            s.removeAttribute("data-tooltipped"),
                                            s.removeAttribute("aria-describedby"),
                                            u && u.destroy(),
                                            c.forEach(function (e) {
                                                e && e.disconnect()
                                            }),
                                            n.splice((i = n, o = function (t) {
                                                    return t.popper === e
                                                }, Array.prototype.findIndex ? i.findIndex(o) : i.indexOf(f(i, o))), 1),
                                            (void 0 === t || t) && (this.store = n.filter(function (e) {
                                                        return e.tippyInstance === r
                                                    }))
                                        }
                                    }
                                }, {
                                    key: "destroyAll",
                                    value: function () {
                                        var e = this;
                                        if (!this.state.destroyed) {
                                            var t = this.store.length;
                                            this.store.forEach(function (n, r) {
                                                var i = n.popper;
                                                e.destroy(i, r === t - 1)
                                            }),
                                            this.store = null,
                                            this.state.destroyed = !0
                                        }
                                    }
                                }
                            ]),
                        t
                    }
                    ();
                    function Ae(e, t) {
                        return x(e) && (e = {
                                refObj: !0,
                                attributes: e.attributes || {},
                                getBoundingClientRect: e.getBoundingClientRect,
                                clientWidth: e.clientWidth,
                                clientHeight: e.clientHeight,
                                setAttribute: function (t, n) {
                                    e.attributes[t] = n
                                },
                                getAttribute: function (t) {
                                    return e.attributes[t]
                                },
                                removeAttribute: function (t) {
                                    delete e.attributes[t]
                                },
                                addEventListener: function () {},
                                removeEventListener: function () {},
                                classList: {
                                    classNames: {},
                                    add: function (t) {
                                        e.classList.classNames[t] = !0
                                    },
                                    remove: function (t) {
                                        return e.classList.classNames[t] = !1,
                                        !0
                                    },
                                    contains: function (t) {
                                        return !!e.classList.classNames[t]
                                    }
                                }
                            }),
                        new Ne(e, t)
                    }
                    return Ae.Browser = e,
                    Ae.Defaults = i,
                    Ae.disableDynamicInputDetection = function () {
                        return e.dynamicInputDetection = !1
                    },
                    Ae.enableDynamicInputDetection = function () {
                        return e.dynamicInputDetection = !0
                    },
                    Ae
                },
                e.exports = n()
            }).call(t, n(5))
        }, function (e, t) {
            var n;
            n = function () {
                return this
            }
            ();
            try {
                n = n || Function("return this")() || (0, eval)("this")
            } catch (e) {
                "object" == typeof window && (n = window)
            }
            e.exports = n
        }, function (e, t) {}
    ]);

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎