墨刀reactjs


(function(e, t) {
    "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) {
        if (!e.document) throw new Error("jQuery requires a window with a document");
        return t(e)
    }: t(e)
})("undefined" != typeof window ? window: this,
function(e, t) {
    function n(e) {
        var t = e.length,
        n = rt.type(e);
        return "function" === n || rt.isWindow(e) ? !1 : 1 === e.nodeType && t ? !0 : "array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e
    }
    function i(e, t, n) {
        if (rt.isFunction(t)) return rt.grep(e,
        function(e, i) {
            return !! t.call(e, i, e) !== n
        });
        if (t.nodeType) return rt.grep(e,
        function(e) {
            return e === t !== n
        });
        if ("string" == typeof t) {
            if (pt.test(t)) return rt.filter(t, e, n);
            t = rt.filter(t, e)
        }
        return rt.grep(e,
        function(e) {
            return rt.inArray(e, t) >= 0 !== n
        })
    }
    function r(e, t) {
        do e = e[t];
        while (e && 1 !== e.nodeType);
        return e
    }
    function a(e) {
        var t = wt[e] = {};
        return rt.each(e.match(bt) || [],
        function(e, n) {
            t[n] = !0
        }),
        t
    }
    function o() {
        ft.addEventListener ? (ft.removeEventListener("DOMContentLoaded", s, !1), e.removeEventListener("load", s, !1)) : (ft.detachEvent("onreadystatechange", s), e.detachEvent("onload", s))
    }
    function s() { (ft.addEventListener || "load" === event.type || "complete" === ft.readyState) && (o(), rt.ready())
    }
    function c(e, t, n) {
        if (void 0 === n && 1 === e.nodeType) {
            var i = "data-" + t.replace(Rt, "-$1").toLowerCase();
            if (n = e.getAttribute(i), "string" == typeof n) {
                try {
                    n = "true" === n ? !0 : "false" === n ? !1 : "null" === n ? null: +n + "" === n ? +n: xt.test(n) ? rt.parseJSON(n) : n
                } catch(r) {}
                rt.data(e, t, n)
            } else n = void 0
        }
        return n
    }
    function l(e) {
        var t;
        for (t in e) if (("data" !== t || !rt.isEmptyObject(e[t])) && "toJSON" !== t) return ! 1;
        return ! 0
    }
    function u(e, t, n, i) {
        if (rt.acceptData(e)) {
            var r, a, o = rt.expando,
            s = e.nodeType,
            c = s ? rt.cache: e,
            l = s ? e[o] : e[o] && o;
            if (l && c[l] && (i || c[l].data) || void 0 !== n || "string" != typeof t) return l || (l = s ? e[o] = X.pop() || rt.guid++:o),
            c[l] || (c[l] = s ? {}: {
                toJSON: rt.noop
            }),
            ("object" == typeof t || "function" == typeof t) && (i ? c[l] = rt.extend(c[l], t) : c[l].data = rt.extend(c[l].data, t)),
            a = c[l],
            i || (a.data || (a.data = {}), a = a.data),
            void 0 !== n && (a[rt.camelCase(t)] = n),
            "string" == typeof t ? (r = a[t], null == r && (r = a[rt.camelCase(t)])) : r = a,
            r
        }
    }
    function d(e, t, n) {
        if (rt.acceptData(e)) {
            var i, r, a = e.nodeType,
            o = a ? rt.cache: e,
            s = a ? e[rt.expando] : rt.expando;
            if (o[s]) {
                if (t && (i = n ? o[s] : o[s].data)) {
                    rt.isArray(t) ? t = t.concat(rt.map(t, rt.camelCase)) : t in i ? t = [t] : (t = rt.camelCase(t), t = t in i ? [t] : t.split(" ")),
                    r = t.length;
                    for (; r--;) delete i[t[r]];
                    if (n ? !l(i) : !rt.isEmptyObject(i)) return
                } (n || (delete o[s].data, l(o[s]))) && (a ? rt.cleanData([e], !0) : nt.deleteExpando || o != o.window ? delete o[s] : o[s] = null)
            }
        }
    }
    function p() {
        return ! 0
    }
    function h() {
        return ! 1
    }
    function f() {
        try {
            return ft.activeElement
        } catch(e) {}
    }
    function m(e) {
        var t = Dt.split("|"),
        n = e.createDocumentFragment();
        if (n.createElement) for (; t.length;) n.createElement(t.pop());
        return n
    }
    function g(e, t) {
        var n, i, r = 0,
        a = typeof e.getElementsByTagName !== Et ? e.getElementsByTagName(t || "*") : typeof e.querySelectorAll !== Et ? e.querySelectorAll(t || "*") : void 0;
        if (!a) for (a = [], n = e.childNodes || e; null != (i = n[r]); r++) ! t || rt.nodeName(i, t) ? a.push(i) : rt.merge(a, g(i, t));
        return void 0 === t || t && rt.nodeName(e, t) ? rt.merge([e], a) : a
    }
    function v(e) {
        St.test(e.type) && (e.defaultChecked = e.checked)
    }
    function y(e, t) {
        return rt.nodeName(e, "table") && rt.nodeName(11 !== t.nodeType ? t: t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e
    }
    function b(e) {
        return e.type = (null !== rt.find.attr(e, "type")) + "/" + e.type,
        e
    }
    function w(e) {
        var t = Yt.exec(e.type);
        return t ? e.type = t[1] : e.removeAttribute("type"),
        e
    }
    function M(e, t) {
        for (var n, i = 0; null != (n = e[i]); i++) rt._data(n, "globalEval", !t || rt._data(t[i], "globalEval"))
    }
    function _(e, t) {
        if (1 === t.nodeType && rt.hasData(e)) {
            var n, i, r, a = rt._data(e),
            o = rt._data(t, a),
            s = a.events;
            if (s) {
                delete o.handle,
                o.events = {};
                for (n in s) for (i = 0, r = s[n].length; r > i; i++) rt.event.add(t, n, s[n][i])
            }
            o.data && (o.data = rt.extend({},
            o.data))
        }
    }
    function E(e, t) {
        var n, i, r;
        if (1 === t.nodeType) {
            if (n = t.nodeName.toLowerCase(), !nt.noCloneEvent && t[rt.expando]) {
                r = rt._data(t);
                for (i in r.events) rt.removeEvent(t, i, r.handle);
                t.removeAttribute(rt.expando)
            }
            "script" === n && t.text !== e.text ? (b(t).text = e.text, w(t)) : "object" === n ? (t.parentNode && (t.outerHTML = e.outerHTML), nt.html5Clone && e.innerHTML && !rt.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : "input" === n && St.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 x(t, n) {
        var i, r = rt(n.createElement(t)).appendTo(n.body),
        a = e.getDefaultComputedStyle && (i = e.getDefaultComputedStyle(r[0])) ? i.display: rt.css(r[0], "display");
        return r.detach(),
        a
    }
    function R(e) {
        var t = ft,
        n = Zt[e];
        return n || (n = x(e, t), "none" !== n && n || (Jt = (Jt || rt("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement), t = (Jt[0].contentWindow || Jt[0].contentDocument).document, t.write(), t.close(), n = x(e, t), Jt.detach()), Zt[e] = n),
        n
    }
    function C(e, t) {
        return {
            get: function() {
                var n = e();
                if (null != n) return n ? (delete this.get, void 0) : (this.get = t).apply(this, arguments)
            }
        }
    }
    function k(e, t) {
        if (t in e) return t;
        for (var n = t.charAt(0).toUpperCase() + t.slice(1), i = t, r = hn.length; r--;) if (t = hn[r] + n, t in e) return t;
        return i
    }
    function N(e, t) {
        for (var n, i, r, a = [], o = 0, s = e.length; s > o; o++) i = e[o],
        i.style && (a[o] = rt._data(i, "olddisplay"), n = i.style.display, t ? (a[o] || "none" !== n || (i.style.display = ""), "" === i.style.display && Nt(i) && (a[o] = rt._data(i, "olddisplay", R(i.nodeName)))) : (r = Nt(i), (n && "none" !== n || !r) && rt._data(i, "olddisplay", r ? n: rt.css(i, "display"))));
        for (o = 0; s > o; o++) i = e[o],
        i.style && (t && "none" !== i.style.display && "" !== i.style.display || (i.style.display = t ? a[o] || "": "none"));
        return e
    }
    function A(e, t, n) {
        var i = ln.exec(t);
        return i ? Math.max(0, i[1] - (n || 0)) + (i[2] || "px") : t
    }
    function S(e, t, n, i, r) {
        for (var a = n === (i ? "border": "content") ? 4 : "width" === t ? 1 : 0, o = 0; 4 > a; a += 2)"margin" === n && (o += rt.css(e, n + kt[a], !0, r)),
        i ? ("content" === n && (o -= rt.css(e, "padding" + kt[a], !0, r)), "margin" !== n && (o -= rt.css(e, "border" + kt[a] + "Width", !0, r))) : (o += rt.css(e, "padding" + kt[a], !0, r), "padding" !== n && (o += rt.css(e, "border" + kt[a] + "Width", !0, r)));
        return o
    }
    function I(e, t, n) {
        var i = !0,
        r = "width" === t ? e.offsetWidth: e.offsetHeight,
        a = en(e),
        o = nt.boxSizing && "border-box" === rt.css(e, "boxSizing", !1, a);
        if (0 >= r || null == r) {
            if (r = tn(e, t, a), (0 > r || null == r) && (r = e.style[t]), rn.test(r)) return r;
            i = o && (nt.boxSizingReliable() || r === e.style[t]),
            r = parseFloat(r) || 0
        }
        return r + S(e, t, n || (o ? "border": "content"), i, a) + "px"
    }
    function B(e, t, n, i, r) {
        return new B.prototype.init(e, t, n, i, r)
    }
    function T() {
        return setTimeout(function() {
            fn = void 0
        }),
        fn = rt.now()
    }
    function $(e, t) {
        var n, i = {
            height: e
        },
        r = 0;
        for (t = t ? 1 : 0; 4 > r; r += 2 - t) n = kt[r],
        i["margin" + n] = i["padding" + n] = e;
        return t && (i.opacity = i.width = e),
        i
    }
    function P(e, t, n) {
        for (var i, r = (wn[t] || []).concat(wn["*"]), a = 0, o = r.length; o > a; a++) if (i = r[a].call(n, t, e)) return i
    }
    function D(e, t, n) {
        var i, r, a, o, s, c, l, u, d = this,
        p = {},
        h = e.style,
        f = e.nodeType && Nt(e),
        m = rt._data(e, "fxshow");
        n.queue || (s = rt._queueHooks(e, "fx"), null == s.unqueued && (s.unqueued = 0, c = s.empty.fire, s.empty.fire = function() {
            s.unqueued || c()
        }), s.unqueued++, d.always(function() {
            d.always(function() {
                s.unqueued--,
                rt.queue(e, "fx").length || s.empty.fire()
            })
        })),
        1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [h.overflow, h.overflowX, h.overflowY], l = rt.css(e, "display"), u = "none" === l ? rt._data(e, "olddisplay") || R(e.nodeName) : l, "inline" === u && "none" === rt.css(e, "float") && (nt.inlineBlockNeedsLayout && "inline" !== R(e.nodeName) ? h.zoom = 1 : h.display = "inline-block")),
        n.overflow && (h.overflow = "hidden", nt.shrinkWrapBlocks() || d.always(function() {
            h.overflow = n.overflow[0],
            h.overflowX = n.overflow[1],
            h.overflowY = n.overflow[2]
        }));
        for (i in t) if (r = t[i], gn.exec(r)) {
            if (delete t[i], a = a || "toggle" === r, r === (f ? "hide": "show")) {
                if ("show" !== r || !m || void 0 === m[i]) continue;
                f = !0
            }
            p[i] = m && m[i] || rt.style(e, i)
        } else l = void 0;
        if (rt.isEmptyObject(p))"inline" === ("none" === l ? R(e.nodeName) : l) && (h.display = l);
        else {
            m ? "hidden" in m && (f = m.hidden) : m = rt._data(e, "fxshow", {}),
            a && (m.hidden = !f),
            f ? rt(e).show() : d.done(function() {
                rt(e).hide()
            }),
            d.done(function() {
                var t;
                rt._removeData(e, "fxshow");
                for (t in p) rt.style(e, t, p[t])
            });
            for (i in p) o = P(f ? m[i] : 0, i, d),
            i in m || (m[i] = o.start, f && (o.end = o.start, o.start = "width" === i || "height" === i ? 1 : 0))
        }
    }
    function O(e, t) {
        var n, i, r, a, o;
        for (n in e) if (i = rt.camelCase(n), r = t[i], a = e[n], rt.isArray(a) && (r = a[1], a = e[n] = a[0]), n !== i && (e[i] = a, delete e[n]), o = rt.cssHooks[i], o && "expand" in o) {
            a = o.expand(a),
            delete e[i];
            for (n in a) n in e || (e[n] = a[n], t[n] = r)
        } else t[i] = r
    }
    function L(e, t, n) {
        var i, r, a = 0,
        o = bn.length,
        s = rt.Deferred().always(function() {
            delete c.elem
        }),
        c = function() {
            if (r) return ! 1;
            for (var t = fn || T(), n = Math.max(0, l.startTime + l.duration - t), i = n / l.duration || 0, a = 1 - i, o = 0, c = l.tweens.length; c > o; o++) l.tweens[o].run(a);
            return s.notifyWith(e, [l, a, n]),
            1 > a && c ? n: (s.resolveWith(e, [l]), !1)
        },
        l = s.promise({
            elem: e,
            props: rt.extend({},
            t),
            opts: rt.extend(!0, {
                specialEasing: {}
            },
            n),
            originalProperties: t,
            originalOptions: n,
            startTime: fn || T(),
            duration: n.duration,
            tweens: [],
            createTween: function(t, n) {
                var i = rt.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing);
                return l.tweens.push(i),
                i
            },
            stop: function(t) {
                var n = 0,
                i = t ? l.tweens.length: 0;
                if (r) return this;
                for (r = !0; i > n; n++) l.tweens[n].run(1);
                return t ? s.resolveWith(e, [l, t]) : s.rejectWith(e, [l, t]),
                this
            }
        }),
        u = l.props;
        for (O(u, l.opts.specialEasing); o > a; a++) if (i = bn[a].call(l, e, u, l.opts)) return i;
        return rt.map(u, P, l),
        rt.isFunction(l.opts.start) && l.opts.start.call(e, l),
        rt.fx.timer(rt.extend(c, {
            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)
    }
    function z(e) {
        return function(t, n) {
            "string" != typeof t && (n = t, t = "*");
            var i, r = 0,
            a = t.toLowerCase().match(bt) || [];
            if (rt.isFunction(n)) for (; i = a[r++];)"+" === i.charAt(0) ? (i = i.slice(1) || "*", (e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(n)
        }
    }
    function j(e, t, n, i) {
        function r(s) {
            var c;
            return a[s] = !0,
            rt.each(e[s] || [],
            function(e, s) {
                var l = s(t, n, i);
                return "string" != typeof l || o || a[l] ? o ? !(c = l) : void 0 : (t.dataTypes.unshift(l), r(l), !1)
            }),
            c
        }
        var a = {},
        o = e === Hn;
        return r(t.dataTypes[0]) || !a["*"] && r("*")
    }
    function W(e, t) {
        var n, i, r = rt.ajaxSettings.flatOptions || {};
        for (i in t) void 0 !== t[i] && ((r[i] ? e: n || (n = {}))[i] = t[i]);
        return n && rt.extend(!0, e, n),
        e
    }
    function U(e, t, n) {
        for (var i, r, a, o, s = e.contents,
        c = e.dataTypes;
        "*" === c[0];) c.shift(),
        void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
        if (r) for (o in s) if (s[o] && s[o].test(r)) {
            c.unshift(o);
            break
        }
        if (c[0] in n) a = c[0];
        else {
            for (o in n) {
                if (!c[0] || e.converters[o + " " + c[0]]) {
                    a = o;
                    break
                }
                i || (i = o)
            }
            a = a || i
        }
        return a ? (a !== c[0] && c.unshift(a), n[a]) : void 0
    }
    function F(e, t, n, i) {
        var r, a, o, s, c, l = {},
        u = e.dataTypes.slice();
        if (u[1]) for (o in e.converters) l[o.toLowerCase()] = e.converters[o];
        for (a = u.shift(); a;) if (e.responseFields[a] && (n[e.responseFields[a]] = t), !c && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), c = a, a = u.shift()) if ("*" === a) a = c;
        else if ("*" !== c && c !== a) {
            if (o = l[c + " " + a] || l["* " + a], !o) for (r in l) if (s = r.split(" "), s[1] === a && (o = l[c + " " + s[0]] || l["* " + s[0]])) {
                o === !0 ? o = l[r] : l[r] !== !0 && (a = s[0], u.unshift(s[1]));
                break
            }
            if (o !== !0) if (o && e["throws"]) t = o(t);
            else try {
                t = o(t)
            } catch(d) {
                return {
                    state: "parsererror",
                    error: o ? d: "No conversion from " + c + " to " + a
                }
            }
        }
        return {
            state: "success",
            data: t
        }
    }
    function H(e, t, n, i) {
        var r;
        if (rt.isArray(t)) rt.each(t,
        function(t, r) {
            n || Xn.test(e) ? i(e, r) : H(e + "[" + ("object" == typeof r ? t: "") + "]", r, n, i)
        });
        else if (n || "object" !== rt.type(t)) i(e, t);
        else for (r in t) H(e + "[" + r + "]", t[r], n, i)
    }
    function q() {
        try {
            return new e.XMLHttpRequest
        } catch(t) {}
    }
    function V() {
        try {
            return new e.ActiveXObject("Microsoft.XMLHTTP")
        } catch(t) {}
    }
    function Y(e) {
        return rt.isWindow(e) ? e: 9 === e.nodeType ? e.defaultView || e.parentWindow: !1
    }
    var X = [],
    K = X.slice,
    G = X.concat,
    Q = X.push,
    J = X.indexOf,
    Z = {},
    et = Z.toString,
    tt = Z.hasOwnProperty,
    nt = {},
    it = "1.11.1",
    rt = function(e, t) {
        return new rt.fn.init(e, t)
    },
    at = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
    ot = /^-ms-/,
    st = /-([\da-z])/gi,
    ct = function(e, t) {
        return t.toUpperCase()
    };
    rt.fn = rt.prototype = {
        jquery: it,
        constructor: rt,
        selector: "",
        length: 0,
        toArray: function() {
            return K.call(this)
        },
        get: function(e) {
            return null != e ? 0 > e ? this[e + this.length] : this[e] : K.call(this)
        },
        pushStack: function(e) {
            var t = rt.merge(this.constructor(), e);
            return t.prevObject = this,
            t.context = this.context,
            t
        },
        each: function(e, t) {
            return rt.each(this, e, t)
        },
        map: function(e) {
            return this.pushStack(rt.map(this,
            function(t, n) {
                return e.call(t, n, t)
            }))
        },
        slice: function() {
            return this.pushStack(K.apply(this, arguments))
        },
        first: function() {
            return this.eq(0)
        },
        last: function() {
            return this.eq( - 1)
        },
        eq: function(e) {
            var t = this.length,
            n = +e + (0 > e ? t: 0);
            return this.pushStack(n >= 0 && t > n ? [this[n]] : [])
        },
        end: function() {
            return this.prevObject || this.constructor(null)
        },
        push: Q,
        sort: X.sort,
        splice: X.splice
    },
    rt.extend = rt.fn.extend = function() {
        var e, t, n, i, r, a, o = arguments[0] || {},
        s = 1,
        c = arguments.length,
        l = !1;
        for ("boolean" == typeof o && (l = o, o = arguments[s] || {},
        s++), "object" == typeof o || rt.isFunction(o) || (o = {}), s === c && (o = this, s--); c > s; s++) if (null != (r = arguments[s])) for (i in r) e = o[i],
        n = r[i],
        o !== n && (l && n && (rt.isPlainObject(n) || (t = rt.isArray(n))) ? (t ? (t = !1, a = e && rt.isArray(e) ? e: []) : a = e && rt.isPlainObject(e) ? e: {},
        o[i] = rt.extend(l, a, n)) : void 0 !== n && (o[i] = n));
        return o
    },
    rt.extend({
        expando: "jQuery" + (it + Math.random()).replace(/\D/g, ""),
        isReady: !0,
        error: function(e) {
            throw new Error(e)
        },
        noop: function() {},
        isFunction: function(e) {
            return "function" === rt.type(e)
        },
        isArray: Array.isArray ||
        function(e) {
            return "array" === rt.type(e)
        },
        isWindow: function(e) {
            return null != e && e == e.window
        },
        isNumeric: function(e) {
            return ! rt.isArray(e) && e - parseFloat(e) >= 0
        },
        isEmptyObject: function(e) {
            var t;
            for (t in e) return ! 1;
            return ! 0
        },
        isPlainObject: function(e) {
            var t;
            if (!e || "object" !== rt.type(e) || e.nodeType || rt.isWindow(e)) return ! 1;
            try {
                if (e.constructor && !tt.call(e, "constructor") && !tt.call(e.constructor.prototype, "isPrototypeOf")) return ! 1
            } catch(n) {
                return ! 1
            }
            if (nt.ownLast) for (t in e) return tt.call(e, t);
            for (t in e);
            return void 0 === t || tt.call(e, t)
        },
        type: function(e) {
            return null == e ? e + "": "object" == typeof e || "function" == typeof e ? Z[et.call(e)] || "object": typeof e
        },
        globalEval: function(t) {
            t && rt.trim(t) && (e.execScript ||
            function(t) {
                e.eval.call(e, t)
            })(t)
        },
        camelCase: function(e) {
            return e.replace(ot, "ms-").replace(st, ct)
        },
        nodeName: function(e, t) {
            return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
        },
        each: function(e, t, i) {
            var r, a = 0,
            o = e.length,
            s = n(e);
            if (i) {
                if (s) for (; o > a && (r = t.apply(e[a], i), r !== !1); a++);
                else for (a in e) if (r = t.apply(e[a], i), r === !1) break
            } else if (s) for (; o > a && (r = t.call(e[a], a, e[a]), r !== !1); a++);
            else for (a in e) if (r = t.call(e[a], a, e[a]), r === !1) break;
            return e
        },
        trim: function(e) {
            return null == e ? "": (e + "").replace(at, "")
        },
        makeArray: function(e, t) {
            var i = t || [];
            return null != e && (n(Object(e)) ? rt.merge(i, "string" == typeof e ? [e] : e) : Q.call(i, e)),
            i
        },
        inArray: function(e, t, n) {
            var i;
            if (t) {
                if (J) return J.call(t, e, n);
                for (i = t.length, n = n ? 0 > n ? Math.max(0, i + n) : n: 0; i > n; n++) if (n in t && t[n] === e) return n
            }
            return - 1
        },
        merge: function(e, t) {
            for (var n = +t.length,
            i = 0,
            r = e.length; n > i;) e[r++] = t[i++];
            if (n !== n) for (; void 0 !== t[i];) e[r++] = t[i++];
            return e.length = r,
            e
        },
        grep: function(e, t, n) {
            for (var i, r = [], a = 0, o = e.length, s = !n; o > a; a++) i = !t(e[a], a),
            i !== s && r.push(e[a]);
            return r
        },
        map: function(e, t, i) {
            var r, a = 0,
            o = e.length,
            s = n(e),
            c = [];
            if (s) for (; o > a; a++) r = t(e[a], a, i),
            null != r && c.push(r);
            else for (a in e) r = t(e[a], a, i),
            null != r && c.push(r);
            return G.apply([], c)
        },
        guid: 1,
        proxy: function(e, t) {
            var n, i, r;
            return "string" == typeof t && (r = e[t], t = e, e = r),
            rt.isFunction(e) ? (n = K.call(arguments, 2), i = function() {
                return e.apply(t || this, n.concat(K.call(arguments)))
            },
            i.guid = e.guid = e.guid || rt.guid++, i) : void 0
        },
        now: function() {
            return + new Date
        },
        support: nt
    }),
    rt.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),
    function(e, t) {
        Z["[object " + t + "]"] = t.toLowerCase()
    });
    var lt = function(e) {
        function t(e, t, n, i) {
            var r, a, o, s, c, l, d, h, f, m;
            if ((t ? t.ownerDocument || t: j) !== B && I(t), t = t || B, n = n || [], !e || "string" != typeof e) return n;
            if (1 !== (s = t.nodeType) && 9 !== s) return [];
            if ($ && !i) {
                if (r = yt.exec(e)) if (o = r[1]) {
                    if (9 === s) {
                        if (a = t.getElementById(o), !a || !a.parentNode) return n;
                        if (a.id === o) return n.push(a),
                        n
                    } else if (t.ownerDocument && (a = t.ownerDocument.getElementById(o)) && L(t, a) && a.id === o) return n.push(a),
                    n
                } else {
                    if (r[2]) return Z.apply(n, t.getElementsByTagName(e)),
                    n;
                    if ((o = r[3]) && M.getElementsByClassName && t.getElementsByClassName) return Z.apply(n, t.getElementsByClassName(o)),
                    n
                }
                if (M.qsa && (!P || !P.test(e))) {
                    if (h = d = z, f = t, m = 9 === s && e, 1 === s && "object" !== t.nodeName.toLowerCase()) {
                        for (l = R(e), (d = t.getAttribute("id")) ? h = d.replace(wt, "\\$&") : t.setAttribute("id", h), h = "[id='" + h + "'] ", c = l.length; c--;) l[c] = h + p(l[c]);
                        f = bt.test(e) && u(t.parentNode) || t,
                        m = l.join(",")
                    }
                    if (m) try {
                        return Z.apply(n, f.querySelectorAll(m)),
                        n
                    } catch(g) {} finally {
                        d || t.removeAttribute("id")
                    }
                }
            }
            return k(e.replace(ct, "$1"), t, n, i)
        }
        function n() {
            function e(n, i) {
                return t.push(n + " ") > _.cacheLength && delete e[t.shift()],
                e[n + " "] = i
            }
            var t = [];
            return e
        }
        function i(e) {
            return e[z] = !0,
            e
        }
        function r(e) {
            var t = B.createElement("div");
            try {
                return !! e(t)
            } catch(n) {
                return ! 1
            } finally {
                t.parentNode && t.parentNode.removeChild(t),
                t = null
            }
        }
        function a(e, t) {
            for (var n = e.split("|"), i = e.length; i--;) _.attrHandle[n[i]] = t
        }
        function o(e, t) {
            var n = t && e,
            i = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || X) - (~e.sourceIndex || X);
            if (i) return i;
            if (n) for (; n = n.nextSibling;) if (n === t) return - 1;
            return e ? 1 : -1
        }
        function s(e) {
            return function(t) {
                var n = t.nodeName.toLowerCase();
                return "input" === n && t.type === e
            }
        }
        function c(e) {
            return function(t) {
                var n = t.nodeName.toLowerCase();
                return ("input" === n || "button" === n) && t.type === e
            }
        }
        function l(e) {
            return i(function(t) {
                return t = +t,
                i(function(n, i) {
                    for (var r, a = e([], n.length, t), o = a.length; o--;) n[r = a[o]] && (n[r] = !(i[r] = n[r]))
                })
            })
        }
        function u(e) {
            return e && typeof e.getElementsByTagName !== Y && e
        }
        function d() {}
        function p(e) {
            for (var t = 0,
            n = e.length,
            i = ""; n > t; t++) i += e[t].value;
            return i
        }
        function h(e, t, n) {
            var i = t.dir,
            r = n && "parentNode" === i,
            a = U++;
            return t.first ?
            function(t, n, a) {
                for (; t = t[i];) if (1 === t.nodeType || r) return e(t, n, a)
            }: function(t, n, o) {
                var s, c, l = [W, a];
                if (o) {
                    for (; t = t[i];) if ((1 === t.nodeType || r) && e(t, n, o)) return ! 0
                } else for (; t = t[i];) if (1 === t.nodeType || r) {
                    if (c = t[z] || (t[z] = {}), (s = c[i]) && s[0] === W && s[1] === a) return l[2] = s[2];
                    if (c[i] = l, l[2] = e(t, n, o)) return ! 0
                }
            }
        }
        function f(e) {
            return e.length > 1 ?
            function(t, n, i) {
                for (var r = e.length; r--;) if (!e[r](t, n, i)) return ! 1;
                return ! 0
            }: e[0]
        }
        function m(e, n, i) {
            for (var r = 0,
            a = n.length; a > r; r++) t(e, n[r], i);
            return i
        }
        function g(e, t, n, i, r) {
            for (var a, o = [], s = 0, c = e.length, l = null != t; c > s; s++)(a = e[s]) && (!n || n(a, i, r)) && (o.push(a), l && t.push(s));
            return o
        }
        function v(e, t, n, r, a, o) {
            return r && !r[z] && (r = v(r)),
            a && !a[z] && (a = v(a, o)),
            i(function(i, o, s, c) {
                var l, u, d, p = [],
                h = [],
                f = o.length,
                v = i || m(t || "*", s.nodeType ? [s] : s, []),
                y = !e || !i && t ? v: g(v, p, e, s, c),
                b = n ? a || (i ? e: f || r) ? [] : o: y;
                if (n && n(y, b, s, c), r) for (l = g(b, h), r(l, [], s, c), u = l.length; u--;)(d = l[u]) && (b[h[u]] = !(y[h[u]] = d));
                if (i) {
                    if (a || e) {
                        if (a) {
                            for (l = [], u = b.length; u--;)(d = b[u]) && l.push(y[u] = d);
                            a(null, b = [], l, c)
                        }
                        for (u = b.length; u--;)(d = b[u]) && (l = a ? tt.call(i, d) : p[u]) > -1 && (i[l] = !(o[l] = d))
                    }
                } else b = g(b === o ? b.splice(f, b.length) : b),
                a ? a(null, o, b, c) : Z.apply(o, b)
            })
        }
        function y(e) {
            for (var t, n, i, r = e.length,
            a = _.relative[e[0].type], o = a || _.relative[" "], s = a ? 1 : 0, c = h(function(e) {
                return e === t
            },
            o, !0), l = h(function(e) {
                return tt.call(t, e) > -1
            },
            o, !0), u = [function(e, n, i) {
                return ! a && (i || n !== N) || ((t = n).nodeType ? c(e, n, i) : l(e, n, i))
            }]; r > s; s++) if (n = _.relative[e[s].type]) u = [h(f(u), n)];
            else {
                if (n = _.filter[e[s].type].apply(null, e[s].matches), n[z]) {
                    for (i = ++s; r > i && !_.relative[e[i].type]; i++);
                    return v(s > 1 && f(u), s > 1 && p(e.slice(0, s - 1).concat({
                        value: " " === e[s - 2].type ? "*": ""
                    })).replace(ct, "$1"), n, i > s && y(e.slice(s, i)), r > i && y(e = e.slice(i)), r > i && p(e))
                }
                u.push(n)
            }
            return f(u)
        }
        function b(e, n) {
            var r = n.length > 0,
            a = e.length > 0,
            o = function(i, o, s, c, l) {
                var u, d, p, h = 0,
                f = "0",
                m = i && [],
                v = [],
                y = N,
                b = i || a && _.find.TAG("*", l),
                w = W += null == y ? 1 : Math.random() || .1,
                M = b.length;
                for (l && (N = o !== B && o); f !== M && null != (u = b[f]); f++) {
                    if (a && u) {
                        for (d = 0; p = e[d++];) if (p(u, o, s)) {
                            c.push(u);
                            break
                        }
                        l && (W = w)
                    }
                    r && ((u = !p && u) && h--, i && m.push(u))
                }
                if (h += f, r && f !== h) {
                    for (d = 0; p = n[d++];) p(m, v, o, s);
                    if (i) {
                        if (h > 0) for (; f--;) m[f] || v[f] || (v[f] = Q.call(c));
                        v = g(v)
                    }
                    Z.apply(c, v),
                    l && !i && v.length > 0 && h + n.length > 1 && t.uniqueSort(c)
                }
                return l && (W = w, N = y),
                m
            };
            return r ? i(o) : o
        }
        var w, M, _, E, x, R, C, k, N, A, S, I, B, T, $, P, D, O, L, z = "sizzle" + -new Date,
        j = e.document,
        W = 0,
        U = 0,
        F = n(),
        H = n(),
        q = n(),
        V = function(e, t) {
            return e === t && (S = !0),
            0
        },
        Y = "undefined",
        X = 1 << 31,
        K = {}.hasOwnProperty,
        G = [],
        Q = G.pop,
        J = G.push,
        Z = G.push,
        et = G.slice,
        tt = G.indexOf ||
        function(e) {
            for (var t = 0,
            n = this.length; n > t; t++) if (this[t] === e) return t;
            return - 1
        },
        nt = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
        it = "[\\x20\\t\\r\\n\\f]",
        rt = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
        at = rt.replace("w", "w#"),
        ot = "\\[" + it + "*(" + rt + ")(?:" + it + "*([*^$|!~]?=)" + it + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + at + "))|)" + it + "*\\]",
        st = ":(" + rt + ")(?:\\((" + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + "((?:\\\\.|[^\\\\()[\\]]|" + ot + ")*)|" + ".*" + ")\\)|)",
        ct = new RegExp("^" + it + "+|((?:^|[^\\\\])(?:\\\\.)*)" + it + "+$", "g"),
        lt = new RegExp("^" + it + "*," + it + "*"),
        ut = new RegExp("^" + it + "*([>+~]|" + it + ")" + it + "*"),
        dt = new RegExp("=" + it + "*([^\\]'\"]*?)" + it + "*\\]", "g"),
        pt = new RegExp(st),
        ht = new RegExp("^" + at + "$"),
        ft = {
            ID: new RegExp("^#(" + rt + ")"),
            CLASS: new RegExp("^\\.(" + rt + ")"),
            TAG: new RegExp("^(" + rt.replace("w", "w*") + ")"),
            ATTR: new RegExp("^" + ot),
            PSEUDO: new RegExp("^" + st),
            CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + it + "*(even|odd|(([+-]|)(\\d*)n|)" + it + "*(?:([+-]|)" + it + "*(\\d+)|))" + it + "*\\)|)", "i"),
            bool: new RegExp("^(?:" + nt + ")$", "i"),
            needsContext: new RegExp("^" + it + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + it + "*((?:-\\d)?\\d*)" + it + "*\\)|)(?=[^-]|$)", "i")
        },
        mt = /^(?:input|select|textarea|button)$/i,
        gt = /^h\d$/i,
        vt = /^[^{]+\{\s*\[native \w/,
        yt = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
        bt = /[+~]/,
        wt = /'|\\/g,
        Mt = new RegExp("\\\\([\\da-f]{1,6}" + it + "?|(" + it + ")|.)", "ig"),
        _t = function(e, t, n) {
            var i = "0x" + t - 65536;
            return i !== i || n ? t: 0 > i ? String.fromCharCode(i + 65536) : String.fromCharCode(55296 | i >> 10, 56320 | 1023 & i)
        };
        try {
            Z.apply(G = et.call(j.childNodes), j.childNodes),
            G[j.childNodes.length].nodeType
        } catch(Et) {
            Z = {
                apply: G.length ?
                function(e, t) {
                    J.apply(e, et.call(t))
                }: function(e, t) {
                    for (var n = e.length,
                    i = 0; e[n++] = t[i++];);
                    e.length = n - 1
                }
            }
        }
        M = t.support = {},
        x = t.isXML = function(e) {
            var t = e && (e.ownerDocument || e).documentElement;
            return t ? "HTML" !== t.nodeName: !1
        },
        I = t.setDocument = function(e) {
            var t, n = e ? e.ownerDocument || e: j,
            i = n.defaultView;
            return n !== B && 9 === n.nodeType && n.documentElement ? (B = n, T = n.documentElement, $ = !x(n), i && i !== i.top && (i.addEventListener ? i.addEventListener("unload",
            function() {
                I()
            },
            !1) : i.attachEvent && i.attachEvent("onunload",
            function() {
                I()
            })), M.attributes = r(function(e) {
                return e.className = "i",
                !e.getAttribute("className")
            }), M.getElementsByTagName = r(function(e) {
                return e.appendChild(n.createComment("")),
                !e.getElementsByTagName("*").length
            }), M.getElementsByClassName = vt.test(n.getElementsByClassName) && r(function(e) {
                return e.innerHTML = "<div class='a'></div><div class='a i'></div>",
                e.firstChild.className = "i",
                2 === e.getElementsByClassName("i").length
            }), M.getById = r(function(e) {
                return T.appendChild(e).id = z,
                !n.getElementsByName || !n.getElementsByName(z).length
            }), M.getById ? (_.find.ID = function(e, t) {
                if (typeof t.getElementById !== Y && $) {
                    var n = t.getElementById(e);
                    return n && n.parentNode ? [n] : []
                }
            },
            _.filter.ID = function(e) {
                var t = e.replace(Mt, _t);
                return function(e) {
                    return e.getAttribute("id") === t
                }
            }) : (delete _.find.ID, _.filter.ID = function(e) {
                var t = e.replace(Mt, _t);
                return function(e) {
                    var n = typeof e.getAttributeNode !== Y && e.getAttributeNode("id");
                    return n && n.value === t
                }
            }), _.find.TAG = M.getElementsByTagName ?
            function(e, t) {
                return typeof t.getElementsByTagName !== Y ? t.getElementsByTagName(e) : void 0
            }: function(e, t) {
                var n, i = [],
                r = 0,
                a = t.getElementsByTagName(e);
                if ("*" === e) {
                    for (; n = a[r++];) 1 === n.nodeType && i.push(n);
                    return i
                }
                return a
            },
            _.find.CLASS = M.getElementsByClassName &&
            function(e, t) {
                return typeof t.getElementsByClassName !== Y && $ ? t.getElementsByClassName(e) : void 0
            },
            D = [], P = [], (M.qsa = vt.test(n.querySelectorAll)) && (r(function(e) {
                e.innerHTML = "<select msallowclip=''><option selected=''></option></select>",
                e.querySelectorAll("[msallowclip^='']").length && P.push("[*^$]=" + it + "*(?:''|\"\")"),
                e.querySelectorAll("[selected]").length || P.push("\\[" + it + "*(?:value|" + nt + ")"),
                e.querySelectorAll(":checked").length || P.push(":checked")
            }), r(function(e) {
                var t = n.createElement("input");
                t.setAttribute("type", "hidden"),
                e.appendChild(t).setAttribute("name", "D"),
                e.querySelectorAll("[name=d]").length && P.push("name" + it + "*[*^$|!~]?="),
                e.querySelectorAll(":enabled").length || P.push(":enabled", ":disabled"),
                e.querySelectorAll("*,:x"),
                P.push(",.*:")
            })), (M.matchesSelector = vt.test(O = T.matches || T.webkitMatchesSelector || T.mozMatchesSelector || T.oMatchesSelector || T.msMatchesSelector)) && r(function(e) {
                M.disconnectedMatch = O.call(e, "div"),
                O.call(e, "[s!='']:x"),
                D.push("!=", st)
            }), P = P.length && new RegExp(P.join("|")), D = D.length && new RegExp(D.join("|")), t = vt.test(T.compareDocumentPosition), L = t || vt.test(T.contains) ?
            function(e, t) {
                var n = 9 === e.nodeType ? e.documentElement: e,
                i = t && t.parentNode;
                return e === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(i)))
            }: function(e, t) {
                if (t) for (; t = t.parentNode;) if (t === e) return ! 0;
                return ! 1
            },
            V = t ?
            function(e, t) {
                if (e === t) return S = !0,
                0;
                var i = !e.compareDocumentPosition - !t.compareDocumentPosition;
                return i ? i: (i = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1, 1 & i || !M.sortDetached && t.compareDocumentPosition(e) === i ? e === n || e.ownerDocument === j && L(j, e) ? -1 : t === n || t.ownerDocument === j && L(j, t) ? 1 : A ? tt.call(A, e) - tt.call(A, t) : 0 : 4 & i ? -1 : 1)
            }: function(e, t) {
                if (e === t) return S = !0,
                0;
                var i, r = 0,
                a = e.parentNode,
                s = t.parentNode,
                c = [e],
                l = [t];
                if (!a || !s) return e === n ? -1 : t === n ? 1 : a ? -1 : s ? 1 : A ? tt.call(A, e) - tt.call(A, t) : 0;
                if (a === s) return o(e, t);
                for (i = e; i = i.parentNode;) c.unshift(i);
                for (i = t; i = i.parentNode;) l.unshift(i);
                for (; c[r] === l[r];) r++;
                return r ? o(c[r], l[r]) : c[r] === j ? -1 : l[r] === j ? 1 : 0
            },
            n) : B
        },
        t.matches = function(e, n) {
            return t(e, null, null, n)
        },
        t.matchesSelector = function(e, n) {
            if ((e.ownerDocument || e) !== B && I(e), n = n.replace(dt, "='$1']"), !(!M.matchesSelector || !$ || D && D.test(n) || P && P.test(n))) try {
                var i = O.call(e, n);
                if (i || M.disconnectedMatch || e.document && 11 !== e.document.nodeType) return i
            } catch(r) {}
            return t(n, B, null, [e]).length > 0
        },
        t.contains = function(e, t) {
            return (e.ownerDocument || e) !== B && I(e),
            L(e, t)
        },
        t.attr = function(e, t) { (e.ownerDocument || e) !== B && I(e);
            var n = _.attrHandle[t.toLowerCase()],
            i = n && K.call(_.attrHandle, t.toLowerCase()) ? n(e, t, !$) : void 0;
            return void 0 !== i ? i: M.attributes || !$ ? e.getAttribute(t) : (i = e.getAttributeNode(t)) && i.specified ? i.value: null
        },
        t.error = function(e) {
            throw new Error("Syntax error, unrecognized expression: " + e)
        },
        t.uniqueSort = function(e) {
            var t, n = [],
            i = 0,
            r = 0;
            if (S = !M.detectDuplicates, A = !M.sortStable && e.slice(0), e.sort(V), S) {
                for (; t = e[r++];) t === e[r] && (i = n.push(r));
                for (; i--;) e.splice(n[i], 1)
            }
            return A = null,
            e
        },
        E = t.getText = function(e) {
            var t, n = "",
            i = 0,
            r = e.nodeType;
            if (r) {
                if (1 === r || 9 === r || 11 === r) {
                    if ("string" == typeof e.textContent) return e.textContent;
                    for (e = e.firstChild; e; e = e.nextSibling) n += E(e)
                } else if (3 === r || 4 === r) return e.nodeValue
            } else for (; t = e[i++];) n += E(t);
            return n
        },
        _ = t.selectors = {
            cacheLength: 50,
            createPseudo: i,
            match: ft,
            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(Mt, _t),
                    e[3] = (e[3] || e[4] || e[5] || "").replace(Mt, _t),
                    "~=" === 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] || t.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] && t.error(e[0]),
                    e
                },
                PSEUDO: function(e) {
                    var t, n = !e[6] && e[2];
                    return ft.CHILD.test(e[0]) ? null: (e[3] ? e[2] = e[4] || e[5] || "": n && pt.test(n) && (t = R(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(Mt, _t).toLowerCase();
                    return "*" === e ?
                    function() {
                        return ! 0
                    }: function(e) {
                        return e.nodeName && e.nodeName.toLowerCase() === t
                    }
                },
                CLASS: function(e) {
                    var t = F[e + " "];
                    return t || (t = new RegExp("(^|" + it + ")" + e + "(" + it + "|$)")) && F(e,
                    function(e) {
                        return t.test("string" == typeof e.className && e.className || typeof e.getAttribute !== Y && e.getAttribute("class") || "")
                    })
                },
                ATTR: function(e, n, i) {
                    return function(r) {
                        var a = t.attr(r, e);
                        return null == a ? "!=" === n: n ? (a += "", "=" === n ? a === i: "!=" === n ? a !== i: "^=" === n ? i && 0 === a.indexOf(i) : "*=" === n ? i && a.indexOf(i) > -1 : "$=" === n ? i && a.slice( - i.length) === i: "~=" === n ? (" " + a + " ").indexOf(i) > -1 : "|=" === n ? a === i || a.slice(0, i.length + 1) === i + "-": !1) : !0
                    }
                },
                CHILD: function(e, t, n, i, r) {
                    var a = "nth" !== e.slice(0, 3),
                    o = "last" !== e.slice( - 4),
                    s = "of-type" === t;
                    return 1 === i && 0 === r ?
                    function(e) {
                        return !! e.parentNode
                    }: function(t, n, c) {
                        var l, u, d, p, h, f, m = a !== o ? "nextSibling": "previousSibling",
                        g = t.parentNode,
                        v = s && t.nodeName.toLowerCase(),
                        y = !c && !s;
                        if (g) {
                            if (a) {
                                for (; m;) {
                                    for (d = t; d = d[m];) if (s ? d.nodeName.toLowerCase() === v: 1 === d.nodeType) return ! 1;
                                    f = m = "only" === e && !f && "nextSibling"
                                }
                                return ! 0
                            }
                            if (f = [o ? g.firstChild: g.lastChild], o && y) {
                                for (u = g[z] || (g[z] = {}), l = u[e] || [], h = l[0] === W && l[1], p = l[0] === W && l[2], d = h && g.childNodes[h]; d = ++h && d && d[m] || (p = h = 0) || f.pop();) if (1 === d.nodeType && ++p && d === t) {
                                    u[e] = [W, h, p];
                                    break
                                }
                            } else if (y && (l = (t[z] || (t[z] = {}))[e]) && l[0] === W) p = l[1];
                            else for (; (d = ++h && d && d[m] || (p = h = 0) || f.pop()) && ((s ? d.nodeName.toLowerCase() !== v: 1 !== d.nodeType) || !++p || (y && ((d[z] || (d[z] = {}))[e] = [W, p]), d !== t)););
                            return p -= r,
                            p === i || 0 === p % i && p / i >= 0
                        }
                    }
                },
                PSEUDO: function(e, n) {
                    var r, a = _.pseudos[e] || _.setFilters[e.toLowerCase()] || t.error("unsupported pseudo: " + e);
                    return a[z] ? a(n) : a.length > 1 ? (r = [e, e, "", n], _.setFilters.hasOwnProperty(e.toLowerCase()) ? i(function(e, t) {
                        for (var i, r = a(e, n), o = r.length; o--;) i = tt.call(e, r[o]),
                        e[i] = !(t[i] = r[o])
                    }) : function(e) {
                        return a(e, 0, r)
                    }) : a
                }
            },
            pseudos: {
                not: i(function(e) {
                    var t = [],
                    n = [],
                    r = C(e.replace(ct, "$1"));
                    return r[z] ? i(function(e, t, n, i) {
                        for (var a, o = r(e, null, i, []), s = e.length; s--;)(a = o[s]) && (e[s] = !(t[s] = a))
                    }) : function(e, i, a) {
                        return t[0] = e,
                        r(t, null, a, n),
                        !n.pop()
                    }
                }),
                has: i(function(e) {
                    return function(n) {
                        return t(e, n).length > 0
                    }
                }),
                contains: i(function(e) {
                    return function(t) {
                        return (t.textContent || t.innerText || E(t)).indexOf(e) > -1
                    }
                }),
                lang: i(function(e) {
                    return ht.test(e || "") || t.error("unsupported lang: " + e),
                    e = e.replace(Mt, _t).toLowerCase(),
                    function(t) {
                        var n;
                        do
                        if (n = $ ? t.lang: t.getAttribute("xml:lang") || t.getAttribute("lang")) return n = n.toLowerCase(),
                        n === 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 === T
                },
                focus: function(e) {
                    return e === B.activeElement && (!B.hasFocus || B.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
                },
                enabled: function(e) {
                    return e.disabled === !1
                },
                disabled: function(e) {
                    return e.disabled === !0
                },
                checked: function(e) {
                    var t = e.nodeName.toLowerCase();
                    return "input" === t && !!e.checked || "option" === t && !!e.selected
                },
                selected: function(e) {
                    return e.parentNode && e.parentNode.selectedIndex,
                    e.selected === !0
                },
                empty: function(e) {
                    for (e = e.firstChild; e; e = e.nextSibling) if (6 > e.nodeType) return ! 1;
                    return ! 0
                },
                parent: function(e) {
                    return ! _.pseudos.empty(e)
                },
                header: function(e) {
                    return gt.test(e.nodeName)
                },
                input: function(e) {
                    return mt.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: l(function() {
                    return [0]
                }),
                last: l(function(e, t) {
                    return [t - 1]
                }),
                eq: l(function(e, t, n) {
                    return [0 > n ? n + t: n]
                }),
                even: l(function(e, t) {
                    for (var n = 0; t > n; n += 2) e.push(n);
                    return e
                }),
                odd: l(function(e, t) {
                    for (var n = 1; t > n; n += 2) e.push(n);
                    return e
                }),
                lt: l(function(e, t, n) {
                    for (var i = 0 > n ? n + t: n; --i >= 0;) e.push(i);
                    return e
                }),
                gt: l(function(e, t, n) {
                    for (var i = 0 > n ? n + t: n; t > ++i;) e.push(i);
                    return e
                })
            }
        },
        _.pseudos.nth = _.pseudos.eq;
        for (w in {
            radio: !0,
            checkbox: !0,
            file: !0,
            password: !0,
            image: !0
        }) _.pseudos[w] = s(w);
        for (w in {
            submit: !0,
            reset: !0
        }) _.pseudos[w] = c(w);
        return d.prototype = _.filters = _.pseudos,
        _.setFilters = new d,
        R = t.tokenize = function(e, n) {
            var i, r, a, o, s, c, l, u = H[e + " "];
            if (u) return n ? 0 : u.slice(0);
            for (s = e, c = [], l = _.preFilter; s;) { (!i || (r = lt.exec(s))) && (r && (s = s.slice(r[0].length) || s), c.push(a = [])),
                i = !1,
                (r = ut.exec(s)) && (i = r.shift(), a.push({
                    value: i,
                    type: r[0].replace(ct, " ")
                }), s = s.slice(i.length));
                for (o in _.filter) ! (r = ft[o].exec(s)) || l[o] && !(r = l[o](r)) || (i = r.shift(), a.push({
                    value: i,
                    type: o,
                    matches: r
                }), s = s.slice(i.length));
                if (!i) break
            }
            return n ? s.length: s ? t.error(e) : H(e, c).slice(0)
        },
        C = t.compile = function(e, t) {
            var n, i = [],
            r = [],
            a = q[e + " "];
            if (!a) {
                for (t || (t = R(e)), n = t.length; n--;) a = y(t[n]),
                a[z] ? i.push(a) : r.push(a);
                a = q(e, b(r, i)),
                a.selector = e
            }
            return a
        },
        k = t.select = function(e, t, n, i) {
            var r, a, o, s, c, l = "function" == typeof e && e,
            d = !i && R(e = l.selector || e);
            if (n = n || [], 1 === d.length) {
                if (a = d[0] = d[0].slice(0), a.length > 2 && "ID" === (o = a[0]).type && M.getById && 9 === t.nodeType && $ && _.relative[a[1].type]) {
                    if (t = (_.find.ID(o.matches[0].replace(Mt, _t), t) || [])[0], !t) return n;
                    l && (t = t.parentNode),
                    e = e.slice(a.shift().value.length)
                }
                for (r = ft.needsContext.test(e) ? 0 : a.length; r--&&(o = a[r], !_.relative[s = o.type]);) if ((c = _.find[s]) && (i = c(o.matches[0].replace(Mt, _t), bt.test(a[0].type) && u(t.parentNode) || t))) {
                    if (a.splice(r, 1), e = i.length && p(a), !e) return Z.apply(n, i),
                    n;
                    break
                }
            }
            return (l || C(e, d))(i, t, !$, n, bt.test(e) && u(t.parentNode) || t),
            n
        },
        M.sortStable = z.split("").sort(V).join("") === z,
        M.detectDuplicates = !!S,
        I(),
        M.sortDetached = r(function(e) {
            return 1 & e.compareDocumentPosition(B.createElement("div"))
        }),
        r(function(e) {
            return e.innerHTML = "<a href='#'></a>",
            "#" === e.firstChild.getAttribute("href")
        }) || a("type|href|height|width",
        function(e, t, n) {
            return n ? void 0 : e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
        }),
        M.attributes && r(function(e) {
            return e.innerHTML = "<input/>",
            e.firstChild.setAttribute("value", ""),
            "" === e.firstChild.getAttribute("value")
        }) || a("value",
        function(e, t, n) {
            return n || "input" !== e.nodeName.toLowerCase() ? void 0 : e.defaultValue
        }),
        r(function(e) {
            return null == e.getAttribute("disabled")
        }) || a(nt,
        function(e, t, n) {
            var i;
            return n ? void 0 : e[t] === !0 ? t.toLowerCase() : (i = e.getAttributeNode(t)) && i.specified ? i.value: null
        }),
        t
    } (e);
    rt.find = lt,
    rt.expr = lt.selectors,
    rt.expr[":"] = rt.expr.pseudos,
    rt.unique = lt.uniqueSort,
    rt.text = lt.getText,
    rt.isXMLDoc = lt.isXML,
    rt.contains = lt.contains;
    var ut = rt.expr.match.needsContext,
    dt = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
    pt = /^.[^:#\[\.,]*$/;
    rt.filter = function(e, t, n) {
        var i = t[0];
        return n && (e = ":not(" + e + ")"),
        1 === t.length && 1 === i.nodeType ? rt.find.matchesSelector(i, e) ? [i] : [] : rt.find.matches(e, rt.grep(t,
        function(e) {
            return 1 === e.nodeType
        }))
    },
    rt.fn.extend({
        find: function(e) {
            var t, n = [],
            i = this,
            r = i.length;
            if ("string" != typeof e) return this.pushStack(rt(e).filter(function() {
                for (t = 0; r > t; t++) if (rt.contains(i[t], this)) return ! 0
            }));
            for (t = 0; r > t; t++) rt.find(e, i[t], n);
            return n = this.pushStack(r > 1 ? rt.unique(n) : n),
            n.selector = this.selector ? this.selector + " " + e: e,
            n
        },
        filter: function(e) {
            return this.pushStack(i(this, e || [], !1))
        },
        not: function(e) {
            return this.pushStack(i(this, e || [], !0))
        },
        is: function(e) {
            return !! i(this, "string" == typeof e && ut.test(e) ? rt(e) : e || [], !1).length
        }
    });
    var ht, ft = e.document,
    mt = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
    gt = rt.fn.init = function(e, t) {
        var n, i;
        if (!e) return this;
        if ("string" == typeof e) {
            if (n = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && e.length >= 3 ? [null, e, null] : mt.exec(e), !n || !n[1] && t) return ! t || t.jquery ? (t || ht).find(e) : this.constructor(t).find(e);
            if (n[1]) {
                if (t = t instanceof rt ? t[0] : t, rt.merge(this, rt.parseHTML(n[1], t && t.nodeType ? t.ownerDocument || t: ft, !0)), dt.test(n[1]) && rt.isPlainObject(t)) for (n in t) rt.isFunction(this[n]) ? this[n](t[n]) : this.attr(n, t[n]);
                return this
            }
            if (i = ft.getElementById(n[2]), i && i.parentNode) {
                if (i.id !== n[2]) return ht.find(e);
                this.length = 1,
                this[0] = i
            }
            return this.context = ft,
            this.selector = e,
            this
        }
        return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : rt.isFunction(e) ? "undefined" != typeof ht.ready ? ht.ready(e) : e(rt) : (void 0 !== e.selector && (this.selector = e.selector, this.context = e.context), rt.makeArray(e, this))
    };
    gt.prototype = rt.fn,
    ht = rt(ft);
    var vt = /^(?:parents|prev(?:Until|All))/,
    yt = {
        children: !0,
        contents: !0,
        next: !0,
        prev: !0
    };
    rt.extend({
        dir: function(e, t, n) {
            for (var i = [], r = e[t]; r && 9 !== r.nodeType && (void 0 === n || 1 !== r.nodeType || !rt(r).is(n));) 1 === r.nodeType && i.push(r),
            r = r[t];
            return i
        },
        sibling: function(e, t) {
            for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
            return n
        }
    }),
    rt.fn.extend({
        has: function(e) {
            var t, n = rt(e, this),
            i = n.length;
            return this.filter(function() {
                for (t = 0; i > t; t++) if (rt.contains(this, n[t])) return ! 0
            })
        },
        closest: function(e, t) {
            for (var n, i = 0,
            r = this.length,
            a = [], o = ut.test(e) || "string" != typeof e ? rt(e, t || this.context) : 0; r > i; i++) for (n = this[i]; n && n !== t; n = n.parentNode) if (11 > n.nodeType && (o ? o.index(n) > -1 : 1 === n.nodeType && rt.find.matchesSelector(n, e))) {
                a.push(n);
                break
            }
            return this.pushStack(a.length > 1 ? rt.unique(a) : a)
        },
        index: function(e) {
            return e ? "string" == typeof e ? rt.inArray(this[0], rt(e)) : rt.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length: -1
        },
        add: function(e, t) {
            return this.pushStack(rt.unique(rt.merge(this.get(), rt(e, t))))
        },
        addBack: function(e) {
            return this.add(null == e ? this.prevObject: this.prevObject.filter(e))
        }
    }),
    rt.each({
        parent: function(e) {
            var t = e.parentNode;
            return t && 11 !== t.nodeType ? t: null
        },
        parents: function(e) {
            return rt.dir(e, "parentNode")
        },
        parentsUntil: function(e, t, n) {
            return rt.dir(e, "parentNode", n)
        },
        next: function(e) {
            return r(e, "nextSibling")
        },
        prev: function(e) {
            return r(e, "previousSibling")
        },
        nextAll: function(e) {
            return rt.dir(e, "nextSibling")
        },
        prevAll: function(e) {
            return rt.dir(e, "previousSibling")
        },
        nextUntil: function(e, t, n) {
            return rt.dir(e, "nextSibling", n)
        },
        prevUntil: function(e, t, n) {
            return rt.dir(e, "previousSibling", n)
        },
        siblings: function(e) {
            return rt.sibling((e.parentNode || {}).firstChild, e)
        },
        children: function(e) {
            return rt.sibling(e.firstChild)
        },
        contents: function(e) {
            return rt.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document: rt.merge([], e.childNodes)
        }
    },
    function(e, t) {
        rt.fn[e] = function(n, i) {
            var r = rt.map(this, t, n)