SHARE
TWEET

Untitled

canhnm Feb 23rd, 2012 44 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function (a, b) {
  2.     function b$(a) {
  3.         return d.isWindow(a) ? a : a.nodeType === 9 ? a.defaultView || a.parentWindow : !1
  4.     }
  5.     function bX(a) {
  6.         if (!bR[a]) {
  7.             var b = d("<" + a + ">").appendTo("body"),
  8.                 c = b.css("display");
  9.             b.remove();
  10.             if (c === "none" || c === "") c = "block";
  11.             bR[a] = c
  12.         }
  13.         return bR[a]
  14.     }
  15.     function bW(a, b) {
  16.         var c = {};
  17.         d.each(bV.concat.apply([], bV.slice(0, b)), function () {
  18.             c[this] = a
  19.         });
  20.         return c
  21.     }
  22.     function bJ(a, c) {
  23.         a.dataFilter && (c = a.dataFilter(c, a.dataType));
  24.         var e = a.dataTypes,
  25.             f = a.converters,
  26.             g, h = e.length,
  27.             i, j = e[0],
  28.             k, l, m, n, o;
  29.         for (g = 1; g < h; g++) {
  30.             k = j, j = e[g];
  31.             if (j === "*") j = k;
  32.             else if (k !== "*" && k !== j) {
  33.                 l = k + " " + j, m = f[l] || f["* " + j];
  34.                 if (!m) {
  35.                     o = b;
  36.                     for (n in f) {
  37.                         i = n.split(" ");
  38.                         if (i[0] === k || i[0] === "*") {
  39.                             o = f[i[1] + " " + j];
  40.                             if (o) {
  41.                                 n = f[n], n === !0 ? m = o : o === !0 && (m = n);
  42.                                 break
  43.                             }
  44.                         }
  45.                     }
  46.                 }!m && !o && d.error("No conversion from " + l.replace(" ", " to ")), m !== !0 && (c = m ? m(c) : o(n(c)))
  47.             }
  48.         }
  49.         return c
  50.     }
  51.     function bI(a, c, d) {
  52.         var e = a.contents,
  53.             f = a.dataTypes,
  54.             g = a.responseFields,
  55.             h, i, j, k;
  56.         for (i in g) i in d && (c[g[i]] = d[i]);
  57.         while (f[0] === "*") f.shift(), h === b && (h = c.getResponseHeader("content-type"));
  58.         if (h) for (i in e) if (e[i] && e[i].test(h)) {
  59.             f.unshift(i);
  60.             break
  61.         }
  62.         if (f[0] in d) j = f[0];
  63.         else {
  64.             for (i in d) {
  65.                 if (!f[0] || a.converters[i + " " + f[0]]) {
  66.                     j = i;
  67.                     break
  68.                 }
  69.                 k || (k = i)
  70.             }
  71.             j = j || k
  72.         }
  73.         if (j) {
  74.             j !== f[0] && f.unshift(j);
  75.             return d[j]
  76.         }
  77.     }
  78.     function bH(a, b, c, e) {
  79.         d.isArray(b) && b.length ? d.each(b, function (b, f) {
  80.             c || bp.test(a) ? e(a, f) : bH(a + "[" + (typeof f === "object" || d.isArray(f) ? b : "") + "]", f, c, e)
  81.         }) : c || b == null || typeof b !== "object" ? e(a, b) : d.isArray(b) || d.isEmptyObject(b) ? e(a, "") : d.each(b, function (b, d) {
  82.             bH(a + "[" + b + "]", d, c, e)
  83.         })
  84.     }
  85.     function bG(a, c, d, e, f, g) {
  86.         f = f || c.dataTypes[0], g = g || {}, g[f] = !0;
  87.         var h = a[f],
  88.             i = 0,
  89.             j = h ? h.length : 0,
  90.             k = a === bD,
  91.             l;
  92.         for (; i < j && (k || !l); i++) l = h[i](c, d, e), typeof l === "string" && (g[l] ? l = b : (c.dataTypes.unshift(l), l = bG(a, c, d, e, l, g)));
  93.         (k || !l) && !g["*"] && (l = bG(a, c, d, e, "*", g));
  94.         return l
  95.     }
  96.     function bF(a) {
  97.         return function (b, c) {
  98.             typeof b !== "string" && (c = b, b = "*");
  99.             if (d.isFunction(c)) {
  100.                 var e = b.toLowerCase().split(bz),
  101.                     f = 0,
  102.                     g = e.length,
  103.                     h, i, j;
  104.                 for (; f < g; f++) h = e[f], j = /^\+/.test(h), j && (h = h.substr(1) || "*"), i = a[h] = a[h] || [], i[j ? "unshift" : "push"](c)
  105.             }
  106.         }
  107.     }
  108.     function bn(a, b, c) {
  109.         var e = b === "width" ? bh : bi,
  110.             f = b === "width" ? a.offsetWidth : a.offsetHeight;
  111.         if (c === "border") return f;
  112.         d.each(e, function () {
  113.             c || (f -= parseFloat(d.css(a, "padding" + this)) || 0), c === "margin" ? f += parseFloat(d.css(a, "margin" + this)) || 0 : f -= parseFloat(d.css(a, "border" + this + "Width")) || 0
  114.         });
  115.         return f
  116.     }
  117.     function _(a, b) {
  118.         b.src ? d.ajax({
  119.             url: b.src,
  120.             async: !1,
  121.             dataType: "script"
  122.         }) : d.globalEval(b.text || b.textContent || b.innerHTML || ""), b.parentNode && b.parentNode.removeChild(b)
  123.     }
  124.     function $(a, b) {
  125.         if (b.nodeType === 1) {
  126.             var c = b.nodeName.toLowerCase();
  127.             b.clearAttributes(), b.mergeAttributes(a);
  128.             if (c === "object") b.outerHTML = a.outerHTML;
  129.             else if (c !== "input" || a.type !== "checkbox" && a.type !== "radio") {
  130.                 if (c === "option") b.selected = a.defaultSelected;
  131.                 else if (c === "input" || c === "textarea") b.defaultValue = a.defaultValue
  132.             } else a.checked && (b.defaultChecked = b.checked = a.checked), b.value !== a.value && (b.value = a.value);
  133.             b.removeAttribute(d.expando)
  134.         }
  135.     }
  136.     function Z(a, b) {
  137.         if (b.nodeType === 1 && d.hasData(a)) {
  138.             var c = d.expando,
  139.                 e = d.data(a),
  140.                 f = d.data(b, e);
  141.             if (e = e[c]) {
  142.                 var g = e.events;
  143.                 f = f[c] = d.extend({}, e);
  144.                 if (g) {
  145.                     delete f.handle, f.events = {};
  146.                     for (var h in g) for (var i = 0, j = g[h].length; i < j; i++) d.event.add(b, h, g[h][i], g[h][i].data)
  147.                 }
  148.             }
  149.         }
  150.     }
  151.     function Y(a, b) {
  152.         return d.nodeName(a, "table") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a
  153.     }
  154.     function O(a, b, c) {
  155.         if (d.isFunction(b)) return d.grep(a, function (a, d) {
  156.             var e = !! b.call(a, d, a);
  157.             return e === c
  158.         });
  159.         if (b.nodeType) return d.grep(a, function (a, d) {
  160.             return a === b === c
  161.         });
  162.         if (typeof b === "string") {
  163.             var e = d.grep(a, function (a) {
  164.                 return a.nodeType === 1
  165.             });
  166.             if (J.test(b)) return d.filter(b, e, !c);
  167.             b = d.filter(b, e)
  168.         }
  169.         return d.grep(a, function (a, e) {
  170.             return d.inArray(a, b) >= 0 === c
  171.         })
  172.     }
  173.     function N(a) {
  174.         return !a || !a.parentNode || a.parentNode.nodeType === 11
  175.     }
  176.     function F(a, b) {
  177.         return (a && a !== "*" ? a + "." : "") + b.replace(q, "`").replace(r, "&")
  178.     }
  179.     function E(a) {
  180.         var b, c, e, f, g, h, i, j, k, l, m, n, p, q = [],
  181.             r = [],
  182.             s = d._data(this, u);
  183.         typeof s === "function" && (s = s.events);
  184.         if (a.liveFired !== this && s && s.live && !a.target.disabled && (!a.button || a.type !== "click")) {
  185.             a.namespace && (n = new RegExp("(^|\\.)" + a.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)")), a.liveFired = this;
  186.             var t = s.live.slice(0);
  187.             for (i = 0; i < t.length; i++) g = t[i], g.origType.replace(o, "") === a.type ? r.push(g.selector) : t.splice(i--, 1);
  188.             f = d(a.target).closest(r, a.currentTarget);
  189.             for (j = 0, k = f.length; j < k; j++) {
  190.                 m = f[j];
  191.                 for (i = 0; i < t.length; i++) {
  192.                     g = t[i];
  193.                     if (m.selector === g.selector && (!n || n.test(g.namespace))) {
  194.                         h = m.elem, e = null;
  195.                         if (g.preType === "mouseenter" || g.preType === "mouseleave") a.type = g.preType, e = d(a.relatedTarget).closest(g.selector)[0];
  196.                         (!e || e !== h) && q.push({
  197.                             elem: h,
  198.                             handleObj: g,
  199.                             level: m.level
  200.                         })
  201.                     }
  202.                 }
  203.             }
  204.             for (j = 0, k = q.length; j < k; j++) {
  205.                 f = q[j];
  206.                 if (c && f.level > c) break;
  207.                 a.currentTarget = f.elem, a.data = f.handleObj.data, a.handleObj = f.handleObj, p = f.handleObj.origHandler.apply(f.elem, arguments);
  208.                 if (p === !1 || a.isPropagationStopped()) {
  209.                     c = f.level, p === !1 && (b = !1);
  210.                     if (a.isImmediatePropagationStopped()) break
  211.                 }
  212.             }
  213.             return b
  214.         }
  215.     }
  216.     function C(a, b, c) {
  217.         c[0].type = a;
  218.         return d.event.handle.apply(b, c)
  219.     }
  220.     function w() {
  221.         return !0
  222.     }
  223.     function v() {
  224.         return !1
  225.     }
  226.     function f(a, c, f) {
  227.         if (f === b && a.nodeType === 1) {
  228.             f = a.getAttribute("data-" + c);
  229.             if (typeof f === "string") {
  230.                 try {
  231.                     f = f === "true" ? !0 : f === "false" ? !1 : f === "null" ? null : d.isNaN(f) ? e.test(f) ? d.parseJSON(f) : f : parseFloat(f)
  232.                 } catch (g) {}
  233.                 d.data(a, c, f)
  234.             } else f = b
  235.         }
  236.         return f
  237.     }
  238.     var c = a.document,
  239.         d = function () {
  240.             function I() {
  241.                 if (!d.isReady) {
  242.                     try {
  243.                         c.documentElement.doScroll("left")
  244.                     } catch (a) {
  245.                         setTimeout(I, 1);
  246.                         return
  247.                     }
  248.                     d.ready()
  249.                 }
  250.             }
  251.             var d = function (a, b) {
  252.                     return new d.fn.init(a, b, g)
  253.                 },
  254.                 e = a.jQuery,
  255.                 f = a.$,
  256.                 g, h = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,
  257.                 i = /\S/,
  258.                 j = /^\s+/,
  259.                 k = /\s+$/,
  260.                 l = /\d/,
  261.                 m = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
  262.                 n = /^[\],:{}\s]*$/,
  263.                 o = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
  264.                 p = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
  265.                 q = /(?:^|:|,)(?:\s*\[)+/g,
  266.                 r = /(webkit)[ \/]([\w.]+)/,
  267.                 s = /(opera)(?:.*version)?[ \/]([\w.]+)/,
  268.                 t = /(msie) ([\w.]+)/,
  269.                 u = /(mozilla)(?:.*? rv:([\w.]+))?/,
  270.                 v = navigator.userAgent,
  271.                 w, x = !1,
  272.                 y, z = "then done fail isResolved isRejected promise".split(" "),
  273.                 A, B = Object.prototype.toString,
  274.                 C = Object.prototype.hasOwnProperty,
  275.                 D = Array.prototype.push,
  276.                 E = Array.prototype.slice,
  277.                 F = String.prototype.trim,
  278.                 G = Array.prototype.indexOf,
  279.                 H = {};
  280.             d.fn = d.prototype = {
  281.                 constructor: d,
  282.                 init: function (a, e, f) {
  283.                     var g, i, j, k;
  284.                     if (!a) return this;
  285.                     if (a.nodeType) {
  286.                         this.context = this[0] = a, this.length = 1;
  287.                         return this
  288.                     }
  289.                     if (a === "body" && !e && c.body) {
  290.                         this.context = c, this[0] = c.body, this.selector = "body", this.length = 1;
  291.                         return this
  292.                     }
  293.                     if (typeof a === "string") {
  294.                         g = h.exec(a);
  295.                         if (!g || !g[1] && e) return !e || e.jquery ? (e || f).find(a) : this.constructor(e).find(a);
  296.                         if (g[1]) {
  297.                             e = e instanceof d ? e[0] : e, k = e ? e.ownerDocument || e : c, j = m.exec(a), j ? d.isPlainObject(e) ? (a = [c.createElement(j[1])], d.fn.attr.call(a, e, !0)) : a = [k.createElement(j[1])] : (j = d.buildFragment([g[1]], [k]), a = (j.cacheable ? d.clone(j.fragment) : j.fragment).childNodes);
  298.                             return d.merge(this, a)
  299.                         }
  300.                         i = c.getElementById(g[2]);
  301.                         if (i && i.parentNode) {
  302.                             if (i.id !== g[2]) return f.find(a);
  303.                             this.length = 1, this[0] = i
  304.                         }
  305.                         this.context = c, this.selector = a;
  306.                         return this
  307.                     }
  308.                     if (d.isFunction(a)) return f.ready(a);
  309.                     a.selector !== b && (this.selector = a.selector, this.context = a.context);
  310.                     return d.makeArray(a, this)
  311.                 },
  312.                 selector: "",
  313.                 jquery: "1.5",
  314.                 length: 0,
  315.                 size: function () {
  316.                     return this.length
  317.                 },
  318.                 toArray: function () {
  319.                     return E.call(this, 0)
  320.                 },
  321.                 get: function (a) {
  322.                     return a == null ? this.toArray() : a < 0 ? this[this.length + a] : this[a]
  323.                 },
  324.                 pushStack: function (a, b, c) {
  325.                     var e = this.constructor();
  326.                     d.isArray(a) ? D.apply(e, a) : d.merge(e, a), e.prevObject = this, e.context = this.context, b === "find" ? e.selector = this.selector + (this.selector ? " " : "") + c : b && (e.selector = this.selector + "." + b + "(" + c + ")");
  327.                     return e
  328.                 },
  329.                 each: function (a, b) {
  330.                     return d.each(this, a, b)
  331.                 },
  332.                 ready: function (a) {
  333.                     d.bindReady(), y.done(a);
  334.                     return this
  335.                 },
  336.                 eq: function (a) {
  337.                     return a === -1 ? this.slice(a) : this.slice(a, +a + 1)
  338.                 },
  339.                 first: function () {
  340.                     return this.eq(0)
  341.                 },
  342.                 last: function () {
  343.                     return this.eq(-1)
  344.                 },
  345.                 slice: function () {
  346.                     return this.pushStack(E.apply(this, arguments), "slice", E.call(arguments).join(","))
  347.                 },
  348.                 map: function (a) {
  349.                     return this.pushStack(d.map(this, function (b, c) {
  350.                         return a.call(b, c, b)
  351.                     }))
  352.                 },
  353.                 end: function () {
  354.                     return this.prevObject || this.constructor(null)
  355.                 },
  356.                 push: D,
  357.                 sort: [].sort,
  358.                 splice: [].splice
  359.             }, d.fn.init.prototype = d.fn, d.extend = d.fn.extend = function () {
  360.                 var a, c, e, f, g, h, i = arguments[0] || {},
  361.                     j = 1,
  362.                     k = arguments.length,
  363.                     l = !1;
  364.                 typeof i === "boolean" && (l = i, i = arguments[1] || {}, j = 2), typeof i !== "object" && !d.isFunction(i) && (i = {}), k === j && (i = this, --j);
  365.                 for (; j < k; j++) if ((a = arguments[j]) != null) for (c in a) {
  366.                     e = i[c], f = a[c];
  367.                     if (i === f) continue;
  368.                     l && f && (d.isPlainObject(f) || (g = d.isArray(f))) ? (g ? (g = !1, h = e && d.isArray(e) ? e : []) : h = e && d.isPlainObject(e) ? e : {}, i[c] = d.extend(l, h, f)) : f !== b && (i[c] = f)
  369.                 }
  370.                 return i
  371.             }, d.extend({
  372.                 noConflict: function (b) {
  373.                     a.$ = f, b && (a.jQuery = e);
  374.                     return d
  375.                 },
  376.                 isReady: !1,
  377.                 readyWait: 1,
  378.                 ready: function (a) {
  379.                     a === !0 && d.readyWait--;
  380.                     if (!d.readyWait || a !== !0 && !d.isReady) {
  381.                         if (!c.body) return setTimeout(d.ready, 1);
  382.                         d.isReady = !0;
  383.                         if (a !== !0 && --d.readyWait > 0) return;
  384.                         y.resolveWith(c, [d]), d.fn.trigger && d(c).trigger("ready").unbind("ready")
  385.                     }
  386.                 },
  387.                 bindReady: function () {
  388.                     if (!x) {
  389.                         x = !0;
  390.                         if (c.readyState === "complete") return setTimeout(d.ready, 1);
  391.                         if (c.addEventListener) c.addEventListener("DOMContentLoaded", A, !1), a.addEventListener("load", d.ready, !1);
  392.                         else if (c.attachEvent) {
  393.                             c.attachEvent("onreadystatechange", A), a.attachEvent("onload", d.ready);
  394.                             var b = !1;
  395.                             try {
  396.                                 b = a.frameElement == null
  397.                             } catch (e) {}
  398.                             c.documentElement.doScroll && b && I()
  399.                         }
  400.                     }
  401.                 },
  402.                 isFunction: function (a) {
  403.                     return d.type(a) === "function"
  404.                 },
  405.                 isArray: Array.isArray ||
  406.                 function (a) {
  407.                     return d.type(a) === "array"
  408.                 },
  409.                 isWindow: function (a) {
  410.                     return a && typeof a === "object" && "setInterval" in a
  411.                 },
  412.                 isNaN: function (a) {
  413.                     return a == null || !l.test(a) || isNaN(a)
  414.                 },
  415.                 type: function (a) {
  416.                     return a == null ? String(a) : H[B.call(a)] || "object"
  417.                 },
  418.                 isPlainObject: function (a) {
  419.                     if (!a || d.type(a) !== "object" || a.nodeType || d.isWindow(a)) return !1;
  420.                     if (a.constructor && !C.call(a, "constructor") && !C.call(a.constructor.prototype, "isPrototypeOf")) return !1;
  421.                     var c;
  422.                     for (c in a) {}
  423.                     return c === b || C.call(a, c)
  424.                 },
  425.                 isEmptyObject: function (a) {
  426.                     for (var b in a) return !1;
  427.                     return !0
  428.                 },
  429.                 error: function (a) {
  430.                     throw a
  431.                 },
  432.                 parseJSON: function (b) {
  433.                     if (typeof b !== "string" || !b) return null;
  434.                     b = d.trim(b);
  435.                     if (n.test(b.replace(o, "@").replace(p, "]").replace(q, ""))) return a.JSON && a.JSON.parse ? a.JSON.parse(b) : (new Function("return " + b))();
  436.                     d.error("Invalid JSON: " + b)
  437.                 },
  438.                 parseXML: function (b, c, e) {
  439.                     a.DOMParser ? (e = new DOMParser, c = e.parseFromString(b, "text/xml")) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(b)), e = c.documentElement, (!e || !e.nodeName || e.nodeName === "parsererror") && d.error("Invalid XML: " + b);
  440.                     return c
  441.                 },
  442.                 noop: function () {},
  443.                 globalEval: function (a) {
  444.                     if (a && i.test(a)) {
  445.                         var b = c.getElementsByTagName("head")[0] || c.documentElement,
  446.                             e = c.createElement("script");
  447.                         e.type = "text/javascript", d.support.scriptEval() ? e.appendChild(c.createTextNode(a)) : e.text = a, b.insertBefore(e, b.firstChild), b.removeChild(e)
  448.                     }
  449.                 },
  450.                 nodeName: function (a, b) {
  451.                     return a.nodeName && a.nodeName.toUpperCase() === b.toUpperCase()
  452.                 },
  453.                 each: function (a, c, e) {
  454.                     var f, g = 0,
  455.                         h = a.length,
  456.                         i = h === b || d.isFunction(a);
  457.                     if (e) {
  458.                         if (i) {
  459.                             for (f in a) if (c.apply(a[f], e) === !1) break
  460.                         } else for (; g < h;) if (c.apply(a[g++], e) === !1) break
  461.                     } else if (i) {
  462.                         for (f in a) if (c.call(a[f], f, a[f]) === !1) break
  463.                     } else for (var j = a[0]; g < h && c.call(j, g, j) !== !1; j = a[++g]) {}
  464.                     return a
  465.                 },
  466.                 trim: F ?
  467.                 function (a) {
  468.                     return a == null ? "" : F.call(a)
  469.                 } : function (a) {
  470.                     return a == null ? "" : (a + "").replace(j, "").replace(k, "")
  471.                 },
  472.                 makeArray: function (a, b) {
  473.                     var c = b || [];
  474.                     if (a != null) {
  475.                         var e = d.type(a);
  476.                         a.length == null || e === "string" || e === "function" || e === "regexp" || d.isWindow(a) ? D.call(c, a) : d.merge(c, a)
  477.                     }
  478.                     return c
  479.                 },
  480.                 inArray: function (a, b) {
  481.                     if (b.indexOf) return b.indexOf(a);
  482.                     for (var c = 0, d = b.length; c < d; c++) if (b[c] === a) return c;
  483.                     return -1
  484.                 },
  485.                 merge: function (a, c) {
  486.                     var d = a.length,
  487.                         e = 0;
  488.                     if (typeof c.length === "number") for (var f = c.length; e < f; e++) a[d++] = c[e];
  489.                     else while (c[e] !== b) a[d++] = c[e++];
  490.                     a.length = d;
  491.                     return a
  492.                 },
  493.                 grep: function (a, b, c) {
  494.                     var d = [],
  495.                         e;
  496.                     c = !! c;
  497.                     for (var f = 0, g = a.length; f < g; f++) e = !! b(a[f], f), c !== e && d.push(a[f]);
  498.                     return d
  499.                 },
  500.                 map: function (a, b, c) {
  501.                     var d = [],
  502.                         e;
  503.                     for (var f = 0, g = a.length; f < g; f++) e = b(a[f], f, c), e != null && (d[d.length] = e);
  504.                     return d.concat.apply([], d)
  505.                 },
  506.                 guid: 1,
  507.                 proxy: function (a, c, e) {
  508.                     arguments.length === 2 && (typeof c === "string" ? (e = a, a = e[c], c = b) : c && !d.isFunction(c) && (e = c, c = b)), !c && a && (c = function () {
  509.                         return a.apply(e || this, arguments)
  510.                     }), a && (c.guid = a.guid = a.guid || c.guid || d.guid++);
  511.                     return c
  512.                 },
  513.                 access: function (a, c, e, f, g, h) {
  514.                     var i = a.length;
  515.                     if (typeof c === "object") {
  516.                         for (var j in c) d.access(a, j, c[j], f, g, e);
  517.                         return a
  518.                     }
  519.                     if (e !== b) {
  520.                         f = !h && f && d.isFunction(e);
  521.                         for (var k = 0; k < i; k++) g(a[k], c, f ? e.call(a[k], k, g(a[k], c)) : e, h);
  522.                         return a
  523.                     }
  524.                     return i ? g(a[0], c) : b
  525.                 },
  526.                 now: function () {
  527.                     return (new Date).getTime()
  528.                 },
  529.                 _Deferred: function () {
  530.                     var a = [],
  531.                         b, c, e, f = {
  532.                             done: function () {
  533.                                 if (!e) {
  534.                                     var c = arguments,
  535.                                         g, h, i, j, k;
  536.                                     b && (k = b, b = 0);
  537.                                     for (g = 0, h = c.length; g < h; g++) i = c[g], j = d.type(i), j === "array" ? f.done.apply(f, i) : j === "function" && a.push(i);
  538.                                     k && f.resolveWith(k[0], k[1])
  539.                                 }
  540.                                 return this
  541.                             },
  542.                             resolveWith: function (d, f) {
  543.                                 if (!e && !b && !c) {
  544.                                     c = 1;
  545.                                     try {
  546.                                         while (a[0]) a.shift().apply(d, f)
  547.                                     } finally {
  548.                                         b = [d, f], c = 0
  549.                                     }
  550.                                 }
  551.                                 return this
  552.                             },
  553.                             resolve: function () {
  554.                                 f.resolveWith(d.isFunction(this.promise) ? this.promise() : this, arguments);
  555.                                 return this
  556.                             },
  557.                             isResolved: function () {
  558.                                 return c || b
  559.                             },
  560.                             cancel: function () {
  561.                                 e = 1, a = [];
  562.                                 return this
  563.                             }
  564.                         };
  565.                     return f
  566.                 },
  567.                 Deferred: function (a) {
  568.                     var b = d._Deferred(),
  569.                         c = d._Deferred(),
  570.                         e;
  571.                     d.extend(b, {
  572.                         then: function (a, c) {
  573.                             b.done(a).fail(c);
  574.                             return this
  575.                         },
  576.                         fail: c.done,
  577.                         rejectWith: c.resolveWith,
  578.                         reject: c.resolve,
  579.                         isRejected: c.isResolved,
  580.                         promise: function (a, c) {
  581.                             if (a == null) {
  582.                                 if (e) return e;
  583.                                 e = a = {}
  584.                             }
  585.                             c = z.length;
  586.                             while (c--) a[z[c]] = b[z[c]];
  587.                             return a
  588.                         }
  589.                     }), b.then(c.cancel, b.cancel), delete b.cancel, a && a.call(b, b);
  590.                     return b
  591.                 },
  592.                 when: function (a) {
  593.                     var b = arguments,
  594.                         c = b.length,
  595.                         e = c <= 1 && a && d.isFunction(a.promise) ? a : d.Deferred(),
  596.                         f = e.promise(),
  597.                         g;
  598.                     c > 1 ? (g = Array(c), d.each(b, function (a, b) {
  599.                         d.when(b).then(function (b) {
  600.                             g[a] = arguments.length > 1 ? E.call(arguments, 0) : b, --c || e.resolveWith(f, g)
  601.                         }, e.reject)
  602.                     })) : e !== a && e.resolve(a);
  603.                     return f
  604.                 },
  605.                 uaMatch: function (a) {
  606.                     a = a.toLowerCase();
  607.                     var b = r.exec(a) || s.exec(a) || t.exec(a) || a.indexOf("compatible") < 0 && u.exec(a) || [];
  608.                     return {
  609.                         browser: b[1] || "",
  610.                         version: b[2] || "0"
  611.                     }
  612.                 },
  613.                 sub: function () {
  614.                     function a(b, c) {
  615.                         return new a.fn.init(b, c)
  616.                     }
  617.                     d.extend(!0, a, this), a.superclass = this, a.fn = a.prototype = this(), a.fn.constructor = a, a.subclass = this.subclass, a.fn.init = function b(b, c) {
  618.                         c && c instanceof d && !(c instanceof a) && (c = a(c));
  619.                         return d.fn.init.call(this, b, c, e)
  620.                     }, a.fn.init.prototype = a.fn;
  621.                     var e = a(c);
  622.                     return a
  623.                 },
  624.                 browser: {}
  625.             }), y = d._Deferred(), d.each("Boolean Number String Function Array Date RegExp Object".split(" "), function (a, b) {
  626.                 H["[object " + b + "]"] = b.toLowerCase()
  627.             }), w = d.uaMatch(v), w.browser && (d.browser[w.browser] = !0, d.browser.version = w.version), d.browser.webkit && (d.browser.safari = !0), G && (d.inArray = function (a, b) {
  628.                 return G.call(b, a)
  629.             }), i.test(" ") && (j = /^[\s\xA0]+/, k = /[\s\xA0]+$/), g = d(c), c.addEventListener ? A = function () {
  630.                 c.removeEventListener("DOMContentLoaded", A, !1), d.ready()
  631.             } : c.attachEvent && (A = function () {
  632.                 c.readyState === "complete" && (c.detachEvent("onreadystatechange", A), d.ready())
  633.             });
  634.             return a.jQuery = a.$ = d
  635.         }();
  636.     (function () {
  637.         d.support = {};
  638.         var b = c.createElement("div");
  639.         b.style.display = "none", b.innerHTML = "   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
  640.         var e = b.getElementsByTagName("*"),
  641.             f = b.getElementsByTagName("a")[0],
  642.             g = c.createElement("select"),
  643.             h = g.appendChild(c.createElement("option"));
  644.         if (e && e.length && f) {
  645.             d.support = {
  646.                 leadingWhitespace: b.firstChild.nodeType === 3,
  647.                 tbody: !b.getElementsByTagName("tbody").length,
  648.                 htmlSerialize: !! b.getElementsByTagName("link").length,
  649.                 style: /red/.test(f.getAttribute("style")),
  650.                 hrefNormalized: f.getAttribute("href") === "/a",
  651.                 opacity: /^0.55$/.test(f.style.opacity),
  652.                 cssFloat: !! f.style.cssFloat,
  653.                 checkOn: b.getElementsByTagName("input")[0].value === "on",
  654.                 optSelected: h.selected,
  655.                 deleteExpando: !0,
  656.                 optDisabled: !1,
  657.                 checkClone: !1,
  658.                 _scriptEval: null,
  659.                 noCloneEvent: !0,
  660.                 boxModel: null,
  661.                 inlineBlockNeedsLayout: !1,
  662.                 shrinkWrapBlocks: !1,
  663.                 reliableHiddenOffsets: !0
  664.             }, g.disabled = !0, d.support.optDisabled = !h.disabled, d.support.scriptEval = function () {
  665.                 if (d.support._scriptEval === null) {
  666.                     var b = c.documentElement,
  667.                         e = c.createElement("script"),
  668.                         f = "script" + d.now();
  669.                     e.type = "text/javascript";
  670.                     try {
  671.                         e.appendChild(c.createTextNode("window." + f + "=1;"))
  672.                     } catch (g) {}
  673.                     b.insertBefore(e, b.firstChild), a[f] ? (d.support._scriptEval = !0, delete a[f]) : d.support._scriptEval = !1, b.removeChild(e), b = e = f = null
  674.                 }
  675.                 return d.support._scriptEval
  676.             };
  677.             try {
  678.                 delete b.test
  679.             } catch (i) {
  680.                 d.support.deleteExpando = !1
  681.             }
  682.             b.attachEvent && b.fireEvent && (b.attachEvent("onclick", function j() {
  683.                 d.support.noCloneEvent = !1, b.detachEvent("onclick", j)
  684.             }), b.cloneNode(!0).fireEvent("onclick")), b = c.createElement("div"), b.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>";
  685.             var k = c.createDocumentFragment();
  686.             k.appendChild(b.firstChild), d.support.checkClone = k.cloneNode(!0).cloneNode(!0).lastChild.checked, d(function () {
  687.                 var a = c.createElement("div"),
  688.                     b = c.getElementsByTagName("body")[0];
  689.                 if (b) {
  690.                     a.style.width = a.style.paddingLeft = "1px", b.appendChild(a), d.boxModel = d.support.boxModel = a.offsetWidth === 2, "zoom" in a.style && (a.style.display = "inline", a.style.zoom = 1, d.support.inlineBlockNeedsLayout = a.offsetWidth === 2, a.style.display = "", a.innerHTML = "<div style='width:4px;'></div>", d.support.shrinkWrapBlocks = a.offsetWidth !== 2), a.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
  691.                     var e = a.getElementsByTagName("td");
  692.                     d.support.reliableHiddenOffsets = e[0].offsetHeight === 0, e[0].style.display = "", e[1].style.display = "none", d.support.reliableHiddenOffsets = d.support.reliableHiddenOffsets && e[0].offsetHeight === 0, a.innerHTML = "", b.removeChild(a).style.display = "none", a = e = null
  693.                 }
  694.             });
  695.             var l = function (a) {
  696.                     var b = c.createElement("div");
  697.                     a = "on" + a;
  698.                     if (!b.attachEvent) return !0;
  699.                     var d = a in b;
  700.                     d || (b.setAttribute(a, "return;"), d = typeof b[a] === "function"), b = null;
  701.                     return d
  702.                 };
  703.             d.support.submitBubbles = l("submit"), d.support.changeBubbles = l("change"), b = e = f = null
  704.         }
  705.     })();
  706.     var e = /^(?:\{.*\}|\[.*\])$/;
  707.     d.extend({
  708.         cache: {},
  709.         uuid: 0,
  710.         expando: "jQuery" + (d.fn.jquery + Math.random()).replace(/\D/g, ""),
  711.         noData: {
  712.             embed: !0,
  713.             object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
  714.             applet: !0
  715.         },
  716.         hasData: function (a) {
  717.             a = a.nodeType ? d.cache[a[d.expando]] : a[d.expando];
  718.             return !!a && !d.isEmptyObject(a)
  719.         },
  720.         data: function (a, c, e, f) {
  721.             if (d.acceptData(a)) {
  722.                 var g = d.expando,
  723.                     h = typeof c === "string",
  724.                     i, j = a.nodeType,
  725.                     k = j ? d.cache : a,
  726.                     l = j ? a[d.expando] : a[d.expando] && d.expando;
  727.                 if ((!l || f && l && !k[l][g]) && h && e === b) return;
  728.                 l || (j ? a[d.expando] = l = ++d.uuid : l = d.expando), k[l] || (k[l] = {}), typeof c === "object" && (f ? k[l][g] = d.extend(k[l][g], c) : k[l] = d.extend(k[l], c)), i = k[l], f && (i[g] || (i[g] = {}), i = i[g]), e !== b && (i[c] = e);
  729.                 if (c === "events" && !i[c]) return i[g] && i[g].events;
  730.                 return h ? i[c] : i
  731.             }
  732.         },
  733.         removeData: function (b, c, e) {
  734.             if (d.acceptData(b)) {
  735.                 var f = d.expando,
  736.                     g = b.nodeType,
  737.                     h = g ? d.cache : b,
  738.                     i = g ? b[d.expando] : d.expando;
  739.                 if (!h[i]) return;
  740.                 if (c) {
  741.                     var j = e ? h[i][f] : h[i];
  742.                     if (j) {
  743.                         delete j[c];
  744.                         if (!d.isEmptyObject(j)) return
  745.                     }
  746.                 }
  747.                 if (e) {
  748.                     delete h[i][f];
  749.                     if (!d.isEmptyObject(h[i])) return
  750.                 }
  751.                 var k = h[i][f];
  752.                 d.support.deleteExpando || h != a ? delete h[i] : h[i] = null, k ? (h[i] = {}, h[i][f] = k) : g && (d.support.deleteExpando ? delete b[d.expando] : b.removeAttribute ? b.removeAttribute(d.expando) : b[d.expando] = null)
  753.             }
  754.         },
  755.         _data: function (a, b, c) {
  756.             return d.data(a, b, c, !0)
  757.         },
  758.         acceptData: function (a) {
  759.             if (a.nodeName) {
  760.                 var b = d.noData[a.nodeName.toLowerCase()];
  761.                 if (b) return b !== !0 && a.getAttribute("classid") === b
  762.             }
  763.             return !0
  764.         }
  765.     }), d.fn.extend({
  766.         data: function (a, c) {
  767.             var e = null;
  768.             if (typeof a === "undefined") {
  769.                 if (this.length) {
  770.                     e = d.data(this[0]);
  771.                     if (this[0].nodeType === 1) {
  772.                         var g = this[0].attributes,
  773.                             h;
  774.                         for (var i = 0, j = g.length; i < j; i++) h = g[i].name, h.indexOf("data-") === 0 && (h = h.substr(5), f(this[0], h, e[h]))
  775.                     }
  776.                 }
  777.                 return e
  778.             }
  779.             if (typeof a === "object") return this.each(function () {
  780.                 d.data(this, a)
  781.             });
  782.             var k = a.split(".");
  783.             k[1] = k[1] ? "." + k[1] : "";
  784.             if (c === b) {
  785.                 e = this.triggerHandler("getData" + k[1] + "!", [k[0]]), e === b && this.length && (e = d.data(this[0], a), e = f(this[0], a, e));
  786.                 return e === b && k[1] ? this.data(k[0]) : e
  787.             }
  788.             return this.each(function () {
  789.                 var b = d(this),
  790.                     e = [k[0], c];
  791.                 b.triggerHandler("setData" + k[1] + "!", e), d.data(this, a, c), b.triggerHandler("changeData" + k[1] + "!", e)
  792.             })
  793.         },
  794.         removeData: function (a) {
  795.             return this.each(function () {
  796.                 d.removeData(this, a)
  797.             })
  798.         }
  799.     }), d.extend({
  800.         queue: function (a, b, c) {
  801.             if (a) {
  802.                 b = (b || "fx") + "queue";
  803.                 var e = d._data(a, b);
  804.                 if (!c) return e || [];
  805.                 !e || d.isArray(c) ? e = d._data(a, b, d.makeArray(c)) : e.push(c);
  806.                 return e
  807.             }
  808.         },
  809.         dequeue: function (a, b) {
  810.             b = b || "fx";
  811.             var c = d.queue(a, b),
  812.                 e = c.shift();
  813.             e === "inprogress" && (e = c.shift()), e && (b === "fx" && c.unshift("inprogress"), e.call(a, function () {
  814.                 d.dequeue(a, b)
  815.             })), c.length || d.removeData(a, b + "queue", !0)
  816.         }
  817.     }), d.fn.extend({
  818.         queue: function (a, c) {
  819.             typeof a !== "string" && (c = a, a = "fx");
  820.             if (c === b) return d.queue(this[0], a);
  821.             return this.each(function (b) {
  822.                 var e = d.queue(this, a, c);
  823.                 a === "fx" && e[0] !== "inprogress" && d.dequeue(this, a)
  824.             })
  825.         },
  826.         dequeue: function (a) {
  827.             return this.each(function () {
  828.                 d.dequeue(this, a)
  829.             })
  830.         },
  831.         delay: function (a, b) {
  832.             a = d.fx ? d.fx.speeds[a] || a : a, b = b || "fx";
  833.             return this.queue(b, function () {
  834.                 var c = this;
  835.                 setTimeout(function () {
  836.                     d.dequeue(c, b)
  837.                 }, a)
  838.             })
  839.         },
  840.         clearQueue: function (a) {
  841.             return this.queue(a || "fx", [])
  842.         }
  843.     });
  844.     var g = /[\n\t\r]/g,
  845.         h = /\s+/,
  846.         i = /\r/g,
  847.         j = /^(?:href|src|style)$/,
  848.         k = /^(?:button|input)$/i,
  849.         l = /^(?:button|input|object|select|textarea)$/i,
  850.         m = /^a(?:rea)?$/i,
  851.         n = /^(?:radio|checkbox)$/i;
  852.     d.props = {
  853.         "for": "htmlFor",
  854.         "class": "className",
  855.         readonly: "readOnly",
  856.         maxlength: "maxLength",
  857.         cellspacing: "cellSpacing",
  858.         rowspan: "rowSpan",
  859.         colspan: "colSpan",
  860.         tabindex: "tabIndex",
  861.         usemap: "useMap",
  862.         frameborder: "frameBorder"
  863.     }, d.fn.extend({
  864.         attr: function (a, b) {
  865.             return d.access(this, a, b, !0, d.attr)
  866.         },
  867.         removeAttr: function (a, b) {
  868.             return this.each(function () {
  869.                 d.attr(this, a, ""), this.nodeType === 1 && this.removeAttribute(a)
  870.             })
  871.         },
  872.         addClass: function (a) {
  873.             if (d.isFunction(a)) return this.each(function (b) {
  874.                 var c = d(this);
  875.                 c.addClass(a.call(this, b, c.attr("class")))
  876.             });
  877.             if (a && typeof a === "string") {
  878.                 var b = (a || "").split(h);
  879.                 for (var c = 0, e = this.length; c < e; c++) {
  880.                     var f = this[c];
  881.                     if (f.nodeType === 1) if (f.className) {
  882.                         var g = " " + f.className + " ",
  883.                             i = f.className;
  884.                         for (var j = 0, k = b.length; j < k; j++) g.indexOf(" " + b[j] + " ") < 0 && (i += " " + b[j]);
  885.                         f.className = d.trim(i)
  886.                     } else f.className = a
  887.                 }
  888.             }
  889.             return this
  890.         },
  891.         removeClass: function (a) {
  892.             if (d.isFunction(a)) return this.each(function (b) {
  893.                 var c = d(this);
  894.                 c.removeClass(a.call(this, b, c.attr("class")))
  895.             });
  896.             if (a && typeof a === "string" || a === b) {
  897.                 var c = (a || "").split(h);
  898.                 for (var e = 0, f = this.length; e < f; e++) {
  899.                     var i = this[e];
  900.                     if (i.nodeType === 1 && i.className) if (a) {
  901.                         var j = (" " + i.className + " ").replace(g, " ");
  902.                         for (var k = 0, l = c.length; k < l; k++) j = j.replace(" " + c[k] + " ", " ");
  903.                         i.className = d.trim(j)
  904.                     } else i.className = ""
  905.                 }
  906.             }
  907.             return this
  908.         },
  909.         toggleClass: function (a, b) {
  910.             var c = typeof a,
  911.                 e = typeof b === "boolean";
  912.             if (d.isFunction(a)) return this.each(function (c) {
  913.                 var e = d(this);
  914.                 e.toggleClass(a.call(this, c, e.attr("class"), b), b)
  915.             });
  916.             return this.each(function () {
  917.                 if (c === "string") {
  918.                     var f, g = 0,
  919.                         i = d(this),
  920.                         j = b,
  921.                         k = a.split(h);
  922.                     while (f = k[g++]) j = e ? j : !i.hasClass(f), i[j ? "addClass" : "removeClass"](f)
  923.                 } else if (c === "undefined" || c === "boolean") this.className && d._data(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : d._data(this, "__className__") || ""
  924.             })
  925.         },
  926.         hasClass: function (a) {
  927.             var b = " " + a + " ";
  928.             for (var c = 0, d = this.length; c < d; c++) if ((" " + this[c].className + " ").replace(g, " ").indexOf(b) > -1) return !0;
  929.             return !1
  930.         },
  931.         val: function (a) {
  932.             if (!arguments.length) {
  933.                 var c = this[0];
  934.                 if (c) {
  935.                     if (d.nodeName(c, "option")) {
  936.                         var e = c.attributes.value;
  937.                         return !e || e.specified ? c.value : c.text
  938.                     }
  939.                     if (d.nodeName(c, "select")) {
  940.                         var f = c.selectedIndex,
  941.                             g = [],
  942.                             h = c.options,
  943.                             j = c.type === "select-one";
  944.                         if (f < 0) return null;
  945.                         for (var k = j ? f : 0, l = j ? f + 1 : h.length; k < l; k++) {
  946.                             var m = h[k];
  947.                             if (m.selected && (d.support.optDisabled ? !m.disabled : m.getAttribute("disabled") === null) && (!m.parentNode.disabled || !d.nodeName(m.parentNode, "optgroup"))) {
  948.                                 a = d(m).val();
  949.                                 if (j) return a;
  950.                                 g.push(a)
  951.                             }
  952.                         }
  953.                         return g
  954.                     }
  955.                     if (n.test(c.type) && !d.support.checkOn) return c.getAttribute("value") === null ? "on" : c.value;
  956.                     return (c.value || "").replace(i, "")
  957.                 }
  958.                 return b
  959.             }
  960.             var o = d.isFunction(a);
  961.             return this.each(function (b) {
  962.                 var c = d(this),
  963.                     e = a;
  964.                 if (this.nodeType === 1) {
  965.                     o && (e = a.call(this, b, c.val())), e == null ? e = "" : typeof e === "number" ? e += "" : d.isArray(e) && (e = d.map(e, function (a) {
  966.                         return a == null ? "" : a + ""
  967.                     }));
  968.                     if (d.isArray(e) && n.test(this.type)) this.checked = d.inArray(c.val(), e) >= 0;
  969.                     else if (d.nodeName(this, "select")) {
  970.                         var f = d.makeArray(e);
  971.                         d("option", this).each(function () {
  972.                             this.selected = d.inArray(d(this).val(), f) >= 0
  973.                         }), f.length || (this.selectedIndex = -1)
  974.                     } else this.value = e
  975.                 }
  976.             })
  977.         }
  978.     }), d.extend({
  979.         attrFn: {
  980.             val: !0,
  981.             css: !0,
  982.             html: !0,
  983.             text: !0,
  984.             data: !0,
  985.             width: !0,
  986.             height: !0,
  987.             offset: !0
  988.         },
  989.         attr: function (a, c, e, f) {
  990.             if (!a || a.nodeType === 3 || a.nodeType === 8 || a.nodeType === 2) return b;
  991.             if (f && c in d.attrFn) return d(a)[c](e);
  992.             var g = a.nodeType !== 1 || !d.isXMLDoc(a),
  993.                 h = e !== b;
  994.             c = g && d.props[c] || c;
  995.             if (a.nodeType === 1) {
  996.                 var i = j.test(c);
  997.                 if (c === "selected" && !d.support.optSelected) {
  998.                     var n = a.parentNode;
  999.                     n && (n.selectedIndex, n.parentNode && n.parentNode.selectedIndex)
  1000.                 }
  1001.                 if ((c in a || a[c] !== b) && g && !i) {
  1002.                     h && (c === "type" && k.test(a.nodeName) && a.parentNode && d.error("type property can't be changed"), e === null ? a.nodeType === 1 && a.removeAttribute(c) : a[c] = e);
  1003.                     if (d.nodeName(a, "form") && a.getAttributeNode(c)) return a.getAttributeNode(c).nodeValue;
  1004.                     if (c === "tabIndex") {
  1005.                         var o = a.getAttributeNode("tabIndex");
  1006.                         return o && o.specified ? o.value : l.test(a.nodeName) || m.test(a.nodeName) && a.href ? 0 : b
  1007.                     }
  1008.                     return a[c]
  1009.                 }
  1010.                 if (!d.support.style && g && c === "style") {
  1011.                     h && (a.style.cssText = "" + e);
  1012.                     return a.style.cssText
  1013.                 }
  1014.                 h && a.setAttribute(c, "" + e);
  1015.                 if (!a.attributes[c] && (a.hasAttribute && !a.hasAttribute(c))) return b;
  1016.                 var p = !d.support.hrefNormalized && g && i ? a.getAttribute(c, 2) : a.getAttribute(c);
  1017.                 return p === null ? b : p
  1018.             }
  1019.             h && (a[c] = e);
  1020.             return a[c]
  1021.         }
  1022.     });
  1023.     var o = /\.(.*)$/,
  1024.         p = /^(?:textarea|input|select)$/i,
  1025.         q = /\./g,
  1026.         r = / /g,
  1027.         s = /[^\w\s.|`]/g,
  1028.         t = function (a) {
  1029.             return a.replace(s, "\\$&")
  1030.         },
  1031.         u = "events";
  1032.     d.event = {
  1033.         add: function (c, e, f, g) {
  1034.             if (c.nodeType !== 3 && c.nodeType !== 8) {
  1035.                 d.isWindow(c) && (c !== a && !c.frameElement) && (c = a);
  1036.                 if (f === !1) f = v;
  1037.                 else if (!f) return;
  1038.                 var h, i;
  1039.                 f.handler && (h = f, f = h.handler), f.guid || (f.guid = d.guid++);
  1040.                 var j = d._data(c);
  1041.                 if (!j) return;
  1042.                 var k = j[u],
  1043.                     l = j.handle;
  1044.                 typeof k === "function" ? (l = k.handle, k = k.events) : k || (c.nodeType || (j[u] = j = function () {}), j.events = k = {}), l || (j.handle = l = function () {
  1045.                     return typeof d !== "undefined" && !d.event.triggered ? d.event.handle.apply(l.elem, arguments) : b
  1046.                 }), l.elem = c, e = e.split(" ");
  1047.                 var m, n = 0,
  1048.                     o;
  1049.                 while (m = e[n++]) {
  1050.                     i = h ? d.extend({}, h) : {
  1051.                         handler: f,
  1052.                         data: g
  1053.                     }, m.indexOf(".") > -1 ? (o = m.split("."), m = o.shift(), i.namespace = o.slice(0).sort().join(".")) : (o = [], i.namespace = ""), i.type = m, i.guid || (i.guid = f.guid);
  1054.                     var p = k[m],
  1055.                         q = d.event.special[m] || {};
  1056.                     if (!p) {
  1057.                         p = k[m] = [];
  1058.                         if (!q.setup || q.setup.call(c, g, o, l) === !1) c.addEventListener ? c.addEventListener(m, l, !1) : c.attachEvent && c.attachEvent("on" + m, l)
  1059.                     }
  1060.                     q.add && (q.add.call(c, i), i.handler.guid || (i.handler.guid = f.guid)), p.push(i), d.event.global[m] = !0
  1061.                 }
  1062.                 c = null
  1063.             }
  1064.         },
  1065.         global: {},
  1066.         remove: function (a, c, e, f) {
  1067.             if (a.nodeType !== 3 && a.nodeType !== 8) {
  1068.                 e === !1 && (e = v);
  1069.                 var g, h, i, j, k = 0,
  1070.                     l, m, n, o, p, q, r, s = d.hasData(a) && d._data(a),
  1071.                     w = s && s[u];
  1072.                 if (!s || !w) return;
  1073.                 typeof w === "function" && (s = w, w = w.events), c && c.type && (e = c.handler, c = c.type);
  1074.                 if (!c || typeof c === "string" && c.charAt(0) === ".") {
  1075.                     c = c || "";
  1076.                     for (h in w) d.event.remove(a, h + c);
  1077.                     return
  1078.                 }
  1079.                 c = c.split(" ");
  1080.                 while (h = c[k++]) {
  1081.                     r = h, q = null, l = h.indexOf(".") < 0, m = [], l || (m = h.split("."), h = m.shift(), n = new RegExp("(^|\\.)" + d.map(m.slice(0).sort(), t).join("\\.(?:.*\\.)?") + "(\\.|$)")), p = w[h];
  1082.                     if (!p) continue;
  1083.                     if (!e) {
  1084.                         for (j = 0; j < p.length; j++) {
  1085.                             q = p[j];
  1086.                             if (l || n.test(q.namespace)) d.event.remove(a, r, q.handler, j), p.splice(j--, 1)
  1087.                         }
  1088.                         continue
  1089.                     }
  1090.                     o = d.event.special[h] || {};
  1091.                     for (j = f || 0; j < p.length; j++) {
  1092.                         q = p[j];
  1093.                         if (e.guid === q.guid) {
  1094.                             if (l || n.test(q.namespace)) f == null && p.splice(j--, 1), o.remove && o.remove.call(a, q);
  1095.                             if (f != null) break
  1096.                         }
  1097.                     }
  1098.                     if (p.length === 0 || f != null && p.length === 1)(!o.teardown || o.teardown.call(a, m) === !1) && d.removeEvent(a, h, s.handle), g = null, delete w[h]
  1099.                 }
  1100.                 if (d.isEmptyObject(w)) {
  1101.                     var x = s.handle;
  1102.                     x && (x.elem = null), delete s.events, delete s.handle, typeof s === "function" ? d.removeData(a, u, !0) : d.isEmptyObject(s) && d.removeData(a, b, !0)
  1103.                 }
  1104.             }
  1105.         },
  1106.         trigger: function (a, c, e) {
  1107.             var f = a.type || a,
  1108.                 g = arguments[3];
  1109.             if (!g) {
  1110.                 a = typeof a === "object" ? a[d.expando] ? a : d.extend(d.Event(f), a) : d.Event(f), f.indexOf("!") >= 0 && (a.type = f = f.slice(0, -1), a.exclusive = !0), e || (a.stopPropagation(), d.event.global[f] && d.each(d.cache, function () {
  1111.                     var b = d.expando,
  1112.                         e = this[b];
  1113.                     e && e.events && e.events[f] && d.event.trigger(a, c, e.handle.elem)
  1114.                 }));
  1115.                 if (!e || e.nodeType === 3 || e.nodeType === 8) return b;
  1116.                 a.result = b, a.target = e, c = d.makeArray(c), c.unshift(a)
  1117.             }
  1118.             a.currentTarget = e;
  1119.             var h = e.nodeType ? d._data(e, "handle") : (d._data(e, u) || {}).handle;
  1120.             h && h.apply(e, c);
  1121.             var i = e.parentNode || e.ownerDocument;
  1122.             try {
  1123.                 e && e.nodeName && d.noData[e.nodeName.toLowerCase()] || e["on" + f] && e["on" + f].apply(e, c) === !1 && (a.result = !1, a.preventDefault())
  1124.             } catch (j) {}
  1125.             if (!a.isPropagationStopped() && i) d.event.trigger(a, c, i, !0);
  1126.             else if (!a.isDefaultPrevented()) {
  1127.                 var k, l = a.target,
  1128.                     m = f.replace(o, ""),
  1129.                     n = d.nodeName(l, "a") && m === "click",
  1130.                     p = d.event.special[m] || {};
  1131.                 if ((!p._default || p._default.call(e, a) === !1) && !n && !(l && l.nodeName && d.noData[l.nodeName.toLowerCase()])) {
  1132.                     try {
  1133.                         l[m] && (k = l["on" + m], k && (l["on" + m] = null), d.event.triggered = !0, l[m]())
  1134.                     } catch (q) {}
  1135.                     k && (l["on" + m] = k), d.event.triggered = !1
  1136.                 }
  1137.             }
  1138.         },
  1139.         handle: function (c) {
  1140.             var e, f, g, h, i, j = [],
  1141.                 k = d.makeArray(arguments);
  1142.             c = k[0] = d.event.fix(c || a.event), c.currentTarget = this, e = c.type.indexOf(".") < 0 && !c.exclusive, e || (g = c.type.split("."), c.type = g.shift(), j = g.slice(0).sort(), h = new RegExp("(^|\\.)" + j.join("\\.(?:.*\\.)?") + "(\\.|$)")), c.namespace = c.namespace || j.join("."), i = d._data(this, u), typeof i === "function" && (i = i.events), f = (i || {})[c.type];
  1143.             if (i && f) {
  1144.                 f = f.slice(0);
  1145.                 for (var l = 0, m = f.length; l < m; l++) {
  1146.                     var n = f[l];
  1147.                     if (e || h.test(n.namespace)) {
  1148.                         c.handler = n.handler, c.data = n.data, c.handleObj = n;
  1149.                         var o = n.handler.apply(this, k);
  1150.                         o !== b && (c.result = o, o === !1 && (c.preventDefault(), c.stopPropagation()));
  1151.                         if (c.isImmediatePropagationStopped()) break
  1152.                     }
  1153.                 }
  1154.             }
  1155.             return c.result
  1156.         },
  1157.         props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
  1158.         fix: function (a) {
  1159.             if (a[d.expando]) return a;
  1160.             var e = a;
  1161.             a = d.Event(e);
  1162.             for (var f = this.props.length, g; f;) g = this.props[--f], a[g] = e[g];
  1163.             a.target || (a.target = a.srcElement || c), a.target.nodeType === 3 && (a.target = a.target.parentNode), !a.relatedTarget && a.fromElement && (a.relatedTarget = a.fromElement === a.target ? a.toElement : a.fromElement);
  1164.             if (a.pageX == null && a.clientX != null) {
  1165.                 var h = c.documentElement,
  1166.                     i = c.body;
  1167.                 a.pageX = a.clientX + (h && h.scrollLeft || i && i.scrollLeft || 0) - (h && h.clientLeft || i && i.clientLeft || 0), a.pageY = a.clientY + (h && h.scrollTop || i && i.scrollTop || 0) - (h && h.clientTop || i && i.clientTop || 0)
  1168.             }
  1169.             a.which == null && (a.charCode != null || a.keyCode != null) && (a.which = a.charCode != null ? a.charCode : a.keyCode), !a.metaKey && a.ctrlKey && (a.metaKey = a.ctrlKey), !a.which && a.button !== b && (a.which = a.button & 1 ? 1 : a.button & 2 ? 3 : a.button & 4 ? 2 : 0);
  1170.             return a
  1171.         },
  1172.         guid: 1e8,
  1173.         proxy: d.proxy,
  1174.         special: {
  1175.             ready: {
  1176.                 setup: d.bindReady,
  1177.                 teardown: d.noop
  1178.             },
  1179.             live: {
  1180.                 add: function (a) {
  1181.                     d.event.add(this, F(a.origType, a.selector), d.extend({}, a, {
  1182.                         handler: E,
  1183.                         guid: a.handler.guid
  1184.                     }))
  1185.                 },
  1186.                 remove: function (a) {
  1187.                     d.event.remove(this, F(a.origType, a.selector), a)
  1188.                 }
  1189.             },
  1190.             beforeunload: {
  1191.                 setup: function (a, b, c) {
  1192.                     d.isWindow(this) && (this.onbeforeunload = c)
  1193.                 },
  1194.                 teardown: function (a, b) {
  1195.                     this.onbeforeunload === b && (this.onbeforeunload = null)
  1196.                 }
  1197.             }
  1198.         }
  1199.     }, d.removeEvent = c.removeEventListener ?
  1200.     function (a, b, c) {
  1201.         a.removeEventListener && a.removeEventListener(b, c, !1)
  1202.     } : function (a, b, c) {
  1203.         a.detachEvent && a.detachEvent("on" + b, c)
  1204.     }, d.Event = function (a) {
  1205.         if (!this.preventDefault) return new d.Event(a);
  1206.         a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || a.returnValue === !1 || a.getPreventDefault && a.getPreventDefault() ? w : v) : this.type = a, this.timeStamp = d.now(), this[d.expando] = !0
  1207.     }, d.Event.prototype = {
  1208.         preventDefault: function () {
  1209.             this.isDefaultPrevented = w;
  1210.             var a = this.originalEvent;
  1211.             a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1)
  1212.         },
  1213.         stopPropagation: function () {
  1214.             this.isPropagationStopped = w;
  1215.             var a = this.originalEvent;
  1216.             a && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0)
  1217.         },
  1218.         stopImmediatePropagation: function () {
  1219.             this.isImmediatePropagationStopped = w, this.stopPropagation()
  1220.         },
  1221.         isDefaultPrevented: v,
  1222.         isPropagationStopped: v,
  1223.         isImmediatePropagationStopped: v
  1224.     };
  1225.     var x = function (a) {
  1226.             var b = a.relatedTarget;
  1227.             try {
  1228.                 while (b && b !== this) b = b.parentNode;
  1229.                 b !== this && (a.type = a.data, d.event.handle.apply(this, arguments))
  1230.             } catch (c) {}
  1231.         },
  1232.         y = function (a) {
  1233.             a.type = a.data, d.event.handle.apply(this, arguments)
  1234.         };
  1235.     d.each({
  1236.         mouseenter: "mouseover",
  1237.         mouseleave: "mouseout"
  1238.     }, function (a, b) {
  1239.         d.event.special[a] = {
  1240.             setup: function (c) {
  1241.                 d.event.add(this, b, c && c.selector ? y : x, a)
  1242.             },
  1243.             teardown: function (a) {
  1244.                 d.event.remove(this, b, a && a.selector ? y : x)
  1245.             }
  1246.         }
  1247.     }), d.support.submitBubbles || (d.event.special.submit = {
  1248.         setup: function (a, c) {
  1249.             if (this.nodeName && this.nodeName.toLowerCase() !== "form") d.event.add(this, "click.specialSubmit", function (a) {
  1250.                 var c = a.target,
  1251.                     e = c.type;
  1252.                 if ((e === "submit" || e === "image") && d(c).closest("form").length) {
  1253.                     a.liveFired = b;
  1254.                     return C("submit", this, arguments)
  1255.                 }
  1256.             }), d.event.add(this, "keypress.specialSubmit", function (a) {
  1257.                 var c = a.target,
  1258.                     e = c.type;
  1259.                 if ((e === "text" || e === "password") && d(c).closest("form").length && a.keyCode === 13) {
  1260.                     a.liveFired = b;
  1261.                     return C("submit", this, arguments)
  1262.                 }
  1263.             });
  1264.             else return !1
  1265.         },
  1266.         teardown: function (a) {
  1267.             d.event.remove(this, ".specialSubmit")
  1268.         }
  1269.     });
  1270.     if (!d.support.changeBubbles) {
  1271.         var z, A = function (a) {
  1272.                 var b = a.type,
  1273.                     c = a.value;
  1274.                 b === "radio" || b === "checkbox" ? c = a.checked : b === "select-multiple" ? c = a.selectedIndex > -1 ? d.map(a.options, function (a) {
  1275.                     return a.selected
  1276.                 }).join("-") : "" : a.nodeName.toLowerCase() === "select" && (c = a.selectedIndex);
  1277.                 return c
  1278.             },
  1279.             B = function B(a) {
  1280.                 var c = a.target,
  1281.                     e, f;
  1282.                 if (p.test(c.nodeName) && !c.readOnly) {
  1283.                     e = d._data(c, "_change_data"), f = A(c), (a.type !== "focusout" || c.type !== "radio") && d._data(c, "_change_data", f);
  1284.                     if (e === b || f === e) return;
  1285.                     if (e != null || f) {
  1286.                         a.type = "change", a.liveFired = b;
  1287.                         return d.event.trigger(a, arguments[1], c)
  1288.                     }
  1289.                 }
  1290.             };
  1291.         d.event.special.change = {
  1292.             filters: {
  1293.                 focusout: B,
  1294.                 beforedeactivate: B,
  1295.                 click: function (a) {
  1296.                     var b = a.target,
  1297.                         c = b.type;
  1298.                     if (c === "radio" || c === "checkbox" || b.nodeName.toLowerCase() === "select") return B.call(this, a)
  1299.                 },
  1300.                 keydown: function (a) {
  1301.                     var b = a.target,
  1302.                         c = b.type;
  1303.                     if (a.keyCode === 13 && b.nodeName.toLowerCase() !== "textarea" || a.keyCode === 32 && (c === "checkbox" || c === "radio") || c === "select-multiple") return B.call(this, a)
  1304.                 },
  1305.                 beforeactivate: function (a) {
  1306.                     var b = a.target;
  1307.                     d._data(b, "_change_data", A(b))
  1308.                 }
  1309.             },
  1310.             setup: function (a, b) {
  1311.                 if (this.type === "file") return !1;
  1312.                 for (var c in z) d.event.add(this, c + ".specialChange", z[c]);
  1313.                 return p.test(this.nodeName)
  1314.             },
  1315.             teardown: function (a) {
  1316.                 d.event.remove(this, ".specialChange");
  1317.                 return p.test(this.nodeName)
  1318.             }
  1319.         }, z = d.event.special.change.filters, z.focus = z.beforeactivate
  1320.     }
  1321.     c.addEventListener && d.each({
  1322.         focus: "focusin",
  1323.         blur: "focusout"
  1324.     }, function (a, b) {
  1325.         function c(a) {
  1326.             a = d.event.fix(a), a.type = b;
  1327.             return d.event.handle.call(this, a)
  1328.         }
  1329.         d.event.special[b] = {
  1330.             setup: function () {
  1331.                 this.addEventListener(a, c, !0)
  1332.             },
  1333.             teardown: function () {
  1334.                 this.removeEventListener(a, c, !0)
  1335.             }
  1336.         }
  1337.     }), d.each(["bind", "one"], function (a, c) {
  1338.         d.fn[c] = function (a, e, f) {
  1339.             if (typeof a === "object") {
  1340.                 for (var g in a) this[c](g, e, a[g], f);
  1341.                 return this
  1342.             }
  1343.             if (d.isFunction(e) || e === !1) f = e, e = b;
  1344.             var h = c === "one" ? d.proxy(f, function (a) {
  1345.                 d(this).unbind(a, h);
  1346.                 return f.apply(this, arguments)
  1347.             }) : f;
  1348.             if (a === "unload" && c !== "one") this.one(a, e, f);
  1349.             else for (var i = 0, j = this.length; i < j; i++) d.event.add(this[i], a, h, e);
  1350.             return this
  1351.         }
  1352.     }), d.fn.extend({
  1353.         unbind: function (a, b) {
  1354.             if (typeof a !== "object" || a.preventDefault) for (var e = 0, f = this.length; e < f; e++) d.event.remove(this[e], a, b);
  1355.             else for (var c in a) this.unbind(c, a[c]);
  1356.             return this
  1357.         },
  1358.         delegate: function (a, b, c, d) {
  1359.             return this.live(b, c, d, a)
  1360.         },
  1361.         undelegate: function (a, b, c) {
  1362.             return arguments.length === 0 ? this.unbind("live") : this.die(b, null, c, a)
  1363.         },
  1364.         trigger: function (a, b) {
  1365.             return this.each(function () {
  1366.                 d.event.trigger(a, b, this)
  1367.             })
  1368.         },
  1369.         triggerHandler: function (a, b) {
  1370.             if (this[0]) {
  1371.                 var c = d.Event(a);
  1372.                 c.preventDefault(), c.stopPropagation(), d.event.trigger(c, b, this[0]);
  1373.                 return c.result
  1374.             }
  1375.         },
  1376.         toggle: function (a) {
  1377.             var b = arguments,
  1378.                 c = 1;
  1379.             while (c < b.length) d.proxy(a, b[c++]);
  1380.             return this.click(d.proxy(a, function (e) {
  1381.                 var f = (d._data(this, "lastToggle" + a.guid) || 0) % c;
  1382.                 d._data(this, "lastToggle" + a.guid, f + 1), e.preventDefault();
  1383.                 return b[f].apply(this, arguments) || !1
  1384.             }))
  1385.         },
  1386.         hover: function (a, b) {
  1387.             return this.mouseenter(a).mouseleave(b || a)
  1388.         }
  1389.     });
  1390.     var D = {
  1391.         focus: "focusin",
  1392.         blur: "focusout",
  1393.         mouseenter: "mouseover",
  1394.         mouseleave: "mouseout"
  1395.     };
  1396.     d.each(["live", "die"], function (a, c) {
  1397.         d.fn[c] = function (a, e, f, g) {
  1398.             var h, i = 0,
  1399.                 j, k, l, m = g || this.selector,
  1400.                 n = g ? this : d(this.context);
  1401.             if (typeof a === "object" && !a.preventDefault) {
  1402.                 for (var p in a) n[c](p, e, a[p], m);
  1403.                 return this
  1404.             }
  1405.             d.isFunction(e) && (f = e, e = b), a = (a || "").split(" ");
  1406.             while ((h = a[i++]) != null) {
  1407.                 j = o.exec(h), k = "", j && (k = j[0], h = h.replace(o, ""));
  1408.                 if (h === "hover") {
  1409.                     a.push("mouseenter" + k, "mouseleave" + k);
  1410.                     continue
  1411.                 }
  1412.                 l = h, h === "focus" || h === "blur" ? (a.push(D[h] + k), h = h + k) : h = (D[h] || h) + k;
  1413.                 if (c === "live") for (var q = 0, r = n.length; q < r; q++) d.event.add(n[q], "live." + F(h, m), {
  1414.                     data: e,
  1415.                     selector: m,
  1416.                     handler: f,
  1417.                     origType: h,
  1418.                     origHandler: f,
  1419.                     preType: l
  1420.                 });
  1421.                 else n.unbind("live." + F(h, m), f)
  1422.             }
  1423.             return this
  1424.         }
  1425.     }), d.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".split(" "), function (a, b) {
  1426.         d.fn[b] = function (a, c) {
  1427.             c == null && (c = a, a = null);
  1428.             return arguments.length > 0 ? this.bind(b, a, c) : this.trigger(b)
  1429.         }, d.attrFn && (d.attrFn[b] = !0)
  1430.     }), function () {
  1431.         function s(a, b, c, d, e, f) {
  1432.             for (var g = 0, h = d.length; g < h; g++) {
  1433.                 var j = d[g];
  1434.                 if (j) {
  1435.                     var k = !1;
  1436.                     j = j[a];
  1437.                     while (j) {
  1438.                         if (j.sizcache === c) {
  1439.                             k = d[j.sizset];
  1440.                             break
  1441.                         }
  1442.                         if (j.nodeType === 1) {
  1443.                             f || (j.sizcache = c, j.sizset = g);
  1444.                             if (typeof b !== "string") {
  1445.                                 if (j === b) {
  1446.                                     k = !0;
  1447.                                     break
  1448.                                 }
  1449.                             } else if (i.filter(b, [j]).length > 0) {
  1450.                                 k = j;
  1451.                                 break
  1452.                             }
  1453.                         }
  1454.                         j = j[a]
  1455.                     }
  1456.                     d[g] = k
  1457.                 }
  1458.             }
  1459.         }
  1460.         function r(a, b, c, d, e, f) {
  1461.             for (var g = 0, h = d.length; g < h; g++) {
  1462.                 var i = d[g];
  1463.                 if (i) {
  1464.                     var j = !1;
  1465.                     i = i[a];
  1466.                     while (i) {
  1467.                         if (i.sizcache === c) {
  1468.                             j = d[i.sizset];
  1469.                             break
  1470.                         }
  1471.                         i.nodeType === 1 && !f && (i.sizcache = c, i.sizset = g);
  1472.                         if (i.nodeName.toLowerCase() === b) {
  1473.                             j = i;
  1474.                             break
  1475.                         }
  1476.                         i = i[a]
  1477.                     }
  1478.                     d[g] = j
  1479.                 }
  1480.             }
  1481.         }
  1482.         var a = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
  1483.             e = 0,
  1484.             f = Object.prototype.toString,
  1485.             g = !1,
  1486.             h = !0;
  1487.         [0, 0].sort(function () {
  1488.             h = !1;
  1489.             return 0
  1490.         });
  1491.         var i = function (b, d, e, g) {
  1492.                 e = e || [], d = d || c;
  1493.                 var h = d;
  1494.                 if (d.nodeType !== 1 && d.nodeType !== 9) return [];
  1495.                 if (!b || typeof b !== "string") return e;
  1496.                 var l, m, o, p, q, r, s, u, v = !0,
  1497.                     w = i.isXML(d),
  1498.                     x = [],
  1499.                     y = b;
  1500.                 do {
  1501.                     a.exec(""), l = a.exec(y);
  1502.                     if (l) {
  1503.                         y = l[3], x.push(l[1]);
  1504.                         if (l[2]) {
  1505.                             p = l[3];
  1506.                             break
  1507.                         }
  1508.                     }
  1509.                 } while (l);
  1510.                 if (x.length > 1 && k.exec(b)) if (x.length === 2 && j.relative[x[0]]) m = t(x[0] + x[1], d);
  1511.                 else {
  1512.                     m = j.relative[x[0]] ? [d] : i(x.shift(), d);
  1513.                     while (x.length) b = x.shift(), j.relative[b] && (b += x.shift()), m = t(b, m)
  1514.                 } else {
  1515.                     !g && x.length > 1 && d.nodeType === 9 && !w && j.match.ID.test(x[0]) && !j.match.ID.test(x[x.length - 1]) && (q = i.find(x.shift(), d, w), d = q.expr ? i.filter(q.expr, q.set)[0] : q.set[0]);
  1516.                     if (d) {
  1517.                         q = g ? {
  1518.                             expr: x.pop(),
  1519.                             set: n(g)
  1520.                         } : i.find(x.pop(), x.length === 1 && (x[0] === "~" || x[0] === "+") && d.parentNode ? d.parentNode : d, w), m = q.expr ? i.filter(q.expr, q.set) : q.set, x.length > 0 ? o = n(m) : v = !1;
  1521.                         while (x.length) r = x.pop(), s = r, j.relative[r] ? s = x.pop() : r = "", s == null && (s = d), j.relative[r](o, s, w)
  1522.                     } else o = x = []
  1523.                 }
  1524.                 o || (o = m), o || i.error(r || b);
  1525.                 if (f.call(o) === "[object Array]") if (v) if (d && d.nodeType === 1) for (u = 0; o[u] != null; u++) o[u] && (o[u] === !0 || o[u].nodeType === 1 && i.contains(d, o[u])) && e.push(m[u]);
  1526.                 else for (u = 0; o[u] != null; u++) o[u] && o[u].nodeType === 1 && e.push(m[u]);
  1527.                 else e.push.apply(e, o);
  1528.                 else n(o, e);
  1529.                 p && (i(p, h, e, g), i.uniqueSort(e));
  1530.                 return e
  1531.             };
  1532.         i.uniqueSort = function (a) {
  1533.             if (p) {
  1534.                 g = h, a.sort(p);
  1535.                 if (g) for (var b = 1; b < a.length; b++) a[b] === a[b - 1] && a.splice(b--, 1)
  1536.             }
  1537.             return a
  1538.         }, i.matches = function (a, b) {
  1539.             return i(a, null, null, b)
  1540.         }, i.matchesSelector = function (a, b) {
  1541.             return i(b, null, null, [a]).length > 0
  1542.         }, i.find = function (a, b, c) {
  1543.             var d;
  1544.             if (!a) return [];
  1545.             for (var e = 0, f = j.order.length; e < f; e++) {
  1546.                 var g, h = j.order[e];
  1547.                 if (g = j.leftMatch[h].exec(a)) {
  1548.                     var i = g[1];
  1549.                     g.splice(1, 1);
  1550.                     if (i.substr(i.length - 1) !== "\\") {
  1551.                         g[1] = (g[1] || "").replace(/\\/g, ""), d = j.find[h](g, b, c);
  1552.                         if (d != null) {
  1553.                             a = a.replace(j.match[h], "");
  1554.                             break
  1555.                         }
  1556.                     }
  1557.                 }
  1558.             }
  1559.             d || (d = typeof b.getElementsByTagName !== "undefined" ? b.getElementsByTagName("*") : []);
  1560.             return {
  1561.                 set: d,
  1562.                 expr: a
  1563.             }
  1564.         }, i.filter = function (a, c, d, e) {
  1565.             var f, g, h = a,
  1566.                 k = [],
  1567.                 l = c,
  1568.                 m = c && c[0] && i.isXML(c[0]);
  1569.             while (a && c.length) {
  1570.                 for (var n in j.filter) if ((f = j.leftMatch[n].exec(a)) != null && f[2]) {
  1571.                     var o, p, q = j.filter[n],
  1572.                         r = f[1];
  1573.                     g = !1, f.splice(1, 1);
  1574.                     if (r.substr(r.length - 1) === "\\") continue;
  1575.                     l === k && (k = []);
  1576.                     if (j.preFilter[n]) {
  1577.                         f = j.preFilter[n](f, l, d, k, e, m);
  1578.                         if (f) {
  1579.                             if (f === !0) continue
  1580.                         } else g = o = !0
  1581.                     }
  1582.                     if (f) for (var s = 0;
  1583.                     (p = l[s]) != null; s++) if (p) {
  1584.                         o = q(p, f, s, l);
  1585.                         var t = e ^ !! o;
  1586.                         d && o != null ? t ? g = !0 : l[s] = !1 : t && (k.push(p), g = !0)
  1587.                     }
  1588.                     if (o !== b) {
  1589.                         d || (l = k), a = a.replace(j.match[n], "");
  1590.                         if (!g) return [];
  1591.                         break
  1592.                     }
  1593.                 }
  1594.                 if (a === h) if (g == null) i.error(a);
  1595.                 else break;
  1596.                 h = a
  1597.             }
  1598.             return l
  1599.         }, i.error = function (a) {
  1600.             throw "Syntax error, unrecognized expression: " + a
  1601.         };
  1602.         var j = i.selectors = {
  1603.             order: ["ID", "NAME", "TAG"],
  1604.             match: {
  1605.                 ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
  1606.                 CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
  1607.                 NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
  1608.                 ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
  1609.                 TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
  1610.                 CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
  1611.                 POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
  1612.                 PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
  1613.             },
  1614.             leftMatch: {},
  1615.             attrMap: {
  1616.                 "class": "className",
  1617.                 "for": "htmlFor"
  1618.             },
  1619.             attrHandle: {
  1620.                 href: function (a) {
  1621.                     return a.getAttribute("href")
  1622.                 }
  1623.             },
  1624.             relative: {
  1625.                 "+": function (a, b) {
  1626.                     var c = typeof b === "string",
  1627.                         d = c && !/\W/.test(b),
  1628.                         e = c && !d;
  1629.                     d && (b = b.toLowerCase());
  1630.                     for (var f = 0, g = a.length, h; f < g; f++) if (h = a[f]) {
  1631.                         while ((h = h.previousSibling) && h.nodeType !== 1) {}
  1632.                         a[f] = e || h && h.nodeName.toLowerCase() === b ? h || !1 : h === b
  1633.                     }
  1634.                     e && i.filter(b, a, !0)
  1635.                 },
  1636.                 ">": function (a, b) {
  1637.                     var c, d = typeof b === "string",
  1638.                         e = 0,
  1639.                         f = a.length;
  1640.                     if (d && !/\W/.test(b)) {
  1641.                         b = b.toLowerCase();
  1642.                         for (; e < f; e++) {
  1643.                             c = a[e];
  1644.                             if (c) {
  1645.                                 var g = c.parentNode;
  1646.                                 a[e] = g.nodeName.toLowerCase() === b ? g : !1
  1647.                             }
  1648.                         }
  1649.                     } else {
  1650.                         for (; e < f; e++) c = a[e], c && (a[e] = d ? c.parentNode : c.parentNode === b);
  1651.                         d && i.filter(b, a, !0)
  1652.                     }
  1653.                 },
  1654.                 "": function (a, b, c) {
  1655.                     var d, f = e++,
  1656.                         g = s;
  1657.                     typeof b === "string" && !/\W/.test(b) && (b = b.toLowerCase(), d = b, g = r), g("parentNode", b, f, a, d, c)
  1658.                 },
  1659.                 "~": function (a, b, c) {
  1660.                     var d, f = e++,
  1661.                         g = s;
  1662.                     typeof b === "string" && !/\W/.test(b) && (b = b.toLowerCase(), d = b, g = r), g("previousSibling", b, f, a, d, c)
  1663.                 }
  1664.             },
  1665.             find: {
  1666.                 ID: function (a, b, c) {
  1667.                     if (typeof b.getElementById !== "undefined" && !c) {
  1668.                         var d = b.getElementById(a[1]);
  1669.                         return d && d.parentNode ? [d] : []
  1670.                     }
  1671.                 },
  1672.                 NAME: function (a, b) {
  1673.                     if (typeof b.getElementsByName !== "undefined") {
  1674.                         var c = [],
  1675.                             d = b.getElementsByName(a[1]);
  1676.                         for (var e = 0, f = d.length; e < f; e++) d[e].getAttribute("name") === a[1] && c.push(d[e]);
  1677.                         return c.length === 0 ? null : c
  1678.                     }
  1679.                 },
  1680.                 TAG: function (a, b) {
  1681.                     if (typeof b.getElementsByTagName !== "undefined") return b.getElementsByTagName(a[1])
  1682.                 }
  1683.             },
  1684.             preFilter: {
  1685.                 CLASS: function (a, b, c, d, e, f) {
  1686.                     a = " " + a[1].replace(/\\/g, "") + " ";
  1687.                     if (f) return a;
  1688.                     for (var g = 0, h;
  1689.                     (h = b[g]) != null; g++) h && (e ^ (h.className && (" " + h.className + " ").replace(/[\t\n\r]/g, " ").indexOf(a) >= 0) ? c || d.push(h) : c && (b[g] = !1));
  1690.                     return !1
  1691.                 },
  1692.                 ID: function (a) {
  1693.                     return a[1].replace(/\\/g, "")
  1694.                 },
  1695.                 TAG: function (a, b) {
  1696.                     return a[1].toLowerCase()
  1697.                 },
  1698.                 CHILD: function (a) {
  1699.                     if (a[1] === "nth") {
  1700.                         a[2] || i.error(a[0]), a[2] = a[2].replace(/^\+|\s*/g, "");
  1701.                         var b = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2] === "even" && "2n" || a[2] === "odd" && "2n+1" || !/\D/.test(a[2]) && "0n+" + a[2] || a[2]);
  1702.                         a[2] = b[1] + (b[2] || 1) - 0, a[3] = b[3] - 0
  1703.                     } else a[2] && i.error(a[0]);
  1704.                     a[0] = e++;
  1705.                     return a
  1706.                 },
  1707.                 ATTR: function (a, b, c, d, e, f) {
  1708.                     var g = a[1] = a[1].replace(/\\/g, "");
  1709.                     !f && j.attrMap[g] && (a[1] = j.attrMap[g]), a[4] = (a[4] || a[5] || "").replace(/\\/g, ""), a[2] === "~=" && (a[4] = " " + a[4] + " ");
  1710.                     return a
  1711.                 },
  1712.                 PSEUDO: function (b, c, d, e, f) {
  1713.                     if (b[1] === "not") if ((a.exec(b[3]) || "").length > 1 || /^\w/.test(b[3])) b[3] = i(b[3], null, null, c);
  1714.                     else {
  1715.                         var g = i.filter(b[3], c, d, !0 ^ f);
  1716.                         d || e.push.apply(e, g);
  1717.                         return !1
  1718.                     } else if (j.match.POS.test(b[0]) || j.match.CHILD.test(b[0])) return !0;
  1719.                     return b
  1720.                 },
  1721.                 POS: function (a) {
  1722.                     a.unshift(!0);
  1723.                     return a
  1724.                 }
  1725.             },
  1726.             filters: {
  1727.                 enabled: function (a) {
  1728.                     return a.disabled === !1 && a.type !== "hidden"
  1729.                 },
  1730.                 disabled: function (a) {
  1731.                     return a.disabled === !0
  1732.                 },
  1733.                 checked: function (a) {
  1734.                     return a.checked === !0
  1735.                 },
  1736.                 selected: function (a) {
  1737.                     a.parentNode.selectedIndex;
  1738.                     return a.selected === !0
  1739.                 },
  1740.                 parent: function (a) {
  1741.                     return !!a.firstChild
  1742.                 },
  1743.                 empty: function (a) {
  1744.                     return !a.firstChild
  1745.                 },
  1746.                 has: function (a, b, c) {
  1747.                     return !!i(c[3], a).length
  1748.                 },
  1749.                 header: function (a) {
  1750.                     return /h\d/i.test(a.nodeName)
  1751.                 },
  1752.                 text: function (a) {
  1753.                     return "text" === a.type
  1754.                 },
  1755.                 radio: function (a) {
  1756.                     return "radio" === a.type
  1757.                 },
  1758.                 checkbox: function (a) {
  1759.                     return "checkbox" === a.type
  1760.                 },
  1761.                 file: function (a) {
  1762.                     return "file" === a.type
  1763.                 },
  1764.                 password: function (a) {
  1765.                     return "password" === a.type
  1766.                 },
  1767.                 submit: function (a) {
  1768.                     return "submit" === a.type
  1769.                 },
  1770.                 image: function (a) {
  1771.                     return "image" === a.type
  1772.                 },
  1773.                 reset: function (a) {
  1774.                     return "reset" === a.type
  1775.                 },
  1776.                 button: function (a) {
  1777.                     return "button" === a.type || a.nodeName.toLowerCase() === "button"
  1778.                 },
  1779.                 input: function (a) {
  1780.                     return /input|select|textarea|button/i.test(a.nodeName)
  1781.                 }
  1782.             },
  1783.             setFilters: {
  1784.                 first: function (a, b) {
  1785.                     return b === 0
  1786.                 },
  1787.                 last: function (a, b, c, d) {
  1788.                     return b === d.length - 1
  1789.                 },
  1790.                 even: function (a, b) {
  1791.                     return b % 2 === 0
  1792.                 },
  1793.                 odd: function (a, b) {
  1794.                     return b % 2 === 1
  1795.                 },
  1796.                 lt: function (a, b, c) {
  1797.                     return b < c[3] - 0
  1798.                 },
  1799.                 gt: function (a, b, c) {
  1800.                     return b > c[3] - 0
  1801.                 },
  1802.                 nth: function (a, b, c) {
  1803.                     return c[3] - 0 === b
  1804.                 },
  1805.                 eq: function (a, b, c) {
  1806.                     return c[3] - 0 === b
  1807.                 }
  1808.             },
  1809.             filter: {
  1810.                 PSEUDO: function (a, b, c, d) {
  1811.                     var e = b[1],
  1812.                         f = j.filters[e];
  1813.                     if (f) return f(a, c, b, d);
  1814.                     if (e === "contains") return (a.textContent || a.innerText || i.getText([a]) || "").indexOf(b[3]) >= 0;
  1815.                     if (e === "not") {
  1816.                         var g = b[3];
  1817.                         for (var h = 0, k = g.length; h < k; h++) if (g[h] === a) return !1;
  1818.                         return !0
  1819.                     }
  1820.                     i.error(e)
  1821.                 },
  1822.                 CHILD: function (a, b) {
  1823.                     var c = b[1],
  1824.                         d = a;
  1825.                     switch (c) {
  1826.                     case "only":
  1827.                     case "first":
  1828.                         while (d = d.previousSibling) if (d.nodeType === 1) return !1;
  1829.                         if (c === "first") return !0;
  1830.                         d = a;
  1831.                     case "last":
  1832.                         while (d = d.nextSibling) if (d.nodeType === 1) return !1;
  1833.                         return !0;
  1834.                     case "nth":
  1835.                         var e = b[2],
  1836.                             f = b[3];
  1837.                         if (e === 1 && f === 0) return !0;
  1838.                         var g = b[0],
  1839.                             h = a.parentNode;
  1840.                         if (h && (h.sizcache !== g || !a.nodeIndex)) {
  1841.                             var i = 0;
  1842.                             for (d = h.firstChild; d; d = d.nextSibling) d.nodeType === 1 && (d.nodeIndex = ++i);
  1843.                             h.sizcache = g
  1844.                         }
  1845.                         var j = a.nodeIndex - f;
  1846.                         return e === 0 ? j === 0 : j % e === 0 && j / e >= 0
  1847.                     }
  1848.                 },
  1849.                 ID: function (a, b) {
  1850.                     return a.nodeType === 1 && a.getAttribute("id") === b
  1851.                 },
  1852.                 TAG: function (a, b) {
  1853.                     return b === "*" && a.nodeType === 1 || a.nodeName.toLowerCase() === b
  1854.                 },
  1855.                 CLASS: function (a, b) {
  1856.                     return (" " + (a.className || a.getAttribute("class")) + " ").indexOf(b) > -1
  1857.                 },
  1858.                 ATTR: function (a, b) {
  1859.                     var c = b[1],
  1860.                         d = j.attrHandle[c] ? j.attrHandle[c](a) : a[c] != null ? a[c] : a.getAttribute(c),
  1861.                         e = d + "",
  1862.                         f = b[2],
  1863.                         g = b[4];
  1864.                     return d == null ? f === "!=" : f === "=" ? e === g : f === "*=" ? e.indexOf(g) >= 0 : f === "~=" ? (" " + e + " ").indexOf(g) >= 0 : g ? f === "!=" ? e !== g : f === "^=" ? e.indexOf(g) === 0 : f === "$=" ? e.substr(e.length - g.length) === g : f === "|=" ? e === g || e.substr(0, g.length + 1) === g + "-" : !1 : e && d !== !1
  1865.                 },
  1866.                 POS: function (a, b, c, d) {
  1867.                     var e = b[2],
  1868.                         f = j.setFilters[e];
  1869.                     if (f) return f(a, c, b, d)
  1870.                 }
  1871.             }
  1872.         },
  1873.             k = j.match.POS,
  1874.             l = function (a, b) {
  1875.                 return "\\" + (b - 0 + 1)
  1876.             };
  1877.         for (var m in j.match) j.match[m] = new RegExp(j.match[m].source + /(?![^\[]*\])(?![^\(]*\))/.source), j.leftMatch[m] = new RegExp(/(^(?:.|\r|\n)*?)/.source + j.match[m].source.replace(/\\(\d+)/g, l));
  1878.         var n = function (a, b) {
  1879.                 a = Array.prototype.slice.call(a, 0);
  1880.                 if (b) {
  1881.                     b.push.apply(b, a);
  1882.                     return b
  1883.                 }
  1884.                 return a
  1885.             };
  1886.         try {
  1887.             Array.prototype.slice.call(c.documentElement.childNodes, 0)[0].nodeType
  1888.         } catch (o) {
  1889.             n = function (a, b) {
  1890.                 var c = 0,
  1891.                     d = b || [];
  1892.                 if (f.call(a) === "[object Array]") Array.prototype.push.apply(d, a);
  1893.                 else if (typeof a.length === "number") for (var e = a.length; c < e; c++) d.push(a[c]);
  1894.                 else for (; a[c]; c++) d.push(a[c]);
  1895.                 return d
  1896.             }
  1897.         }
  1898.         var p, q;
  1899.         c.documentElement.compareDocumentPosition ? p = function (a, b) {
  1900.             if (a === b) {
  1901.                 g = !0;
  1902.                 return 0
  1903.             }
  1904.             if (!a.compareDocumentPosition || !b.compareDocumentPosition) return a.compareDocumentPosition ? -1 : 1;
  1905.             return a.compareDocumentPosition(b) & 4 ? -1 : 1
  1906.         } : (p = function (a, b) {
  1907.             var c, d, e = [],
  1908.                 f = [],
  1909.                 h = a.parentNode,
  1910.                 i = b.parentNode,
  1911.                 j = h;
  1912.             if (a === b) {
  1913.                 g = !0;
  1914.                 return 0
  1915.             }
  1916.             if (h === i) return q(a, b);
  1917.             if (!h) return -1;
  1918.             if (!i) return 1;
  1919.             while (j) e.unshift(j), j = j.parentNode;
  1920.             j = i;
  1921.             while (j) f.unshift(j), j = j.parentNode;
  1922.             c = e.length, d = f.length;
  1923.             for (var k = 0; k < c && k < d; k++) if (e[k] !== f[k]) return q(e[k], f[k]);
  1924.             return k === c ? q(a, f[k], -1) : q(e[k], b, 1)
  1925.         }, q = function (a, b, c) {
  1926.             if (a === b) return c;
  1927.             var d = a.nextSibling;
  1928.             while (d) {
  1929.                 if (d === b) return -1;
  1930.                 d = d.nextSibling
  1931.             }
  1932.             return 1
  1933.         }), i.getText = function (a) {
  1934.             var b = "",
  1935.                 c;
  1936.             for (var d = 0; a[d]; d++) c = a[d], c.nodeType === 3 || c.nodeType === 4 ? b += c.nodeValue : c.nodeType !== 8 && (b += i.getText(c.childNodes));
  1937.             return b
  1938.         }, function () {
  1939.             var a = c.createElement("div"),
  1940.                 d = "script" + (new Date).getTime(),
  1941.                 e = c.documentElement;
  1942.             a.innerHTML = "<a name='" + d + "'/>", e.insertBefore(a, e.firstChild), c.getElementById(d) && (j.find.ID = function (a, c, d) {
  1943.                 if (typeof c.getElementById !== "undefined" && !d) {
  1944.                     var e = c.getElementById(a[1]);
  1945.                     return e ? e.id === a[1] || typeof e.getAttributeNode !== "undefined" && e.getAttributeNode("id").nodeValue === a[1] ? [e] : b : []
  1946.                 }
  1947.             }, j.filter.ID = function (a, b) {
  1948.                 var c = typeof a.getAttributeNode !== "undefined" && a.getAttributeNode("id");
  1949.                 return a.nodeType === 1 && c && c.nodeValue === b
  1950.             }), e.removeChild(a), e = a = null
  1951.         }(), function () {
  1952.             var a = c.createElement("div");
  1953.             a.appendChild(c.createComment("")), a.getElementsByTagName("*").length > 0 && (j.find.TAG = function (a, b) {
  1954.                 var c = b.getElementsByTagName(a[1]);
  1955.                 if (a[1] === "*") {
  1956.                     var d = [];
  1957.                     for (var e = 0; c[e]; e++) c[e].nodeType === 1 && d.push(c[e]);
  1958.                     c = d
  1959.                 }
  1960.                 return c
  1961.             }), a.innerHTML = "<a href='#'></a>", a.firstChild && typeof a.firstChild.getAttribute !== "undefined" && a.firstChild.getAttribute("href") !== "#" && (j.attrHandle.href = function (a) {
  1962.                 return a.getAttribute("href", 2)
  1963.             }), a = null
  1964.         }(), c.querySelectorAll &&
  1965.         function () {
  1966.             var a = i,
  1967.                 b = c.createElement("div"),
  1968.                 d = "__sizzle__";
  1969.             b.innerHTML = "<p class='TEST'></p>";
  1970.             if (!b.querySelectorAll || b.querySelectorAll(".TEST").length !== 0) {
  1971.                 i = function (b, e, f, g) {
  1972.                     e = e || c;
  1973.                     if (!g && !i.isXML(e)) {
  1974.                         var h = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);
  1975.                         if (h && (e.nodeType === 1 || e.nodeType === 9)) {
  1976.                             if (h[1]) return n(e.getElementsByTagName(b), f);
  1977.                             if (h[2] && j.find.CLASS && e.getElementsByClassName) return n(e.getElementsByClassName(h[2]), f)
  1978.                         }
  1979.                         if (e.nodeType === 9) {
  1980.                             if (b === "body" && e.body) return n([e.body], f);
  1981.                             if (h && h[3]) {
  1982.                                 var k = e.getElementById(h[3]);
  1983.                                 if (!k || !k.parentNode) return n([], f);
  1984.                                 if (k.id === h[3]) return n([k], f)
  1985.                             }
  1986.                             try {
  1987.                                 return n(e.querySelectorAll(b), f)
  1988.                             } catch (l) {}
  1989.                         } else if (e.nodeType === 1 && e.nodeName.toLowerCase() !== "object") {
  1990.                             var m = e.getAttribute("id"),
  1991.                                 o = m || d,
  1992.                                 p = e.parentNode,
  1993.                                 q = /^\s*[+~]/.test(b);
  1994.                             m ? o = o.replace(/'/g, "\\$&") : e.setAttribute("id", o), q && p && (e = e.parentNode);
  1995.                             try {
  1996.                                 if (!q || p) return n(e.querySelectorAll("[id='" + o + "'] " + b), f)
  1997.                             } catch (r) {} finally {
  1998.                                 m || e.removeAttribute("id")
  1999.                             }
  2000.                         }
  2001.                     }
  2002.                     return a(b, e, f, g)
  2003.                 };
  2004.                 for (var e in a) i[e] = a[e];
  2005.                 b = null
  2006.             }
  2007.         }(), function () {
  2008.             var a = c.documentElement,
  2009.                 b = a.matchesSelector || a.mozMatchesSelector || a.webkitMatchesSelector || a.msMatchesSelector,
  2010.                 d = !1;
  2011.             try {
  2012.                 b.call(c.documentElement, "[test!='']:sizzle")
  2013.             } catch (e) {
  2014.                 d = !0
  2015.             }
  2016.             b && (i.matchesSelector = function (a, c) {
  2017.                 c = c.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
  2018.                 if (!i.isXML(a)) try {
  2019.                     if (d || !j.match.PSEUDO.test(c) && !/!=/.test(c)) return b.call(a, c)
  2020.                 } catch (e) {}
  2021.                 return i(c, null, null, [a]).length > 0
  2022.             })
  2023.         }(), function () {
  2024.             var a = c.createElement("div");
  2025.             a.innerHTML = "<div class='test e'></div><div class='test'></div>";
  2026.             if (a.getElementsByClassName && a.getElementsByClassName("e").length !== 0) {
  2027.                 a.lastChild.className = "e";
  2028.                 if (a.getElementsByClassName("e").length === 1) return;
  2029.                 j.order.splice(1, 0, "CLASS"), j.find.CLASS = function (a, b, c) {
  2030.                     if (typeof b.getElementsByClassName !== "undefined" && !c) return b.getElementsByClassName(a[1])
  2031.                 }, a = null
  2032.             }
  2033.         }(), c.documentElement.contains ? i.contains = function (a, b) {
  2034.             return a !== b && (a.contains ? a.contains(b) : !0)
  2035.         } : c.documentElement.compareDocumentPosition ? i.contains = function (a, b) {
  2036.             return !!(a.compareDocumentPosition(b) & 16)
  2037.         } : i.contains = function () {
  2038.             return !1
  2039.         }, i.isXML = function (a) {
  2040.             var b = (a ? a.ownerDocument || a : 0).documentElement;
  2041.             return b ? b.nodeName !== "HTML" : !1
  2042.         };
  2043.         var t = function (a, b) {
  2044.                 var c, d = [],
  2045.                     e = "",
  2046.                     f = b.nodeType ? [b] : b;
  2047.                 while (c = j.match.PSEUDO.exec(a)) e += c[0], a = a.replace(j.match.PSEUDO, "");
  2048.                 a = j.relative[a] ? a + "*" : a;
  2049.                 for (var g = 0, h = f.length; g < h; g++) i(a, f[g], d);
  2050.                 return i.filter(e, d)
  2051.             };
  2052.         d.find = i, d.expr = i.selectors, d.expr[":"] = d.expr.filters, d.unique = i.uniqueSort, d.text = i.getText, d.isXMLDoc = i.isXML, d.contains = i.contains
  2053.     }();
  2054.     var G = /Until$/,
  2055.         H = /^(?:parents|prevUntil|prevAll)/,
  2056.         I = /,/,
  2057.         J = /^.[^:#\[\.,]*$/,
  2058.         K = Array.prototype.slice,
  2059.         L = d.expr.match.POS,
  2060.         M = {
  2061.             children: !0,
  2062.             contents: !0,
  2063.             next: !0,
  2064.             prev: !0
  2065.         };
  2066.     d.fn.extend({
  2067.         find: function (a) {
  2068.             var b = this.pushStack("", "find", a),
  2069.                 c = 0;
  2070.             for (var e = 0, f = this.length; e < f; e++) {
  2071.                 c = b.length, d.find(a, this[e], b);
  2072.                 if (e > 0) for (var g = c; g < b.length; g++) for (var h = 0; h < c; h++) if (b[h] === b[g]) {
  2073.                     b.splice(g--, 1);
  2074.                     break
  2075.                 }
  2076.             }
  2077.             return b
  2078.         },
  2079.         has: function (a) {
  2080.             var b = d(a);
  2081.             return this.filter(function () {
  2082.                 for (var a = 0, c = b.length; a < c; a++) if (d.contains(this, b[a])) return !0
  2083.             })
  2084.         },
  2085.         not: function (a) {
  2086.             return this.pushStack(O(this, a, !1), "not", a)
  2087.         },
  2088.         filter: function (a) {
  2089.             return this.pushStack(O(this, a, !0), "filter", a)
  2090.         },
  2091.         is: function (a) {
  2092.             return !!a && d.filter(a, this).length > 0
  2093.         },
  2094.         closest: function (a, b) {
  2095.             var c = [],
  2096.                 e, f, g = this[0];
  2097.             if (d.isArray(a)) {
  2098.                 var h, i, j = {},
  2099.                     k = 1;
  2100.                 if (g && a.length) {
  2101.                     for (e = 0, f = a.length; e < f; e++) i = a[e], j[i] || (j[i] = d.expr.match.POS.test(i) ? d(i, b || this.context) : i);
  2102.                     while (g && g.ownerDocument && g !== b) {
  2103.                         for (i in j) h = j[i], (h.jquery ? h.index(g) > -1 : d(g).is(h)) && c.push({
  2104.                             selector: i,
  2105.                             elem: g,
  2106.                             level: k
  2107.                         });
  2108.                         g = g.parentNode, k++
  2109.                     }
  2110.                 }
  2111.                 return c
  2112.             }
  2113.             var l = L.test(a) ? d(a, b || this.context) : null;
  2114.             for (e = 0, f = this.length; e < f; e++) {
  2115.                 g = this[e];
  2116.                 while (g) {
  2117.                     if (l ? l.index(g) > -1 : d.find.matchesSelector(g, a)) {
  2118.                         c.push(g);
  2119.                         break
  2120.                     }
  2121.                     g = g.parentNode;
  2122.                     if (!g || !g.ownerDocument || g === b) break
  2123.                 }
  2124.             }
  2125.             c = c.length > 1 ? d.unique(c) : c;
  2126.             return this.pushStack(c, "closest", a)
  2127.         },
  2128.         index: function (a) {
  2129.             if (!a || typeof a === "string") return d.inArray(this[0], a ? d(a) : this.parent().children());
  2130.             return d.inArray(a.jquery ? a[0] : a, this)
  2131.         },
  2132.         add: function (a, b) {
  2133.             var c = typeof a === "string" ? d(a, b) : d.makeArray(a),
  2134.                 e = d.merge(this.get(), c);
  2135.             return this.pushStack(N(c[0]) || N(e[0]) ? e : d.unique(e))
  2136.         },
  2137.         andSelf: function () {
  2138.             return this.add(this.prevObject)
  2139.         }
  2140.     }), d.each({
  2141.         parent: function (a) {
  2142.             var b = a.parentNode;
  2143.             return b && b.nodeType !== 11 ? b : null
  2144.         },
  2145.         parents: function (a) {
  2146.             return d.dir(a, "parentNode")
  2147.         },
  2148.         parentsUntil: function (a, b, c) {
  2149.             return d.dir(a, "parentNode", c)
  2150.         },
  2151.         next: function (a) {
  2152.             return d.nth(a, 2, "nextSibling")
  2153.         },
  2154.         prev: function (a) {
  2155.             return d.nth(a, 2, "previousSibling")
  2156.         },
  2157.         nextAll: function (a) {
  2158.             return d.dir(a, "nextSibling")
  2159.         },
  2160.         prevAll: function (a) {
  2161.             return d.dir(a, "previousSibling")
  2162.         },
  2163.         nextUntil: function (a, b, c) {
  2164.             return d.dir(a, "nextSibling", c)
  2165.         },
  2166.         prevUntil: function (a, b, c) {
  2167.             return d.dir(a, "previousSibling", c)
  2168.         },
  2169.         siblings: function (a) {
  2170.             return d.sibling(a.parentNode.firstChild, a)
  2171.         },
  2172.         children: function (a) {
  2173.             return d.sibling(a.firstChild)
  2174.         },
  2175.         contents: function (a) {
  2176.             return d.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : d.makeArray(a.childNodes)
  2177.         }
  2178.     }, function (a, b) {
  2179.         d.fn[a] = function (c, e) {
  2180.             var f = d.map(this, b, c),
  2181.                 g = K.call(arguments);
  2182.             G.test(a) || (e = c), e && typeof e === "string" && (f = d.filter(e, f)), f = this.length > 1 && !M[a] ? d.unique(f) : f, (this.length > 1 || I.test(e)) && H.test(a) && (f = f.reverse());
  2183.             return this.pushStack(f, a, g.join(","))
  2184.         }
  2185.     }), d.extend({
  2186.         filter: function (a, b, c) {
  2187.             c && (a = ":not(" + a + ")");
  2188.             return b.length === 1 ? d.find.matchesSelector(b[0], a) ? [b[0]] : [] : d.find.matches(a, b)
  2189.         },
  2190.         dir: function (a, c, e) {
  2191.             var f = [],
  2192.                 g = a[c];
  2193.             while (g && g.nodeType !== 9 && (e === b || g.nodeType !== 1 || !d(g).is(e))) g.nodeType === 1 && f.push(g), g = g[c];
  2194.             return f
  2195.         },
  2196.         nth: function (a, b, c, d) {
  2197.             b = b || 1;
  2198.             var e = 0;
  2199.             for (; a; a = a[c]) if (a.nodeType === 1 && ++e === b) break;
  2200.             return a
  2201.         },
  2202.         sibling: function (a, b) {
  2203.             var c = [];
  2204.             for (; a; a = a.nextSibling) a.nodeType === 1 && a !== b && c.push(a);
  2205.             return c
  2206.         }
  2207.     });
  2208.     var P = / jQuery\d+="(?:\d+|null)"/g,
  2209.         Q = /^\s+/,
  2210.         R = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
  2211.         S = /<([\w:]+)/,
  2212.         T = /<tbody/i,
  2213.         U = /<|&#?\w+;/,
  2214.         V = /<(?:script|object|embed|option|style)/i,
  2215.         W = /checked\s*(?:[^=]|=\s*.checked.)/i,
  2216.         X = {
  2217.             option: [1, "<select multiple='multiple'>", "</select>"],
  2218.             legend: [1, "<fieldset>", "</fieldset>"],
  2219.             thead: [1, "<table>", "</table>"],
  2220.             tr: [2, "<table><tbody>", "</tbody></table>"],
  2221.             td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
  2222.             col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
  2223.             area: [1, "<map>", "</map>"],
  2224.             _default: [0, "", ""]
  2225.         };
  2226.     X.optgroup = X.option, X.tbody = X.tfoot = X.colgroup = X.caption = X.thead, X.th = X.td, d.support.htmlSerialize || (X._default = [1, "div<div>", "</div>"]), d.fn.extend({
  2227.         text: function (a) {
  2228.             if (d.isFunction(a)) return this.each(function (b) {
  2229.                 var c = d(this);
  2230.                 c.text(a.call(this, b, c.text()))
  2231.             });
  2232.             if (typeof a !== "object" && a !== b) return this.empty().append((this[0] && this[0].ownerDocument || c).createTextNode(a));
  2233.             return d.text(this)
  2234.         },
  2235.         wrapAll: function (a) {
  2236.             if (d.isFunction(a)) return this.each(function (b) {
  2237.                 d(this).wrapAll(a.call(this, b))
  2238.             });
  2239.             if (this[0]) {
  2240.                 var b = d(a, this[0].ownerDocument).eq(0).clone(!0);
  2241.                 this[0].parentNode && b.insertBefore(this[0]), b.map(function () {
  2242.                     var a = this;
  2243.                     while (a.firstChild && a.firstChild.nodeType === 1) a = a.firstChild;
  2244.                     return a
  2245.                 }).append(this)
  2246.             }
  2247.             return this
  2248.         },
  2249.         wrapInner: function (a) {
  2250.             if (d.isFunction(a)) return this.each(function (b) {
  2251.                 d(this).wrapInner(a.call(this, b))
  2252.             });
  2253.             return this.each(function () {
  2254.                 var b = d(this),
  2255.                     c = b.contents();
  2256.                 c.length ? c.wrapAll(a) : b.append(a)
  2257.             })
  2258.         },
  2259.         wrap: function (a) {
  2260.             return this.each(function () {
  2261.                 d(this).wrapAll(a)
  2262.             })
  2263.         },
  2264.         unwrap: function () {
  2265.             return this.parent().each(function () {
  2266.                 d.nodeName(this, "body") || d(this).replaceWith(this.childNodes)
  2267.             }).end()
  2268.         },
  2269.         append: function () {
  2270.             return this.domManip(arguments, !0, function (a) {
  2271.                 this.nodeType === 1 && this.appendChild(a)
  2272.             })
  2273.         },
  2274.         prepend: function () {
  2275.             return this.domManip(arguments, !0, function (a) {
  2276.                 this.nodeType === 1 && this.insertBefore(a, this.firstChild)
  2277.             })
  2278.         },
  2279.         before: function () {
  2280.             if (this[0] && this[0].parentNode) return this.domManip(arguments, !1, function (a) {
  2281.                 this.parentNode.insertBefore(a, this)
  2282.             });
  2283.             if (arguments.length) {
  2284.                 var a = d(arguments[0]);
  2285.                 a.push.apply(a, this.toArray());
  2286.                 return this.pushStack(a, "before", arguments)
  2287.             }
  2288.         },
  2289.         after: function () {
  2290.             if (this[0] && this[0].parentNode) return this.domManip(arguments, !1, function (a) {
  2291.                 this.parentNode.insertBefore(a, this.nextSibling)
  2292.             });
  2293.             if (arguments.length) {
  2294.                 var a = this.pushStack(this, "after", arguments);
  2295.                 a.push.apply(a, d(arguments[0]).toArray());
  2296.                 return a
  2297.             }
  2298.         },
  2299.         remove: function (a, b) {
  2300.             for (var c = 0, e;
  2301.             (e = this[c]) != null; c++) if (!a || d.filter(a, [e]).length)!b && e.nodeType === 1 && (d.cleanData(e.getElementsByTagName("*")), d.cleanData([e])), e.parentNode && e.parentNode.removeChild(e);
  2302.             return this
  2303.         },
  2304.         empty: function () {
  2305.             for (var a = 0, b;
  2306.             (b = this[a]) != null; a++) {
  2307.                 b.nodeType === 1 && d.cleanData(b.getElementsByTagName("*"));
  2308.                 while (b.firstChild) b.removeChild(b.firstChild)
  2309.             }
  2310.             return this
  2311.         },
  2312.         clone: function (a, b) {
  2313.             a = a == null ? !0 : a, b = b == null ? a : b;
  2314.             return this.map(function () {
  2315.                 return d.clone(this, a, b)
  2316.             })
  2317.         },
  2318.         html: function (a) {
  2319.             if (a === b) return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(P, "") : null;
  2320.             if (typeof a !== "string" || V.test(a) || !d.support.leadingWhitespace && Q.test(a) || X[(S.exec(a) || ["", ""])[1].toLowerCase()]) d.isFunction(a) ? this.each(function (b) {
  2321.                 var c = d(this);
  2322.                 c.html(a.call(this, b, c.html()))
  2323.             }) : this.empty().append(a);
  2324.             else {
  2325.                 a = a.replace(R, "<$1></$2>");
  2326.                 try {
  2327.                     for (var c = 0, e = this.length; c < e; c++) this[c].nodeType === 1 && (d.cleanData(this[c].getElementsByTagName("*")), this[c].innerHTML = a)
  2328.                 } catch (f) {
  2329.                     this.empty().append(a)
  2330.                 }
  2331.             }
  2332.             return this
  2333.         },
  2334.         replaceWith: function (a) {
  2335.             if (this[0] && this[0].parentNode) {
  2336.                 if (d.isFunction(a)) return this.each(function (b) {
  2337.                     var c = d(this),
  2338.                         e = c.html();
  2339.                     c.replaceWith(a.call(this, b, e))
  2340.                 });
  2341.                 typeof a !== "string" && (a = d(a).detach());
  2342.                 return this.each(function () {
  2343.                     var b = this.nextSibling,
  2344.                         c = this.parentNode;
  2345.                     d(this).remove(), b ? d(b).before(a) : d(c).append(a)
  2346.                 })
  2347.             }
  2348.             return this.pushStack(d(d.isFunction(a) ? a() : a), "replaceWith", a)
  2349.         },
  2350.         detach: function (a) {
  2351.             return this.remove(a, !0)
  2352.         },
  2353.         domManip: function (a, c, e) {
  2354.             var f, g, h, i, j = a[0],
  2355.                 k = [];
  2356.             if (!d.support.checkClone && arguments.length === 3 && typeof j === "string" && W.test(j)) return this.each(function () {
  2357.                 d(this).domManip(a, c, e, !0)
  2358.             });
  2359.             if (d.isFunction(j)) return this.each(function (f) {
  2360.                 var g = d(this);
  2361.                 a[0] = j.call(this, f, c ? g.html() : b), g.domManip(a, c, e)
  2362.             });
  2363.             if (this[0]) {
  2364.                 i = j && j.parentNode, d.support.parentNode && i && i.nodeType === 11 && i.childNodes.length === this.length ? f = {
  2365.                     fragment: i
  2366.                 } : f = d.buildFragment(a, this, k), h = f.fragment, h.childNodes.length === 1 ? g = h = h.firstChild : g = h.firstChild;
  2367.                 if (g) {
  2368.                     c = c && d.nodeName(g, "tr");
  2369.                     for (var l = 0, m = this.length, n = m - 1; l < m; l++) e.call(c ? Y(this[l], g) : this[l], f.cacheable || m > 1 && l < n ? d.clone(h, !0, !0) : h)
  2370.                 }
  2371.                 k.length && d.each(k, _)
  2372.             }
  2373.             return this
  2374.         }
  2375.     }), d.buildFragment = function (a, b, e) {
  2376.         var f, g, h, i = b && b[0] ? b[0].ownerDocument || b[0] : c;
  2377.         a.length === 1 && typeof a[0] === "string" && a[0].length < 512 && i === c && a[0].charAt(0) === "<" && !V.test(a[0]) && (d.support.checkClone || !W.test(a[0])) && (g = !0, h = d.fragments[a[0]], h && (h !== 1 && (f = h))), f || (f = i.createDocumentFragment(), d.clean(a, i, f, e)), g && (d.fragments[a[0]] = h ? f : 1);
  2378.         return {
  2379.             fragment: f,
  2380.             cacheable: g
  2381.         }
  2382.     }, d.fragments = {}, d.each({
  2383.         appendTo: "append",
  2384.         prependTo: "prepend",
  2385.         insertBefore: "before",
  2386.         insertAfter: "after",
  2387.         replaceAll: "replaceWith"
  2388.     }, function (a, b) {
  2389.         d.fn[a] = function (c) {
  2390.             var e = [],
  2391.                 f = d(c),
  2392.                 g = this.length === 1 && this[0].parentNode;
  2393.             if (g && g.nodeType === 11 && g.childNodes.length === 1 && f.length === 1) {
  2394.                 f[b](this[0]);
  2395.                 return this
  2396.             }
  2397.             for (var h = 0, i = f.length; h < i; h++) {
  2398.                 var j = (h > 0 ? this.clone(!0) : this).get();
  2399.                 d(f[h])[b](j), e = e.concat(j)
  2400.             }
  2401.             return this.pushStack(e, a, f.selector)
  2402.         }
  2403.     }), d.extend({
  2404.         clone: function (a, b, c) {
  2405.             var e = a.cloneNode(!0),
  2406.                 f, g, h;
  2407.             if (!d.support.noCloneEvent && (a.nodeType === 1 || a.nodeType === 11) && !d.isXMLDoc(a)) {
  2408.                 f = a.getElementsByTagName("*"), g = e.getElementsByTagName("*");
  2409.                 for (h = 0; f[h]; ++h) $(f[h], g[h]);
  2410.                 $(a, e)
  2411.             }
  2412.             if (b) {
  2413.                 Z(a, e);
  2414.                 if (c && "getElementsByTagName" in a) {
  2415.                     f = a.getElementsByTagName("*"), g = e.getElementsByTagName("*");
  2416.                     if (f.length) for (h = 0; f[h]; ++h) Z(f[h], g[h])
  2417.                 }
  2418.             }
  2419.             return e
  2420.         },
  2421.         clean: function (a, b, e, f) {
  2422.             b = b || c, typeof b.createElement === "undefined" && (b = b.ownerDocument || b[0] && b[0].ownerDocument || c);
  2423.             var g = [];
  2424.             for (var h = 0, i;
  2425.             (i = a[h]) != null; h++) {
  2426.                 typeof i === "number" && (i += "");
  2427.                 if (!i) continue;
  2428.                 if (typeof i !== "string" || U.test(i)) {
  2429.                     if (typeof i === "string") {
  2430.                         i = i.replace(R, "<$1></$2>");
  2431.                         var j = (S.exec(i) || ["", ""])[1].toLowerCase(),
  2432.                             k = X[j] || X._default,
  2433.                             l = k[0],
  2434.                             m = b.createElement("div");
  2435.                         m.innerHTML = k[1] + i + k[2];
  2436.                         while (l--) m = m.lastChild;
  2437.                         if (!d.support.tbody) {
  2438.                             var n = T.test(i),
  2439.                                 o = j === "table" && !n ? m.firstChild && m.firstChild.childNodes : k[1] === "<table>" && !n ? m.childNodes : [];
  2440.                             for (var p = o.length - 1; p >= 0; --p) d.nodeName(o[p], "tbody") && !o[p].childNodes.length && o[p].parentNode.removeChild(o[p])
  2441.                         }!d.support.leadingWhitespace && Q.test(i) && m.insertBefore(b.createTextNode(Q.exec(i)[0]), m.firstChild), i = m.childNodes
  2442.                     }
  2443.                 } else i = b.createTextNode(i);
  2444.                 i.nodeType ? g.push(i) : g = d.merge(g, i)
  2445.             }
  2446.             if (e) for (h = 0; g[h]; h++)!f || !d.nodeName(g[h], "script") || g[h].type && g[h].type.toLowerCase() !== "text/javascript" ? (g[h].nodeType === 1 && g.splice.apply(g, [h + 1, 0].concat(d.makeArray(g[h].getElementsByTagName("script")))), e.appendChild(g[h])) : f.push(g[h].parentNode ? g[h].parentNode.removeChild(g[h]) : g[h]);
  2447.             return g
  2448.         },
  2449.         cleanData: function (a) {
  2450.             var b, c, e = d.cache,
  2451.                 f = d.expando,
  2452.                 g = d.event.special,
  2453.                 h = d.support.deleteExpando;
  2454.             for (var i = 0, j;
  2455.             (j = a[i]) != null; i++) {
  2456.                 if (j.nodeName && d.noData[j.nodeName.toLowerCase()]) continue;
  2457.                 c = j[d.expando];
  2458.                 if (c) {
  2459.                     b = e[c] && e[c][f];
  2460.                     if (b && b.events) {
  2461.                         for (var k in b.events) g[k] ? d.event.remove(j, k) : d.removeEvent(j, k, b.handle);
  2462.                         b.handle && (b.handle.elem = null)
  2463.                     }
  2464.                     h ? delete j[d.expando] : j.removeAttribute && j.removeAttribute(d.expando), delete e[c]
  2465.                 }
  2466.             }
  2467.         }
  2468.     });
  2469.     var ba = /alpha\([^)]*\)/i,
  2470.         bb = /opacity=([^)]*)/,
  2471.         bc = /-([a-z])/ig,
  2472.         bd = /([A-Z])/g,
  2473.         be = /^-?\d+(?:px)?$/i,
  2474.         bf = /^-?\d/,
  2475.         bg = {
  2476.             position: "absolute",
  2477.             visibility: "hidden",
  2478.             display: "block"
  2479.         },
  2480.         bh = ["Left", "Right"],
  2481.         bi = ["Top", "Bottom"],
  2482.         bj, bk, bl, bm = function (a, b) {
  2483.             return b.toUpperCase()
  2484.         };
  2485.     d.fn.css = function (a, c) {
  2486.         if (arguments.length === 2 && c === b) return this;
  2487.         return d.access(this, a, c, !0, function (a, c, e) {
  2488.             return e !== b ? d.style(a, c, e) : d.css(a, c)
  2489.         })
  2490.     }, d.extend({
  2491.         cssHooks: {
  2492.             opacity: {
  2493.                 get: function (a, b) {
  2494.                     if (b) {
  2495.                         var c = bj(a, "opacity", "opacity");
  2496.                         return c === "" ? "1" : c
  2497.                     }
  2498.                     return a.style.opacity
  2499.                 }
  2500.             }
  2501.         },
  2502.         cssNumber: {
  2503.             zIndex: !0,
  2504.             fontWeight: !0,
  2505.             opacity: !0,
  2506.             zoom: !0,
  2507.             lineHeight: !0
  2508.         },
  2509.         cssProps: {
  2510.             "float": d.support.cssFloat ? "cssFloat" : "styleFloat"
  2511.         },
  2512.         style: function (a, c, e, f) {
  2513.             if (a && a.nodeType !== 3 && a.nodeType !== 8 && a.style) {
  2514.                 var g, h = d.camelCase(c),
  2515.                     i = a.style,
  2516.                     j = d.cssHooks[h];
  2517.                 c = d.cssProps[h] || h;
  2518.                 if (e === b) {
  2519.                     if (j && "get" in j && (g = j.get(a, !1, f)) !== b) return g;
  2520.                     return i[c]
  2521.                 }
  2522.                 if (typeof e === "number" && isNaN(e) || e == null) return;
  2523.                 typeof e === "number" && !d.cssNumber[h] && (e += "px");
  2524.                 if (!j || !("set" in j) || (e = j.set(a, e)) !== b) try {
  2525.                     i[c] = e
  2526.                 } catch (k) {}
  2527.             }
  2528.         },
  2529.         css: function (a, c, e) {
  2530.             var f, g = d.camelCase(c),
  2531.                 h = d.cssHooks[g];
  2532.             c = d.cssProps[g] || g;
  2533.             if (h && "get" in h && (f = h.get(a, !0, e)) !== b) return f;
  2534.             if (bj) return bj(a, c, g)
  2535.         },
  2536.         swap: function (a, b, c) {
  2537.             var d = {};
  2538.             for (var e in b) d[e] = a.style[e], a.style[e] = b[e];
  2539.             c.call(a);
  2540.             for (e in b) a.style[e] = d[e]
  2541.         },
  2542.         camelCase: function (a) {
  2543.             return a.replace(bc, bm)
  2544.         }
  2545.     }), d.curCSS = d.css, d.each(["height", "width"], function (a, b) {
  2546.         d.cssHooks[b] = {
  2547.             get: function (a, c, e) {
  2548.                 var f;
  2549.                 if (c) {
  2550.                     a.offsetWidth !== 0 ? f = bn(a, b, e) : d.swap(a, bg, function () {
  2551.                         f = bn(a, b, e)
  2552.                     });
  2553.                     if (f <= 0) {
  2554.                         f = bj(a, b, b), f === "0px" && bl && (f = bl(a, b, b));
  2555.                         if (f != null) return f === "" || f === "auto" ? "0px" : f
  2556.                     }
  2557.                     if (f < 0 || f == null) {
  2558.                         f = a.style[b];
  2559.                         return f === "" || f === "auto" ? "0px" : f
  2560.                     }
  2561.                     return typeof f === "string" ? f : f + "px"
  2562.                 }
  2563.             },
  2564.             set: function (a, b) {
  2565.                 if (!be.test(b)) return b;
  2566.                 b = parseFloat(b);
  2567.                 if (b >= 0) return b + "px"
  2568.             }
  2569.         }
  2570.     }), d.support.opacity || (d.cssHooks.opacity = {
  2571.         get: function (a, b) {
  2572.             return bb.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? parseFloat(RegExp.$1) / 100 + "" : b ? "1" : ""
  2573.         },
  2574.         set: function (a, b) {
  2575.             var c = a.style;
  2576.             c.zoom = 1;
  2577.             var e = d.isNaN(b) ? "" : "alpha(opacity=" + b * 100 + ")",
  2578.                 f = c.filter || "";
  2579.             c.filter = ba.test(f) ? f.replace(ba, e) : c.filter + " " + e
  2580.         }
  2581.     }), c.defaultView && c.defaultView.getComputedStyle && (bk = function (a, c, e) {
  2582.         var f, g, h;
  2583.         e = e.replace(bd, "-$1").toLowerCase();
  2584.         if (!(g = a.ownerDocument.defaultView)) return b;
  2585.         if (h = g.getComputedStyle(a, null)) f = h.getPropertyValue(e), f === "" && !d.contains(a.ownerDocument.documentElement, a) && (f = d.style(a, e));
  2586.         return f
  2587.     }), c.documentElement.currentStyle && (bl = function (a, b) {
  2588.         var c, d = a.currentStyle && a.currentStyle[b],
  2589.             e = a.runtimeStyle && a.runtimeStyle[b],
  2590.             f = a.style;
  2591.         !be.test(d) && bf.test(d) && (c = f.left, e && (a.runtimeStyle.left = a.currentStyle.left), f.left = b === "fontSize" ? "1em" : d || 0, d = f.pixelLeft + "px", f.left = c, e && (a.runtimeStyle.left = e));
  2592.         return d === "" ? "auto" : d
  2593.     }), bj = bk || bl, d.expr && d.expr.filters && (d.expr.filters.hidden = function (a) {
  2594.         var b = a.offsetWidth,
  2595.             c = a.offsetHeight;
  2596.         return b === 0 && c === 0 || !d.support.reliableHiddenOffsets && (a.style.display || d.css(a, "display")) === "none"
  2597.     }, d.expr.filters.visible = function (a) {
  2598.         return !d.expr.filters.hidden(a)
  2599.     });
  2600.     var bo = /%20/g,
  2601.         bp = /\[\]$/,
  2602.         bq = /\r?\n/g,
  2603.         br = /#.*$/,
  2604.         bs = /^(.*?):\s*(.*?)\r?$/mg,
  2605.         bt = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
  2606.         bu = /^(?:GET|HEAD)$/,
  2607.         bv = /^\/\//,
  2608.         bw = /\?/,
  2609.         bx = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
  2610.         by = /^(?:select|textarea)/i,
  2611.         bz = /\s+/,
  2612.         bA = /([?&])_=[^&]*/,
  2613.         bB = /^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/,
  2614.         bC = d.fn.load,
  2615.         bD = {},
  2616.         bE = {};
  2617.     d.fn.extend({
  2618.         load: function (a, b, c) {
  2619.             if (typeof a !== "string" && bC) return bC.apply(this, arguments);
  2620.             if (!this.length) return this;
  2621.             var e = a.indexOf(" ");
  2622.             if (e >= 0) {
  2623.                 var f = a.slice(e, a.length);
  2624.                 a = a.slice(0, e)
  2625.             }
  2626.             var g = "GET";
  2627.             b && (d.isFunction(b) ? (c = b, b = null) : typeof b === "object" && (b = d.param(b, d.ajaxSettings.traditional), g = "POST"));
  2628.             var h = this;
  2629.             d.ajax({
  2630.                 url: a,
  2631.                 type: g,
  2632.                 dataType: "html",
  2633.                 data: b,
  2634.                 complete: function (a, b, e) {
  2635.                     e = a.responseText, a.isResolved() && (a.done(function (a) {
  2636.                         e = a
  2637.                     }), h.html(f ? d("<div>").append(e.replace(bx, "")).find(f) : e)), c && h.each(c, [e, b, a])
  2638.                 }
  2639.             });
  2640.             return this
  2641.         },
  2642.         serialize: function () {
  2643.             return d.param(this.serializeArray())
  2644.         },
  2645.         serializeArray: function () {
  2646.             return this.map(function () {
  2647.                 return this.elements ? d.makeArray(this.elements) : this
  2648.             }).filter(function () {
  2649.                 return this.name && !this.disabled && (this.checked || by.test(this.nodeName) || bt.test(this.type))
  2650.             }).map(function (a, b) {
  2651.                 var c = d(this).val();
  2652.                 return c == null ? null : d.isArray(c) ? d.map(c, function (a, c) {
  2653.                     return {
  2654.                         name: b.name,
  2655.                         value: a.replace(bq, "\r\n")
  2656.                     }
  2657.                 }) : {
  2658.                     name: b.name,
  2659.                     value: c.replace(bq, "\r\n")
  2660.                 }
  2661.             }).get()
  2662.         }
  2663.     }), d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function (a, b) {
  2664.         d.fn[b] = function (a) {
  2665.             return this.bind(b, a)
  2666.         }
  2667.     }), d.each(["get", "post"], function (a, b) {
  2668.         d[b] = function (a, c, e, f) {
  2669.             d.isFunction(c) && (f = f || e, e = c, c = null);
  2670.             return d.ajax({
  2671.                 type: b,
  2672.                 url: a,
  2673.                 data: c,
  2674.                 success: e,
  2675.                 dataType: f
  2676.             })
  2677.         }
  2678.     }), d.extend({
  2679.         getScript: function (a, b) {
  2680.             return d.get(a, null, b, "script")
  2681.         },
  2682.         getJSON: function (a, b, c) {
  2683.             return d.get(a, b, c, "json")
  2684.         },
  2685.         ajaxSetup: function (a) {
  2686.             d.extend(!0, d.ajaxSettings, a), a.context && (d.ajaxSettings.context = a.context)
  2687.         },
  2688.         ajaxSettings: {
  2689.             url: location.href,
  2690.             global: !0,
  2691.             type: "GET",
  2692.             contentType: "application/x-www-form-urlencoded",
  2693.             processData: !0,
  2694.             async: !0,
  2695.             accepts: {
  2696.                 xml: "application/xml, text/xml",
  2697.                 html: "text/html",
  2698.                 text: "text/plain",
  2699.                 json: "application/json, text/javascript",
  2700.                 "*": "*/*"
  2701.             },
  2702.             contents: {
  2703.                 xml: /xml/,
  2704.                 html: /html/,
  2705.                 json: /json/
  2706.             },
  2707.             responseFields: {
  2708.                 xml: "responseXML",
  2709.                 text: "responseText"
  2710.             },
  2711.             converters: {
  2712.                 "* text": a.String,
  2713.                 "text html": !0,
  2714.                 "text json": d.parseJSON,
  2715.                 "text xml": d.parseXML
  2716.             }
  2717.         },
  2718.         ajaxPrefilter: bF(bD),
  2719.         ajaxTransport: bF(bE),
  2720.         ajax: function (a, e) {
  2721.             function w(a, c, e, l) {
  2722.                 if (t !== 2) {
  2723.                     t = 2, p && clearTimeout(p), o = b, m = l || "", v.readyState = a ? 4 : 0;
  2724.                     var n, q, r, s = e ? bI(f, v, e) : b,
  2725.                         u, w;
  2726.                     if (a >= 200 && a < 300 || a === 304) {
  2727.                         if (f.ifModified) {
  2728.                             if (u = v.getResponseHeader("Last-Modified")) d.lastModified[f.url] = u;
  2729.                             if (w = v.getResponseHeader("Etag")) d.etag[f.url] = w
  2730.                         }
  2731.                         if (a === 304) c = "notmodified", n = !0;
  2732.                         else try {
  2733.                             q = bJ(f, s), c = "success", n = !0
  2734.                         } catch (x) {
  2735.                             c = "parsererror", r = x
  2736.                         }
  2737.                     } else r = c, a && (c = "error", a < 0 && (a = 0));
  2738.                     v.status = a, v.statusText = c, n ? i.resolveWith(g, [q, c, v]) : i.rejectWith(g, [v, c, r]), v.statusCode(k), k = b, f.global && h.trigger("ajax" + (n ? "Success" : "Error"), [v, f, n ? q : r]), j.resolveWith(g, [v, c]), f.global && (h.trigger("ajaxComplete", [v, f]), --d.active || d.event.trigger("ajaxStop"))
  2739.                 }
  2740.             }
  2741.             typeof e !== "object" && (e = a, a = b), e = e || {};
  2742.             var f = d.extend(!0, {}, d.ajaxSettings, e),
  2743.                 g = (f.context = ("context" in e ? e : d.ajaxSettings).context) || f,
  2744.                 h = g === f ? d.event : d(g),
  2745.                 i = d.Deferred(),
  2746.                 j = d._Deferred(),
  2747.                 k = f.statusCode || {},
  2748.                 l = {},
  2749.                 m, n, o, p, q = c.location,
  2750.                 r = q.protocol || "http:",
  2751.                 s, t = 0,
  2752.                 u, v = {
  2753.                     readyState: 0,
  2754.                     setRequestHeader: function (a, b) {
  2755.                         t === 0 && (l[a.toLowerCase()] = b);
  2756.                         return this
  2757.                     },
  2758.                     getAllResponseHeaders: function () {
  2759.                         return t === 2 ? m : null
  2760.                     },
  2761.                     getResponseHeader: function (a) {
  2762.                         var b;
  2763.                         if (t === 2) {
  2764.                             if (!n) {
  2765.                                 n = {};
  2766.                                 while (b = bs.exec(m)) n[b[1].toLowerCase()] = b[2]
  2767.                             }
  2768.                             b = n[a.toLowerCase()]
  2769.                         }
  2770.                         return b || null
  2771.                     },
  2772.                     abort: function (a) {
  2773.                         a = a || "abort", o && o.abort(a), w(0, a);
  2774.                         return this
  2775.                     }
  2776.                 };
  2777.             i.promise(v), v.success = v.done, v.error = v.fail, v.complete = j.done, v.statusCode = function (a) {
  2778.                 if (a) {
  2779.                     var b;
  2780.                     if (t < 2) for (b in a) k[b] = [k[b], a[b]];
  2781.                     else b = a[v.status], v.then(b, b)
  2782.                 }
  2783.                 return this
  2784.             }, f.url = ("" + (a || f.url)).replace(br, "").replace(bv, r + "//"), f.dataTypes = d.trim(f.dataType || "*").toLowerCase().split(bz), f.crossDomain || (s = bB.exec(f.url.toLowerCase()), f.crossDomain = s && (s[1] != r || s[2] != q.hostname || (s[3] || (s[1] === "http:" ? 80 : 443)) != (q.port || (r === "http:" ? 80 : 443)))), f.data && f.processData && typeof f.data !== "string" && (f.data = d.param(f.data, f.traditional)), bG(bD, f, e, v), f.type = f.type.toUpperCase(), f.hasContent = !bu.test(f.type), f.global && d.active++ === 0 && d.event.trigger("ajaxStart");
  2785.             if (!f.hasContent) {
  2786.                 f.data && (f.url += (bw.test(f.url) ? "&" : "?") + f.data);
  2787.                 if (f.cache === !1) {
  2788.                     var x = d.now(),
  2789.                         y = f.url.replace(bA, "$1_=" + x);
  2790.                     f.url = y + (y === f.url ? (bw.test(f.url) ? "&" : "?") + "_=" + x : "")
  2791.                 }
  2792.             }
  2793.             if (f.data && f.hasContent && f.contentType !== !1 || e.contentType) l["content-type"] = f.contentType;
  2794.             f.ifModified && (d.lastModified[f.url] && (l["if-modified-since"] = d.lastModified[f.url]), d.etag[f.url] && (l["if-none-match"] = d.etag[f.url])), l.accept = f.dataTypes[0] && f.accepts[f.dataTypes[0]] ? f.accepts[f.dataTypes[0]] + (f.dataTypes[0] !== "*" ? ", */*; q=0.01" : "") : f.accepts["*"];
  2795.             for (u in f.headers) l[u.toLowerCase()] = f.headers[u];
  2796.             if (!f.beforeSend || f.beforeSend.call(g, v, f) !== !1 && t !== 2) {
  2797.                 for (u in {
  2798.                     success: 1,
  2799.                     error: 1,
  2800.                     complete: 1
  2801.                 }) v[u](f[u]);
  2802.                 o = bG(bE, f, e, v);
  2803.                 if (o) {
  2804.                     t = v.readyState = 1, f.global && h.trigger("ajaxSend", [v, f]), f.async && f.timeout > 0 && (p = setTimeout(function () {
  2805.                         v.abort("timeout")
  2806.                     }, f.timeout));
  2807.                     try {
  2808.                         o.send(l, w)
  2809.                     } catch (z) {
  2810.                         status < 2 ? w(-1, z) : d.error(z)
  2811.                     }
  2812.                 } else w(-1, "No Transport")
  2813.             } else w(0, "abort"), v = !1;
  2814.             return v
  2815.         },
  2816.         param: function (a, c) {
  2817.             var e = [],
  2818.                 f = function (a, b) {
  2819.                     b = d.isFunction(b) ? b() : b, e[e.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b)
  2820.                 };
  2821.             c === b && (c = d.ajaxSettings.traditional);
  2822.             if (d.isArray(a) || a.jquery) d.each(a, function () {
  2823.                 f(this.name, this.value)
  2824.             });
  2825.             else for (var g in a) bH(g, a[g], c, f);
  2826.             return e.join("&").replace(bo, "+")
  2827.         }
  2828.     }), d.extend({
  2829.         active: 0,
  2830.         lastModified: {},
  2831.         etag: {}
  2832.     });
  2833.     var bK = d.now(),
  2834.         bL = /(\=)\?(&|$)|()\?\?()/i;
  2835.     d.ajaxSetup({
  2836.         jsonp: "callback",
  2837.         jsonpCallback: function () {
  2838.             return d.expando + "_" + bK++
  2839.         }
  2840.     }), d.ajaxPrefilter("json jsonp", function (b, c, e) {
  2841.         e = typeof b.data === "string";
  2842.         if (b.dataTypes[0] === "jsonp" || c.jsonpCallback || c.jsonp != null || b.jsonp !== !1 && (bL.test(b.url) || e && bL.test(b.data))) {
  2843.             var f, g = b.jsonpCallback = d.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback,
  2844.                 h = a[g],
  2845.                 i = b.url,
  2846.                 j = b.data,
  2847.                 k = "$1" + g + "$2";
  2848.             b.jsonp !== !1 && (i = i.replace(bL, k), b.url === i && (e && (j = j.replace(bL, k)), b.data === j && (i += (/\?/.test(i) ? "&" : "?") + b.jsonp + "=" + g))), b.url = i, b.data = j, a[g] = function (a) {
  2849.                 f = [a]
  2850.             }, b.complete = [function () {
  2851.                 a[g] = h;
  2852.                 if (h) f && d.isFunction(h) && a[g](f[0]);
  2853.                 else try {
  2854.                     delete a[g]
  2855.                 } catch (b) {}
  2856.             },
  2857.             b.complete], b.converters["script json"] = function () {
  2858.                 f || d.error(g + " was not called");
  2859.                 return f[0]
  2860.             }, b.dataTypes[0] = "json";
  2861.             return "script"
  2862.         }
  2863.     }), d.ajaxSetup({
  2864.         accepts: {
  2865.             script: "text/javascript, application/javascript"
  2866.         },
  2867.         contents: {
  2868.             script: /javascript/
  2869.         },
  2870.         converters: {
  2871.             "text script": function (a) {
  2872.                 d.globalEval(a);
  2873.                 return a
  2874.             }
  2875.         }
  2876.     }), d.ajaxPrefilter("script", function (a) {
  2877.         a.cache === b && (a.cache = !1), a.crossDomain && (a.type = "GET", a.global = !1)
  2878.     }), d.ajaxTransport("script", function (a) {
  2879.         if (a.crossDomain) {
  2880.             var d, e = c.getElementsByTagName("head")[0] || c.documentElement;
  2881.             return {
  2882.                 send: function (f, g) {
  2883.                     d = c.createElement("script"), d.async = "async", a.scriptCharset && (d.charset = a.scriptCharset), d.src = a.url, d.onload = d.onreadystatechange = function (a, c) {
  2884.                         if (!d.readyState || /loaded|complete/.test(d.readyState)) d.onload = d.onreadystatechange = null, e && d.parentNode && e.removeChild(d), d = b, c || g(200, "success")
  2885.                     }, e.insertBefore(d, e.firstChild)
  2886.                 },
  2887.                 abort: function () {
  2888.                     d && d.onload(0, 1)
  2889.                 }
  2890.             }
  2891.         }
  2892.     });
  2893.     var bM = d.now(),
  2894.         bN = {},
  2895.         bO, bP;
  2896.     d.ajaxSettings.xhr = a.ActiveXObject ?
  2897.     function () {
  2898.         if (a.location.protocol !== "file:") try {
  2899.             return new a.XMLHttpRequest
  2900.         } catch (b) {}
  2901.         try {
  2902.             return new a.ActiveXObject("Microsoft.XMLHTTP")
  2903.         } catch (c) {}
  2904.     } : function () {
  2905.         return new a.XMLHttpRequest
  2906.     };
  2907.     try {
  2908.         bP = d.ajaxSettings.xhr()
  2909.     } catch (bQ) {}
  2910.     d.support.ajax = !! bP, d.support.cors = bP && "withCredentials" in bP, bP = b, d.support.ajax && d.ajaxTransport(function (b) {
  2911.         if (!b.crossDomain || d.support.cors) {
  2912.             var c;
  2913.             return {
  2914.                 send: function (e, f) {
  2915.                     bO || (bO = 1, d(a).bind("unload", function () {
  2916.                         d.each(bN, function (a, b) {
  2917.                             b.onreadystatechange && b.onreadystatechange(1)
  2918.                         })
  2919.                     }));
  2920.                     var g = b.xhr(),
  2921.                         h;
  2922.                     b.username ? g.open(b.type, b.url, b.async, b.username, b.password) : g.open(b.type, b.url, b.async), (!b.crossDomain || b.hasContent) && !e["x-requested-with"] && (e["x-requested-with"] = "XMLHttpRequest");
  2923.                     try {
  2924.                         d.each(e, function (a, b) {
  2925.                             g.setRequestHeader(a, b)
  2926.                         })
  2927.                     } catch (i) {}
  2928.                     g.send(b.hasContent && b.data || null), c = function (a, e) {
  2929.                         if (c && (e || g.readyState === 4)) {
  2930.                             c = 0, h && (g.onreadystatechange = d.noop, delete bN[h]);
  2931.                             if (e) g.readyState !== 4 && g.abort();
  2932.                             else {
  2933.                                 var i = g.status,
  2934.                                     j, k = g.getAllResponseHeaders(),
  2935.                                     l = {},
  2936.                                     m = g.responseXML;
  2937.                                 m && m.documentElement && (l.xml = m), l.text = g.responseText;
  2938.                                 try {
  2939.                                     j = g.statusText
  2940.                                 } catch (n) {
  2941.                                     j = ""
  2942.                                 }
  2943.                                 i = i === 0 ? !b.crossDomain || j ? k ? 304 : 0 : 302 : i == 1223 ? 204 : i, f(i, j, l, k)
  2944.                             }
  2945.                         }
  2946.                     }, b.async && g.readyState !== 4 ? (h = bM++, bN[h] = g, g.onreadystatechange = c) : c()
  2947.                 },
  2948.                 abort: function () {
  2949.                     c && c(0, 1)
  2950.                 }
  2951.             }
  2952.         }
  2953.     });
  2954.     var bR = {},
  2955.         bS = /^(?:toggle|show|hide)$/,
  2956.         bT = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
  2957.         bU, bV = [
  2958.             ["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"],
  2959.             ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"],
  2960.             ["opacity"]
  2961.         ];
  2962.     d.fn.extend({
  2963.         show: function (a, b, c) {
  2964.             var e, f;
  2965.             if (a || a === 0) return this.animate(bW("show", 3), a, b, c);
  2966.             for (var g = 0, h = this.length; g < h; g++) e = this[g], f = e.style.display, !d._data(e, "olddisplay") && f === "none" && (f = e.style.display = ""), f === "" && d.css(e, "display") === "none" && d._data(e, "olddisplay", bX(e.nodeName));
  2967.             for (g = 0; g < h; g++) {
  2968.                 e = this[g], f = e.style.display;
  2969.                 if (f === "" || f === "none") e.style.display = d._data(e, "olddisplay") || ""
  2970.             }
  2971.             return this
  2972.         },
  2973.         hide: function (a, b, c) {
  2974.             if (a || a === 0) return this.animate(bW("hide", 3), a, b, c);
  2975.             for (var e = 0, f = this.length; e < f; e++) {
  2976.                 var g = d.css(this[e], "display");
  2977.                 g !== "none" && !d._data(this[e], "olddisplay") && d._data(this[e], "olddisplay", g)
  2978.             }
  2979.             for (e = 0; e < f; e++) this[e].style.display = "none";
  2980.             return this
  2981.         },
  2982.         _toggle: d.fn.toggle,
  2983.         toggle: function (a, b, c) {
  2984.             var e = typeof a === "boolean";
  2985.             d.isFunction(a) && d.isFunction(b) ? this._toggle.apply(this, arguments) : a == null || e ? this.each(function () {
  2986.                 var b = e ? a : d(this).is(":hidden");
  2987.                 d(this)[b ? "show" : "hide"]()
  2988.             }) : this.animate(bW("toggle", 3), a, b, c);
  2989.             return this
  2990.         },
  2991.         fadeTo: function (a, b, c, d) {
  2992.             return this.filter(":hidden").css("opacity", 0).show().end().animate({
  2993.                 opacity: b
  2994.             }, a, c, d)
  2995.         },
  2996.         animate: function (a, b, c, e) {
  2997.             var f = d.speed(b, c, e);
  2998.             if (d.isEmptyObject(a)) return this.each(f.complete);
  2999.             return this[f.queue === !1 ? "each" : "queue"](function () {
  3000.                 var b = d.extend({}, f),
  3001.                     c, e = this.nodeType === 1,
  3002.                     g = e && d(this).is(":hidden"),
  3003.                     h = this;
  3004.                 for (c in a) {
  3005.                     var i = d.camelCase(c);
  3006.                     c !== i && (a[i] = a[c], delete a[c], c = i);
  3007.                     if (a[c] === "hide" && g || a[c] === "show" && !g) return b.complete.call(this);
  3008.                     if (e && (c === "height" || c === "width")) {
  3009.                         b.overflow = [this.style.overflow, this.style.overflowX, this.style.overflowY];
  3010.                         if (d.css(this, "display") === "inline" && d.css(this, "float") === "none") if (d.support.inlineBlockNeedsLayout) {
  3011.                             var j = bX(this.nodeName);
  3012.                             j === "inline" ? this.style.display = "inline-block" : (this.style.display = "inline", this.style.zoom = 1)
  3013.                         } else this.style.display = "inline-block"
  3014.                     }
  3015.                     d.isArray(a[c]) && ((b.specialEasing = b.specialEasing || {})[c] = a[c][1], a[c] = a[c][0])
  3016.                 }
  3017.                 b.overflow != null && (this.style.overflow = "hidden"), b.curAnim = d.extend({}, a), d.each(a, function (c, e) {
  3018.                     var f = new d.fx(h, b, c);
  3019.                     if (bS.test(e)) f[e === "toggle" ? g ? "show" : "hide" : e](a);
  3020.                     else {
  3021.                         var i = bT.exec(e),
  3022.                             j = f.cur() || 0;
  3023.                         if (i) {
  3024.                             var k = parseFloat(i[2]),
  3025.                                 l = i[3] || "px";
  3026.                             l !== "px" && (d.style(h, c, (k || 1) + l), j = (k || 1) / f.cur() * j, d.style(h, c, j + l)), i[1] && (k = (i[1] === "-=" ? -1 : 1) * k + j), f.custom(j, k, l)
  3027.                         } else f.custom(j, e, "")
  3028.                     }
  3029.                 });
  3030.                 return !0
  3031.             })
  3032.         },
  3033.         stop: function (a, b) {
  3034.             var c = d.timers;
  3035.             a && this.queue([]), this.each(function () {
  3036.                 for (var a = c.length - 1; a >= 0; a--) c[a].elem === this && (b && c[a](!0), c.splice(a, 1))
  3037.             }), b || this.dequeue();
  3038.             return this
  3039.         }
  3040.     }), d.each({
  3041.         slideDown: bW("show", 1),
  3042.         slideUp: bW("hide", 1),
  3043.         slideToggle: bW("toggle", 1),
  3044.         fadeIn: {
  3045.             opacity: "show"
  3046.         },
  3047.         fadeOut: {
  3048.             opacity: "hide"
  3049.         },
  3050.         fadeToggle: {
  3051.             opacity: "toggle"
  3052.         }
  3053.     }, function (a, b) {
  3054.         d.fn[a] = function (a, c, d) {
  3055.             return this.animate(b, a, c, d)
  3056.         }
  3057.     }), d.extend({
  3058.         speed: function (a, b, c) {
  3059.             var e = a && typeof a === "object" ? d.extend({}, a) : {
  3060.                 complete: c || !c && b || d.isFunction(a) && a,
  3061.                 duration: a,
  3062.                 easing: c && b || b && !d.isFunction(b) && b
  3063.             };
  3064.             e.duration = d.fx.off ? 0 : typeof e.duration === "number" ? e.duration : e.duration in d.fx.speeds ? d.fx.speeds[e.duration] : d.fx.speeds._default, e.old = e.complete, e.complete = function () {
  3065.                 e.queue !== !1 && d(this).dequeue(), d.isFunction(e.old) && e.old.call(this)
  3066.             };
  3067.             return e
  3068.         },
  3069.         easing: {
  3070.             linear: function (a, b, c, d) {
  3071.                 return c + d * a
  3072.             },
  3073.             swing: function (a, b, c, d) {
  3074.                 return (-Math.cos(a * Math.PI) / 2 + .5) * d + c
  3075.             }
  3076.         },
  3077.         timers: [],
  3078.         fx: function (a, b, c) {
  3079.             this.options = b, this.elem = a, this.prop = c, b.orig || (b.orig = {})
  3080.         }
  3081.     }), d.fx.prototype = {
  3082.         update: function () {
  3083.             this.options.step && this.options.step.call(this.elem, this.now, this), (d.fx.step[this.prop] || d.fx.step._default)(this)
  3084.         },
  3085.         cur: function () {
  3086.             if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) return this.elem[this.prop];
  3087.             var a = parseFloat(d.css(this.elem, this.prop));
  3088.             return a || 0
  3089.         },
  3090.         custom: function (a, b, c) {
  3091.             function g(a) {
  3092.                 return e.step(a)
  3093.             }
  3094.             var e = this,
  3095.                 f = d.fx;
  3096.             this.startTime = d.now(), this.start = a, this.end = b, this.unit = c || this.unit || "px", this.now = this.start, this.pos = this.state = 0, g.elem = this.elem, g() && d.timers.push(g) && !bU && (bU = setInterval(f.tick, f.interval))
  3097.         },
  3098.         show: function () {
  3099.             this.options.orig[this.prop] = d.style(this.elem, this.prop), this.options.show = !0, this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur()), d(this.elem).show()
  3100.         },
  3101.         hide: function () {
  3102.             this.options.orig[this.prop] = d.style(this.elem, this.prop), this.options.hide = !0, this.custom(this.cur(), 0)
  3103.         },
  3104.         step: function (a) {
  3105.             var b = d.now(),
  3106.                 c = !0;
  3107.             if (a || b >= this.options.duration + this.startTime) {
  3108.                 this.now = this.end, this.pos = this.state = 1, this.update(), this.option