\").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var dd=a.document.documentElement;function ed(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,\"position\"),l=n(a),m={};\"static\"===k&&(a.style.position=\"relative\"),h=l.offset(),f=n.css(a,\"top\"),i=n.css(a,\"left\"),j=(\"absolute\"===k||\"fixed\"===k)&&n.inArray(\"auto\",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),\"using\"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?(typeof e.getBoundingClientRect!==L&&(d=e.getBoundingClientRect()),c=ed(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return\"fixed\"===n.css(d,\"position\")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],\"html\")||(c=a.offset()),c.top+=n.css(a[0],\"borderTopWidth\",!0),c.left+=n.css(a[0],\"borderLeftWidth\",!0)),{top:b.top-c.top-n.css(d,\"marginTop\",!0),left:b.left-c.left-n.css(d,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||dd;while(a&&!n.nodeName(a,\"html\")&&\"static\"===n.css(a,\"position\"))a=a.offsetParent;return a||dd})}}),n.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return W(this,function(a,d,e){var f=ed(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each([\"top\",\"left\"],function(a,b){n.cssHooks[b]=Mb(l.pixelPosition,function(a,c){return c?(c=Kb(a,b),Ib.test(c)?n(a).position()[b]+\"px\":c):void 0})}),n.each({Height:\"height\",Width:\"width\"},function(a,b){n.each({padding:\"inner\"+a,content:b,\"\":\"outer\"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||\"boolean\"!=typeof d),g=c||(d===!0||e===!0?\"margin\":\"border\");return W(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement[\"client\"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body[\"scroll\"+a],e[\"scroll\"+a],b.body[\"offset\"+a],e[\"offset\"+a],e[\"client\"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return n});var fd=a.jQuery,gd=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=gd),b&&a.jQuery===n&&(a.jQuery=fd),n},typeof b===L&&(a.jQuery=a.$=n),n});\n","/*! F2 - v1.4.0 - 04-02-2015 - See below for copyright and license */\n\n!function (exports) {\n\tif (!exports.F2 || exports.F2_TESTING_MODE) {/*!\n JSON.org requires the following notice to accompany json2:\n\n Copyright (c) 2002 JSON.org\n\n http://json.org\n\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), \n to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, \n and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n The Software shall be used for Good, not Evil.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS \n IN THE SOFTWARE.\n*/\n\t\t\"object\" != typeof JSON && (JSON = {}), function () { \"use strict\"; function f(a) { return 10 > a ? \"0\" + a : a } function quote(a) { return escapable.lastIndex = 0, escapable.test(a) ? '\"' + a.replace(escapable, function (a) { var b = meta[a]; return \"string\" == typeof b ? b : \"\\\\u\" + (\"0000\" + a.charCodeAt(0).toString(16)).slice(-4) }) + '\"' : '\"' + a + '\"' } function str(a, b) { var c, d, e, f, g, h = gap, i = b[a]; switch (i && \"object\" == typeof i && \"function\" == typeof i.toJSON && (i = i.toJSON(a)), \"function\" == typeof rep && (i = rep.call(b, a, i)), typeof i) { case \"string\": return quote(i); case \"number\": return isFinite(i) ? String(i) : \"null\"; case \"boolean\": case \"null\": return String(i); case \"object\": if (!i) return \"null\"; if (gap += indent, g = [], \"[object Array]\" === Object.prototype.toString.apply(i)) { for (f = i.length, c = 0; f > c; c += 1) g[c] = str(c, i) || \"null\"; return e = 0 === g.length ? \"[]\" : gap ? \"[\\n\" + gap + g.join(\",\\n\" + gap) + \"\\n\" + h + \"]\" : \"[\" + g.join(\",\") + \"]\", gap = h, e } if (rep && \"object\" == typeof rep) for (f = rep.length, c = 0; f > c; c += 1) \"string\" == typeof rep[c] && (d = rep[c], e = str(d, i), e && g.push(quote(d) + (gap ? \": \" : \":\") + e)); else for (d in i) Object.prototype.hasOwnProperty.call(i, d) && (e = str(d, i), e && g.push(quote(d) + (gap ? \": \" : \":\") + e)); return e = 0 === g.length ? \"{}\" : gap ? \"{\\n\" + gap + g.join(\",\\n\" + gap) + \"\\n\" + h + \"}\" : \"{\" + g.join(\",\") + \"}\", gap = h, e } } \"function\" != typeof Date.prototype.toJSON && (Date.prototype.toJSON = function () { return isFinite(this.valueOf()) ? this.getUTCFullYear() + \"-\" + f(this.getUTCMonth() + 1) + \"-\" + f(this.getUTCDate()) + \"T\" + f(this.getUTCHours()) + \":\" + f(this.getUTCMinutes()) + \":\" + f(this.getUTCSeconds()) + \"Z\" : null }, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function () { return this.valueOf() }); var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g, escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g, gap, indent, meta = { \"\\b\": \"\\\\b\", \"\t\": \"\\\\t\", \"\\n\": \"\\\\n\", \"\\f\": \"\\\\f\", \"\\r\": \"\\\\r\", '\"': '\\\\\"', \"\\\\\": \"\\\\\\\\\" }, rep; \"function\" != typeof JSON.stringify && (JSON.stringify = function (a, b, c) { var d; if (gap = \"\", indent = \"\", \"number\" == typeof c) for (d = 0; c > d; d += 1) indent += \" \"; else \"string\" == typeof c && (indent = c); if (rep = b, b && \"function\" != typeof b && (\"object\" != typeof b || \"number\" != typeof b.length)) throw new Error(\"JSON.stringify\"); return str(\"\", { \"\": a }) }), \"function\" != typeof JSON.parse && (JSON.parse = function (text, reviver) { function walk(a, b) { var c, d, e = a[b]; if (e && \"object\" == typeof e) for (c in e) Object.prototype.hasOwnProperty.call(e, c) && (d = walk(e, c), void 0 !== d ? e[c] = d : delete e[c]); return reviver.call(a, b, e) } var j; if (text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx, function (a) { return \"\\\\u\" + (\"0000\" + a.charCodeAt(0).toString(16)).slice(-4) })), /^[\\],:{}\\s]*$/.test(text.replace(/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g, \"@\").replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, \"]\").replace(/(?:^|:|,)(?:\\s*\\[)+/g, \"\"))) return j = eval(\"(\" + text + \")\"), \"function\" == typeof reviver ? walk({ \"\": j }, \"\") : j; throw new SyntaxError(\"JSON.parse\") }) }(),/*!\n * jQuery JavaScript Library v1.11.2\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-17T15:27Z\n */\n\t\tfunction (a, b) { \"object\" == typeof module && \"object\" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function (a) { if (!a.document) throw new Error(\"jQuery requires a window with a document\"); return b(a) } : b(a) }(\"undefined\" != typeof window ? window : this, function (a, b) {\n\t\t\tfunction c(a) { var b = a.length, c = eb.type(a); return \"function\" === c || eb.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : \"array\" === c || 0 === b || \"number\" == typeof b && b > 0 && b - 1 in a } function d(a, b, c) { if (eb.isFunction(b)) return eb.grep(a, function (a, d) { return !!b.call(a, d, a) !== c }); if (b.nodeType) return eb.grep(a, function (a) { return a === b !== c }); if (\"string\" == typeof b) { if (mb.test(b)) return eb.filter(b, a, c); b = eb.filter(b, a) } return eb.grep(a, function (a) { return eb.inArray(a, b) >= 0 !== c }) } function e(a, b) { do a = a[b]; while (a && 1 !== a.nodeType); return a } function f(a) { var b = ub[a] = {}; return eb.each(a.match(tb) || [], function (a, c) { b[c] = !0 }), b } function g() { ob.addEventListener ? (ob.removeEventListener(\"DOMContentLoaded\", h, !1), a.removeEventListener(\"load\", h, !1)) : (ob.detachEvent(\"onreadystatechange\", h), a.detachEvent(\"onload\", h)) } function h() { (ob.addEventListener || \"load\" === event.type || \"complete\" === ob.readyState) && (g(), eb.ready()) } function i(a, b, c) { if (void 0 === c && 1 === a.nodeType) { var d = \"data-\" + b.replace(zb, \"-$1\").toLowerCase(); if (c = a.getAttribute(d), \"string\" == typeof c) { try { c = \"true\" === c ? !0 : \"false\" === c ? !1 : \"null\" === c ? null : +c + \"\" === c ? +c : yb.test(c) ? eb.parseJSON(c) : c } catch (e) { } eb.data(a, b, c) } else c = void 0 } return c } function j(a) { var b; for (b in a) if ((\"data\" !== b || !eb.isEmptyObject(a[b])) && \"toJSON\" !== b) return !1; return !0 } function k(a, b, c, d) { if (eb.acceptData(a)) { var e, f, g = eb.expando, h = a.nodeType, i = h ? eb.cache : a, j = h ? a[g] : a[g] && g; if (j && i[j] && (d || i[j].data) || void 0 !== c || \"string\" != typeof b) return j || (j = h ? a[g] = W.pop() || eb.guid++ : g), i[j] || (i[j] = h ? {} : { toJSON: eb.noop }), (\"object\" == typeof b || \"function\" == typeof b) && (d ? i[j] = eb.extend(i[j], b) : i[j].data = eb.extend(i[j].data, b)), f = i[j], d || (f.data || (f.data = {}), f = f.data), void 0 !== c && (f[eb.camelCase(b)] = c), \"string\" == typeof b ? (e = f[b], null == e && (e = f[eb.camelCase(b)])) : e = f, e } } function l(a, b, c) { if (eb.acceptData(a)) { var d, e, f = a.nodeType, g = f ? eb.cache : a, h = f ? a[eb.expando] : eb.expando; if (g[h]) { if (b && (d = c ? g[h] : g[h].data)) { eb.isArray(b) ? b = b.concat(eb.map(b, eb.camelCase)) : b in d ? b = [b] : (b = eb.camelCase(b), b = b in d ? [b] : b.split(\" \")), e = b.length; for (; e--;) delete d[b[e]]; if (c ? !j(d) : !eb.isEmptyObject(d)) return } (c || (delete g[h].data, j(g[h]))) && (f ? eb.cleanData([a], !0) : cb.deleteExpando || g != g.window ? delete g[h] : g[h] = null) } } } function m() { return !0 } function n() { return !1 } function o() { try { return ob.activeElement } catch (a) { } } function p(a) { var b = Kb.split(\"|\"), c = a.createDocumentFragment(); if (c.createElement) for (; b.length;) c.createElement(b.pop()); return c } function q(a, b) { var c, d, e = 0, f = typeof a.getElementsByTagName !== xb ? a.getElementsByTagName(b || \"*\") : typeof a.querySelectorAll !== xb ? a.querySelectorAll(b || \"*\") : void 0; if (!f) for (f = [], c = a.childNodes || a; null != (d = c[e]) ; e++) !b || eb.nodeName(d, b) ? f.push(d) : eb.merge(f, q(d, b)); return void 0 === b || b && eb.nodeName(a, b) ? eb.merge([a], f) : f } function r(a) { Eb.test(a.type) && (a.defaultChecked = a.checked) } function s(a, b) { return eb.nodeName(a, \"table\") && eb.nodeName(11 !== b.nodeType ? b : b.firstChild, \"tr\") ? a.getElementsByTagName(\"tbody\")[0] || a.appendChild(a.ownerDocument.createElement(\"tbody\")) : a } function t(a) { return a.type = (null !== eb.find.attr(a, \"type\")) + \"/\" + a.type, a } function u(a) { var b = Vb.exec(a.type); return b ? a.type = b[1] : a.removeAttribute(\"type\"), a } function v(a, b) { for (var c, d = 0; null != (c = a[d]) ; d++) eb._data(c, \"globalEval\", !b || eb._data(b[d], \"globalEval\")) } function w(a, b) { if (1 === b.nodeType && eb.hasData(a)) { var c, d, e, f = eb._data(a), g = eb._data(b, f), h = f.events; if (h) { delete g.handle, g.events = {}; for (c in h) for (d = 0, e = h[c].length; e > d; d++) eb.event.add(b, c, h[c][d]) } g.data && (g.data = eb.extend({}, g.data)) } } function x(a, b) { var c, d, e; if (1 === b.nodeType) { if (c = b.nodeName.toLowerCase(), !cb.noCloneEvent && b[eb.expando]) { e = eb._data(b); for (d in e.events) eb.removeEvent(b, d, e.handle); b.removeAttribute(eb.expando) } \"script\" === c && b.text !== a.text ? (t(b).text = a.text, u(b)) : \"object\" === c ? (b.parentNode && (b.outerHTML = a.outerHTML), cb.html5Clone && a.innerHTML && !eb.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : \"input\" === c && Eb.test(a.type) ? (b.defaultChecked = b.checked = a.checked, b.value !== a.value && (b.value = a.value)) : \"option\" === c ? b.defaultSelected = b.selected = a.defaultSelected : (\"input\" === c || \"textarea\" === c) && (b.defaultValue = a.defaultValue) } } function y(b, c) { var d, e = eb(c.createElement(b)).appendTo(c.body), f = a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) ? d.display : eb.css(e[0], \"display\"); return e.detach(), f } function z(a) { var b = ob, c = _b[a]; return c || (c = y(a, b), \"none\" !== c && c || ($b = ($b || eb(\"\")).appendTo(b.documentElement), b = ($b[0].contentWindow || $b[0].contentDocument).document, b.write(), b.close(), c = y(a, b), $b.detach()), _b[a] = c), c } function A(a, b) { return { get: function () { var c = a(); if (null != c) return c ? void delete this.get : (this.get = b).apply(this, arguments) } } } function B(a, b) { if (b in a) return b; for (var c = b.charAt(0).toUpperCase() + b.slice(1), d = b, e = mc.length; e--;) if (b = mc[e] + c, b in a) return b; return d } function C(a, b) { for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++) d = a[g], d.style && (f[g] = eb._data(d, \"olddisplay\"), c = d.style.display, b ? (f[g] || \"none\" !== c || (d.style.display = \"\"), \"\" === d.style.display && Cb(d) && (f[g] = eb._data(d, \"olddisplay\", z(d.nodeName)))) : (e = Cb(d), (c && \"none\" !== c || !e) && eb._data(d, \"olddisplay\", e ? c : eb.css(d, \"display\")))); for (g = 0; h > g; g++) d = a[g], d.style && (b && \"none\" !== d.style.display && \"\" !== d.style.display || (d.style.display = b ? f[g] || \"\" : \"none\")); return a } function D(a, b, c) { var d = ic.exec(b); return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || \"px\") : b } function E(a, b, c, d, e) { for (var f = c === (d ? \"border\" : \"content\") ? 4 : \"width\" === b ? 1 : 0, g = 0; 4 > f; f += 2) \"margin\" === c && (g += eb.css(a, c + Bb[f], !0, e)), d ? (\"content\" === c && (g -= eb.css(a, \"padding\" + Bb[f], !0, e)), \"margin\" !== c && (g -= eb.css(a, \"border\" + Bb[f] + \"Width\", !0, e))) : (g += eb.css(a, \"padding\" + Bb[f], !0, e), \"padding\" !== c && (g += eb.css(a, \"border\" + Bb[f] + \"Width\", !0, e))); return g } function F(a, b, c) { var d = !0, e = \"width\" === b ? a.offsetWidth : a.offsetHeight, f = ac(a), g = cb.boxSizing && \"border-box\" === eb.css(a, \"boxSizing\", !1, f); if (0 >= e || null == e) { if (e = bc(a, b, f), (0 > e || null == e) && (e = a.style[b]), dc.test(e)) return e; d = g && (cb.boxSizingReliable() || e === a.style[b]), e = parseFloat(e) || 0 } return e + E(a, b, c || (g ? \"border\" : \"content\"), d, f) + \"px\" } function G(a, b, c, d, e) { return new G.prototype.init(a, b, c, d, e) } function H() { return setTimeout(function () { nc = void 0 }), nc = eb.now() } function I(a, b) { var c, d = { height: a }, e = 0; for (b = b ? 1 : 0; 4 > e; e += 2 - b) c = Bb[e], d[\"margin\" + c] = d[\"padding\" + c] = a; return b && (d.opacity = d.width = a), d } function J(a, b, c) { for (var d, e = (tc[b] || []).concat(tc[\"*\"]), f = 0, g = e.length; g > f; f++) if (d = e[f].call(c, b, a)) return d } function K(a, b, c) { var d, e, f, g, h, i, j, k, l = this, m = {}, n = a.style, o = a.nodeType && Cb(a), p = eb._data(a, \"fxshow\"); c.queue || (h = eb._queueHooks(a, \"fx\"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function () { h.unqueued || i() }), h.unqueued++, l.always(function () { l.always(function () { h.unqueued--, eb.queue(a, \"fx\").length || h.empty.fire() }) })), 1 === a.nodeType && (\"height\" in b || \"width\" in b) && (c.overflow = [n.overflow, n.overflowX, n.overflowY], j = eb.css(a, \"display\"), k = \"none\" === j ? eb._data(a, \"olddisplay\") || z(a.nodeName) : j, \"inline\" === k && \"none\" === eb.css(a, \"float\") && (cb.inlineBlockNeedsLayout && \"inline\" !== z(a.nodeName) ? n.zoom = 1 : n.display = \"inline-block\")), c.overflow && (n.overflow = \"hidden\", cb.shrinkWrapBlocks() || l.always(function () { n.overflow = c.overflow[0], n.overflowX = c.overflow[1], n.overflowY = c.overflow[2] })); for (d in b) if (e = b[d], pc.exec(e)) { if (delete b[d], f = f || \"toggle\" === e, e === (o ? \"hide\" : \"show\")) { if (\"show\" !== e || !p || void 0 === p[d]) continue; o = !0 } m[d] = p && p[d] || eb.style(a, d) } else j = void 0; if (eb.isEmptyObject(m)) \"inline\" === (\"none\" === j ? z(a.nodeName) : j) && (n.display = j); else { p ? \"hidden\" in p && (o = p.hidden) : p = eb._data(a, \"fxshow\", {}), f && (p.hidden = !o), o ? eb(a).show() : l.done(function () { eb(a).hide() }), l.done(function () { var b; eb._removeData(a, \"fxshow\"); for (b in m) eb.style(a, b, m[b]) }); for (d in m) g = J(o ? p[d] : 0, d, l), d in p || (p[d] = g.start, o && (g.end = g.start, g.start = \"width\" === d || \"height\" === d ? 1 : 0)) } } function L(a, b) { var c, d, e, f, g; for (c in a) if (d = eb.camelCase(c), e = b[d], f = a[c], eb.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = eb.cssHooks[d], g && \"expand\" in g) { f = g.expand(f), delete a[d]; for (c in f) c in a || (a[c] = f[c], b[c] = e) } else b[d] = e } function M(a, b, c) { var d, e, f = 0, g = sc.length, h = eb.Deferred().always(function () { delete i.elem }), i = function () { if (e) return !1; for (var b = nc || H(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++) j.tweens[g].run(f); return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1) }, j = h.promise({ elem: a, props: eb.extend({}, b), opts: eb.extend(!0, { specialEasing: {} }, c), originalProperties: b, originalOptions: c, startTime: nc || H(), duration: c.duration, tweens: [], createTween: function (b, c) { var d = eb.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing); return j.tweens.push(d), d }, stop: function (b) { var c = 0, d = b ? j.tweens.length : 0; if (e) return this; for (e = !0; d > c; c++) j.tweens[c].run(1); return b ? h.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]), this } }), k = j.props; for (L(k, j.opts.specialEasing) ; g > f; f++) if (d = sc[f].call(j, a, k, j.opts)) return d; return eb.map(k, J, j), eb.isFunction(j.opts.start) && j.opts.start.call(a, j), eb.fx.timer(eb.extend(i, { elem: a, anim: j, queue: j.opts.queue })), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always) } function N(a) { return function (b, c) { \"string\" != typeof b && (c = b, b = \"*\"); var d, e = 0, f = b.toLowerCase().match(tb) || []; if (eb.isFunction(c)) for (; d = f[e++];) \"+\" === d.charAt(0) ? (d = d.slice(1) || \"*\", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c) } } function O(a, b, c, d) { function e(h) { var i; return f[h] = !0, eb.each(a[h] || [], function (a, h) { var j = h(b, c, d); return \"string\" != typeof j || g || f[j] ? g ? !(i = j) : void 0 : (b.dataTypes.unshift(j), e(j), !1) }), i } var f = {}, g = a === Rc; return e(b.dataTypes[0]) || !f[\"*\"] && e(\"*\") } function P(a, b) { var c, d, e = eb.ajaxSettings.flatOptions || {}; for (d in b) void 0 !== b[d] && ((e[d] ? a : c || (c = {}))[d] = b[d]); return c && eb.extend(!0, a, c), a } function Q(a, b, c) { for (var d, e, f, g, h = a.contents, i = a.dataTypes; \"*\" === i[0];) i.shift(), void 0 === e && (e = a.mimeType || b.getResponseHeader(\"Content-Type\")); if (e) for (g in h) if (h[g] && h[g].test(e)) { i.unshift(g); break } if (i[0] in c) f = i[0]; else { for (g in c) { if (!i[0] || a.converters[g + \" \" + i[0]]) { f = g; break } d || (d = g) } f = f || d } return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0 } function R(a, b, c, d) { var e, f, g, h, i, j = {}, k = a.dataTypes.slice(); if (k[1]) for (g in a.converters) j[g.toLowerCase()] = a.converters[g]; for (f = k.shift() ; f;) if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift()) if (\"*\" === f) f = i; else if (\"*\" !== i && i !== f) { if (g = j[i + \" \" + f] || j[\"* \" + f], !g) for (e in j) if (h = e.split(\" \"), h[1] === f && (g = j[i + \" \" + h[0]] || j[\"* \" + h[0]])) { g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1])); break } if (g !== !0) if (g && a[\"throws\"]) b = g(b); else try { b = g(b) } catch (l) { return { state: \"parsererror\", error: g ? l : \"No conversion from \" + i + \" to \" + f } } } return { state: \"success\", data: b } } function S(a, b, c, d) { var e; if (eb.isArray(b)) eb.each(b, function (b, e) { c || Vc.test(a) ? d(a, e) : S(a + \"[\" + (\"object\" == typeof e ? b : \"\") + \"]\", e, c, d) }); else if (c || \"object\" !== eb.type(b)) d(a, b); else for (e in b) S(a + \"[\" + e + \"]\", b[e], c, d) } function T() { try { return new a.XMLHttpRequest } catch (b) { } } function U() { try { return new a.ActiveXObject(\"Microsoft.XMLHTTP\") } catch (b) { } } function V(a) { return eb.isWindow(a) ? a : 9 === a.nodeType ? a.defaultView || a.parentWindow : !1 } var W = [], X = W.slice, Y = W.concat, Z = W.push, $ = W.indexOf, _ = {}, ab = _.toString, bb = _.hasOwnProperty, cb = {}, db = \"1.11.2\", eb = function (a, b) { return new eb.fn.init(a, b) }, fb = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, gb = /^-ms-/, hb = /-([\\da-z])/gi, ib = function (a, b) { return b.toUpperCase() }; eb.fn = eb.prototype = { jquery: db, constructor: eb, selector: \"\", length: 0, toArray: function () { return X.call(this) }, get: function (a) { return null != a ? 0 > a ? this[a + this.length] : this[a] : X.call(this) }, pushStack: function (a) { var b = eb.merge(this.constructor(), a); return b.prevObject = this, b.context = this.context, b }, each: function (a, b) { return eb.each(this, a, b) }, map: function (a) { return this.pushStack(eb.map(this, function (b, c) { return a.call(b, c, b) })) }, slice: function () { return this.pushStack(X.apply(this, arguments)) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, eq: function (a) { var b = this.length, c = +a + (0 > a ? b : 0); return this.pushStack(c >= 0 && b > c ? [this[c]] : []) }, end: function () { return this.prevObject || this.constructor(null) }, push: Z, sort: W.sort, splice: W.splice }, eb.extend = eb.fn.extend = function () { var a, b, c, d, e, f, g = arguments[0] || {}, h = 1, i = arguments.length, j = !1; for (\"boolean\" == typeof g && (j = g, g = arguments[h] || {}, h++), \"object\" == typeof g || eb.isFunction(g) || (g = {}), h === i && (g = this, h--) ; i > h; h++) if (null != (e = arguments[h])) for (d in e) a = g[d], c = e[d], g !== c && (j && c && (eb.isPlainObject(c) || (b = eb.isArray(c))) ? (b ? (b = !1, f = a && eb.isArray(a) ? a : []) : f = a && eb.isPlainObject(a) ? a : {}, g[d] = eb.extend(j, f, c)) : void 0 !== c && (g[d] = c)); return g }, eb.extend({ expando: \"jQuery\" + (db + Math.random()).replace(/\\D/g, \"\"), isReady: !0, error: function (a) { throw new Error(a) }, noop: function () { }, isFunction: function (a) { return \"function\" === eb.type(a) }, isArray: Array.isArray || function (a) { return \"array\" === eb.type(a) }, isWindow: function (a) { return null != a && a == a.window }, isNumeric: function (a) { return !eb.isArray(a) && a - parseFloat(a) + 1 >= 0 }, isEmptyObject: function (a) { var b; for (b in a) return !1; return !0 }, isPlainObject: function (a) { var b; if (!a || \"object\" !== eb.type(a) || a.nodeType || eb.isWindow(a)) return !1; try { if (a.constructor && !bb.call(a, \"constructor\") && !bb.call(a.constructor.prototype, \"isPrototypeOf\")) return !1 } catch (c) { return !1 } if (cb.ownLast) for (b in a) return bb.call(a, b); for (b in a); return void 0 === b || bb.call(a, b) }, type: function (a) { return null == a ? a + \"\" : \"object\" == typeof a || \"function\" == typeof a ? _[ab.call(a)] || \"object\" : typeof a }, globalEval: function (b) { b && eb.trim(b) && (a.execScript || function (b) { a.eval.call(a, b) })(b) }, camelCase: function (a) { return a.replace(gb, \"ms-\").replace(hb, ib) }, nodeName: function (a, b) { return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase() }, each: function (a, b, d) { var e, f = 0, g = a.length, h = c(a); if (d) { if (h) for (; g > f && (e = b.apply(a[f], d), e !== !1) ; f++); else for (f in a) if (e = b.apply(a[f], d), e === !1) break } else if (h) for (; g > f && (e = b.call(a[f], f, a[f]), e !== !1) ; f++); else for (f in a) if (e = b.call(a[f], f, a[f]), e === !1) break; return a }, trim: function (a) { return null == a ? \"\" : (a + \"\").replace(fb, \"\") }, makeArray: function (a, b) { var d = b || []; return null != a && (c(Object(a)) ? eb.merge(d, \"string\" == typeof a ? [a] : a) : Z.call(d, a)), d }, inArray: function (a, b, c) { var d; if (b) { if ($) return $.call(b, a, c); for (d = b.length, c = c ? 0 > c ? Math.max(0, d + c) : c : 0; d > c; c++) if (c in b && b[c] === a) return c } return -1 }, merge: function (a, b) { for (var c = +b.length, d = 0, e = a.length; c > d;) a[e++] = b[d++]; if (c !== c) for (; void 0 !== b[d];) a[e++] = b[d++]; return a.length = e, a }, grep: function (a, b, c) { for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) d = !b(a[f], f), d !== h && e.push(a[f]); return e }, map: function (a, b, d) { var e, f = 0, g = a.length, h = c(a), i = []; if (h) for (; g > f; f++) e = b(a[f], f, d), null != e && i.push(e); else for (f in a) e = b(a[f], f, d), null != e && i.push(e); return Y.apply([], i) }, guid: 1, proxy: function (a, b) { var c, d, e; return \"string\" == typeof b && (e = a[b], b = a, a = e), eb.isFunction(a) ? (c = X.call(arguments, 2), d = function () { return a.apply(b || this, c.concat(X.call(arguments))) }, d.guid = a.guid = a.guid || eb.guid++, d) : void 0 }, now: function () { return +new Date }, support: cb }), eb.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function (a, b) { _[\"[object \" + b + \"]\"] = b.toLowerCase() }); var jb =/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-16\n */\n\t\t\tfunction (a) { function b(a, b, c, d) { var e, f, g, h, i, j, l, n, o, p; if ((b ? b.ownerDocument || b : O) !== G && F(b), b = b || G, c = c || [], h = b.nodeType, \"string\" != typeof a || !a || 1 !== h && 9 !== h && 11 !== h) return c; if (!d && I) { if (11 !== h && (e = sb.exec(a))) if (g = e[1]) { if (9 === h) { if (f = b.getElementById(g), !f || !f.parentNode) return c; if (f.id === g) return c.push(f), c } else if (b.ownerDocument && (f = b.ownerDocument.getElementById(g)) && M(b, f) && f.id === g) return c.push(f), c } else { if (e[2]) return $.apply(c, b.getElementsByTagName(a)), c; if ((g = e[3]) && v.getElementsByClassName) return $.apply(c, b.getElementsByClassName(g)), c } if (v.qsa && (!J || !J.test(a))) { if (n = l = N, o = b, p = 1 !== h && a, 1 === h && \"object\" !== b.nodeName.toLowerCase()) { for (j = z(a), (l = b.getAttribute(\"id\")) ? n = l.replace(ub, \"\\\\$&\") : b.setAttribute(\"id\", n), n = \"[id='\" + n + \"'] \", i = j.length; i--;) j[i] = n + m(j[i]); o = tb.test(a) && k(b.parentNode) || b, p = j.join(\",\") } if (p) try { return $.apply(c, o.querySelectorAll(p)), c } catch (q) { } finally { l || b.removeAttribute(\"id\") } } } return B(a.replace(ib, \"$1\"), b, c, d) } function c() { function a(c, d) { return b.push(c + \" \") > w.cacheLength && delete a[b.shift()], a[c + \" \"] = d } var b = []; return a } function d(a) { return a[N] = !0, a } function e(a) { var b = G.createElement(\"div\"); try { return !!a(b) } catch (c) { return !1 } finally { b.parentNode && b.parentNode.removeChild(b), b = null } } function f(a, b) { for (var c = a.split(\"|\"), d = a.length; d--;) w.attrHandle[c[d]] = b } function g(a, b) { var c = b && a, d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || V) - (~a.sourceIndex || V); if (d) return d; if (c) for (; c = c.nextSibling;) if (c === b) return -1; return a ? 1 : -1 } function h(a) { return function (b) { var c = b.nodeName.toLowerCase(); return \"input\" === c && b.type === a } } function i(a) { return function (b) { var c = b.nodeName.toLowerCase(); return (\"input\" === c || \"button\" === c) && b.type === a } } function j(a) { return d(function (b) { return b = +b, d(function (c, d) { for (var e, f = a([], c.length, b), g = f.length; g--;) c[e = f[g]] && (c[e] = !(d[e] = c[e])) }) }) } function k(a) { return a && \"undefined\" != typeof a.getElementsByTagName && a } function l() { } function m(a) { for (var b = 0, c = a.length, d = \"\"; c > b; b++) d += a[b].value; return d } function n(a, b, c) { var d = b.dir, e = c && \"parentNode\" === d, f = Q++; return b.first ? function (b, c, f) { for (; b = b[d];) if (1 === b.nodeType || e) return a(b, c, f) } : function (b, c, g) { var h, i, j = [P, f]; if (g) { for (; b = b[d];) if ((1 === b.nodeType || e) && a(b, c, g)) return !0 } else for (; b = b[d];) if (1 === b.nodeType || e) { if (i = b[N] || (b[N] = {}), (h = i[d]) && h[0] === P && h[1] === f) return j[2] = h[2]; if (i[d] = j, j[2] = a(b, c, g)) return !0 } } } function o(a) { return a.length > 1 ? function (b, c, d) { for (var e = a.length; e--;) if (!a[e](b, c, d)) return !1; return !0 } : a[0] } function p(a, c, d) { for (var e = 0, f = c.length; f > e; e++) b(a, c[e], d); return d } function q(a, b, c, d, e) { for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++) (f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h)); return g } function r(a, b, c, e, f, g) { return e && !e[N] && (e = r(e)), f && !f[N] && (f = r(f, g)), d(function (d, g, h, i) { var j, k, l, m = [], n = [], o = g.length, r = d || p(b || \"*\", h.nodeType ? [h] : h, []), s = !a || !d && b ? r : q(r, m, a, h, i), t = c ? f || (d ? a : o || e) ? [] : g : s; if (c && c(s, t, h, i), e) for (j = q(t, n), e(j, [], h, i), k = j.length; k--;) (l = j[k]) && (t[n[k]] = !(s[n[k]] = l)); if (d) { if (f || a) { if (f) { for (j = [], k = t.length; k--;) (l = t[k]) && j.push(s[k] = l); f(null, t = [], j, i) } for (k = t.length; k--;) (l = t[k]) && (j = f ? ab(d, l) : m[k]) > -1 && (d[j] = !(g[j] = l)) } } else t = q(t === g ? t.splice(o, t.length) : t), f ? f(null, g, t, i) : $.apply(g, t) }) } function s(a) { for (var b, c, d, e = a.length, f = w.relative[a[0].type], g = f || w.relative[\" \"], h = f ? 1 : 0, i = n(function (a) { return a === b }, g, !0), j = n(function (a) { return ab(b, a) > -1 }, g, !0), k = [function (a, c, d) { var e = !f && (d || c !== C) || ((b = c).nodeType ? i(a, c, d) : j(a, c, d)); return b = null, e }]; e > h; h++) if (c = w.relative[a[h].type]) k = [n(o(k), c)]; else { if (c = w.filter[a[h].type].apply(null, a[h].matches), c[N]) { for (d = ++h; e > d && !w.relative[a[d].type]; d++); return r(h > 1 && o(k), h > 1 && m(a.slice(0, h - 1).concat({ value: \" \" === a[h - 2].type ? \"*\" : \"\" })).replace(ib, \"$1\"), c, d > h && s(a.slice(h, d)), e > d && s(a = a.slice(d)), e > d && m(a)) } k.push(c) } return o(k) } function t(a, c) { var e = c.length > 0, f = a.length > 0, g = function (d, g, h, i, j) { var k, l, m, n = 0, o = \"0\", p = d && [], r = [], s = C, t = d || f && w.find.TAG(\"*\", j), u = P += null == s ? 1 : Math.random() || .1, v = t.length; for (j && (C = g !== G && g) ; o !== v && null != (k = t[o]) ; o++) { if (f && k) { for (l = 0; m = a[l++];) if (m(k, g, h)) { i.push(k); break } j && (P = u) } e && ((k = !m && k) && n--, d && p.push(k)) } if (n += o, e && o !== n) { for (l = 0; m = c[l++];) m(p, r, g, h); if (d) { if (n > 0) for (; o--;) p[o] || r[o] || (r[o] = Y.call(i)); r = q(r) } $.apply(i, r), j && !d && r.length > 0 && n + c.length > 1 && b.uniqueSort(i) } return j && (P = u, C = s), p }; return e ? d(g) : g } var u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N = \"sizzle\" + 1 * new Date, O = a.document, P = 0, Q = 0, R = c(), S = c(), T = c(), U = function (a, b) { return a === b && (E = !0), 0 }, V = 1 << 31, W = {}.hasOwnProperty, X = [], Y = X.pop, Z = X.push, $ = X.push, _ = X.slice, ab = function (a, b) { for (var c = 0, d = a.length; d > c; c++) if (a[c] === b) return c; return -1 }, bb = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\", cb = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\", db = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\", eb = db.replace(\"w\", \"w#\"), fb = \"\\\\[\" + cb + \"*(\" + db + \")(?:\" + cb + \"*([*^$|!~]?=)\" + cb + \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + eb + \"))|)\" + cb + \"*\\\\]\", gb = \":(\" + db + \")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + fb + \")*)|.*)\\\\)|)\", hb = new RegExp(cb + \"+\", \"g\"), ib = new RegExp(\"^\" + cb + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + cb + \"+$\", \"g\"), jb = new RegExp(\"^\" + cb + \"*,\" + cb + \"*\"), kb = new RegExp(\"^\" + cb + \"*([>+~]|\" + cb + \")\" + cb + \"*\"), lb = new RegExp(\"=\" + cb + \"*([^\\\\]'\\\"]*?)\" + cb + \"*\\\\]\", \"g\"), mb = new RegExp(gb), nb = new RegExp(\"^\" + eb + \"$\"), ob = { ID: new RegExp(\"^#(\" + db + \")\"), CLASS: new RegExp(\"^\\\\.(\" + db + \")\"), TAG: new RegExp(\"^(\" + db.replace(\"w\", \"w*\") + \")\"), ATTR: new RegExp(\"^\" + fb), PSEUDO: new RegExp(\"^\" + gb), CHILD: new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + cb + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + cb + \"*(?:([+-]|)\" + cb + \"*(\\\\d+)|))\" + cb + \"*\\\\)|)\", \"i\"), bool: new RegExp(\"^(?:\" + bb + \")$\", \"i\"), needsContext: new RegExp(\"^\" + cb + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + cb + \"*((?:-\\\\d)?\\\\d*)\" + cb + \"*\\\\)|)(?=[^-]|$)\", \"i\") }, pb = /^(?:input|select|textarea|button)$/i, qb = /^h\\d$/i, rb = /^[^{]+\\{\\s*\\[native \\w/, sb = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/, tb = /[+~]/, ub = /'|\\\\/g, vb = new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\" + cb + \"?|(\" + cb + \")|.)\", \"ig\"), wb = function (a, b, c) { var d = \"0x\" + b - 65536; return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320) }, xb = function () { F() }; try { $.apply(X = _.call(O.childNodes), O.childNodes), X[O.childNodes.length].nodeType } catch (yb) { $ = { apply: X.length ? function (a, b) { Z.apply(a, _.call(b)) } : function (a, b) { for (var c = a.length, d = 0; a[c++] = b[d++];); a.length = c - 1 } } } v = b.support = {}, y = b.isXML = function (a) { var b = a && (a.ownerDocument || a).documentElement; return b ? \"HTML\" !== b.nodeName : !1 }, F = b.setDocument = function (a) { var b, c, d = a ? a.ownerDocument || a : O; return d !== G && 9 === d.nodeType && d.documentElement ? (G = d, H = d.documentElement, c = d.defaultView, c && c !== c.top && (c.addEventListener ? c.addEventListener(\"unload\", xb, !1) : c.attachEvent && c.attachEvent(\"onunload\", xb)), I = !y(d), v.attributes = e(function (a) { return a.className = \"i\", !a.getAttribute(\"className\") }), v.getElementsByTagName = e(function (a) { return a.appendChild(d.createComment(\"\")), !a.getElementsByTagName(\"*\").length }), v.getElementsByClassName = rb.test(d.getElementsByClassName), v.getById = e(function (a) { return H.appendChild(a).id = N, !d.getElementsByName || !d.getElementsByName(N).length }), v.getById ? (w.find.ID = function (a, b) { if (\"undefined\" != typeof b.getElementById && I) { var c = b.getElementById(a); return c && c.parentNode ? [c] : [] } }, w.filter.ID = function (a) { var b = a.replace(vb, wb); return function (a) { return a.getAttribute(\"id\") === b } }) : (delete w.find.ID, w.filter.ID = function (a) { var b = a.replace(vb, wb); return function (a) { var c = \"undefined\" != typeof a.getAttributeNode && a.getAttributeNode(\"id\"); return c && c.value === b } }), w.find.TAG = v.getElementsByTagName ? function (a, b) { return \"undefined\" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : v.qsa ? b.querySelectorAll(a) : void 0 } : function (a, b) { var c, d = [], e = 0, f = b.getElementsByTagName(a); if (\"*\" === a) { for (; c = f[e++];) 1 === c.nodeType && d.push(c); return d } return f }, w.find.CLASS = v.getElementsByClassName && function (a, b) { return I ? b.getElementsByClassName(a) : void 0 }, K = [], J = [], (v.qsa = rb.test(d.querySelectorAll)) && (e(function (a) { H.appendChild(a).innerHTML = \"\", a.querySelectorAll(\"[msallowcapture^='']\").length && J.push(\"[*^$]=\" + cb + \"*(?:''|\\\"\\\")\"), a.querySelectorAll(\"[selected]\").length || J.push(\"\\\\[\" + cb + \"*(?:value|\" + bb + \")\"), a.querySelectorAll(\"[id~=\" + N + \"-]\").length || J.push(\"~=\"), a.querySelectorAll(\":checked\").length || J.push(\":checked\"), a.querySelectorAll(\"a#\" + N + \"+*\").length || J.push(\".#.+[+~]\") }), e(function (a) { var b = d.createElement(\"input\"); b.setAttribute(\"type\", \"hidden\"), a.appendChild(b).setAttribute(\"name\", \"D\"), a.querySelectorAll(\"[name=d]\").length && J.push(\"name\" + cb + \"*[*^$|!~]?=\"), a.querySelectorAll(\":enabled\").length || J.push(\":enabled\", \":disabled\"), a.querySelectorAll(\"*,:x\"), J.push(\",.*:\") })), (v.matchesSelector = rb.test(L = H.matches || H.webkitMatchesSelector || H.mozMatchesSelector || H.oMatchesSelector || H.msMatchesSelector)) && e(function (a) { v.disconnectedMatch = L.call(a, \"div\"), L.call(a, \"[s!='']:x\"), K.push(\"!=\", gb) }), J = J.length && new RegExp(J.join(\"|\")), K = K.length && new RegExp(K.join(\"|\")), b = rb.test(H.compareDocumentPosition), M = b || rb.test(H.contains) ? function (a, b) { var c = 9 === a.nodeType ? a.documentElement : a, d = b && b.parentNode; return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d))) } : function (a, b) { if (b) for (; b = b.parentNode;) if (b === a) return !0; return !1 }, U = b ? function (a, b) { if (a === b) return E = !0, 0; var c = !a.compareDocumentPosition - !b.compareDocumentPosition; return c ? c : (c = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & c || !v.sortDetached && b.compareDocumentPosition(a) === c ? a === d || a.ownerDocument === O && M(O, a) ? -1 : b === d || b.ownerDocument === O && M(O, b) ? 1 : D ? ab(D, a) - ab(D, b) : 0 : 4 & c ? -1 : 1) } : function (a, b) { if (a === b) return E = !0, 0; var c, e = 0, f = a.parentNode, h = b.parentNode, i = [a], j = [b]; if (!f || !h) return a === d ? -1 : b === d ? 1 : f ? -1 : h ? 1 : D ? ab(D, a) - ab(D, b) : 0; if (f === h) return g(a, b); for (c = a; c = c.parentNode;) i.unshift(c); for (c = b; c = c.parentNode;) j.unshift(c); for (; i[e] === j[e];) e++; return e ? g(i[e], j[e]) : i[e] === O ? -1 : j[e] === O ? 1 : 0 }, d) : G }, b.matches = function (a, c) { return b(a, null, null, c) }, b.matchesSelector = function (a, c) { if ((a.ownerDocument || a) !== G && F(a), c = c.replace(lb, \"='$1']\"), !(!v.matchesSelector || !I || K && K.test(c) || J && J.test(c))) try { var d = L.call(a, c); if (d || v.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d } catch (e) { } return b(c, G, null, [a]).length > 0 }, b.contains = function (a, b) { return (a.ownerDocument || a) !== G && F(a), M(a, b) }, b.attr = function (a, b) { (a.ownerDocument || a) !== G && F(a); var c = w.attrHandle[b.toLowerCase()], d = c && W.call(w.attrHandle, b.toLowerCase()) ? c(a, b, !I) : void 0; return void 0 !== d ? d : v.attributes || !I ? a.getAttribute(b) : (d = a.getAttributeNode(b)) && d.specified ? d.value : null }, b.error = function (a) { throw new Error(\"Syntax error, unrecognized expression: \" + a) }, b.uniqueSort = function (a) { var b, c = [], d = 0, e = 0; if (E = !v.detectDuplicates, D = !v.sortStable && a.slice(0), a.sort(U), E) { for (; b = a[e++];) b === a[e] && (d = c.push(e)); for (; d--;) a.splice(c[d], 1) } return D = null, a }, x = b.getText = function (a) { var b, c = \"\", d = 0, e = a.nodeType; if (e) { if (1 === e || 9 === e || 11 === e) { if (\"string\" == typeof a.textContent) return a.textContent; for (a = a.firstChild; a; a = a.nextSibling) c += x(a) } else if (3 === e || 4 === e) return a.nodeValue } else for (; b = a[d++];) c += x(b); return c }, w = b.selectors = { cacheLength: 50, createPseudo: d, match: ob, attrHandle: {}, find: {}, relative: { \">\": { dir: \"parentNode\", first: !0 }, \" \": { dir: \"parentNode\" }, \"+\": { dir: \"previousSibling\", first: !0 }, \"~\": { dir: \"previousSibling\" } }, preFilter: { ATTR: function (a) { return a[1] = a[1].replace(vb, wb), a[3] = (a[3] || a[4] || a[5] || \"\").replace(vb, wb), \"~=\" === a[2] && (a[3] = \" \" + a[3] + \" \"), a.slice(0, 4) }, CHILD: function (a) { return a[1] = a[1].toLowerCase(), \"nth\" === a[1].slice(0, 3) ? (a[3] || b.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * (\"even\" === a[3] || \"odd\" === a[3])), a[5] = +(a[7] + a[8] || \"odd\" === a[3])) : a[3] && b.error(a[0]), a }, PSEUDO: function (a) { var b, c = !a[6] && a[2]; return ob.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || \"\" : c && mb.test(c) && (b = z(c, !0)) && (b = c.indexOf(\")\", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3)) } }, filter: { TAG: function (a) { var b = a.replace(vb, wb).toLowerCase(); return \"*\" === a ? function () { return !0 } : function (a) { return a.nodeName && a.nodeName.toLowerCase() === b } }, CLASS: function (a) { var b = R[a + \" \"]; return b || (b = new RegExp(\"(^|\" + cb + \")\" + a + \"(\" + cb + \"|$)\")) && R(a, function (a) { return b.test(\"string\" == typeof a.className && a.className || \"undefined\" != typeof a.getAttribute && a.getAttribute(\"class\") || \"\") }) }, ATTR: function (a, c, d) { return function (e) { var f = b.attr(e, a); return null == f ? \"!=\" === c : c ? (f += \"\", \"=\" === c ? f === d : \"!=\" === c ? f !== d : \"^=\" === c ? d && 0 === f.indexOf(d) : \"*=\" === c ? d && f.indexOf(d) > -1 : \"$=\" === c ? d && f.slice(-d.length) === d : \"~=\" === c ? (\" \" + f.replace(hb, \" \") + \" \").indexOf(d) > -1 : \"|=\" === c ? f === d || f.slice(0, d.length + 1) === d + \"-\" : !1) : !0 } }, CHILD: function (a, b, c, d, e) { var f = \"nth\" !== a.slice(0, 3), g = \"last\" !== a.slice(-4), h = \"of-type\" === b; return 1 === d && 0 === e ? function (a) { return !!a.parentNode } : function (b, c, i) { var j, k, l, m, n, o, p = f !== g ? \"nextSibling\" : \"previousSibling\", q = b.parentNode, r = h && b.nodeName.toLowerCase(), s = !i && !h; if (q) { if (f) { for (; p;) { for (l = b; l = l[p];) if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1; o = p = \"only\" === a && !o && \"nextSibling\" } return !0 } if (o = [g ? q.firstChild : q.lastChild], g && s) { for (k = q[N] || (q[N] = {}), j = k[a] || [], n = j[0] === P && j[1], m = j[0] === P && j[2], l = n && q.childNodes[n]; l = ++n && l && l[p] || (m = n = 0) || o.pop() ;) if (1 === l.nodeType && ++m && l === b) { k[a] = [P, n, m]; break } } else if (s && (j = (b[N] || (b[N] = {}))[a]) && j[0] === P) m = j[1]; else for (; (l = ++n && l && l[p] || (m = n = 0) || o.pop()) && ((h ? l.nodeName.toLowerCase() !== r : 1 !== l.nodeType) || !++m || (s && ((l[N] || (l[N] = {}))[a] = [P, m]), l !== b)) ;); return m -= e, m === d || m % d === 0 && m / d >= 0 } } }, PSEUDO: function (a, c) { var e, f = w.pseudos[a] || w.setFilters[a.toLowerCase()] || b.error(\"unsupported pseudo: \" + a); return f[N] ? f(c) : f.length > 1 ? (e = [a, a, \"\", c], w.setFilters.hasOwnProperty(a.toLowerCase()) ? d(function (a, b) { for (var d, e = f(a, c), g = e.length; g--;) d = ab(a, e[g]), a[d] = !(b[d] = e[g]) }) : function (a) { return f(a, 0, e) }) : f } }, pseudos: { not: d(function (a) { var b = [], c = [], e = A(a.replace(ib, \"$1\")); return e[N] ? d(function (a, b, c, d) { for (var f, g = e(a, null, d, []), h = a.length; h--;) (f = g[h]) && (a[h] = !(b[h] = f)) }) : function (a, d, f) { return b[0] = a, e(b, null, f, c), b[0] = null, !c.pop() } }), has: d(function (a) { return function (c) { return b(a, c).length > 0 } }), contains: d(function (a) { return a = a.replace(vb, wb), function (b) { return (b.textContent || b.innerText || x(b)).indexOf(a) > -1 } }), lang: d(function (a) { return nb.test(a || \"\") || b.error(\"unsupported lang: \" + a), a = a.replace(vb, wb).toLowerCase(), function (b) { var c; do if (c = I ? b.lang : b.getAttribute(\"xml:lang\") || b.getAttribute(\"lang\")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + \"-\"); while ((b = b.parentNode) && 1 === b.nodeType); return !1 } }), target: function (b) { var c = a.location && a.location.hash; return c && c.slice(1) === b.id }, root: function (a) { return a === H }, focus: function (a) { return a === G.activeElement && (!G.hasFocus || G.hasFocus()) && !!(a.type || a.href || ~a.tabIndex) }, enabled: function (a) { return a.disabled === !1 }, disabled: function (a) { return a.disabled === !0 }, checked: function (a) { var b = a.nodeName.toLowerCase(); return \"input\" === b && !!a.checked || \"option\" === b && !!a.selected }, selected: function (a) { return a.parentNode && a.parentNode.selectedIndex, a.selected === !0 }, empty: function (a) { for (a = a.firstChild; a; a = a.nextSibling) if (a.nodeType < 6) return !1; return !0 }, parent: function (a) { return !w.pseudos.empty(a) }, header: function (a) { return qb.test(a.nodeName) }, input: function (a) { return pb.test(a.nodeName) }, button: function (a) { var b = a.nodeName.toLowerCase(); return \"input\" === b && \"button\" === a.type || \"button\" === b }, text: function (a) { var b; return \"input\" === a.nodeName.toLowerCase() && \"text\" === a.type && (null == (b = a.getAttribute(\"type\")) || \"text\" === b.toLowerCase()) }, first: j(function () { return [0] }), last: j(function (a, b) { return [b - 1] }), eq: j(function (a, b, c) { return [0 > c ? c + b : c] }), even: j(function (a, b) { for (var c = 0; b > c; c += 2) a.push(c); return a }), odd: j(function (a, b) { for (var c = 1; b > c; c += 2) a.push(c); return a }), lt: j(function (a, b, c) { for (var d = 0 > c ? c + b : c; --d >= 0;) a.push(d); return a }), gt: j(function (a, b, c) { for (var d = 0 > c ? c + b : c; ++d < b;) a.push(d); return a }) } }, w.pseudos.nth = w.pseudos.eq; for (u in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) w.pseudos[u] = h(u); for (u in { submit: !0, reset: !0 }) w.pseudos[u] = i(u); return l.prototype = w.filters = w.pseudos, w.setFilters = new l, z = b.tokenize = function (a, c) { var d, e, f, g, h, i, j, k = S[a + \" \"]; if (k) return c ? 0 : k.slice(0); for (h = a, i = [], j = w.preFilter; h;) { (!d || (e = jb.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), d = !1, (e = kb.exec(h)) && (d = e.shift(), f.push({ value: d, type: e[0].replace(ib, \" \") }), h = h.slice(d.length)); for (g in w.filter) !(e = ob[g].exec(h)) || j[g] && !(e = j[g](e)) || (d = e.shift(), f.push({ value: d, type: g, matches: e }), h = h.slice(d.length)); if (!d) break } return c ? h.length : h ? b.error(a) : S(a, i).slice(0) }, A = b.compile = function (a, b) { var c, d = [], e = [], f = T[a + \" \"]; if (!f) { for (b || (b = z(a)), c = b.length; c--;) f = s(b[c]), f[N] ? d.push(f) : e.push(f); f = T(a, t(e, d)), f.selector = a } return f }, B = b.select = function (a, b, c, d) { var e, f, g, h, i, j = \"function\" == typeof a && a, l = !d && z(a = j.selector || a); if (c = c || [], 1 === l.length) { if (f = l[0] = l[0].slice(0), f.length > 2 && \"ID\" === (g = f[0]).type && v.getById && 9 === b.nodeType && I && w.relative[f[1].type]) { if (b = (w.find.ID(g.matches[0].replace(vb, wb), b) || [])[0], !b) return c; j && (b = b.parentNode), a = a.slice(f.shift().value.length) } for (e = ob.needsContext.test(a) ? 0 : f.length; e-- && (g = f[e], !w.relative[h = g.type]) ;) if ((i = w.find[h]) && (d = i(g.matches[0].replace(vb, wb), tb.test(f[0].type) && k(b.parentNode) || b))) { if (f.splice(e, 1), a = d.length && m(f), !a) return $.apply(c, d), c; break } } return (j || A(a, l))(d, b, !I, c, tb.test(a) && k(b.parentNode) || b), c }, v.sortStable = N.split(\"\").sort(U).join(\"\") === N, v.detectDuplicates = !!E, F(), v.sortDetached = e(function (a) { return 1 & a.compareDocumentPosition(G.createElement(\"div\")) }), e(function (a) { return a.innerHTML = \"\", \"#\" === a.firstChild.getAttribute(\"href\") }) || f(\"type|href|height|width\", function (a, b, c) { return c ? void 0 : a.getAttribute(b, \"type\" === b.toLowerCase() ? 1 : 2) }), v.attributes && e(function (a) { return a.innerHTML = \"\", a.firstChild.setAttribute(\"value\", \"\"), \"\" === a.firstChild.getAttribute(\"value\") }) || f(\"value\", function (a, b, c) { return c || \"input\" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue }), e(function (a) { return null == a.getAttribute(\"disabled\") }) || f(bb, function (a, b, c) { var d; return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null }), b }(a); eb.find = jb, eb.expr = jb.selectors, eb.expr[\":\"] = eb.expr.pseudos, eb.unique = jb.uniqueSort, eb.text = jb.getText, eb.isXMLDoc = jb.isXML, eb.contains = jb.contains; var kb = eb.expr.match.needsContext, lb = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/, mb = /^.[^:#\\[\\.,]*$/; eb.filter = function (a, b, c) { var d = b[0]; return c && (a = \":not(\" + a + \")\"), 1 === b.length && 1 === d.nodeType ? eb.find.matchesSelector(d, a) ? [d] : [] : eb.find.matches(a, eb.grep(b, function (a) { return 1 === a.nodeType })) }, eb.fn.extend({ find: function (a) { var b, c = [], d = this, e = d.length; if (\"string\" != typeof a) return this.pushStack(eb(a).filter(function () { for (b = 0; e > b; b++) if (eb.contains(d[b], this)) return !0 })); for (b = 0; e > b; b++) eb.find(a, d[b], c); return c = this.pushStack(e > 1 ? eb.unique(c) : c), c.selector = this.selector ? this.selector + \" \" + a : a, c }, filter: function (a) { return this.pushStack(d(this, a || [], !1)) }, not: function (a) { return this.pushStack(d(this, a || [], !0)) }, is: function (a) { return !!d(this, \"string\" == typeof a && kb.test(a) ? eb(a) : a || [], !1).length } }); var nb, ob = a.document, pb = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/, qb = eb.fn.init = function (a, b) { var c, d; if (!a) return this; if (\"string\" == typeof a) { if (c = \"<\" === a.charAt(0) && \">\" === a.charAt(a.length - 1) && a.length >= 3 ? [null, a, null] : pb.exec(a), !c || !c[1] && b) return !b || b.jquery ? (b || nb).find(a) : this.constructor(b).find(a); if (c[1]) { if (b = b instanceof eb ? b[0] : b, eb.merge(this, eb.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : ob, !0)), lb.test(c[1]) && eb.isPlainObject(b)) for (c in b) eb.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]); return this } if (d = ob.getElementById(c[2]), d && d.parentNode) { if (d.id !== c[2]) return nb.find(a); this.length = 1, this[0] = d } return this.context = ob, this.selector = a, this } return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : eb.isFunction(a) ? \"undefined\" != typeof nb.ready ? nb.ready(a) : a(eb) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), eb.makeArray(a, this)) }; qb.prototype = eb.fn, nb = eb(ob); var rb = /^(?:parents|prev(?:Until|All))/, sb = { children: !0, contents: !0, next: !0, prev: !0 }; eb.extend({ dir: function (a, b, c) { for (var d = [], e = a[b]; e && 9 !== e.nodeType && (void 0 === c || 1 !== e.nodeType || !eb(e).is(c)) ;) 1 === e.nodeType && d.push(e), e = e[b]; return d }, sibling: function (a, b) { for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a); return c } }), eb.fn.extend({ has: function (a) { var b, c = eb(a, this), d = c.length; return this.filter(function () { for (b = 0; d > b; b++) if (eb.contains(this, c[b])) return !0 }) }, closest: function (a, b) { for (var c, d = 0, e = this.length, f = [], g = kb.test(a) || \"string\" != typeof a ? eb(a, b || this.context) : 0; e > d; d++) for (c = this[d]; c && c !== b; c = c.parentNode) if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && eb.find.matchesSelector(c, a))) { f.push(c); break } return this.pushStack(f.length > 1 ? eb.unique(f) : f) }, index: function (a) { return a ? \"string\" == typeof a ? eb.inArray(this[0], eb(a)) : eb.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function (a, b) { return this.pushStack(eb.unique(eb.merge(this.get(), eb(a, b)))) }, addBack: function (a) { return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) } }), eb.each({ parent: function (a) { var b = a.parentNode; return b && 11 !== b.nodeType ? b : null }, parents: function (a) { return eb.dir(a, \"parentNode\") }, parentsUntil: function (a, b, c) { return eb.dir(a, \"parentNode\", c) }, next: function (a) { return e(a, \"nextSibling\") }, prev: function (a) { return e(a, \"previousSibling\") }, nextAll: function (a) { return eb.dir(a, \"nextSibling\") }, prevAll: function (a) { return eb.dir(a, \"previousSibling\") }, nextUntil: function (a, b, c) { return eb.dir(a, \"nextSibling\", c) }, prevUntil: function (a, b, c) { return eb.dir(a, \"previousSibling\", c) }, siblings: function (a) { return eb.sibling((a.parentNode || {}).firstChild, a) }, children: function (a) { return eb.sibling(a.firstChild) }, contents: function (a) { return eb.nodeName(a, \"iframe\") ? a.contentDocument || a.contentWindow.document : eb.merge([], a.childNodes) } }, function (a, b) { eb.fn[a] = function (c, d) { var e = eb.map(this, b, c); return \"Until\" !== a.slice(-5) && (d = c), d && \"string\" == typeof d && (e = eb.filter(d, e)), this.length > 1 && (sb[a] || (e = eb.unique(e)), rb.test(a) && (e = e.reverse())), this.pushStack(e) } }); var tb = /\\S+/g, ub = {}; eb.Callbacks = function (a) { a = \"string\" == typeof a ? ub[a] || f(a) : eb.extend({}, a); var b, c, d, e, g, h, i = [], j = !a.once && [], k = function (f) { for (c = a.memory && f, d = !0, g = h || 0, h = 0, e = i.length, b = !0; i && e > g; g++) if (i[g].apply(f[0], f[1]) === !1 && a.stopOnFalse) { c = !1; break } b = !1, i && (j ? j.length && k(j.shift()) : c ? i = [] : l.disable()) }, l = { add: function () { if (i) { var d = i.length; !function f(b) { eb.each(b, function (b, c) { var d = eb.type(c); \"function\" === d ? a.unique && l.has(c) || i.push(c) : c && c.length && \"string\" !== d && f(c) }) }(arguments), b ? e = i.length : c && (h = d, k(c)) } return this }, remove: function () { return i && eb.each(arguments, function (a, c) { for (var d; (d = eb.inArray(c, i, d)) > -1;) i.splice(d, 1), b && (e >= d && e--, g >= d && g--) }), this }, has: function (a) { return a ? eb.inArray(a, i) > -1 : !(!i || !i.length) }, empty: function () { return i = [], e = 0, this }, disable: function () { return i = j = c = void 0, this }, disabled: function () { return !i }, lock: function () { return j = void 0, c || l.disable(), this }, locked: function () { return !j }, fireWith: function (a, c) { return !i || d && !j || (c = c || [], c = [a, c.slice ? c.slice() : c], b ? j.push(c) : k(c)), this }, fire: function () { return l.fireWith(this, arguments), this }, fired: function () { return !!d } }; return l }, eb.extend({ Deferred: function (a) { var b = [[\"resolve\", \"done\", eb.Callbacks(\"once memory\"), \"resolved\"], [\"reject\", \"fail\", eb.Callbacks(\"once memory\"), \"rejected\"], [\"notify\", \"progress\", eb.Callbacks(\"memory\")]], c = \"pending\", d = { state: function () { return c }, always: function () { return e.done(arguments).fail(arguments), this }, then: function () { var a = arguments; return eb.Deferred(function (c) { eb.each(b, function (b, f) { var g = eb.isFunction(a[b]) && a[b]; e[f[1]](function () { var a = g && g.apply(this, arguments); a && eb.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + \"With\"](this === d ? c.promise() : this, g ? [a] : arguments) }) }), a = null }).promise() }, promise: function (a) { return null != a ? eb.extend(a, d) : d } }, e = {}; return d.pipe = d.then, eb.each(b, function (a, f) { var g = f[2], h = f[3]; d[f[1]] = g.add, h && g.add(function () { c = h }, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function () { return e[f[0] + \"With\"](this === e ? d : this, arguments), this }, e[f[0] + \"With\"] = g.fireWith }), d.promise(e), a && a.call(e, e), e }, when: function (a) { var b, c, d, e = 0, f = X.call(arguments), g = f.length, h = 1 !== g || a && eb.isFunction(a.promise) ? g : 0, i = 1 === h ? a : eb.Deferred(), j = function (a, c, d) { return function (e) { c[a] = this, d[a] = arguments.length > 1 ? X.call(arguments) : e, d === b ? i.notifyWith(c, d) : --h || i.resolveWith(c, d) } }; if (g > 1) for (b = new Array(g), c = new Array(g), d = new Array(g) ; g > e; e++) f[e] && eb.isFunction(f[e].promise) ? f[e].promise().done(j(e, d, f)).fail(i.reject).progress(j(e, c, b)) : --h; return h || i.resolveWith(d, f), i.promise() } }); var vb; eb.fn.ready = function (a) { return eb.ready.promise().done(a), this }, eb.extend({ isReady: !1, readyWait: 1, holdReady: function (a) { a ? eb.readyWait++ : eb.ready(!0) }, ready: function (a) { if (a === !0 ? !--eb.readyWait : !eb.isReady) { if (!ob.body) return setTimeout(eb.ready); eb.isReady = !0, a !== !0 && --eb.readyWait > 0 || (vb.resolveWith(ob, [eb]), eb.fn.triggerHandler && (eb(ob).triggerHandler(\"ready\"), eb(ob).off(\"ready\"))) } } }), eb.ready.promise = function (b) { if (!vb) if (vb = eb.Deferred(), \"complete\" === ob.readyState) setTimeout(eb.ready); else if (ob.addEventListener) ob.addEventListener(\"DOMContentLoaded\", h, !1), a.addEventListener(\"load\", h, !1); else { ob.attachEvent(\"onreadystatechange\", h), a.attachEvent(\"onload\", h); var c = !1; try { c = null == a.frameElement && ob.documentElement } catch (d) { } c && c.doScroll && !function e() { if (!eb.isReady) { try { c.doScroll(\"left\") } catch (a) { return setTimeout(e, 50) } g(), eb.ready() } }() } return vb.promise(b) }; var wb, xb = \"undefined\"; for (wb in eb(cb)) break; cb.ownLast = \"0\" !== wb, cb.inlineBlockNeedsLayout = !1, eb(function () { var a, b, c, d; c = ob.getElementsByTagName(\"body\")[0], c && c.style && (b = ob.createElement(\"div\"), d = ob.createElement(\"div\"), d.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\", c.appendChild(d).appendChild(b), typeof b.style.zoom !== xb && (b.style.cssText = \"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1\", cb.inlineBlockNeedsLayout = a = 3 === b.offsetWidth, a && (c.style.zoom = 1)), c.removeChild(d)) }), function () { var a = ob.createElement(\"div\"); if (null == cb.deleteExpando) { cb.deleteExpando = !0; try { delete a.test } catch (b) { cb.deleteExpando = !1 } } a = null }(), eb.acceptData = function (a) { var b = eb.noData[(a.nodeName + \" \").toLowerCase()], c = +a.nodeType || 1; return 1 !== c && 9 !== c ? !1 : !b || b !== !0 && a.getAttribute(\"classid\") === b }; var yb = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/, zb = /([A-Z])/g; eb.extend({ cache: {}, noData: { \"applet \": !0, \"embed \": !0, \"object \": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" }, hasData: function (a) { return a = a.nodeType ? eb.cache[a[eb.expando]] : a[eb.expando], !!a && !j(a) }, data: function (a, b, c) { return k(a, b, c) }, removeData: function (a, b) { return l(a, b) }, _data: function (a, b, c) { return k(a, b, c, !0) }, _removeData: function (a, b) { return l(a, b, !0) } }), eb.fn.extend({ data: function (a, b) { var c, d, e, f = this[0], g = f && f.attributes; if (void 0 === a) { if (this.length && (e = eb.data(f), 1 === f.nodeType && !eb._data(f, \"parsedAttrs\"))) { for (c = g.length; c--;) g[c] && (d = g[c].name, 0 === d.indexOf(\"data-\") && (d = eb.camelCase(d.slice(5)), i(f, d, e[d]))); eb._data(f, \"parsedAttrs\", !0) } return e } return \"object\" == typeof a ? this.each(function () { eb.data(this, a) }) : arguments.length > 1 ? this.each(function () { eb.data(this, a, b) }) : f ? i(f, a, eb.data(f, a)) : void 0 }, removeData: function (a) { return this.each(function () { eb.removeData(this, a) }) } }), eb.extend({ queue: function (a, b, c) { var d; return a ? (b = (b || \"fx\") + \"queue\", d = eb._data(a, b), c && (!d || eb.isArray(c) ? d = eb._data(a, b, eb.makeArray(c)) : d.push(c)), d || []) : void 0 }, dequeue: function (a, b) { b = b || \"fx\"; var c = eb.queue(a, b), d = c.length, e = c.shift(), f = eb._queueHooks(a, b), g = function () { eb.dequeue(a, b) }; \"inprogress\" === e && (e = c.shift(), d--), e && (\"fx\" === b && c.unshift(\"inprogress\"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire() }, _queueHooks: function (a, b) { var c = b + \"queueHooks\"; return eb._data(a, c) || eb._data(a, c, { empty: eb.Callbacks(\"once memory\").add(function () { eb._removeData(a, b + \"queue\"), eb._removeData(a, c) }) }) } }), eb.fn.extend({ queue: function (a, b) { var c = 2; return \"string\" != typeof a && (b = a, a = \"fx\", c--), arguments.length < c ? eb.queue(this[0], a) : void 0 === b ? this : this.each(function () { var c = eb.queue(this, a, b); eb._queueHooks(this, a), \"fx\" === a && \"inprogress\" !== c[0] && eb.dequeue(this, a) }) }, dequeue: function (a) { return this.each(function () { eb.dequeue(this, a) }) }, clearQueue: function (a) { return this.queue(a || \"fx\", []) }, promise: function (a, b) { var c, d = 1, e = eb.Deferred(), f = this, g = this.length, h = function () { --d || e.resolveWith(f, [f]) }; for (\"string\" != typeof a && (b = a, a = void 0), a = a || \"fx\"; g--;) c = eb._data(f[g], a + \"queueHooks\"), c && c.empty && (d++, c.empty.add(h)); return h(), e.promise(b) } }); var Ab = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source, Bb = [\"Top\", \"Right\", \"Bottom\", \"Left\"], Cb = function (a, b) { return a = b || a, \"none\" === eb.css(a, \"display\") || !eb.contains(a.ownerDocument, a) }, Db = eb.access = function (a, b, c, d, e, f, g) { var h = 0, i = a.length, j = null == c; if (\"object\" === eb.type(c)) { e = !0; for (h in c) eb.access(a, b, h, c[h], !0, f, g) } else if (void 0 !== d && (e = !0, eb.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function (a, b, c) { return j.call(eb(a), c) })), b)) for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c))); return e ? a : j ? b.call(a) : i ? b(a[0], c) : f }, Eb = /^(?:checkbox|radio)$/i; !function () { var a = ob.createElement(\"input\"), b = ob.createElement(\"div\"), c = ob.createDocumentFragment(); if (b.innerHTML = \"
a\", cb.leadingWhitespace = 3 === b.firstChild.nodeType, cb.tbody = !b.getElementsByTagName(\"tbody\").length, cb.htmlSerialize = !!b.getElementsByTagName(\"link\").length, cb.html5Clone = \"<:nav>\" !== ob.createElement(\"nav\").cloneNode(!0).outerHTML, a.type = \"checkbox\", a.checked = !0, c.appendChild(a), cb.appendChecked = a.checked, b.innerHTML = \"\", cb.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue, c.appendChild(b), b.innerHTML = \"\", cb.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, cb.noCloneEvent = !0, b.attachEvent && (b.attachEvent(\"onclick\", function () { cb.noCloneEvent = !1 }), b.cloneNode(!0).click()), null == cb.deleteExpando) { cb.deleteExpando = !0; try { delete b.test } catch (d) { cb.deleteExpando = !1 } } }(), function () { var b, c, d = ob.createElement(\"div\"); for (b in { submit: !0, change: !0, focusin: !0 }) c = \"on\" + b, (cb[b + \"Bubbles\"] = c in a) || (d.setAttribute(c, \"t\"), cb[b + \"Bubbles\"] = d.attributes[c].expando === !1); d = null }(); var Fb = /^(?:input|select|textarea)$/i, Gb = /^key/, Hb = /^(?:mouse|pointer|contextmenu)|click/, Ib = /^(?:focusinfocus|focusoutblur)$/, Jb = /^([^.]*)(?:\\.(.+)|)$/; eb.event = {\n\t\t\t\tglobal: {}, add: function (a, b, c, d, e) { var f, g, h, i, j, k, l, m, n, o, p, q = eb._data(a); if (q) { for (c.handler && (i = c, c = i.handler, e = i.selector), c.guid || (c.guid = eb.guid++), (g = q.events) || (g = q.events = {}), (k = q.handle) || (k = q.handle = function (a) { return typeof eb === xb || a && eb.event.triggered === a.type ? void 0 : eb.event.dispatch.apply(k.elem, arguments) }, k.elem = a), b = (b || \"\").match(tb) || [\"\"], h = b.length; h--;) f = Jb.exec(b[h]) || [], n = p = f[1], o = (f[2] || \"\").split(\".\").sort(), n && (j = eb.event.special[n] || {}, n = (e ? j.delegateType : j.bindType) || n, j = eb.event.special[n] || {}, l = eb.extend({ type: n, origType: p, data: d, handler: c, guid: c.guid, selector: e, needsContext: e && eb.expr.match.needsContext.test(e), namespace: o.join(\".\") }, i), (m = g[n]) || (m = g[n] = [], m.delegateCount = 0, j.setup && j.setup.call(a, d, o, k) !== !1 || (a.addEventListener ? a.addEventListener(n, k, !1) : a.attachEvent && a.attachEvent(\"on\" + n, k))), j.add && (j.add.call(a, l), l.handler.guid || (l.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, l) : m.push(l), eb.event.global[n] = !0); a = null } }, remove: function (a, b, c, d, e) {\n\t\t\t\t\tvar f, g, h, i, j, k, l, m, n, o, p, q = eb.hasData(a) && eb._data(a); if (q && (k = q.events)) {\n\t\t\t\t\t\tfor (b = (b || \"\").match(tb) || [\"\"], j = b.length; j--;) if (h = Jb.exec(b[j]) || [], n = p = h[1], o = (h[2] || \"\").split(\".\").sort(), n) {\n\t\t\t\t\t\t\tfor (l = eb.event.special[n] || {}, n = (d ? l.delegateType : l.bindType) || n, m = k[n] || [], h = h[2] && new RegExp(\"(^|\\\\.)\" + o.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"), i = f = m.length; f--;) g = m[f], !e && p !== g.origType || c && c.guid !== g.guid || h && !h.test(g.namespace) || d && d !== g.selector && (\"**\" !== d || !g.selector) || (m.splice(f, 1), g.selector && m.delegateCount--, l.remove && l.remove.call(a, g));\n\t\t\t\t\t\t\ti && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || eb.removeEvent(a, n, q.handle), delete k[n])\n\t\t\t\t\t\t} else for (n in k) eb.event.remove(a, n + b[j], c, d, !0); eb.isEmptyObject(k) && (delete q.handle, eb._removeData(a, \"events\"))\n\t\t\t\t\t}\n\t\t\t\t}, trigger: function (b, c, d, e) { var f, g, h, i, j, k, l, m = [d || ob], n = bb.call(b, \"type\") ? b.type : b, o = bb.call(b, \"namespace\") ? b.namespace.split(\".\") : []; if (h = k = d = d || ob, 3 !== d.nodeType && 8 !== d.nodeType && !Ib.test(n + eb.event.triggered) && (n.indexOf(\".\") >= 0 && (o = n.split(\".\"), n = o.shift(), o.sort()), g = n.indexOf(\":\") < 0 && \"on\" + n, b = b[eb.expando] ? b : new eb.Event(n, \"object\" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = o.join(\".\"), b.namespace_re = b.namespace ? new RegExp(\"(^|\\\\.)\" + o.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : eb.makeArray(c, [b]), j = eb.event.special[n] || {}, e || !j.trigger || j.trigger.apply(d, c) !== !1)) { if (!e && !j.noBubble && !eb.isWindow(d)) { for (i = j.delegateType || n, Ib.test(i + n) || (h = h.parentNode) ; h; h = h.parentNode) m.push(h), k = h; k === (d.ownerDocument || ob) && m.push(k.defaultView || k.parentWindow || a) } for (l = 0; (h = m[l++]) && !b.isPropagationStopped() ;) b.type = l > 1 ? i : j.bindType || n, f = (eb._data(h, \"events\") || {})[b.type] && eb._data(h, \"handle\"), f && f.apply(h, c), f = g && h[g], f && f.apply && eb.acceptData(h) && (b.result = f.apply(h, c), b.result === !1 && b.preventDefault()); if (b.type = n, !e && !b.isDefaultPrevented() && (!j._default || j._default.apply(m.pop(), c) === !1) && eb.acceptData(d) && g && d[n] && !eb.isWindow(d)) { k = d[g], k && (d[g] = null), eb.event.triggered = n; try { d[n]() } catch (p) { } eb.event.triggered = void 0, k && (d[g] = k) } return b.result } }, dispatch: function (a) { a = eb.event.fix(a); var b, c, d, e, f, g = [], h = X.call(arguments), i = (eb._data(this, \"events\") || {})[a.type] || [], j = eb.event.special[a.type] || {}; if (h[0] = a, a.delegateTarget = this, !j.preDispatch || j.preDispatch.call(this, a) !== !1) { for (g = eb.event.handlers.call(this, a, i), b = 0; (e = g[b++]) && !a.isPropagationStopped() ;) for (a.currentTarget = e.elem, f = 0; (d = e.handlers[f++]) && !a.isImmediatePropagationStopped() ;) (!a.namespace_re || a.namespace_re.test(d.namespace)) && (a.handleObj = d, a.data = d.data, c = ((eb.event.special[d.origType] || {}).handle || d.handler).apply(e.elem, h), void 0 !== c && (a.result = c) === !1 && (a.preventDefault(), a.stopPropagation())); return j.postDispatch && j.postDispatch.call(this, a), a.result } }, handlers: function (a, b) { var c, d, e, f, g = [], h = b.delegateCount, i = a.target; if (h && i.nodeType && (!a.button || \"click\" !== a.type)) for (; i != this; i = i.parentNode || this) if (1 === i.nodeType && (i.disabled !== !0 || \"click\" !== a.type)) { for (e = [], f = 0; h > f; f++) d = b[f], c = d.selector + \" \", void 0 === e[c] && (e[c] = d.needsContext ? eb(c, this).index(i) >= 0 : eb.find(c, this, null, [i]).length), e[c] && e.push(d); e.length && g.push({ elem: i, handlers: e }) } return h < b.length && g.push({ elem: this, handlers: b.slice(h) }), g }, fix: function (a) { if (a[eb.expando]) return a; var b, c, d, e = a.type, f = a, g = this.fixHooks[e]; for (g || (this.fixHooks[e] = g = Hb.test(e) ? this.mouseHooks : Gb.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new eb.Event(f), b = d.length; b--;) c = d[b], a[c] = f[c]; return a.target || (a.target = f.srcElement || ob), 3 === a.target.nodeType && (a.target = a.target.parentNode), a.metaKey = !!a.metaKey, g.filter ? g.filter(a, f) : a }, props: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"), fixHooks: {}, keyHooks: { props: \"char charCode key keyCode\".split(\" \"), filter: function (a, b) { return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a } }, mouseHooks: { props: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"), filter: function (a, b) { var c, d, e, f = b.button, g = b.fromElement; return null == a.pageX && null != b.clientX && (d = a.target.ownerDocument || ob, e = d.documentElement, c = d.body, a.pageX = b.clientX + (e && e.scrollLeft || c && c.scrollLeft || 0) - (e && e.clientLeft || c && c.clientLeft || 0), a.pageY = b.clientY + (e && e.scrollTop || c && c.scrollTop || 0) - (e && e.clientTop || c && c.clientTop || 0)), !a.relatedTarget && g && (a.relatedTarget = g === a.target ? b.toElement : g), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a } }, special: { load: { noBubble: !0 }, focus: { trigger: function () { if (this !== o() && this.focus) try { return this.focus(), !1 } catch (a) { } }, delegateType: \"focusin\" }, blur: { trigger: function () { return this === o() && this.blur ? (this.blur(), !1) : void 0 }, delegateType: \"focusout\" }, click: { trigger: function () { return eb.nodeName(this, \"input\") && \"checkbox\" === this.type && this.click ? (this.click(), !1) : void 0 }, _default: function (a) { return eb.nodeName(a.target, \"a\") } }, beforeunload: { postDispatch: function (a) { void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result) } } }, simulate: function (a, b, c, d) { var e = eb.extend(new eb.Event, c, { type: a, isSimulated: !0, originalEvent: {} }); d ? eb.event.trigger(e, null, b) : eb.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault() }\n\t\t\t}, eb.removeEvent = ob.removeEventListener ? function (a, b, c) { a.removeEventListener && a.removeEventListener(b, c, !1) } : function (a, b, c) { var d = \"on\" + b; a.detachEvent && (typeof a[d] === xb && (a[d] = null), a.detachEvent(d, c)) }, eb.Event = function (a, b) { return this instanceof eb.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? m : n) : this.type = a, b && eb.extend(this, b), this.timeStamp = a && a.timeStamp || eb.now(), void (this[eb.expando] = !0)) : new eb.Event(a, b) }, eb.Event.prototype = { isDefaultPrevented: n, isPropagationStopped: n, isImmediatePropagationStopped: n, preventDefault: function () { var a = this.originalEvent; this.isDefaultPrevented = m, a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1) }, stopPropagation: function () { var a = this.originalEvent; this.isPropagationStopped = m, a && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0) }, stopImmediatePropagation: function () { var a = this.originalEvent; this.isImmediatePropagationStopped = m, a && a.stopImmediatePropagation && a.stopImmediatePropagation(), this.stopPropagation() } }, eb.each({ mouseenter: \"mouseover\", mouseleave: \"mouseout\", pointerenter: \"pointerover\", pointerleave: \"pointerout\" }, function (a, b) { eb.event.special[a] = { delegateType: b, bindType: b, handle: function (a) { var c, d = this, e = a.relatedTarget, f = a.handleObj; return (!e || e !== d && !eb.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c } } }), cb.submitBubbles || (eb.event.special.submit = { setup: function () { return eb.nodeName(this, \"form\") ? !1 : void eb.event.add(this, \"click._submit keypress._submit\", function (a) { var b = a.target, c = eb.nodeName(b, \"input\") || eb.nodeName(b, \"button\") ? b.form : void 0; c && !eb._data(c, \"submitBubbles\") && (eb.event.add(c, \"submit._submit\", function (a) { a._submit_bubble = !0 }), eb._data(c, \"submitBubbles\", !0)) }) }, postDispatch: function (a) { a._submit_bubble && (delete a._submit_bubble, this.parentNode && !a.isTrigger && eb.event.simulate(\"submit\", this.parentNode, a, !0)) }, teardown: function () { return eb.nodeName(this, \"form\") ? !1 : void eb.event.remove(this, \"._submit\") } }), cb.changeBubbles || (eb.event.special.change = { setup: function () { return Fb.test(this.nodeName) ? ((\"checkbox\" === this.type || \"radio\" === this.type) && (eb.event.add(this, \"propertychange._change\", function (a) { \"checked\" === a.originalEvent.propertyName && (this._just_changed = !0) }), eb.event.add(this, \"click._change\", function (a) { this._just_changed && !a.isTrigger && (this._just_changed = !1), eb.event.simulate(\"change\", this, a, !0) })), !1) : void eb.event.add(this, \"beforeactivate._change\", function (a) { var b = a.target; Fb.test(b.nodeName) && !eb._data(b, \"changeBubbles\") && (eb.event.add(b, \"change._change\", function (a) { !this.parentNode || a.isSimulated || a.isTrigger || eb.event.simulate(\"change\", this.parentNode, a, !0) }), eb._data(b, \"changeBubbles\", !0)) }) }, handle: function (a) { var b = a.target; return this !== b || a.isSimulated || a.isTrigger || \"radio\" !== b.type && \"checkbox\" !== b.type ? a.handleObj.handler.apply(this, arguments) : void 0 }, teardown: function () { return eb.event.remove(this, \"._change\"), !Fb.test(this.nodeName) } }), cb.focusinBubbles || eb.each({ focus: \"focusin\", blur: \"focusout\" }, function (a, b) { var c = function (a) { eb.event.simulate(b, a.target, eb.event.fix(a), !0) }; eb.event.special[b] = { setup: function () { var d = this.ownerDocument || this, e = eb._data(d, b); e || d.addEventListener(a, c, !0), eb._data(d, b, (e || 0) + 1) }, teardown: function () { var d = this.ownerDocument || this, e = eb._data(d, b) - 1; e ? eb._data(d, b, e) : (d.removeEventListener(a, c, !0), eb._removeData(d, b)) } } }), eb.fn.extend({ on: function (a, b, c, d, e) { var f, g; if (\"object\" == typeof a) { \"string\" != typeof b && (c = c || b, b = void 0); for (f in a) this.on(f, b, c, a[f], e); return this } if (null == c && null == d ? (d = b, c = b = void 0) : null == d && (\"string\" == typeof b ? (d = c, c = void 0) : (d = c, c = b, b = void 0)), d === !1) d = n; else if (!d) return this; return 1 === e && (g = d, d = function (a) { return eb().off(a), g.apply(this, arguments) }, d.guid = g.guid || (g.guid = eb.guid++)), this.each(function () { eb.event.add(this, a, d, c, b) }) }, one: function (a, b, c, d) { return this.on(a, b, c, d, 1) }, off: function (a, b, c) { var d, e; if (a && a.preventDefault && a.handleObj) return d = a.handleObj, eb(a.delegateTarget).off(d.namespace ? d.origType + \".\" + d.namespace : d.origType, d.selector, d.handler), this; if (\"object\" == typeof a) { for (e in a) this.off(e, b, a[e]); return this } return (b === !1 || \"function\" == typeof b) && (c = b, b = void 0), c === !1 && (c = n), this.each(function () { eb.event.remove(this, a, c, b) }) }, trigger: function (a, b) { return this.each(function () { eb.event.trigger(a, b, this) }) }, triggerHandler: function (a, b) { var c = this[0]; return c ? eb.event.trigger(a, b, c, !0) : void 0 } }); var Kb = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\", Lb = / jQuery\\d+=\"(?:null|\\d+)\"/g, Mb = new RegExp(\"<(?:\" + Kb + \")[\\\\s/>]\", \"i\"), Nb = /^\\s+/, Ob = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi, Pb = /<([\\w:]+)/, Qb = /\\s*$/g, Xb = { option: [1, \"\"], legend: [1, \"\"], area: [1, \"\"], param: [1, \"\"], thead: [1, \"
\"] }, Yb = p(ob), Zb = Yb.appendChild(ob.createElement(\"div\")); Xb.optgroup = Xb.option, Xb.tbody = Xb.tfoot = Xb.colgroup = Xb.caption = Xb.thead, Xb.th = Xb.td, eb.extend({ clone: function (a, b, c) { var d, e, f, g, h, i = eb.contains(a.ownerDocument, a); if (cb.html5Clone || eb.isXMLDoc(a) || !Mb.test(\"<\" + a.nodeName + \">\") ? f = a.cloneNode(!0) : (Zb.innerHTML = a.outerHTML, Zb.removeChild(f = Zb.firstChild)), !(cb.noCloneEvent && cb.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || eb.isXMLDoc(a))) for (d = q(f), h = q(a), g = 0; null != (e = h[g]) ; ++g) d[g] && x(e, d[g]); if (b) if (c) for (h = h || q(a), d = d || q(f), g = 0; null != (e = h[g]) ; g++) w(e, d[g]); else w(a, f); return d = q(f, \"script\"), d.length > 0 && v(d, !i && q(a, \"script\")), d = h = e = null, f }, buildFragment: function (a, b, c, d) { for (var e, f, g, h, i, j, k, l = a.length, m = p(b), n = [], o = 0; l > o; o++) if (f = a[o], f || 0 === f) if (\"object\" === eb.type(f)) eb.merge(n, f.nodeType ? [f] : f); else if (Rb.test(f)) { for (h = h || m.appendChild(b.createElement(\"div\")), i = (Pb.exec(f) || [\"\", \"\"])[1].toLowerCase(), k = Xb[i] || Xb._default, h.innerHTML = k[1] + f.replace(Ob, \"<$1>$2>\") + k[2], e = k[0]; e--;) h = h.lastChild; if (!cb.leadingWhitespace && Nb.test(f) && n.push(b.createTextNode(Nb.exec(f)[0])), !cb.tbody) for (f = \"table\" !== i || Qb.test(f) ? \"
\" !== k[1] || Qb.test(f) ? 0 : h : h.firstChild, e = f && f.childNodes.length; e--;) eb.nodeName(j = f.childNodes[e], \"tbody\") && !j.childNodes.length && f.removeChild(j); for (eb.merge(n, h.childNodes), h.textContent = \"\"; h.firstChild;) h.removeChild(h.firstChild); h = m.lastChild } else n.push(b.createTextNode(f)); for (h && m.removeChild(h), cb.appendChecked || eb.grep(q(n, \"input\"), r), o = 0; f = n[o++];) if ((!d || -1 === eb.inArray(f, d)) && (g = eb.contains(f.ownerDocument, f), h = q(m.appendChild(f), \"script\"), g && v(h), c)) for (e = 0; f = h[e++];) Ub.test(f.type || \"\") && c.push(f); return h = null, m }, cleanData: function (a, b) { for (var c, d, e, f, g = 0, h = eb.expando, i = eb.cache, j = cb.deleteExpando, k = eb.event.special; null != (c = a[g]) ; g++) if ((b || eb.acceptData(c)) && (e = c[h], f = e && i[e])) { if (f.events) for (d in f.events) k[d] ? eb.event.remove(c, d) : eb.removeEvent(c, d, f.handle); i[e] && (delete i[e], j ? delete c[h] : typeof c.removeAttribute !== xb ? c.removeAttribute(h) : c[h] = null, W.push(e)) } } }), eb.fn.extend({ text: function (a) { return Db(this, function (a) { return void 0 === a ? eb.text(this) : this.empty().append((this[0] && this[0].ownerDocument || ob).createTextNode(a)) }, null, a, arguments.length) }, append: function () { return this.domManip(arguments, function (a) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var b = s(this, a); b.appendChild(a) } }) }, prepend: function () { return this.domManip(arguments, function (a) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var b = s(this, a); b.insertBefore(a, b.firstChild) } }) }, before: function () { return this.domManip(arguments, function (a) { this.parentNode && this.parentNode.insertBefore(a, this) }) }, after: function () { return this.domManip(arguments, function (a) { this.parentNode && this.parentNode.insertBefore(a, this.nextSibling) }) }, remove: function (a, b) { for (var c, d = a ? eb.filter(a, this) : this, e = 0; null != (c = d[e]) ; e++) b || 1 !== c.nodeType || eb.cleanData(q(c)), c.parentNode && (b && eb.contains(c.ownerDocument, c) && v(q(c, \"script\")), c.parentNode.removeChild(c)); return this }, empty: function () { for (var a, b = 0; null != (a = this[b]) ; b++) { for (1 === a.nodeType && eb.cleanData(q(a, !1)) ; a.firstChild;) a.removeChild(a.firstChild); a.options && eb.nodeName(a, \"select\") && (a.options.length = 0) } return this }, clone: function (a, b) { return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function () { return eb.clone(this, a, b) }) }, html: function (a) { return Db(this, function (a) { var b = this[0] || {}, c = 0, d = this.length; if (void 0 === a) return 1 === b.nodeType ? b.innerHTML.replace(Lb, \"\") : void 0; if (!(\"string\" != typeof a || Sb.test(a) || !cb.htmlSerialize && Mb.test(a) || !cb.leadingWhitespace && Nb.test(a) || Xb[(Pb.exec(a) || [\"\", \"\"])[1].toLowerCase()])) { a = a.replace(Ob, \"<$1>$2>\"); try { for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (eb.cleanData(q(b, !1)), b.innerHTML = a); b = 0 } catch (e) { } } b && this.empty().append(a) }, null, a, arguments.length) }, replaceWith: function () { var a = arguments[0]; return this.domManip(arguments, function (b) { a = this.parentNode, eb.cleanData(q(this)), a && a.replaceChild(b, this) }), a && (a.length || a.nodeType) ? this : this.remove() }, detach: function (a) { return this.remove(a, !0) }, domManip: function (a, b) { a = Y.apply([], a); var c, d, e, f, g, h, i = 0, j = this.length, k = this, l = j - 1, m = a[0], n = eb.isFunction(m); if (n || j > 1 && \"string\" == typeof m && !cb.checkClone && Tb.test(m)) return this.each(function (c) { var d = k.eq(c); n && (a[0] = m.call(this, c, d.html())), d.domManip(a, b) }); if (j && (h = eb.buildFragment(a, this[0].ownerDocument, !1, this), c = h.firstChild, 1 === h.childNodes.length && (h = c), c)) { for (f = eb.map(q(h, \"script\"), t), e = f.length; j > i; i++) d = h, i !== l && (d = eb.clone(d, !0, !0), e && eb.merge(f, q(d, \"script\"))), b.call(this[i], d, i); if (e) for (g = f[f.length - 1].ownerDocument, eb.map(f, u), i = 0; e > i; i++) d = f[i], Ub.test(d.type || \"\") && !eb._data(d, \"globalEval\") && eb.contains(g, d) && (d.src ? eb._evalUrl && eb._evalUrl(d.src) : eb.globalEval((d.text || d.textContent || d.innerHTML || \"\").replace(Wb, \"\"))); h = c = null } return this } }), eb.each({ appendTo: \"append\", prependTo: \"prepend\", insertBefore: \"before\", insertAfter: \"after\", replaceAll: \"replaceWith\" }, function (a, b) { eb.fn[a] = function (a) { for (var c, d = 0, e = [], f = eb(a), g = f.length - 1; g >= d; d++) c = d === g ? this : this.clone(!0), eb(f[d])[b](c), Z.apply(e, c.get()); return this.pushStack(e) } }); var $b, _b = {}; !function () { var a; cb.shrinkWrapBlocks = function () { if (null != a) return a; a = !1; var b, c, d; return c = ob.getElementsByTagName(\"body\")[0], c && c.style ? (b = ob.createElement(\"div\"), d = ob.createElement(\"div\"), d.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\", c.appendChild(d).appendChild(b), typeof b.style.zoom !== xb && (b.style.cssText = \"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1\", b.appendChild(ob.createElement(\"div\")).style.width = \"5px\", a = 3 !== b.offsetWidth), c.removeChild(d), a) : void 0 } }(); var ac, bc, cc = /^margin/, dc = new RegExp(\"^(\" + Ab + \")(?!px)[a-z%]+$\", \"i\"), ec = /^(top|right|bottom|left)$/; a.getComputedStyle ? (ac = function (b) { return b.ownerDocument.defaultView.opener ? b.ownerDocument.defaultView.getComputedStyle(b, null) : a.getComputedStyle(b, null) }, bc = function (a, b, c) { var d, e, f, g, h = a.style; return c = c || ac(a), g = c ? c.getPropertyValue(b) || c[b] : void 0, c && (\"\" !== g || eb.contains(a.ownerDocument, a) || (g = eb.style(a, b)), dc.test(g) && cc.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), void 0 === g ? g : g + \"\" }) : ob.documentElement.currentStyle && (ac = function (a) { return a.currentStyle }, bc = function (a, b, c) { var d, e, f, g, h = a.style; return c = c || ac(a), g = c ? c[b] : void 0, null == g && h && h[b] && (g = h[b]), dc.test(g) && !ec.test(b) && (d = h.left, e = a.runtimeStyle, f = e && e.left, f && (e.left = a.currentStyle.left), h.left = \"fontSize\" === b ? \"1em\" : g, g = h.pixelLeft + \"px\", h.left = d, f && (e.left = f)), void 0 === g ? g : g + \"\" || \"auto\" }), function () { function b() { var b, c, d, e; c = ob.getElementsByTagName(\"body\")[0], c && c.style && (b = ob.createElement(\"div\"), d = ob.createElement(\"div\"), d.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\", c.appendChild(d).appendChild(b), b.style.cssText = \"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute\", f = g = !1, i = !0, a.getComputedStyle && (f = \"1%\" !== (a.getComputedStyle(b, null) || {}).top, g = \"4px\" === (a.getComputedStyle(b, null) || { width: \"4px\" }).width, e = b.appendChild(ob.createElement(\"div\")), e.style.cssText = b.style.cssText = \"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0\", e.style.marginRight = e.style.width = \"0\", b.style.width = \"1px\", i = !parseFloat((a.getComputedStyle(e, null) || {}).marginRight), b.removeChild(e)), b.innerHTML = \"
t
\", e = b.getElementsByTagName(\"td\"), e[0].style.cssText = \"margin:0;border:0;padding:0;display:none\", h = 0 === e[0].offsetHeight, h && (e[0].style.display = \"\", e[1].style.display = \"none\", h = 0 === e[0].offsetHeight), c.removeChild(d)) } var c, d, e, f, g, h, i; c = ob.createElement(\"div\"), c.innerHTML = \"
a\", e = c.getElementsByTagName(\"a\")[0], d = e && e.style, d && (d.cssText = \"float:left;opacity:.5\", cb.opacity = \"0.5\" === d.opacity, cb.cssFloat = !!d.cssFloat, c.style.backgroundClip = \"content-box\", c.cloneNode(!0).style.backgroundClip = \"\", cb.clearCloneStyle = \"content-box\" === c.style.backgroundClip, cb.boxSizing = \"\" === d.boxSizing || \"\" === d.MozBoxSizing || \"\" === d.WebkitBoxSizing, eb.extend(cb, { reliableHiddenOffsets: function () { return null == h && b(), h }, boxSizingReliable: function () { return null == g && b(), g }, pixelPosition: function () { return null == f && b(), f }, reliableMarginRight: function () { return null == i && b(), i } })) }(), eb.swap = function (a, b, c, d) { var e, f, g = {}; for (f in b) g[f] = a.style[f], a.style[f] = b[f]; e = c.apply(a, d || []); for (f in b) a.style[f] = g[f]; return e }; var fc = /alpha\\([^)]*\\)/i, gc = /opacity\\s*=\\s*([^)]*)/, hc = /^(none|table(?!-c[ea]).+)/, ic = new RegExp(\"^(\" + Ab + \")(.*)$\", \"i\"), jc = new RegExp(\"^([+-])=(\" + Ab + \")\", \"i\"), kc = { position: \"absolute\", visibility: \"hidden\", display: \"block\" }, lc = { letterSpacing: \"0\", fontWeight: \"400\" }, mc = [\"Webkit\", \"O\", \"Moz\", \"ms\"]; eb.extend({ cssHooks: { opacity: { get: function (a, b) { if (b) { var c = bc(a, \"opacity\"); return \"\" === c ? \"1\" : c } } } }, cssNumber: { columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, cssProps: { \"float\": cb.cssFloat ? \"cssFloat\" : \"styleFloat\" }, style: function (a, b, c, d) { if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) { var e, f, g, h = eb.camelCase(b), i = a.style; if (b = eb.cssProps[h] || (eb.cssProps[h] = B(i, h)), g = eb.cssHooks[b] || eb.cssHooks[h], void 0 === c) return g && \"get\" in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b]; if (f = typeof c, \"string\" === f && (e = jc.exec(c)) && (c = (e[1] + 1) * e[2] + parseFloat(eb.css(a, b)), f = \"number\"), null != c && c === c && (\"number\" !== f || eb.cssNumber[h] || (c += \"px\"), cb.clearCloneStyle || \"\" !== c || 0 !== b.indexOf(\"background\") || (i[b] = \"inherit\"), !(g && \"set\" in g && void 0 === (c = g.set(a, c, d))))) try { i[b] = c } catch (j) { } } }, css: function (a, b, c, d) { var e, f, g, h = eb.camelCase(b); return b = eb.cssProps[h] || (eb.cssProps[h] = B(a.style, h)), g = eb.cssHooks[b] || eb.cssHooks[h], g && \"get\" in g && (f = g.get(a, !0, c)), void 0 === f && (f = bc(a, b, d)), \"normal\" === f && b in lc && (f = lc[b]), \"\" === c || c ? (e = parseFloat(f), c === !0 || eb.isNumeric(e) ? e || 0 : f) : f } }), eb.each([\"height\", \"width\"], function (a, b) { eb.cssHooks[b] = { get: function (a, c, d) { return c ? hc.test(eb.css(a, \"display\")) && 0 === a.offsetWidth ? eb.swap(a, kc, function () { return F(a, b, d) }) : F(a, b, d) : void 0 }, set: function (a, c, d) { var e = d && ac(a); return D(a, c, d ? E(a, b, d, cb.boxSizing && \"border-box\" === eb.css(a, \"boxSizing\", !1, e), e) : 0) } } }), cb.opacity || (eb.cssHooks.opacity = { get: function (a, b) { return gc.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || \"\") ? .01 * parseFloat(RegExp.$1) + \"\" : b ? \"1\" : \"\" }, set: function (a, b) { var c = a.style, d = a.currentStyle, e = eb.isNumeric(b) ? \"alpha(opacity=\" + 100 * b + \")\" : \"\", f = d && d.filter || c.filter || \"\"; c.zoom = 1, (b >= 1 || \"\" === b) && \"\" === eb.trim(f.replace(fc, \"\")) && c.removeAttribute && (c.removeAttribute(\"filter\"), \"\" === b || d && !d.filter) || (c.filter = fc.test(f) ? f.replace(fc, e) : f + \" \" + e) } }), eb.cssHooks.marginRight = A(cb.reliableMarginRight, function (a, b) { return b ? eb.swap(a, { display: \"inline-block\" }, bc, [a, \"marginRight\"]) : void 0 }), eb.each({ margin: \"\", padding: \"\", border: \"Width\" }, function (a, b) { eb.cssHooks[a + b] = { expand: function (c) { for (var d = 0, e = {}, f = \"string\" == typeof c ? c.split(\" \") : [c]; 4 > d; d++) e[a + Bb[d] + b] = f[d] || f[d - 2] || f[0]; return e } }, cc.test(a) || (eb.cssHooks[a + b].set = D) }), eb.fn.extend({ css: function (a, b) { return Db(this, function (a, b, c) { var d, e, f = {}, g = 0; if (eb.isArray(b)) { for (d = ac(a), e = b.length; e > g; g++) f[b[g]] = eb.css(a, b[g], !1, d); return f } return void 0 !== c ? eb.style(a, b, c) : eb.css(a, b) }, a, b, arguments.length > 1) }, show: function () { return C(this, !0) }, hide: function () { return C(this) }, toggle: function (a) { return \"boolean\" == typeof a ? a ? this.show() : this.hide() : this.each(function () { Cb(this) ? eb(this).show() : eb(this).hide() }) } }), eb.Tween = G, G.prototype = { constructor: G, init: function (a, b, c, d, e, f) { this.elem = a, this.prop = c, this.easing = e || \"swing\", this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (eb.cssNumber[c] ? \"\" : \"px\") }, cur: function () { var a = G.propHooks[this.prop]; return a && a.get ? a.get(this) : G.propHooks._default.get(this) }, run: function (a) { var b, c = G.propHooks[this.prop]; return this.pos = b = this.options.duration ? eb.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : G.propHooks._default.set(this), this } }, G.prototype.init.prototype = G.prototype, G.propHooks = { _default: { get: function (a) { var b; return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (b = eb.css(a.elem, a.prop, \"\"), b && \"auto\" !== b ? b : 0) : a.elem[a.prop] }, set: function (a) { eb.fx.step[a.prop] ? eb.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[eb.cssProps[a.prop]] || eb.cssHooks[a.prop]) ? eb.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now } } }, G.propHooks.scrollTop = G.propHooks.scrollLeft = { set: function (a) { a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now) } }, eb.easing = { linear: function (a) { return a }, swing: function (a) { return .5 - Math.cos(a * Math.PI) / 2 } }, eb.fx = G.prototype.init, eb.fx.step = {}; var nc, oc, pc = /^(?:toggle|show|hide)$/, qc = new RegExp(\"^(?:([+-])=|)(\" + Ab + \")([a-z%]*)$\", \"i\"), rc = /queueHooks$/, sc = [K], tc = { \"*\": [function (a, b) { var c = this.createTween(a, b), d = c.cur(), e = qc.exec(b), f = e && e[3] || (eb.cssNumber[a] ? \"\" : \"px\"), g = (eb.cssNumber[a] || \"px\" !== f && +d) && qc.exec(eb.css(c.elem, a)), h = 1, i = 20; if (g && g[3] !== f) { f = f || g[3], e = e || [], g = +d || 1; do h = h || \".5\", g /= h, eb.style(c.elem, a, g + f); while (h !== (h = c.cur() / d) && 1 !== h && --i) } return e && (g = c.start = +g || +d || 0, c.unit = f, c.end = e[1] ? g + (e[1] + 1) * e[2] : +e[2]), c }] }; eb.Animation = eb.extend(M, { tweener: function (a, b) { eb.isFunction(a) ? (b = a, a = [\"*\"]) : a = a.split(\" \"); for (var c, d = 0, e = a.length; e > d; d++) c = a[d], tc[c] = tc[c] || [], tc[c].unshift(b) }, prefilter: function (a, b) { b ? sc.unshift(a) : sc.push(a) } }), eb.speed = function (a, b, c) { var d = a && \"object\" == typeof a ? eb.extend({}, a) : { complete: c || !c && b || eb.isFunction(a) && a, duration: a, easing: c && b || b && !eb.isFunction(b) && b }; return d.duration = eb.fx.off ? 0 : \"number\" == typeof d.duration ? d.duration : d.duration in eb.fx.speeds ? eb.fx.speeds[d.duration] : eb.fx.speeds._default, (null == d.queue || d.queue === !0) && (d.queue = \"fx\"), d.old = d.complete, d.complete = function () { eb.isFunction(d.old) && d.old.call(this), d.queue && eb.dequeue(this, d.queue) }, d }, eb.fn.extend({ fadeTo: function (a, b, c, d) { return this.filter(Cb).css(\"opacity\", 0).show().end().animate({ opacity: b }, a, c, d) }, animate: function (a, b, c, d) { var e = eb.isEmptyObject(a), f = eb.speed(b, c, d), g = function () { var b = M(this, eb.extend({}, a), f); (e || eb._data(this, \"finish\")) && b.stop(!0) }; return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g) }, stop: function (a, b, c) { var d = function (a) { var b = a.stop; delete a.stop, b(c) }; return \"string\" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || \"fx\", []), this.each(function () { var b = !0, e = null != a && a + \"queueHooks\", f = eb.timers, g = eb._data(this); if (e) g[e] && g[e].stop && d(g[e]); else for (e in g) g[e] && g[e].stop && rc.test(e) && d(g[e]); for (e = f.length; e--;) f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1)); (b || !c) && eb.dequeue(this, a) }) }, finish: function (a) { return a !== !1 && (a = a || \"fx\"), this.each(function () { var b, c = eb._data(this), d = c[a + \"queue\"], e = c[a + \"queueHooks\"], f = eb.timers, g = d ? d.length : 0; for (c.finish = !0, eb.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1)); for (b = 0; g > b; b++) d[b] && d[b].finish && d[b].finish.call(this); delete c.finish }) } }), eb.each([\"toggle\", \"show\", \"hide\"], function (a, b) { var c = eb.fn[b]; eb.fn[b] = function (a, d, e) { return null == a || \"boolean\" == typeof a ? c.apply(this, arguments) : this.animate(I(b, !0), a, d, e) } }), eb.each({ slideDown: I(\"show\"), slideUp: I(\"hide\"), slideToggle: I(\"toggle\"), fadeIn: { opacity: \"show\" }, fadeOut: { opacity: \"hide\" }, fadeToggle: { opacity: \"toggle\" } }, function (a, b) { eb.fn[a] = function (a, c, d) { return this.animate(b, a, c, d) } }), eb.timers = [], eb.fx.tick = function () { var a, b = eb.timers, c = 0; for (nc = eb.now() ; c < b.length; c++) a = b[c], a() || b[c] !== a || b.splice(c--, 1); b.length || eb.fx.stop(), nc = void 0 }, eb.fx.timer = function (a) { eb.timers.push(a), a() ? eb.fx.start() : eb.timers.pop() }, eb.fx.interval = 13, eb.fx.start = function () { oc || (oc = setInterval(eb.fx.tick, eb.fx.interval)) }, eb.fx.stop = function () { clearInterval(oc), oc = null }, eb.fx.speeds = { slow: 600, fast: 200, _default: 400 }, eb.fn.delay = function (a, b) { return a = eb.fx ? eb.fx.speeds[a] || a : a, b = b || \"fx\", this.queue(b, function (b, c) { var d = setTimeout(b, a); c.stop = function () { clearTimeout(d) } }) }, function () { var a, b, c, d, e; b = ob.createElement(\"div\"), b.setAttribute(\"className\", \"t\"), b.innerHTML = \"
a\", d = b.getElementsByTagName(\"a\")[0], c = ob.createElement(\"select\"), e = c.appendChild(ob.createElement(\"option\")), a = b.getElementsByTagName(\"input\")[0], d.style.cssText = \"top:1px\", cb.getSetAttribute = \"t\" !== b.className, cb.style = /top/.test(d.getAttribute(\"style\")), cb.hrefNormalized = \"/a\" === d.getAttribute(\"href\"), cb.checkOn = !!a.value, cb.optSelected = e.selected, cb.enctype = !!ob.createElement(\"form\").enctype, c.disabled = !0, cb.optDisabled = !e.disabled, a = ob.createElement(\"input\"), a.setAttribute(\"value\", \"\"), cb.input = \"\" === a.getAttribute(\"value\"), a.value = \"t\", a.setAttribute(\"type\", \"radio\"), cb.radioValue = \"t\" === a.value }(); var uc = /\\r/g; eb.fn.extend({ val: function (a) { var b, c, d, e = this[0]; { if (arguments.length) return d = eb.isFunction(a), this.each(function (c) { var e; 1 === this.nodeType && (e = d ? a.call(this, c, eb(this).val()) : a, null == e ? e = \"\" : \"number\" == typeof e ? e += \"\" : eb.isArray(e) && (e = eb.map(e, function (a) { return null == a ? \"\" : a + \"\" })), b = eb.valHooks[this.type] || eb.valHooks[this.nodeName.toLowerCase()], b && \"set\" in b && void 0 !== b.set(this, e, \"value\") || (this.value = e)) }); if (e) return b = eb.valHooks[e.type] || eb.valHooks[e.nodeName.toLowerCase()], b && \"get\" in b && void 0 !== (c = b.get(e, \"value\")) ? c : (c = e.value, \"string\" == typeof c ? c.replace(uc, \"\") : null == c ? \"\" : c) } } }), eb.extend({ valHooks: { option: { get: function (a) { var b = eb.find.attr(a, \"value\"); return null != b ? b : eb.trim(eb.text(a)) } }, select: { get: function (a) { for (var b, c, d = a.options, e = a.selectedIndex, f = \"select-one\" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++) if (c = d[i], !(!c.selected && i !== e || (cb.optDisabled ? c.disabled : null !== c.getAttribute(\"disabled\")) || c.parentNode.disabled && eb.nodeName(c.parentNode, \"optgroup\"))) { if (b = eb(c).val(), f) return b; g.push(b) } return g }, set: function (a, b) { for (var c, d, e = a.options, f = eb.makeArray(b), g = e.length; g--;) if (d = e[g], eb.inArray(eb.valHooks.option.get(d), f) >= 0) try { d.selected = c = !0 } catch (h) { d.scrollHeight } else d.selected = !1; return c || (a.selectedIndex = -1), e } } } }), eb.each([\"radio\", \"checkbox\"], function () { eb.valHooks[this] = { set: function (a, b) { return eb.isArray(b) ? a.checked = eb.inArray(eb(a).val(), b) >= 0 : void 0 } }, cb.checkOn || (eb.valHooks[this].get = function (a) { return null === a.getAttribute(\"value\") ? \"on\" : a.value }) }); var vc, wc, xc = eb.expr.attrHandle, yc = /^(?:checked|selected)$/i, zc = cb.getSetAttribute, Ac = cb.input; eb.fn.extend({ attr: function (a, b) { return Db(this, eb.attr, a, b, arguments.length > 1) }, removeAttr: function (a) { return this.each(function () { eb.removeAttr(this, a) }) } }), eb.extend({ attr: function (a, b, c) { var d, e, f = a.nodeType; if (a && 3 !== f && 8 !== f && 2 !== f) return typeof a.getAttribute === xb ? eb.prop(a, b, c) : (1 === f && eb.isXMLDoc(a) || (b = b.toLowerCase(), d = eb.attrHooks[b] || (eb.expr.match.bool.test(b) ? wc : vc)), void 0 === c ? d && \"get\" in d && null !== (e = d.get(a, b)) ? e : (e = eb.find.attr(a, b), null == e ? void 0 : e) : null !== c ? d && \"set\" in d && void 0 !== (e = d.set(a, c, b)) ? e : (a.setAttribute(b, c + \"\"), c) : void eb.removeAttr(a, b)) }, removeAttr: function (a, b) { var c, d, e = 0, f = b && b.match(tb); if (f && 1 === a.nodeType) for (; c = f[e++];) d = eb.propFix[c] || c, eb.expr.match.bool.test(c) ? Ac && zc || !yc.test(c) ? a[d] = !1 : a[eb.camelCase(\"default-\" + c)] = a[d] = !1 : eb.attr(a, c, \"\"), a.removeAttribute(zc ? c : d) }, attrHooks: { type: { set: function (a, b) { if (!cb.radioValue && \"radio\" === b && eb.nodeName(a, \"input\")) { var c = a.value; return a.setAttribute(\"type\", b), c && (a.value = c), b } } } } }), wc = { set: function (a, b, c) { return b === !1 ? eb.removeAttr(a, c) : Ac && zc || !yc.test(c) ? a.setAttribute(!zc && eb.propFix[c] || c, c) : a[eb.camelCase(\"default-\" + c)] = a[c] = !0, c } }, eb.each(eb.expr.match.bool.source.match(/\\w+/g), function (a, b) { var c = xc[b] || eb.find.attr; xc[b] = Ac && zc || !yc.test(b) ? function (a, b, d) { var e, f; return d || (f = xc[b], xc[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, xc[b] = f), e } : function (a, b, c) { return c ? void 0 : a[eb.camelCase(\"default-\" + b)] ? b.toLowerCase() : null } }), Ac && zc || (eb.attrHooks.value = { set: function (a, b, c) { return eb.nodeName(a, \"input\") ? void (a.defaultValue = b) : vc && vc.set(a, b, c) } }), zc || (vc = { set: function (a, b, c) { var d = a.getAttributeNode(c); return d || a.setAttributeNode(d = a.ownerDocument.createAttribute(c)), d.value = b += \"\", \"value\" === c || b === a.getAttribute(c) ? b : void 0 } }, xc.id = xc.name = xc.coords = function (a, b, c) { var d; return c ? void 0 : (d = a.getAttributeNode(b)) && \"\" !== d.value ? d.value : null }, eb.valHooks.button = { get: function (a, b) { var c = a.getAttributeNode(b); return c && c.specified ? c.value : void 0 }, set: vc.set }, eb.attrHooks.contenteditable = { set: function (a, b, c) { vc.set(a, \"\" === b ? !1 : b, c) } }, eb.each([\"width\", \"height\"], function (a, b) { eb.attrHooks[b] = { set: function (a, c) { return \"\" === c ? (a.setAttribute(b, \"auto\"), c) : void 0 } } })), cb.style || (eb.attrHooks.style = { get: function (a) { return a.style.cssText || void 0 }, set: function (a, b) { return a.style.cssText = b + \"\" } }); var Bc = /^(?:input|select|textarea|button|object)$/i, Cc = /^(?:a|area)$/i; eb.fn.extend({ prop: function (a, b) { return Db(this, eb.prop, a, b, arguments.length > 1) }, removeProp: function (a) { return a = eb.propFix[a] || a, this.each(function () { try { this[a] = void 0, delete this[a] } catch (b) { } }) } }), eb.extend({\n\t\t\t\tpropFix: { \"for\": \"htmlFor\", \"class\": \"className\" }, prop: function (a, b, c) { var d, e, f, g = a.nodeType; if (a && 3 !== g && 8 !== g && 2 !== g) return f = 1 !== g || !eb.isXMLDoc(a), f && (b = eb.propFix[b] || b, e = eb.propHooks[b]), void 0 !== c ? e && \"set\" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && \"get\" in e && null !== (d = e.get(a, b)) ? d : a[b] }, propHooks: {\n\t\t\t\t\ttabIndex: {\n\t\t\t\t\t\tget: function (a) {\n\t\t\t\t\t\t\tvar b = eb.find.attr(a, \"tabindex\"); return b ? parseInt(b, 10) : Bc.test(a.nodeName) || Cc.test(a.nodeName) && a.href ? 0 : -1\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}), cb.hrefNormalized || eb.each([\"href\", \"src\"], function (a, b) { eb.propHooks[b] = { get: function (a) { return a.getAttribute(b, 4) } } }), cb.optSelected || (eb.propHooks.selected = { get: function (a) { var b = a.parentNode; return b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex), null } }), eb.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () { eb.propFix[this.toLowerCase()] = this }), cb.enctype || (eb.propFix.enctype = \"encoding\"); var Dc = /[\\t\\r\\n\\f]/g; eb.fn.extend({ addClass: function (a) { var b, c, d, e, f, g, h = 0, i = this.length, j = \"string\" == typeof a && a; if (eb.isFunction(a)) return this.each(function (b) { eb(this).addClass(a.call(this, b, this.className)) }); if (j) for (b = (a || \"\").match(tb) || []; i > h; h++) if (c = this[h], d = 1 === c.nodeType && (c.className ? (\" \" + c.className + \" \").replace(Dc, \" \") : \" \")) { for (f = 0; e = b[f++];) d.indexOf(\" \" + e + \" \") < 0 && (d += e + \" \"); g = eb.trim(d), c.className !== g && (c.className = g) } return this }, removeClass: function (a) { var b, c, d, e, f, g, h = 0, i = this.length, j = 0 === arguments.length || \"string\" == typeof a && a; if (eb.isFunction(a)) return this.each(function (b) { eb(this).removeClass(a.call(this, b, this.className)) }); if (j) for (b = (a || \"\").match(tb) || []; i > h; h++) if (c = this[h], d = 1 === c.nodeType && (c.className ? (\" \" + c.className + \" \").replace(Dc, \" \") : \"\")) { for (f = 0; e = b[f++];) for (; d.indexOf(\" \" + e + \" \") >= 0;) d = d.replace(\" \" + e + \" \", \" \"); g = a ? eb.trim(d) : \"\", c.className !== g && (c.className = g) } return this }, toggleClass: function (a, b) { var c = typeof a; return \"boolean\" == typeof b && \"string\" === c ? b ? this.addClass(a) : this.removeClass(a) : this.each(eb.isFunction(a) ? function (c) { eb(this).toggleClass(a.call(this, c, this.className, b), b) } : function () { if (\"string\" === c) for (var b, d = 0, e = eb(this), f = a.match(tb) || []; b = f[d++];) e.hasClass(b) ? e.removeClass(b) : e.addClass(b); else (c === xb || \"boolean\" === c) && (this.className && eb._data(this, \"__className__\", this.className), this.className = this.className || a === !1 ? \"\" : eb._data(this, \"__className__\") || \"\") }) }, hasClass: function (a) { for (var b = \" \" + a + \" \", c = 0, d = this.length; d > c; c++) if (1 === this[c].nodeType && (\" \" + this[c].className + \" \").replace(Dc, \" \").indexOf(b) >= 0) return !0; return !1 } }), eb.each(\"blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu\".split(\" \"), function (a, b) { eb.fn[b] = function (a, c) { return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b) } }), eb.fn.extend({ hover: function (a, b) { return this.mouseenter(a).mouseleave(b || a) }, bind: function (a, b, c) { return this.on(a, null, b, c) }, unbind: function (a, b) { return this.off(a, null, b) }, delegate: function (a, b, c, d) { return this.on(b, a, c, d) }, undelegate: function (a, b, c) { return 1 === arguments.length ? this.off(a, \"**\") : this.off(b, a || \"**\", c) } }); var Ec = eb.now(), Fc = /\\?/, Gc = /(,)|(\\[|{)|(}|])|\"(?:[^\"\\\\\\r\\n]|\\\\[\"\\\\\\/bfnrt]|\\\\u[\\da-fA-F]{4})*\"\\s*:?|true|false|null|-?(?!0\\d)\\d+(?:\\.\\d+|)(?:[eE][+-]?\\d+|)/g; eb.parseJSON = function (b) { if (a.JSON && a.JSON.parse) return a.JSON.parse(b + \"\"); var c, d = null, e = eb.trim(b + \"\"); return e && !eb.trim(e.replace(Gc, function (a, b, e, f) { return c && b && (d = 0), 0 === d ? a : (c = e || b, d += !f - !e, \"\") })) ? Function(\"return \" + e)() : eb.error(\"Invalid JSON: \" + b) }, eb.parseXML = function (b) { var c, d; if (!b || \"string\" != typeof b) return null; try { a.DOMParser ? (d = new DOMParser, c = d.parseFromString(b, \"text/xml\")) : (c = new ActiveXObject(\"Microsoft.XMLDOM\"), c.async = \"false\", c.loadXML(b)) } catch (e) { c = void 0 } return c && c.documentElement && !c.getElementsByTagName(\"parsererror\").length || eb.error(\"Invalid XML: \" + b), c }; var Hc, Ic, Jc = /#.*$/, Kc = /([?&])_=[^&]*/, Lc = /^(.*?):[ \\t]*([^\\r\\n]*)\\r?$/gm, Mc = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, Nc = /^(?:GET|HEAD)$/, Oc = /^\\/\\//, Pc = /^([\\w.+-]+:)(?:\\/\\/(?:[^\\/?#]*@|)([^\\/?#:]*)(?::(\\d+)|)|)/, Qc = {}, Rc = {}, Sc = \"*/\".concat(\"*\"); try { Ic = location.href } catch (Tc) { Ic = ob.createElement(\"a\"), Ic.href = \"\", Ic = Ic.href } Hc = Pc.exec(Ic.toLowerCase()) || [], eb.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: Ic, type: \"GET\", isLocal: Mc.test(Hc[1]), global: !0, processData: !0, async: !0, contentType: \"application/x-www-form-urlencoded; charset=UTF-8\", accepts: { \"*\": Sc, text: \"text/plain\", html: \"text/html\", xml: \"application/xml, text/xml\", json: \"application/json, text/javascript\" }, contents: { xml: /xml/, html: /html/, json: /json/ }, responseFields: { xml: \"responseXML\", text: \"responseText\", json: \"responseJSON\" }, converters: { \"* text\": String, \"text html\": !0, \"text json\": eb.parseJSON, \"text xml\": eb.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function (a, b) { return b ? P(P(a, eb.ajaxSettings), b) : P(eb.ajaxSettings, a) }, ajaxPrefilter: N(Qc), ajaxTransport: N(Rc), ajax: function (a, b) { function c(a, b, c, d) { var e, k, r, s, u, w = b; 2 !== t && (t = 2, h && clearTimeout(h), j = void 0, g = d || \"\", v.readyState = a > 0 ? 4 : 0, e = a >= 200 && 300 > a || 304 === a, c && (s = Q(l, v, c)), s = R(l, s, v, e), e ? (l.ifModified && (u = v.getResponseHeader(\"Last-Modified\"), u && (eb.lastModified[f] = u), u = v.getResponseHeader(\"etag\"), u && (eb.etag[f] = u)), 204 === a || \"HEAD\" === l.type ? w = \"nocontent\" : 304 === a ? w = \"notmodified\" : (w = s.state, k = s.data, r = s.error, e = !r)) : (r = w, (a || !w) && (w = \"error\", 0 > a && (a = 0))), v.status = a, v.statusText = (b || w) + \"\", e ? o.resolveWith(m, [k, w, v]) : o.rejectWith(m, [v, w, r]), v.statusCode(q), q = void 0, i && n.trigger(e ? \"ajaxSuccess\" : \"ajaxError\", [v, l, e ? k : r]), p.fireWith(m, [v, w]), i && (n.trigger(\"ajaxComplete\", [v, l]), --eb.active || eb.event.trigger(\"ajaxStop\"))) } \"object\" == typeof a && (b = a, a = void 0), b = b || {}; var d, e, f, g, h, i, j, k, l = eb.ajaxSetup({}, b), m = l.context || l, n = l.context && (m.nodeType || m.jquery) ? eb(m) : eb.event, o = eb.Deferred(), p = eb.Callbacks(\"once memory\"), q = l.statusCode || {}, r = {}, s = {}, t = 0, u = \"canceled\", v = { readyState: 0, getResponseHeader: function (a) { var b; if (2 === t) { if (!k) for (k = {}; b = Lc.exec(g) ;) k[b[1].toLowerCase()] = b[2]; b = k[a.toLowerCase()] } return null == b ? null : b }, getAllResponseHeaders: function () { return 2 === t ? g : null }, setRequestHeader: function (a, b) { var c = a.toLowerCase(); return t || (a = s[c] = s[c] || a, r[a] = b), this }, overrideMimeType: function (a) { return t || (l.mimeType = a), this }, statusCode: function (a) { var b; if (a) if (2 > t) for (b in a) q[b] = [q[b], a[b]]; else v.always(a[v.status]); return this }, abort: function (a) { var b = a || u; return j && j.abort(b), c(0, b), this } }; if (o.promise(v).complete = p.add, v.success = v.done, v.error = v.fail, l.url = ((a || l.url || Ic) + \"\").replace(Jc, \"\").replace(Oc, Hc[1] + \"//\"), l.type = b.method || b.type || l.method || l.type, l.dataTypes = eb.trim(l.dataType || \"*\").toLowerCase().match(tb) || [\"\"], null == l.crossDomain && (d = Pc.exec(l.url.toLowerCase()), l.crossDomain = !(!d || d[1] === Hc[1] && d[2] === Hc[2] && (d[3] || (\"http:\" === d[1] ? \"80\" : \"443\")) === (Hc[3] || (\"http:\" === Hc[1] ? \"80\" : \"443\")))), l.data && l.processData && \"string\" != typeof l.data && (l.data = eb.param(l.data, l.traditional)), O(Qc, l, b, v), 2 === t) return v; i = eb.event && l.global, i && 0 === eb.active++ && eb.event.trigger(\"ajaxStart\"), l.type = l.type.toUpperCase(), l.hasContent = !Nc.test(l.type), f = l.url, l.hasContent || (l.data && (f = l.url += (Fc.test(f) ? \"&\" : \"?\") + l.data, delete l.data), l.cache === !1 && (l.url = Kc.test(f) ? f.replace(Kc, \"$1_=\" + Ec++) : f + (Fc.test(f) ? \"&\" : \"?\") + \"_=\" + Ec++)), l.ifModified && (eb.lastModified[f] && v.setRequestHeader(\"If-Modified-Since\", eb.lastModified[f]), eb.etag[f] && v.setRequestHeader(\"If-None-Match\", eb.etag[f])), (l.data && l.hasContent && l.contentType !== !1 || b.contentType) && v.setRequestHeader(\"Content-Type\", l.contentType), v.setRequestHeader(\"Accept\", l.dataTypes[0] && l.accepts[l.dataTypes[0]] ? l.accepts[l.dataTypes[0]] + (\"*\" !== l.dataTypes[0] ? \", \" + Sc + \"; q=0.01\" : \"\") : l.accepts[\"*\"]); for (e in l.headers) v.setRequestHeader(e, l.headers[e]); if (l.beforeSend && (l.beforeSend.call(m, v, l) === !1 || 2 === t)) return v.abort(); u = \"abort\"; for (e in { success: 1, error: 1, complete: 1 }) v[e](l[e]); if (j = O(Rc, l, b, v)) { v.readyState = 1, i && n.trigger(\"ajaxSend\", [v, l]), l.async && l.timeout > 0 && (h = setTimeout(function () { v.abort(\"timeout\") }, l.timeout)); try { t = 1, j.send(r, c) } catch (w) { if (!(2 > t)) throw w; c(-1, w) } } else c(-1, \"No Transport\"); return v }, getJSON: function (a, b, c) { return eb.get(a, b, c, \"json\") }, getScript: function (a, b) { return eb.get(a, void 0, b, \"script\") } }), eb.each([\"get\", \"post\"], function (a, b) { eb[b] = function (a, c, d, e) { return eb.isFunction(c) && (e = e || d, d = c, c = void 0), eb.ajax({ url: a, type: b, dataType: e, data: c, success: d }) } }), eb._evalUrl = function (a) { return eb.ajax({ url: a, type: \"GET\", dataType: \"script\", async: !1, global: !1, \"throws\": !0 }) }, eb.fn.extend({ wrapAll: function (a) { if (eb.isFunction(a)) return this.each(function (b) { eb(this).wrapAll(a.call(this, b)) }); if (this[0]) { var b = eb(a, this[0].ownerDocument).eq(0).clone(!0); this[0].parentNode && b.insertBefore(this[0]), b.map(function () { for (var a = this; a.firstChild && 1 === a.firstChild.nodeType;) a = a.firstChild; return a }).append(this) } return this }, wrapInner: function (a) { return this.each(eb.isFunction(a) ? function (b) { eb(this).wrapInner(a.call(this, b)) } : function () { var b = eb(this), c = b.contents(); c.length ? c.wrapAll(a) : b.append(a) }) }, wrap: function (a) { var b = eb.isFunction(a); return this.each(function (c) { eb(this).wrapAll(b ? a.call(this, c) : a) }) }, unwrap: function () { return this.parent().each(function () { eb.nodeName(this, \"body\") || eb(this).replaceWith(this.childNodes) }).end() } }), eb.expr.filters.hidden = function (a) { return a.offsetWidth <= 0 && a.offsetHeight <= 0 || !cb.reliableHiddenOffsets() && \"none\" === (a.style && a.style.display || eb.css(a, \"display\")) }, eb.expr.filters.visible = function (a) { return !eb.expr.filters.hidden(a) }; var Uc = /%20/g, Vc = /\\[\\]$/, Wc = /\\r?\\n/g, Xc = /^(?:submit|button|image|reset|file)$/i, Yc = /^(?:input|select|textarea|keygen)/i; eb.param = function (a, b) { var c, d = [], e = function (a, b) { b = eb.isFunction(b) ? b() : null == b ? \"\" : b, d[d.length] = encodeURIComponent(a) + \"=\" + encodeURIComponent(b) }; if (void 0 === b && (b = eb.ajaxSettings && eb.ajaxSettings.traditional), eb.isArray(a) || a.jquery && !eb.isPlainObject(a)) eb.each(a, function () { e(this.name, this.value) }); else for (c in a) S(c, a[c], b, e); return d.join(\"&\").replace(Uc, \"+\") }, eb.fn.extend({ serialize: function () { return eb.param(this.serializeArray()) }, serializeArray: function () { return this.map(function () { var a = eb.prop(this, \"elements\"); return a ? eb.makeArray(a) : this }).filter(function () { var a = this.type; return this.name && !eb(this).is(\":disabled\") && Yc.test(this.nodeName) && !Xc.test(a) && (this.checked || !Eb.test(a)) }).map(function (a, b) { var c = eb(this).val(); return null == c ? null : eb.isArray(c) ? eb.map(c, function (a) { return { name: b.name, value: a.replace(Wc, \"\\r\\n\") } }) : { name: b.name, value: c.replace(Wc, \"\\r\\n\") } }).get() } }), eb.ajaxSettings.xhr = void 0 !== a.ActiveXObject ? function () { return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && T() || U() } : T; var Zc = 0, $c = {}, _c = eb.ajaxSettings.xhr(); a.attachEvent && a.attachEvent(\"onunload\", function () { for (var a in $c) $c[a](void 0, !0) }), cb.cors = !!_c && \"withCredentials\" in _c, _c = cb.ajax = !!_c, _c && eb.ajaxTransport(function (a) { if (!a.crossDomain || cb.cors) { var b; return { send: function (c, d) { var e, f = a.xhr(), g = ++Zc; if (f.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields) for (e in a.xhrFields) f[e] = a.xhrFields[e]; a.mimeType && f.overrideMimeType && f.overrideMimeType(a.mimeType), a.crossDomain || c[\"X-Requested-With\"] || (c[\"X-Requested-With\"] = \"XMLHttpRequest\"); for (e in c) void 0 !== c[e] && f.setRequestHeader(e, c[e] + \"\"); f.send(a.hasContent && a.data || null), b = function (c, e) { var h, i, j; if (b && (e || 4 === f.readyState)) if (delete $c[g], b = void 0, f.onreadystatechange = eb.noop, e) 4 !== f.readyState && f.abort(); else { j = {}, h = f.status, \"string\" == typeof f.responseText && (j.text = f.responseText); try { i = f.statusText } catch (k) { i = \"\" } h || !a.isLocal || a.crossDomain ? 1223 === h && (h = 204) : h = j.text ? 200 : 404 } j && d(h, i, j, f.getAllResponseHeaders()) }, a.async ? 4 === f.readyState ? setTimeout(b) : f.onreadystatechange = $c[g] = b : b() }, abort: function () { b && b(void 0, !0) } } } }), eb.ajaxSetup({ accepts: { script: \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\" }, contents: { script: /(?:java|ecma)script/ }, converters: { \"text script\": function (a) { return eb.globalEval(a), a } } }), eb.ajaxPrefilter(\"script\", function (a) { void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = \"GET\", a.global = !1) }), eb.ajaxTransport(\"script\", function (a) { if (a.crossDomain) { var b, c = ob.head || eb(\"head\")[0] || ob.documentElement; return { send: function (d, e) { b = ob.createElement(\"script\"), b.async = !0, a.scriptCharset && (b.charset = a.scriptCharset), b.src = a.url, b.onload = b.onreadystatechange = function (a, c) { (c || !b.readyState || /loaded|complete/.test(b.readyState)) && (b.onload = b.onreadystatechange = null, b.parentNode && b.parentNode.removeChild(b), b = null, c || e(200, \"success\")) }, c.insertBefore(b, c.firstChild) }, abort: function () { b && b.onload(void 0, !0) } } } }); var ad = [], bd = /(=)\\?(?=&|$)|\\?\\?/; eb.ajaxSetup({ jsonp: \"callback\", jsonpCallback: function () { var a = ad.pop() || eb.expando + \"_\" + Ec++; return this[a] = !0, a } }), eb.ajaxPrefilter(\"json jsonp\", function (b, c, d) { var e, f, g, h = b.jsonp !== !1 && (bd.test(b.url) ? \"url\" : \"string\" == typeof b.data && !(b.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") && bd.test(b.data) && \"data\"); return h || \"jsonp\" === b.dataTypes[0] ? (e = b.jsonpCallback = eb.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(bd, \"$1\" + e) : b.jsonp !== !1 && (b.url += (Fc.test(b.url) ? \"&\" : \"?\") + b.jsonp + \"=\" + e), b.converters[\"script json\"] = function () { return g || eb.error(e + \" was not called\"), g[0] }, b.dataTypes[0] = \"json\", f = a[e], a[e] = function () { g = arguments }, d.always(function () { a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, ad.push(e)), g && eb.isFunction(f) && f(g[0]), g = f = void 0 }), \"script\") : void 0 }), eb.parseHTML = function (a, b, c) { if (!a || \"string\" != typeof a) return null; \"boolean\" == typeof b && (c = b, b = !1), b = b || ob; var d = lb.exec(a), e = !c && []; return d ? [b.createElement(d[1])] : (d = eb.buildFragment([a], b, e), e && e.length && eb(e).remove(), eb.merge([], d.childNodes)) }; var cd = eb.fn.load; eb.fn.load = function (a, b, c) { if (\"string\" != typeof a && cd) return cd.apply(this, arguments); var d, e, f, g = this, h = a.indexOf(\" \"); return h >= 0 && (d = eb.trim(a.slice(h, a.length)), a = a.slice(0, h)), eb.isFunction(b) ? (c = b, b = void 0) : b && \"object\" == typeof b && (f = \"POST\"), g.length > 0 && eb.ajax({ url: a, type: f, dataType: \"html\", data: b }).done(function (a) { e = arguments, g.html(d ? eb(\"
\").append(eb.parseHTML(a)).find(d) : a) }).complete(c && function (a, b) { g.each(c, e || [a.responseText, b, a]) }), this }, eb.each([\"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\"], function (a, b) { eb.fn[b] = function (a) { return this.on(b, a) } }), eb.expr.filters.animated = function (a) { return eb.grep(eb.timers, function (b) { return a === b.elem }).length }; var dd = a.document.documentElement; eb.offset = { setOffset: function (a, b, c) { var d, e, f, g, h, i, j, k = eb.css(a, \"position\"), l = eb(a), m = {}; \"static\" === k && (a.style.position = \"relative\"), h = l.offset(), f = eb.css(a, \"top\"), i = eb.css(a, \"left\"), j = (\"absolute\" === k || \"fixed\" === k) && eb.inArray(\"auto\", [f, i]) > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), eb.isFunction(b) && (b = b.call(a, c, h)), null != b.top && (m.top = b.top - h.top + g), null != b.left && (m.left = b.left - h.left + e), \"using\" in b ? b.using.call(a, m) : l.css(m) } }, eb.fn.extend({ offset: function (a) { if (arguments.length) return void 0 === a ? this : this.each(function (b) { eb.offset.setOffset(this, a, b) }); var b, c, d = { top: 0, left: 0 }, e = this[0], f = e && e.ownerDocument; if (f) return b = f.documentElement, eb.contains(b, e) ? (typeof e.getBoundingClientRect !== xb && (d = e.getBoundingClientRect()), c = V(f), { top: d.top + (c.pageYOffset || b.scrollTop) - (b.clientTop || 0), left: d.left + (c.pageXOffset || b.scrollLeft) - (b.clientLeft || 0) }) : d }, position: function () { if (this[0]) { var a, b, c = { top: 0, left: 0 }, d = this[0]; return \"fixed\" === eb.css(d, \"position\") ? b = d.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), eb.nodeName(a[0], \"html\") || (c = a.offset()), c.top += eb.css(a[0], \"borderTopWidth\", !0), c.left += eb.css(a[0], \"borderLeftWidth\", !0)), { top: b.top - c.top - eb.css(d, \"marginTop\", !0), left: b.left - c.left - eb.css(d, \"marginLeft\", !0) } } }, offsetParent: function () { return this.map(function () { for (var a = this.offsetParent || dd; a && !eb.nodeName(a, \"html\") && \"static\" === eb.css(a, \"position\") ;) a = a.offsetParent; return a || dd }) } }), eb.each({ scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function (a, b) { var c = /Y/.test(b); eb.fn[a] = function (d) { return Db(this, function (a, d, e) { var f = V(a); return void 0 === e ? f ? b in f ? f[b] : f.document.documentElement[d] : a[d] : void (f ? f.scrollTo(c ? eb(f).scrollLeft() : e, c ? e : eb(f).scrollTop()) : a[d] = e) }, a, d, arguments.length, null) } }), eb.each([\"top\", \"left\"], function (a, b) { eb.cssHooks[b] = A(cb.pixelPosition, function (a, c) { return c ? (c = bc(a, b), dc.test(c) ? eb(a).position()[b] + \"px\" : c) : void 0 }) }), eb.each({ Height: \"height\", Width: \"width\" }, function (a, b) { eb.each({ padding: \"inner\" + a, content: b, \"\": \"outer\" + a }, function (c, d) { eb.fn[d] = function (d, e) { var f = arguments.length && (c || \"boolean\" != typeof d), g = c || (d === !0 || e === !0 ? \"margin\" : \"border\"); return Db(this, function (b, c, d) { var e; return eb.isWindow(b) ? b.document.documentElement[\"client\" + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body[\"scroll\" + a], e[\"scroll\" + a], b.body[\"offset\" + a], e[\"offset\" + a], e[\"client\" + a])) : void 0 === d ? eb.css(b, c, g) : eb.style(b, c, d, g) }, b, f ? d : void 0, f, null) } }) }), eb.fn.size = function () { return this.length }, eb.fn.andSelf = eb.fn.addBack, \"function\" == typeof define && define.amd && define(\"jquery\", [], function () { return eb }); var ed = a.jQuery, fd = a.$; return eb.noConflict = function (b) { return a.$ === eb && (a.$ = fd), b && a.jQuery === eb && (a.jQuery = ed), eb }, typeof b === xb && (a.jQuery = a.$ = eb), eb\n\t\t});/*!\n * This file creates $ and jQuery variables within the F2 closure scope\n */\n\t\tvar $, jQuery = $ = window.jQuery.noConflict(!0); +function (a) { \"use strict\"; function b(b, d) { return this.each(function () { var e = a(this), f = e.data(\"bs.modal\"), g = a.extend({}, c.DEFAULTS, e.data(), \"object\" == typeof b && b); f || e.data(\"bs.modal\", f = new c(this, g)), \"string\" == typeof b ? f[b](d) : g.show && f.show(d) }) } var c = function (b, c) { this.options = c, this.$body = a(document.body), this.$element = a(b), this.$dialog = this.$element.find(\".modal-dialog\"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.options.remote && this.$element.find(\".modal-content\").load(this.options.remote, a.proxy(function () { this.$element.trigger(\"loaded.bs.modal\") }, this)) }; c.VERSION = \"3.3.4\", c.TRANSITION_DURATION = 300, c.BACKDROP_TRANSITION_DURATION = 150, c.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }, c.prototype.toggle = function (a) { return this.isShown ? this.hide() : this.show(a) }, c.prototype.show = function (b) { var d = this, e = a.Event(\"show.bs.modal\", { relatedTarget: b }); this.$element.trigger(e), this.isShown || e.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass(\"modal-open\"), this.escape(), this.resize(), this.$element.on(\"click.dismiss.bs.modal\", '[data-dismiss=\"modal\"]', a.proxy(this.hide, this)), this.$dialog.on(\"mousedown.dismiss.bs.modal\", function () { d.$element.one(\"mouseup.dismiss.bs.modal\", function (b) { a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0) }) }), this.backdrop(function () { var e = a.support.transition && d.$element.hasClass(\"fade\"); d.$element.parent().length || d.$element.appendTo(d.$body), d.$element.show().scrollTop(0), d.adjustDialog(), e && d.$element[0].offsetWidth, d.$element.addClass(\"in\"), d.enforceFocus(); var f = a.Event(\"shown.bs.modal\", { relatedTarget: b }); e ? d.$dialog.one(\"bsTransitionEnd\", function () { d.$element.trigger(\"focus\").trigger(f) }).emulateTransitionEnd(c.TRANSITION_DURATION) : d.$element.trigger(\"focus\").trigger(f) })) }, c.prototype.hide = function (b) { b && b.preventDefault(), b = a.Event(\"hide.bs.modal\"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), a(document).off(\"focusin.bs.modal\"), this.$element.removeClass(\"in\").off(\"click.dismiss.bs.modal\").off(\"mouseup.dismiss.bs.modal\"), this.$dialog.off(\"mousedown.dismiss.bs.modal\"), a.support.transition && this.$element.hasClass(\"fade\") ? this.$element.one(\"bsTransitionEnd\", a.proxy(this.hideModal, this)).emulateTransitionEnd(c.TRANSITION_DURATION) : this.hideModal()) }, c.prototype.enforceFocus = function () { a(document).off(\"focusin.bs.modal\").on(\"focusin.bs.modal\", a.proxy(function (a) { this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.trigger(\"focus\") }, this)) }, c.prototype.escape = function () { this.isShown && this.options.keyboard ? this.$element.on(\"keydown.dismiss.bs.modal\", a.proxy(function (a) { 27 == a.which && this.hide() }, this)) : this.isShown || this.$element.off(\"keydown.dismiss.bs.modal\") }, c.prototype.resize = function () { this.isShown ? a(window).on(\"resize.bs.modal\", a.proxy(this.handleUpdate, this)) : a(window).off(\"resize.bs.modal\") }, c.prototype.hideModal = function () { var a = this; this.$element.hide(), this.backdrop(function () { a.$body.removeClass(\"modal-open\"), a.resetAdjustments(), a.resetScrollbar(), a.$element.trigger(\"hidden.bs.modal\") }) }, c.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove(), this.$backdrop = null }, c.prototype.backdrop = function (b) { var d = this, e = this.$element.hasClass(\"fade\") ? \"fade\" : \"\"; if (this.isShown && this.options.backdrop) { var f = a.support.transition && e; if (this.$backdrop = a(document.createElement(\"div\")).addClass(\"modal-backdrop \" + e).appendTo(this.$body), this.$element.on(\"click.dismiss.bs.modal\", a.proxy(function (a) { return this.ignoreBackdropClick ? void (this.ignoreBackdropClick = !1) : void (a.target === a.currentTarget && (\"static\" == this.options.backdrop ? this.$element[0].focus() : this.hide())) }, this)), f && this.$backdrop[0].offsetWidth, this.$backdrop.addClass(\"in\"), !b) return; f ? this.$backdrop.one(\"bsTransitionEnd\", b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : b() } else if (!this.isShown && this.$backdrop) { this.$backdrop.removeClass(\"in\"); var g = function () { d.removeBackdrop(), b && b() }; a.support.transition && this.$element.hasClass(\"fade\") ? this.$backdrop.one(\"bsTransitionEnd\", g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : g() } else b && b() }, c.prototype.handleUpdate = function () { this.adjustDialog() }, c.prototype.adjustDialog = function () { var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; this.$element.css({ paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : \"\", paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : \"\" }) }, c.prototype.resetAdjustments = function () { this.$element.css({ paddingLeft: \"\", paddingRight: \"\" }) }, c.prototype.checkScrollbar = function () { var a = window.innerWidth; if (!a) { var b = document.documentElement.getBoundingClientRect(); a = b.right - Math.abs(b.left) } this.bodyIsOverflowing = document.body.clientWidth < a, this.scrollbarWidth = this.measureScrollbar() }, c.prototype.setScrollbar = function () { var a = parseInt(this.$body.css(\"padding-right\") || 0, 10); this.originalBodyPad = document.body.style.paddingRight || \"\", this.bodyIsOverflowing && this.$body.css(\"padding-right\", a + this.scrollbarWidth) }, c.prototype.resetScrollbar = function () { this.$body.css(\"padding-right\", this.originalBodyPad) }, c.prototype.measureScrollbar = function () { var a = document.createElement(\"div\"); a.className = \"modal-scrollbar-measure\", this.$body.append(a); var b = a.offsetWidth - a.clientWidth; return this.$body[0].removeChild(a), b }; var d = a.fn.modal; a.fn.modal = b, a.fn.modal.Constructor = c, a.fn.modal.noConflict = function () { return a.fn.modal = d, this }, a(document).on(\"click.bs.modal.data-api\", '[data-toggle=\"modal\"]', function (c) { var d = a(this), e = d.attr(\"href\"), f = a(d.attr(\"data-target\") || e && e.replace(/.*(?=#[^\\s]+$)/, \"\")), g = f.data(\"bs.modal\") ? \"toggle\" : a.extend({ remote: !/#/.test(e) && e }, f.data(), d.data()); d.is(\"a\") && c.preventDefault(), f.one(\"show.bs.modal\", function (a) { a.isDefaultPrevented() || f.one(\"hidden.bs.modal\", function () { d.is(\":visible\") && d.trigger(\"focus\") }) }), b.call(f, g, this) }) }(jQuery), !function (a) { function b() { this._events = {}, this._conf && c.call(this, this._conf) } function c(a) { a && (this._conf = a, a.delimiter && (this.delimiter = a.delimiter), a.maxListeners && (this._events.maxListeners = a.maxListeners), a.wildcard && (this.wildcard = a.wildcard), a.newListener && (this.newListener = a.newListener), this.wildcard && (this.listenerTree = {})) } function d(a) { this._events = {}, this.newListener = !1, c.call(this, a) } function e(a, b, c, d) { if (!c) return []; var f, g, h, i, j, k, l, m = [], n = b.length, o = b[d], p = b[d + 1]; if (d === n && c._listeners) { if (\"function\" == typeof c._listeners) return a && a.push(c._listeners), [c]; for (f = 0, g = c._listeners.length; g > f; f++) a && a.push(c._listeners[f]); return [c] } if (\"*\" === o || \"**\" === o || c[o]) { if (\"*\" === o) { for (h in c) \"_listeners\" !== h && c.hasOwnProperty(h) && (m = m.concat(e(a, b, c[h], d + 1))); return m } if (\"**\" === o) { l = d + 1 === n || d + 2 === n && \"*\" === p, l && c._listeners && (m = m.concat(e(a, b, c, n))); for (h in c) \"_listeners\" !== h && c.hasOwnProperty(h) && (\"*\" === h || \"**\" === h ? (c[h]._listeners && !l && (m = m.concat(e(a, b, c[h], n))), m = m.concat(e(a, b, c[h], d))) : m = m.concat(h === p ? e(a, b, c[h], d + 2) : e(a, b, c[h], d))); return m } m = m.concat(e(a, b, c[o], d + 1)) } if (i = c[\"*\"], i && e(a, b, i, d + 1), j = c[\"**\"]) if (n > d) { j._listeners && e(a, b, j, n); for (h in j) \"_listeners\" !== h && j.hasOwnProperty(h) && (h === p ? e(a, b, j[h], d + 2) : h === o ? e(a, b, j[h], d + 1) : (k = {}, k[h] = j[h], e(a, b, { \"**\": k }, d + 1))) } else j._listeners ? e(a, b, j, n) : j[\"*\"] && j[\"*\"]._listeners && e(a, b, j[\"*\"], n); return m } function f(a, b) { a = \"string\" == typeof a ? a.split(this.delimiter) : a.slice(); for (var c = 0, d = a.length; d > c + 1; c++) if (\"**\" === a[c] && \"**\" === a[c + 1]) return; for (var e = this.listenerTree, f = a.shift() ; f;) { if (e[f] || (e[f] = {}), e = e[f], 0 === a.length) { if (e._listeners) { if (\"function\" == typeof e._listeners) e._listeners = [e._listeners, b]; else if (g(e._listeners) && (e._listeners.push(b), !e._listeners.warned)) { var i = h; \"undefined\" != typeof this._events.maxListeners && (i = this._events.maxListeners), i > 0 && e._listeners.length > i && (e._listeners.warned = !0, console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\", e._listeners.length), console.trace()) } } else e._listeners = b; return !0 } f = a.shift() } return !0 } var g = Array.isArray ? Array.isArray : function (a) { return \"[object Array]\" === Object.prototype.toString.call(a) }, h = 10; d.prototype.delimiter = \".\", d.prototype.setMaxListeners = function (a) { this._events || b.call(this), this._events.maxListeners = a, this._conf || (this._conf = {}), this._conf.maxListeners = a }, d.prototype.event = \"\", d.prototype.once = function (a, b) { return this.many(a, 1, b), this }, d.prototype.many = function (a, b, c) { function d() { 0 === --b && e.off(a, d), c.apply(this, arguments) } var e = this; if (\"function\" != typeof c) throw new Error(\"many only accepts instances of Function\"); return d._origin = c, this.on(a, d), e }, d.prototype.emit = function () { this._events || b.call(this); var a = arguments[0]; if (\"newListener\" === a && !this.newListener && !this._events.newListener) return !1; if (this._all) { for (var c = arguments.length, d = new Array(c - 1), f = 1; c > f; f++) d[f - 1] = arguments[f]; for (f = 0, c = this._all.length; c > f; f++) this.event = a, this._all[f].apply(this, d) } if (\"error\" === a && !(this._all || this._events.error || this.wildcard && this.listenerTree.error)) throw arguments[1] instanceof Error ? arguments[1] : new Error(\"Uncaught, unspecified 'error' event.\"); var g; if (this.wildcard) { g = []; var h = \"string\" == typeof a ? a.split(this.delimiter) : a.slice(); e.call(this, g, h, this.listenerTree, 0) } else g = this._events[a]; if (\"function\" == typeof g) { if (this.event = a, 1 === arguments.length) g.call(this); else if (arguments.length > 1) switch (arguments.length) { case 2: g.call(this, arguments[1]); break; case 3: g.call(this, arguments[1], arguments[2]); break; default: for (var c = arguments.length, d = new Array(c - 1), f = 1; c > f; f++) d[f - 1] = arguments[f]; g.apply(this, d) } return !0 } if (g) { for (var c = arguments.length, d = new Array(c - 1), f = 1; c > f; f++) d[f - 1] = arguments[f]; for (var i = g.slice(), f = 0, c = i.length; c > f; f++) this.event = a, i[f].apply(this, d); return i.length > 0 || this._all } return this._all }, d.prototype.on = function (a, c) { if (\"function\" == typeof a) return this.onAny(a), this; if (\"function\" != typeof c) throw new Error(\"on only accepts instances of Function\"); if (this._events || b.call(this), this.emit(\"newListener\", a, c), this.wildcard) return f.call(this, a, c), this; if (this._events[a]) { if (\"function\" == typeof this._events[a]) this._events[a] = [this._events[a], c]; else if (g(this._events[a]) && (this._events[a].push(c), !this._events[a].warned)) { var d = h; \"undefined\" != typeof this._events.maxListeners && (d = this._events.maxListeners), d > 0 && this._events[a].length > d && (this._events[a].warned = !0, console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\", this._events[a].length), console.trace()) } } else this._events[a] = c; return this }, d.prototype.onAny = function (a) { if (this._all || (this._all = []), \"function\" != typeof a) throw new Error(\"onAny only accepts instances of Function\"); return this._all.push(a), this }, d.prototype.addListener = d.prototype.on, d.prototype.off = function (a, b) { if (\"function\" != typeof b) throw new Error(\"removeListener only takes instances of Function\"); var c, d = []; if (this.wildcard) { var f = \"string\" == typeof a ? a.split(this.delimiter) : a.slice(); d = e.call(this, null, f, this.listenerTree, 0) } else { if (!this._events[a]) return this; c = this._events[a], d.push({ _listeners: c }) } for (var h = 0; h < d.length; h++) { var i = d[h]; if (c = i._listeners, g(c)) { for (var j = -1, k = 0, l = c.length; l > k; k++) if (c[k] === b || c[k].listener && c[k].listener === b || c[k]._origin && c[k]._origin === b) { j = k; break } if (0 > j) continue; return this.wildcard ? i._listeners.splice(j, 1) : this._events[a].splice(j, 1), 0 === c.length && (this.wildcard ? delete i._listeners : delete this._events[a]), this } (c === b || c.listener && c.listener === b || c._origin && c._origin === b) && (this.wildcard ? delete i._listeners : delete this._events[a]) } return this }, d.prototype.offAny = function (a) { var b, c = 0, d = 0; if (a && this._all && this._all.length > 0) { for (b = this._all, c = 0, d = b.length; d > c; c++) if (a === b[c]) return b.splice(c, 1), this } else this._all = []; return this }, d.prototype.removeListener = d.prototype.off, d.prototype.removeAllListeners = function (a) { if (0 === arguments.length) return !this._events || b.call(this), this; if (this.wildcard) for (var c = \"string\" == typeof a ? a.split(this.delimiter) : a.slice(), d = e.call(this, null, c, this.listenerTree, 0), f = 0; f < d.length; f++) { var g = d[f]; g._listeners = null } else { if (!this._events[a]) return this; this._events[a] = null } return this }, d.prototype.listeners = function (a) { if (this.wildcard) { var c = [], d = \"string\" == typeof a ? a.split(this.delimiter) : a.slice(); return e.call(this, c, d, this.listenerTree, 0), c } return this._events || b.call(this), this._events[a] || (this._events[a] = []), g(this._events[a]) || (this._events[a] = [this._events[a]]), this._events[a] }, d.prototype.listenersAny = function () { return this._all ? this._all : [] }, a.EventEmitter2 = d }(\"undefined\" != typeof process && \"undefined\" != typeof process.title && \"undefined\" != typeof exports ? exports : window), function (a, b, c, d, e, f) { function g(a, b) { var c = typeof a[b]; return \"function\" == c || !(\"object\" != c || !a[b]) || \"unknown\" == c } function h(a, b) { return !(\"object\" != typeof a[b] || !a[b]) } function i(a) { return \"[object Array]\" === Object.prototype.toString.call(a) } function j() { var a = \"Shockwave Flash\", b = \"application/x-shockwave-flash\"; if (!t(navigator.plugins) && \"object\" == typeof navigator.plugins[a]) { var c = navigator.plugins[a].description; c && !t(navigator.mimeTypes) && navigator.mimeTypes[b] && navigator.mimeTypes[b].enabledPlugin && (C = c.match(/\\d+/g)) } if (!C) { var d; try { d = new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash\"), C = Array.prototype.slice.call(d.GetVariable(\"$version\").match(/(\\d+),(\\d+),(\\d+),(\\d+)/), 1), d = null } catch (e) { } } if (!C) return !1; var f = parseInt(C[0], 10), g = parseInt(C[1], 10); return D = f > 9 && g > 0, !0 } function k() { if (!S) { S = !0; for (var a = 0; a < T.length; a++) T[a](); T.length = 0 } } function l(a, b) { return S ? void a.call(b) : void T.push(function () { a.call(b) }) } function m() { var a = parent; if (\"\" !== M) for (var b = 0, c = M.split(\".\") ; b < c.length; b++) a = a[c[b]]; return a.easyXDM } function n(b) { return a.easyXDM = O, M = b, M && (P = \"easyXDM_\" + M.replace(\".\", \"_\") + \"_\"), N } function o(a) { return a.match(J)[3] } function p(a) { return a.match(J)[4] || \"\" } function q(a) { var b = a.toLowerCase().match(J), c = b[2], d = b[3], e = b[4] || \"\"; return (\"http:\" == c && \":80\" == e || \"https:\" == c && \":443\" == e) && (e = \"\"), c + \"//\" + d + e } function r(a) { if (a = a.replace(L, \"$1/\"), !a.match(/^(http||https):\\/\\//)) { var b = \"/\" === a.substring(0, 1) ? \"\" : c.pathname; \"/\" !== b.substring(b.length - 1) && (b = b.substring(0, b.lastIndexOf(\"/\") + 1)), a = c.protocol + \"//\" + c.host + b + a } for (; K.test(a) ;) a = a.replace(K, \"\"); return a } function s(a, b) { var c = \"\", d = a.indexOf(\"#\"); -1 !== d && (c = a.substring(d), a = a.substring(0, d)); var e = []; for (var g in b) b.hasOwnProperty(g) && e.push(g + \"=\" + f(b[g])); return a + (Q ? \"#\" : -1 == a.indexOf(\"?\") ? \"?\" : \"&\") + e.join(\"&\") + c } function t(a) { return \"undefined\" == typeof a } function u(a, b, c) { var d; for (var e in b) b.hasOwnProperty(e) && (e in a ? (d = b[e], \"object\" == typeof d ? u(a[e], d, c) : c || (a[e] = b[e])) : a[e] = b[e]); return a } function v() { var a = b.body.appendChild(b.createElement(\"form\")), c = a.appendChild(b.createElement(\"input\")); c.name = P + \"TEST\" + H, B = c !== a.elements[c.name], b.body.removeChild(a) } function w(a) { t(B) && v(); var c; B ? c = b.createElement('') : (c = b.createElement(\"IFRAME\"), c.name = a.props.name), c.id = c.name = a.props.name, delete a.props.name, \"string\" == typeof a.container && (a.container = b.getElementById(a.container)), a.container || (u(c.style, { position: \"absolute\", top: \"-2000px\", left: \"0px\" }), a.container = b.body); var d = a.props.src; if (a.props.src = \"javascript:false\", u(c, a.props), c.border = c.frameBorder = 0, c.allowTransparency = !0, a.container.appendChild(c), a.onLoad && E(c, \"load\", a.onLoad), a.usePost) { var e, f = a.container.appendChild(b.createElement(\"form\")); if (f.target = c.name, f.action = d, f.method = \"POST\", \"object\" == typeof a.usePost) for (var g in a.usePost) a.usePost.hasOwnProperty(g) && (B ? e = b.createElement('') : (e = b.createElement(\"INPUT\"), e.name = g), e.value = a.usePost[g], f.appendChild(e)); f.submit(), f.parentNode.removeChild(f) } else c.src = d; return a.props.src = d, c } function x(a, b) { \"string\" == typeof a && (a = [a]); for (var c, d = a.length; d--;) if (c = a[d], c = new RegExp(\"^\" == c.substr(0, 1) ? c : \"^\" + c.replace(/(\\*)/g, \".$1\").replace(/\\?/g, \".\") + \"$\"), c.test(b)) return !0; return !1 } function y(d) { var e, f = d.protocol; if (d.isHost = d.isHost || t(V.xdm_p), Q = d.hash || !1, d.props || (d.props = {}), d.isHost) d.remote = r(d.remote), d.channel = d.channel || \"default\" + H++, d.secret = Math.random().toString(16).substring(2), t(f) && (f = q(c.href) == q(d.remote) ? \"4\" : g(a, \"postMessage\") || g(b, \"postMessage\") ? \"1\" : d.swf && g(a, \"ActiveXObject\") && j() ? \"6\" : \"Gecko\" === navigator.product && \"frameElement\" in a && -1 == navigator.userAgent.indexOf(\"WebKit\") ? \"5\" : d.remoteHelper ? \"2\" : \"0\"); else if (d.channel = V.xdm_c.replace(/[\"'<>\\\\]/g, \"\"), d.secret = V.xdm_s, d.remote = V.xdm_e.replace(/[\"'<>\\\\]/g, \"\"), f = V.xdm_p, d.acl && !x(d.acl, d.remote)) throw new Error(\"Access denied for \" + d.remote); switch (d.protocol = f, f) { case \"0\": if (u(d, { interval: 100, delay: 2e3, useResize: !0, useParent: !1, usePolling: !1 }, !0), d.isHost) { if (!d.local) { for (var h, i = c.protocol + \"//\" + c.host, k = b.body.getElementsByTagName(\"img\"), l = k.length; l--;) if (h = k[l], h.src.substring(0, i.length) === i) { d.local = h.src; break } d.local || (d.local = a) } var m = { xdm_c: d.channel, xdm_p: 0 }; d.local === a ? (d.usePolling = !0, d.useParent = !0, d.local = c.protocol + \"//\" + c.host + c.pathname + c.search, m.xdm_e = d.local, m.xdm_pa = 1) : m.xdm_e = r(d.local), d.container && (d.useResize = !1, m.xdm_po = 1), d.remote = s(d.remote, m) } else u(d, { channel: V.xdm_c, remote: V.xdm_e, useParent: !t(V.xdm_pa), usePolling: !t(V.xdm_po), useResize: d.useParent ? !1 : d.useResize }); e = [new N.stack.HashTransport(d), new N.stack.ReliableBehavior({}), new N.stack.QueueBehavior({ encode: !0, maxLength: 4e3 - d.remote.length }), new N.stack.VerifyBehavior({ initiate: d.isHost })]; break; case \"1\": e = [new N.stack.PostMessageTransport(d)]; break; case \"2\": d.isHost && (d.remoteHelper = r(d.remoteHelper)), e = [new N.stack.NameTransport(d), new N.stack.QueueBehavior, new N.stack.VerifyBehavior({ initiate: d.isHost })]; break; case \"3\": e = [new N.stack.NixTransport(d)]; break; case \"4\": e = [new N.stack.SameOriginTransport(d)]; break; case \"5\": e = [new N.stack.FrameElementTransport(d)]; break; case \"6\": C || j(), e = [new N.stack.FlashTransport(d)] } return e.push(new N.stack.QueueBehavior({ lazy: d.lazy, remove: !0 })), e } function z(a) { for (var b, c = { incoming: function (a, b) { this.up.incoming(a, b) }, outgoing: function (a, b) { this.down.outgoing(a, b) }, callback: function (a) { this.up.callback(a) }, init: function () { this.down.init() }, destroy: function () { this.down.destroy() } }, d = 0, e = a.length; e > d; d++) b = a[d], u(b, c, !0), 0 !== d && (b.down = a[d - 1]), d !== e - 1 && (b.up = a[d + 1]); return b } function A(a) { a.up.down = a.down, a.down.up = a.up, a.up = a.down = null } var B, C, D, E, F, G = this, H = Math.floor(1e4 * Math.random()), I = Function.prototype, J = /^((http.?:)\\/\\/([^:\\/\\s]+)(:\\d+)*)/, K = /[\\-\\w]+\\/\\.\\.\\//, L = /([^:])\\/\\//g, M = \"\", N = {}, O = a.easyXDM, P = \"easyXDM_\", Q = !1; if (g(a, \"addEventListener\")) E = function (a, b, c) { a.addEventListener(b, c, !1) }, F = function (a, b, c) { a.removeEventListener(b, c, !1) }; else { if (!g(a, \"attachEvent\")) throw new Error(\"Browser not supported\"); E = function (a, b, c) { a.attachEvent(\"on\" + b, c) }, F = function (a, b, c) { a.detachEvent(\"on\" + b, c) } } var R, S = !1, T = []; if (\"readyState\" in b ? (R = b.readyState, S = \"complete\" == R || ~navigator.userAgent.indexOf(\"AppleWebKit/\") && (\"loaded\" == R || \"interactive\" == R)) : S = !!b.body, !S) { if (g(a, \"addEventListener\")) E(b, \"DOMContentLoaded\", k); else if (E(b, \"readystatechange\", function () { \"complete\" == b.readyState && k() }), b.documentElement.doScroll && a === top) { var U = function () { if (!S) { try { b.documentElement.doScroll(\"left\") } catch (a) { return void d(U, 1) } k() } }; U() } E(a, \"load\", k) } var V = function (a) { a = a.substring(1).split(\"&\"); for (var b, c = {}, d = a.length; d--;) b = a[d].split(\"=\"), c[b[0]] = e(b[1]); return c }(/xdm_e=/.test(c.search) ? c.search : c.hash), W = function () { var a = {}, b = { a: [1, 2, 3] }, c = '{\"a\":[1,2,3]}'; return \"undefined\" != typeof JSON && \"function\" == typeof JSON.stringify && JSON.stringify(b).replace(/\\s/g, \"\") === c ? JSON : (Object.toJSON && Object.toJSON(b).replace(/\\s/g, \"\") === c && (a.stringify = Object.toJSON), \"function\" == typeof String.prototype.evalJSON && (b = c.evalJSON(), b.a && 3 === b.a.length && 3 === b.a[2] && (a.parse = function (a) { return a.evalJSON() })), a.stringify && a.parse ? (W = function () { return a }, a) : null) }; u(N, { version: \"2.4.19.3\", query: V, stack: {}, apply: u, getJSONObject: W, whenReady: l, noConflict: n }), N.DomHelper = { on: E, un: F, requiresJSON: function (c) { h(a, \"JSON\") || b.write('') } }, function () { var a = {}; N.Fn = { set: function (b, c) { a[b] = c }, get: function (b, c) { if (a.hasOwnProperty(b)) { var d = a[b]; return c && delete a[b], d } } } }(), N.Socket = function (a) { var b = z(y(a).concat([{ incoming: function (b, c) { a.onMessage(b, c) }, callback: function (b) { a.onReady && a.onReady(b) } }])), c = q(a.remote); this.origin = q(a.remote), this.destroy = function () { b.destroy() }, this.postMessage = function (a) { b.outgoing(a, c) }, b.init() }, N.Rpc = function (a, b) { if (b.local) for (var c in b.local) if (b.local.hasOwnProperty(c)) { var d = b.local[c]; \"function\" == typeof d && (b.local[c] = { method: d }) } var e = z(y(a).concat([new N.stack.RpcBehavior(this, b), { callback: function (b) { a.onReady && a.onReady(b) } }])); this.origin = q(a.remote), this.destroy = function () { e.destroy() }, e.init() }, N.stack.SameOriginTransport = function (a) { var b, e, f, g; return b = { outgoing: function (a, b, c) { f(a), c && c() }, destroy: function () { e && (e.parentNode.removeChild(e), e = null) }, onDOMReady: function () { g = q(a.remote), a.isHost ? (u(a.props, { src: s(a.remote, { xdm_e: c.protocol + \"//\" + c.host + c.pathname, xdm_c: a.channel, xdm_p: 4 }), name: P + a.channel + \"_provider\" }), e = w(a), N.Fn.set(a.channel, function (a) { return f = a, d(function () { b.up.callback(!0) }, 0), function (a) { b.up.incoming(a, g) } })) : (f = m().Fn.get(a.channel, !0)(function (a) { b.up.incoming(a, g) }), d(function () { b.up.callback(!0) }, 0)) }, init: function () { l(b.onDOMReady, b) } } }, N.stack.FlashTransport = function (a) { function e(a) { d(function () { h.up.incoming(a, j) }, 0) } function g(c) { var d = a.swf + \"?host=\" + a.isHost, e = \"easyXDM_swf_\" + Math.floor(1e4 * Math.random()); N.Fn.set(\"flash_loaded\" + c.replace(/[\\-.]/g, \"_\"), function () { N.stack.FlashTransport[c].swf = k = m.firstChild; for (var a = N.stack.FlashTransport[c].queue, b = 0; b < a.length; b++) a[b](); a.length = 0 }), a.swfContainer ? m = \"string\" == typeof a.swfContainer ? b.getElementById(a.swfContainer) : a.swfContainer : (m = b.createElement(\"div\"), u(m.style, D && a.swfNoThrottle ? { height: \"20px\", width: \"20px\", position: \"fixed\", right: 0, top: 0 } : { height: \"1px\", width: \"1px\", position: \"absolute\", overflow: \"hidden\", right: 0, top: 0 }), b.body.appendChild(m)); var g = \"callback=flash_loaded\" + f(c.replace(/[\\-.]/g, \"_\")) + \"&proto=\" + G.location.protocol + \"&domain=\" + f(o(G.location.href)) + \"&port=\" + f(p(G.location.href)) + \"&ns=\" + f(M); m.innerHTML = \"\" } var h, i, j, k, m; return h = { outgoing: function (b, c, d) { k.postMessage(a.channel, b.toString()), d && d() }, destroy: function () { try { k.destroyChannel(a.channel) } catch (b) { } k = null, i && (i.parentNode.removeChild(i), i = null) }, onDOMReady: function () { j = a.remote, N.Fn.set(\"flash_\" + a.channel + \"_init\", function () { d(function () { h.up.callback(!0) }) }), N.Fn.set(\"flash_\" + a.channel + \"_onMessage\", e), a.swf = r(a.swf); var b = o(a.swf), f = function () { N.stack.FlashTransport[b].init = !0, k = N.stack.FlashTransport[b].swf, k.createChannel(a.channel, a.secret, q(a.remote), a.isHost), a.isHost && (D && a.swfNoThrottle && u(a.props, { position: \"fixed\", right: 0, top: 0, height: \"20px\", width: \"20px\" }), u(a.props, { src: s(a.remote, { xdm_e: q(c.href), xdm_c: a.channel, xdm_p: 6, xdm_s: a.secret }), name: P + a.channel + \"_provider\" }), i = w(a)) }; N.stack.FlashTransport[b] && N.stack.FlashTransport[b].init ? f() : N.stack.FlashTransport[b] ? N.stack.FlashTransport[b].queue.push(f) : (N.stack.FlashTransport[b] = { queue: [f] }, g(b)) }, init: function () { l(h.onDOMReady, h) } } }, N.stack.PostMessageTransport = function (b) { function e(a) { if (a.origin) return q(a.origin); if (a.uri) return q(a.uri); if (a.domain) return c.protocol + \"//\" + a.domain; throw \"Unable to retrieve the origin of the event\" } function f(a) { var c = e(a); c == j && a.data.substring(0, b.channel.length + 1) == b.channel + \" \" && g.up.incoming(a.data.substring(b.channel.length + 1), c) } var g, h, i, j; return g = { outgoing: function (a, c, d) { i.postMessage(b.channel + \" \" + a, c || j), d && d() }, destroy: function () { F(a, \"message\", f), h && (i = null, h.parentNode.removeChild(h), h = null) }, onDOMReady: function () { if (j = q(b.remote), b.isHost) { var e = function (c) { c.data == b.channel + \"-ready\" && (i = \"postMessage\" in h.contentWindow ? h.contentWindow : h.contentWindow.document, F(a, \"message\", e), E(a, \"message\", f), d(function () { g.up.callback(!0) }, 0)) }; E(a, \"message\", e), u(b.props, { src: s(b.remote, { xdm_e: q(c.href), xdm_c: b.channel, xdm_p: 1 }), name: P + b.channel + \"_provider\" }), h = w(b) } else E(a, \"message\", f), i = \"postMessage\" in a.parent ? a.parent : a.parent.document, i.postMessage(b.channel + \"-ready\", j), d(function () { g.up.callback(!0) }, 0) }, init: function () { l(g.onDOMReady, g) } } }, N.stack.FrameElementTransport = function (e) { var f, g, h, i; return f = { outgoing: function (a, b, c) { h.call(this, a), c && c() }, destroy: function () { g && (g.parentNode.removeChild(g), g = null) }, onDOMReady: function () { i = q(e.remote), e.isHost ? (u(e.props, { src: s(e.remote, { xdm_e: q(c.href), xdm_c: e.channel, xdm_p: 5 }), name: P + e.channel + \"_provider\" }), g = w(e), g.fn = function (a) { return delete g.fn, h = a, d(function () { f.up.callback(!0) }, 0), function (a) { f.up.incoming(a, i) } }) : (b.referrer && q(b.referrer) != V.xdm_e && (a.top.location = V.xdm_e), h = a.frameElement.fn(function (a) { f.up.incoming(a, i) }), f.up.callback(!0)) }, init: function () { l(f.onDOMReady, f) } } }, N.stack.NameTransport = function (a) { function b(b) { var c = a.remoteHelper + (h ? \"#_3\" : \"#_2\") + a.channel; i.contentWindow.sendMessage(b, c) } function c() { h ? 2 !== ++k && h || g.up.callback(!0) : (b(\"ready\"), g.up.callback(!0)) } function e(a) { g.up.incoming(a, n) } function f() { m && d(function () { m(!0) }, 0) } var g, h, i, j, k, m, n, o; return g = { outgoing: function (a, c, d) { m = d, b(a) }, destroy: function () { i.parentNode.removeChild(i), i = null, h && (j.parentNode.removeChild(j), j = null) }, onDOMReady: function () { h = a.isHost, k = 0, n = q(a.remote), a.local = r(a.local), h ? (N.Fn.set(a.channel, function (b) { h && \"ready\" === b && (N.Fn.set(a.channel, e), c()) }), o = s(a.remote, { xdm_e: a.local, xdm_c: a.channel, xdm_p: 2 }), u(a.props, { src: o + \"#\" + a.channel, name: P + a.channel + \"_provider\" }), j = w(a)) : (a.remoteHelper = a.remote, N.Fn.set(a.channel, e)); var b = function () { var e = i || this; F(e, \"load\", b), N.Fn.set(a.channel + \"_load\", f), function g() { \"function\" == typeof e.contentWindow.sendMessage ? c() : d(g, 50) }() }; i = w({ props: { src: a.local + \"#_4\" + a.channel }, onLoad: b }) }, init: function () { l(g.onDOMReady, g) } } }, N.stack.HashTransport = function (b) { function c(a) { if (p) { var c = b.remote + \"#\" + n++ + \"_\" + a; (i || !r ? p.contentWindow : p).location = c } } function e(a) { m = a, h.up.incoming(m.substring(m.indexOf(\"_\") + 1), s) } function f() { if (o) { var a = o.location.href, b = \"\", c = a.indexOf(\"#\"); -1 != c && (b = a.substring(c)), b && b != m && e(b) } } function g() { j = setInterval(f, k) } var h, i, j, k, m, n, o, p, r, s; return h = { outgoing: function (a) { c(a) }, destroy: function () { a.clearInterval(j), (i || !r) && p.parentNode.removeChild(p), p = null }, onDOMReady: function () { if (i = b.isHost, k = b.interval, m = \"#\" + b.channel, n = 0, r = b.useParent, s = q(b.remote), i) { if (u(b.props, { src: b.remote, name: P + b.channel + \"_provider\" }), r) b.onLoad = function () { o = a, g(), h.up.callback(!0) }; else { var c = 0, e = b.delay / 50; !function f() { if (++c > e) throw new Error(\"Unable to reference listenerwindow\"); try { o = p.contentWindow.frames[P + b.channel + \"_consumer\"] } catch (a) { } o ? (g(), h.up.callback(!0)) : d(f, 50) }() } p = w(b) } else o = a, g(), r ? (p = parent, h.up.callback(!0)) : (u(b, { props: { src: b.remote + \"#\" + b.channel + new Date, name: P + b.channel + \"_consumer\" }, onLoad: function () { h.up.callback(!0) } }), p = w(b)) }, init: function () { l(h.onDOMReady, h) } } }, N.stack.ReliableBehavior = function () { var a, b, c = 0, d = 0, e = \"\"; return a = { incoming: function (f, g) { var h = f.indexOf(\"_\"), i = f.substring(0, h).split(\",\"); f = f.substring(h + 1), i[0] == c && (e = \"\", b && b(!0)), f.length > 0 && (a.down.outgoing(i[1] + \",\" + c + \"_\" + e, g), d != i[1] && (d = i[1], a.up.incoming(f, g))) }, outgoing: function (f, g, h) { e = f, b = h, a.down.outgoing(d + \",\" + ++c + \"_\" + f, g) } } }, N.stack.QueueBehavior = function (a) { function b() { if (a.remove && 0 === h.length) return void A(c); if (!i && 0 !== h.length && !g) { i = !0; var e = h.shift(); c.down.outgoing(e.data, e.origin, function (a) { i = !1, e.callback && d(function () { e.callback(a) }, 0), b() }) } } var c, g, h = [], i = !0, j = \"\", k = 0, l = !1, m = !1; return c = { init: function () { t(a) && (a = {}), a.maxLength && (k = a.maxLength, m = !0), a.lazy ? l = !0 : c.down.init() }, callback: function (a) { i = !1; var d = c.up; b(), d.callback(a) }, incoming: function (b, d) { if (m) { var f = b.indexOf(\"_\"), g = parseInt(b.substring(0, f), 10); j += b.substring(f + 1), 0 === g && (a.encode && (j = e(j)), c.up.incoming(j, d), j = \"\") } else c.up.incoming(b, d) }, outgoing: function (d, e, g) { a.encode && (d = f(d)); var i, j = []; if (m) { for (; 0 !== d.length;) i = d.substring(0, k), d = d.substring(i.length), j.push(i); for (; i = j.shift() ;) h.push({ data: j.length + \"_\" + i, origin: e, callback: 0 === j.length ? g : null }) } else h.push({ data: d, origin: e, callback: g }); l ? c.down.init() : b() }, destroy: function () { g = !0, c.down.destroy() } } }, N.stack.VerifyBehavior = function (a) { function b() { d = Math.random().toString(16).substring(2), c.down.outgoing(d) } var c, d, e; return c = { incoming: function (f, g) { var h = f.indexOf(\"_\"); -1 === h ? f === d ? c.up.callback(!0) : e || (e = f, a.initiate || b(), c.down.outgoing(f)) : f.substring(0, h) === e && c.up.incoming(f.substring(h + 1), g) }, outgoing: function (a, b, e) { c.down.outgoing(d + \"_\" + a, b, e) }, callback: function () { a.initiate && b() } } }, N.stack.RpcBehavior = function (a, b) { function c(a) { a.jsonrpc = \"2.0\", f.down.outgoing(g.stringify(a)) } function d(a, b) { var d = Array.prototype.slice; return function () { var e, f = arguments.length, g = { method: b }; f > 0 && \"function\" == typeof arguments[f - 1] ? (f > 1 && \"function\" == typeof arguments[f - 2] ? (e = { success: arguments[f - 2], error: arguments[f - 1] }, g.params = d.call(arguments, 0, f - 2)) : (e = { success: arguments[f - 1] }, g.params = d.call(arguments, 0, f - 1)), j[\"\" + ++h] = e, g.id = h) : g.params = d.call(arguments, 0), a.namedParams && 1 === g.params.length && (g.params = g.params[0]), c(g) } } function e(a, b, d, e) { if (!d) return void (b && c({ id: b, error: { code: -32601, message: \"Procedure not found.\" } })); var f, g; b ? (f = function (a) { f = I, c({ id: b, result: a }) }, g = function (a, d) { g = I; var e = { id: b, error: { code: -32099, message: a } }; d && (e.error.data = d), c(e) }) : f = g = I, i(e) || (e = [e]); try { var h = d.method.apply(d.scope, e.concat([f, g])); t(h) || f(h) } catch (j) { g(j.message) } } var f, g = b.serializer || W(), h = 0, j = {}; return f = { incoming: function (a) { var d = g.parse(a); if (d.method) b.handle ? b.handle(d, c) : e(d.method, d.id, b.local[d.method], d.params); else { var f = j[d.id]; d.error ? f.error && f.error(d.error) : f.success && f.success(d.result), delete j[d.id] } }, init: function () { if (b.remote) for (var c in b.remote) b.remote.hasOwnProperty(c) && (a[c] = d(b.remote[c], c)); f.down.init() }, destroy: function () { for (var c in b.remote) b.remote.hasOwnProperty(c) && a.hasOwnProperty(c) && delete a[c]; f.down.destroy() } } }, G.easyXDM = N }(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent);/*!\n * F2 v1.4.0 04-02-2015\n * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org\n *\n * \"F2\" is licensed under the Apache License, Version 2.0 (the \"License\"); \n * you may not use this file except in compliance with the License. \n * You may obtain a copy of the License at:\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed \n * under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR \n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific\n * language governing permissions and limitations under the License.\n *\n * Please note that F2 (\"Software\") may contain third party material that Markit \n * On Demand Inc. has a license to use and include within the Software (the \n * \"Third Party Material\"). A list of the software comprising the Third Party Material \n * and the terms and conditions under which such Third Party Material is distributed \n * are reproduced in the ThirdPartyMaterial.md file available at:\n * \n * https://github.com/OpenF2/F2/blob/master/ThirdPartyMaterial.md\n * \n * The inclusion of the Third Party Material in the Software does not grant, provide \n * nor result in you having acquiring any rights whatsoever, other than as stipulated \n * in the terms and conditions related to the specific Third Party Material, if any.\n *\n */\n\t\tvar F2; F2 = function () { var a = function (a, c) { function d(a) { var b = []; return a.replace(/^(\\.\\.?(\\/|$))+/, \"\").replace(/\\/(\\.(\\/|$))+/g, \"/\").replace(/\\/\\.\\.$/, \"/../\").replace(/\\/?[^\\/]*/g, function (a) { \"/..\" === a ? b.pop() : b.push(a) }), b.join(\"\").replace(/^\\//, \"/\" === a.charAt(0) ? \"/\" : \"\") } return c = b(c || \"\"), a = b(a || \"\"), c && a ? (c.protocol || a.protocol) + (c.protocol || c.authority ? c.authority : a.authority) + d(c.protocol || c.authority || \"/\" === c.pathname.charAt(0) ? c.pathname : c.pathname ? (a.authority && !a.pathname ? \"/\" : \"\") + a.pathname.slice(0, a.pathname.lastIndexOf(\"/\") + 1) + c.pathname : a.pathname) + (c.protocol || c.authority || c.pathname ? c.search : c.search || a.search) + c.hash : null }, b = function (a) { var b = String(a).replace(/^\\s+|\\s+$/g, \"\").match(/^([^:\\/?#]+:)?(\\/\\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\\/?#]*)(?::(\\d*))?))?([^?#]*)(\\?[^#]*)?(#[\\s\\S]*)?/); return b ? { href: b[0] || \"\", protocol: b[1] || \"\", authority: b[2] || \"\", host: b[3] || \"\", hostname: b[4] || \"\", port: b[5] || \"\", pathname: b[6] || \"\", search: b[7] || \"\", hash: b[8] || \"\" } : null }; return { appConfigReplacer: function (a, b) { return \"root\" == a || \"ui\" == a || \"height\" == a ? void 0 : b }, Apps: {}, extend: function (a, b, c) { var d = \"function\" == typeof b, e = a ? a.split(\".\") : [], f = this; b = b || {}, \"F2\" === e[0] && (e = e.slice(1)); for (var g = 0, h = e.length; h > g; g++) f[e[g]] || (f[e[g]] = d && g + 1 == h ? b : {}), f = f[e[g]]; if (!d) for (var i in b) (\"undefined\" == typeof f[i] || c) && (f[i] = b[i]); return f }, guid: function () { var a = function () { return (65536 * (1 + Math.random()) | 0).toString(16).substring(1) }; return a() + a() + \"-\" + a() + \"-\" + a() + \"-\" + a() + \"-\" + a() + a() + a() }, inArray: function (a, b) { return jQuery.inArray(a, b) > -1 }, isLocalRequest: function (b) { var c, d, e = /^([\\w.+-]+:)(?:\\/\\/([^\\/?#:]*)(?::(\\d+)|)|)/, f = b.toLowerCase(), g = e.exec(f); try { c = location.href } catch (h) { c = document.createElement(\"a\"), c.href = \"\", c = c.href } c = c.toLowerCase(), g || (f = a(c, f).toLowerCase(), g = e.exec(f)), d = e.exec(c) || []; var i = !(g && (g[1] !== d[1] || g[2] !== d[2] || (g[3] || (\"http:\" === g[1] ? \"80\" : \"443\")) !== (d[3] || (\"http:\" === d[1] ? \"80\" : \"443\")))); return i }, isNativeDOMNode: function (a) { var b = \"object\" == typeof Node ? a instanceof Node : a && \"object\" == typeof a && \"number\" == typeof a.nodeType && \"string\" == typeof a.nodeName, c = \"object\" == typeof HTMLElement ? a instanceof HTMLElement : a && \"object\" == typeof a && 1 === a.nodeType && \"string\" == typeof a.nodeName; return b || c }, log: function () { for (var a, b, c, d = \"log\", e = function () { }, f = [\"assert\", \"clear\", \"count\", \"debug\", \"dir\", \"dirxml\", \"error\", \"exception\", \"group\", \"groupCollapsed\", \"groupEnd\", \"info\", \"log\", \"markTimeline\", \"profile\", \"profileEnd\", \"table\", \"time\", \"timeEnd\", \"timeStamp\", \"trace\", \"warn\"], g = f.length, h = window.console = window.console || {}; g--;) b = f[g], h[b] || (h[b] = e), arguments && arguments.length > 1 && arguments[0] == b && (d = b, c = Array.prototype.slice.call(arguments, 1)); a = Function.prototype.bind ? Function.prototype.bind.call(h[d], h) : function () { Function.prototype.apply.call(h[d], h, c || arguments) }, a.apply(this, c || arguments) }, parse: function (a) { return JSON.parse(a) }, stringify: function (a, b, c) { return JSON.stringify(a, b, c) }, version: function () { return \"1.4.0\" } } }(), F2.extend(\"AppHandlers\", function () { var a = F2.guid(), b = F2.guid(), c = { appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], appRenderAfter: [], appDestroyAfter: [], appRender: [], appDestroy: [], appScriptLoadFailed: [] }, d = { appRender: function (a, b) { var c = null; F2.isNativeDOMNode(a.root) ? (c = jQuery(a.root), c.append(b)) : (a.root = jQuery(b).get(0), c = jQuery(a.root)), jQuery(\"body\").append(c) }, appDestroy: function (a) { a && a.app && a.app.destroy && \"function\" == typeof a.app.destroy ? a.app.destroy() : a && a.app && a.app.destroy && F2.log(a.config.appId + \" has a destroy property, but destroy is not of type function and as such will not be executed.\"), jQuery(a.config.root).fadeOut(500, function () { jQuery(this).remove() }) } }, e = function (a, b, c, d) { f(a); var e = { func: c, namespace: b, domNode: F2.isNativeDOMNode(c) ? c : null }; if (!e.func && !e.domNode) throw \"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.\"; if (e.domNode && !d) throw \"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.\"; return e }, f = function (c) { if (a != c && b != c) throw \"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken().\" }, g = function (a, b, d) { if (f(a), d || b) if (!d && b) c[b] = []; else if (d && !b) { d = d.toLowerCase(); for (var e in c) { for (var g = c[e], h = [], i = 0, j = g.length; j > i; i++) { var k = g[i]; k && (k.namespace && k.namespace.toLowerCase() == d || h.push(k)) } g = h } } else if (d && c[b]) { d = d.toLowerCase(); for (var l = [], m = 0, n = c[b].length; n > m; m++) { var o = c[b][m]; o && (o.namespace && o.namespace.toLowerCase() == d || l.push(o)) } c[b] = l } }; return { getToken: function () { return delete this.getToken, a }, __f2GetToken: function () { return delete this.__f2GetToken, b }, __trigger: function (a, e) { if (a != b) throw \"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().\"; if (!c || !c[e]) throw \"Invalid EventKey passed. Check your inputs and try again.\"; for (var f = [], g = 2, h = arguments.length; h > g; g++) f.push(arguments[g]); if (0 === c[e].length && d[e]) return d[e].apply(F2, f), this; if (0 === c[e].length && !c[e]) return this; for (var i = 0, j = c[e].length; j > i; i++) { var k = c[e][i]; if (k.domNode && arguments[2] && arguments[2].root && arguments[3]) { var l = jQuery(arguments[2].root).append(arguments[3]); jQuery(k.domNode).append(l) } else k.domNode && arguments[2] && !arguments[2].root && arguments[3] ? (arguments[2].root = jQuery(arguments[3]).get(0), jQuery(k.domNode).append(arguments[2].root)) : k.func.apply(F2, f) } return this }, on: function (a, b, d) { var f = null; if (!b) throw \"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.\"; if (b.indexOf(\".\") > -1) { var g = b.split(\".\"); b = g[0], f = g[1] } if (!c || !c[b]) throw \"Invalid EventKey passed. Check your inputs and try again.\"; return c[b].push(e(a, f, d, \"appRender\" == b)), this }, off: function (a, b) { var d = null; if (!b) throw \"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.\"; if (b.indexOf(\".\") > -1) { var e = b.split(\".\"); b = e[0], d = e[1] } if (!c || !c[b]) throw \"Invalid EventKey passed. Check your inputs and try again.\"; return g(a, b, d), this } } }()), F2.extend(\"Constants\", { AppHandlers: function () { return { APP_CREATE_ROOT: \"appCreateRoot\", APP_RENDER_BEFORE: \"appRenderBefore\", APP_RENDER: \"appRender\", APP_RENDER_AFTER: \"appRenderAfter\", APP_DESTROY_BEFORE: \"appDestroyBefore\", APP_DESTROY: \"appDestroy\", APP_DESTROY_AFTER: \"appDestroyAfter\", APP_SCRIPT_LOAD_FAILED: \"appScriptLoadFailed\" } }() }), F2.extend(\"\", { App: function () { return { init: function () { } } }, AppConfig: { appId: \"\", context: {}, enableBatchRequests: !1, height: 0, instanceId: \"\", isSecure: !1, containerLocale: null, localeSupport: [], manifestUrl: \"\", maxWidth: 0, minGridSize: 4, minWidth: 300, name: \"\", root: void 0, ui: void 0, views: [] }, AppManifest: { apps: [], inlineScripts: [], scripts: [], styles: [] }, AppContent: { data: {}, html: \"\", status: \"\" }, ContainerConfig: { afterAppRender: function () { }, appRender: function () { }, beforeAppRender: function () { }, debugMode: !1, locale: null, scriptErrorTimeout: 7e3, isSecureAppPage: !1, secureAppPagePath: \"\", supportedViews: [], UI: { Mask: { backgroundColor: \"#FFF\", loadingIcon: \"\", opacity: .6, useClasses: !1, zIndex: 2 } }, xhr: { dataType: function () { }, type: function () { }, url: function () { } }, loadScripts: function () { }, loadStyles: function () { } } }), F2.extend(\"Constants\", { Css: function () { var a = \"f2-\"; return { APP: a + \"app\", APP_CONTAINER: a + \"app-container\", APP_TITLE: a + \"app-title\", APP_VIEW: a + \"app-view\", APP_VIEW_TRIGGER: a + \"app-view-trigger\", MASK: a + \"mask\", MASK_CONTAINER: a + \"mask-container\" } }(), Events: function () { var a = \"App.\", b = \"Container.\"; return { APP_SCRIPTS_LOADED: a + \"scriptsLoaded\", APP_SYMBOL_CHANGE: a + \"symbolChange\", APP_WIDTH_CHANGE: a + \"widthChange.\", CONTAINER_SYMBOL_CHANGE: b + \"symbolChange\", CONTAINER_WIDTH_CHANGE: b + \"widthChange\", CONTAINER_LOCALE_CHANGE: b + \"localeChange\", RESOURCE_FAILED_TO_LOAD: b + \"resourceFailedToLoad\" } }(), JSONP_CALLBACK: \"F2_jsonpCallback_\", Sockets: { EVENT: \"__event__\", LOAD: \"__socketLoad__\", RPC: \"__rpc__\", RPC_CALLBACK: \"__rpcCallback__\", UI_RPC: \"__uiRpc__\" }, Views: { DATA_ATTRIBUTE: \"data-f2-view\", ABOUT: \"about\", HELP: \"help\", HOME: \"home\", REMOVE: \"remove\", SETTINGS: \"settings\" } }), F2.extend(\"Events\", function () { var a = new EventEmitter2({ wildcard: !0 }); return a.setMaxListeners(0), { _socketEmit: function () { return EventEmitter2.prototype.emit.apply(a, [].slice.call(arguments)) }, emit: function () { return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT, [].slice.call(arguments)), EventEmitter2.prototype.emit.apply(a, [].slice.call(arguments)) }, many: function (b, c, d) { return a.many(b, c, d) }, off: function (b, c) { return a.off(b, c) }, on: function (b, c) { return a.on(b, c) }, once: function (b, c) { return a.once(b, c) } } }()), F2.extend(\"Rpc\", function () { var a = {}, b = \"\", c = {}, d = new RegExp(\"^\" + F2.Constants.Sockets.EVENT), e = new RegExp(\"^\" + F2.Constants.Sockets.RPC), f = new RegExp(\"^\" + F2.Constants.Sockets.RPC_CALLBACK), g = new RegExp(\"^\" + F2.Constants.Sockets.LOAD), h = new RegExp(\"^\" + F2.Constants.Sockets.UI_RPC), i = function () { var a, b = !1, d = [], e = new easyXDM.Socket({ onMessage: function (f, h) { if (!b && g.test(f)) { f = f.replace(g, \"\"); var i = F2.parse(f); 2 == i.length && (a = i[0], c[a.instanceId] = { config: a, socket: e }, F2.registerApps([a], [i[1]]), jQuery.each(d, function () { l(a, f, h) }), b = !0) } else b ? l(a, f, h) : d.push(f) } }) }, j = function (a, c) { var d = jQuery(a.root); if (d.is(\".\" + F2.Constants.Css.APP_CONTAINER) || d.find(\".\" + F2.Constants.Css.APP_CONTAINER), !d.length) return void F2.log(\"Unable to locate app in order to establish secure connection.\"); var e = { scrolling: \"no\", style: { width: \"100%\" } }; a.height && (e.style.height = a.height + \"px\"); var f = new easyXDM.Socket({ remote: b, container: d.get(0), props: e, onMessage: function (b, c) { l(a, b, c) }, onReady: function () { f.postMessage(F2.Constants.Sockets.LOAD + F2.stringify([a, c], F2.appConfigReplacer)) } }); return f }, k = function (a, b) { return function () { F2.Rpc.call(a, F2.Constants.Sockets.RPC_CALLBACK, b, [].slice.call(arguments).slice(2)) } }, l = function (b, c) { function g(a, b) { for (var c = String(b).split(\".\"), d = 0; d < c.length; d++) { if (void 0 === a[c[d]]) { a = void 0; break } a = a[c[d]] } return a } function i(a, b, c) { var d = F2.parse(b.replace(a, \"\")); return d.params && d.params.length && d.callbacks && d.callbacks.length && jQuery.each(d.callbacks, function (a, b) { jQuery.each(d.params, function (a, e) { b == e && (d.params[a] = k(c, b)) }) }), d } var j, l; h.test(c) ? (j = i(h, c, b.instanceId), l = g(b.ui, j.functionName), void 0 !== l ? l.apply(b.ui, j.params) : F2.log(\"Unable to locate UI RPC function: \" + j.functionName)) : e.test(c) ? (j = i(e, c, b.instanceId), l = g(window, j.functionName), void 0 !== l ? l.apply(l, j.params) : F2.log(\"Unable to locate RPC function: \" + j.functionName)) : f.test(c) ? (j = i(f, c, b.instanceId), void 0 !== a[j.functionName] && (a[j.functionName].apply(a[j.functionName], j.params), delete a[j.functionName])) : d.test(c) && (j = i(d, c, b.instanceId), F2.Events._socketEmit.apply(F2.Events, j)) }, m = function (b) { var c = F2.guid(); return a[c] = b, c }; return { broadcast: function (a, b) { var d = a + F2.stringify(b); jQuery.each(c, function (a, b) { b.socket.postMessage(d) }) }, call: function (a, b, d, e) { var f = []; jQuery.each(e, function (a, b) { if (\"function\" == typeof b) { var c = m(b); e[a] = c, f.push(c) } }), c[a].socket.postMessage(b + F2.stringify({ functionName: d, params: e, callbacks: f })) }, init: function (a) { b = a, b || i() }, isRemote: function (a) { return void 0 !== c[a] && c[a].config.isSecure && 0 === jQuery(c[a].config.root).find(\"iframe\").length }, register: function (a, b) { a && b ? c[a.instanceId] = { config: a, socket: j(a, b) } : F2.log(\"Unable to register socket connection. Please check container configuration.\") } } }()), F2.extend(\"UI\", function () { var a, b = function (a) { var b = a, c = jQuery(a.root), d = function (a) { a = a || jQuery(b.root).outerHeight(), F2.Rpc.isRemote(b.instanceId) ? F2.Rpc.call(b.instanceId, F2.Constants.Sockets.UI_RPC, \"updateHeight\", [a]) : (b.height = a, c.find(\"iframe\").height(b.height)) }, e = function (a, b, c) { return ['
', '
', '
', '
', '', '
', a, \"
\", \"
\", '
', b, \"
\", '\", \"
\", \"
\", \"
\"].join(\"\") }; return { hideMask: function (a) { F2.UI.hideMask(b.instanceId, a) }, Modals: function () { var a = function (a) { return e(\"Alert\", a) }, c = function (a) { return e(\"Confirm\", a, !0) }; return { alert: function (c, d) { return F2.isInit() ? void (F2.Rpc.isRemote(b.instanceId) ? F2.Rpc.call(b.instanceId, F2.Constants.Sockets.UI_RPC, \"Modals.alert\", [].slice.call(arguments)) : jQuery(a(c)).on(\"show.bs.modal\", function () { var a = this; jQuery(a).find(\".btn-primary\").on(\"click\", function () { jQuery(a).modal(\"hide\").remove(), (d || jQuery.noop)() }) }).modal({ backdrop: !0 })) : void F2.log(\"F2.init() must be called before F2.UI.Modals.alert()\") }, confirm: function (a, d, e) { return F2.isInit() ? void (F2.Rpc.isRemote(b.instanceId) ? F2.Rpc.call(b.instanceId, F2.Constants.Sockets.UI_RPC, \"Modals.confirm\", [].slice.call(arguments)) : jQuery(c(a)).on(\"show.bs.modal\", function () { var a = this; jQuery(a).find(\".btn-ok\").on(\"click\", function () { jQuery(a).modal(\"hide\").remove(), (d || jQuery.noop)() }), jQuery(a).find(\".btn-cancel\").on(\"click\", function () { jQuery(a).modal(\"hide\").remove(), (e || jQuery.noop)() }) }).modal({ backdrop: !0 })) : void F2.log(\"F2.init() must be called before F2.UI.Modals.confirm()\") } } }(), setTitle: function (a) { F2.Rpc.isRemote(b.instanceId) ? F2.Rpc.call(b.instanceId, F2.Constants.Sockets.UI_RPC, \"setTitle\", [a]) : jQuery(b.root).find(\".\" + F2.Constants.Css.APP_TITLE).text(a) }, showMask: function (a, c) { F2.UI.showMask(b.instanceId, a, c) }, updateHeight: d, Views: function () { var a = new EventEmitter2, e = /change/i; a.setMaxListeners(0); var f = function (a) { return e.test(a) ? !0 : (F2.log('\"' + a + '\" is not a valid F2.UI.Views event name'), !1) }; return { change: function (e) { \"function\" == typeof e ? this.on(\"change\", e) : \"string\" == typeof e && (b.isSecure && !F2.Rpc.isRemote(b.instanceId) ? F2.Rpc.call(b.instanceId, F2.Constants.Sockets.UI_RPC, \"Views.change\", [].slice.call(arguments)) : F2.inArray(e, b.views) && (jQuery(\".\" + F2.Constants.Css.APP_VIEW, c).addClass(\"hide\").filter('[data-f2-view=\"' + e + '\"]', c).removeClass(\"hide\"), d(), a.emit(\"change\", e))) }, off: function (b, c) { f(b) && a.off(b, c) }, on: function (b, c) { f(b) && a.on(b, c) } } }() } }; return b.hideMask = function (a, b) { if (!F2.isInit()) return void F2.log(\"F2.init() must be called before F2.UI.hideMask()\"); if (F2.Rpc.isRemote(a) && !jQuery(b).is(\".\" + F2.Constants.Css.APP)) F2.Rpc.call(a, F2.Constants.Sockets.RPC, \"F2.UI.hideMask\", [a, jQuery(b).selector]); else { var c = jQuery(b); c.find(\"> .\" + F2.Constants.Css.MASK).remove(), c.removeClass(F2.Constants.Css.MASK_CONTAINER), c.data(F2.Constants.Css.MASK_CONTAINER) && c.css({ position: \"static\" }) } }, b.init = function (b) { a = b, a.UI = jQuery.extend(!0, {}, F2.ContainerConfig.UI, a.UI || {}) }, b.showMask = function (b, c, d) { if (!F2.isInit()) return void F2.log(\"F2.init() must be called before F2.UI.showMask()\"); if (F2.Rpc.isRemote(b) && jQuery(c).is(\".\" + F2.Constants.Css.APP)) F2.Rpc.call(b, F2.Constants.Sockets.RPC, \"F2.UI.showMask\", [b, jQuery(c).selector, d]); else { d && !a.UI.Mask.loadingIcon && F2.log(\"Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon\twhen calling F2.init();\"); var e = jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER), f = jQuery(\"
\").height(\"100%\").width(\"100%\").addClass(F2.Constants.Css.MASK); a.UI.Mask.useClasses || f.css({ \"background-color\": a.UI.Mask.backgroundColor, \"background-image\": a.UI.Mask.loadingIcon ? \"url(\" + a.UI.Mask.loadingIcon + \")\" : \"\", \"background-position\": \"50% 50%\", \"background-repeat\": \"no-repeat\", display: \"block\", left: 0, \"min-height\": 30, padding: 0, position: \"absolute\", top: 0, \"z-index\": a.UI.Mask.zIndex, filter: \"alpha(opacity=\" + 100 * a.UI.Mask.opacity + \")\", opacity: a.UI.Mask.opacity }), \"static\" === e.css(\"position\") && (e.css({ position: \"relative\" }), e.data(F2.Constants.Css.MASK_CONTAINER, !0)), e.append(f) } }, b }()), F2.extend(\"\", function () { var _apps = {}, _config = !1, _bUsesAppHandlers = !1, _sAppHandlerToken = F2.AppHandlers.__f2GetToken(), _loadingScripts = {}, _afterAppRender = function (a, b) { var c = _config.afterAppRender || function (a, b) { return jQuery(b).appendTo(\"body\") }, d = c(a, b); return _config.afterAppRender && !d ? void F2.log(\"F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app\") : (jQuery(d).addClass(F2.Constants.Css.APP), d.get(0)) }, _appRender = function (a, b) { return b = _outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER + \" \" + a.appId)), _config.appRender && (b = _config.appRender(a, b)), _outerHtml(b) }, _beforeAppRender = function (a) { var b = _config.beforeAppRender || jQuery.noop; return b(a) }, _appScriptLoadFailed = function (a, b) { var c = _config.appScriptLoadFailed || jQuery.noop; return c(a, b) }, _createAppConfig = function (a) { return a = jQuery.extend(!0, {}, a), a.instanceId = a.instanceId || F2.guid(), a.views = a.views || [], F2.inArray(F2.Constants.Views.HOME, a.views) || a.views.push(F2.Constants.Views.HOME), F2.ContainerConfig.locale && (a.containerLocale = F2.ContainerConfig.locale), a }, _getAppConfigFromElement = function (a) { var b; if (a) { var c = a.getAttribute(\"data-f2-appid\"), d = a.getAttribute(\"data-f2-manifesturl\"); if (c && d) { b = { appId: c, enableBatchRequests: a.hasAttribute(\"data-f2-enablebatchrequests\"), isSecure: a.hasAttribute(\"data-f2-issecure\"), manifestUrl: d, root: a }; var e = a.getAttribute(\"data-f2-context\"); if (e) try { b.context = F2.parse(e) } catch (f) { console.warn('F2: \"data-f2-context\" of node is not valid JSON', '\"' + f + '\"') } } } return b }, _hasNonTextChildNodes = function (a) { var b = !1; if (a.hasChildNodes()) for (var c = 0, d = a.childNodes.length; d > c; c++) if (1 === a.childNodes[c].nodeType) { b = !0; break } return b }, _hydrateContainerConfig = function (a) { a.scriptErrorTimeout || (a.scriptErrorTimeout = F2.ContainerConfig.scriptErrorTimeout), a.debugMode !== !0 && (a.debugMode = F2.ContainerConfig.debugMode), a.locale && \"string\" == typeof a.locale && (F2.ContainerConfig.locale = a.locale) }, _initAppEvents = function (a) { jQuery(a.root).on(\"click\", \".\" + F2.Constants.Css.APP_VIEW_TRIGGER + \"[\" + F2.Constants.Views.DATA_ATTRIBUTE + \"]\", function (b) { b.preventDefault(); var c = jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase(); c == F2.Constants.Views.REMOVE ? F2.removeApp(a.instanceId) : a.ui.Views.change(c) }) }, _initContainerEvents = function () { var a, b = function () { F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE) }; jQuery(window).on(\"resize\", function () { clearTimeout(a), a = setTimeout(b, 100) }), F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE, function (a) { a.locale && \"string\" == typeof a.locale && (F2.ContainerConfig.locale = a.locale) }) }, _isPlaceholderElement = function (a) { return F2.isNativeDOMNode(a) && !_hasNonTextChildNodes(a) && !!a.getAttribute(\"data-f2-appid\") && !!a.getAttribute(\"data-f2-manifesturl\") }, _isInit = function () { return !!_config }, _createAppInstance = function (a, b) { a.ui = new F2.UI(a), void 0 !== F2.Apps[a.appId] && (\"function\" == typeof F2.Apps[a.appId] ? setTimeout(function () { _apps[a.instanceId].app = new F2.Apps[a.appId](a, b, a.root), void 0 !== _apps[a.instanceId].app.init && _apps[a.instanceId].app.init() }, 0) : F2.log(\"app initialization class is defined but not a function. (\" + a.appId + \")\")) }, _loadApps = function (appConfigs, appManifest) { if (appConfigs = [].concat(appConfigs), 1 == appConfigs.length && appConfigs[0].isSecure && !_config.isSecureAppPage) return void _loadSecureApp(appConfigs[0], appManifest); if (appConfigs.length != appManifest.apps.length) return void F2.log(\"The number of apps defined in the AppManifest do not match the number requested.\", appManifest); var _findExistingScripts = function () { return jQuery(\"script[src]\").map(function (a, b) { return b.src }) }, _findExistingStyles = function () { return jQuery(\"link[href]\").map(function (a, b) { return b.href }) }, _loadStyles = function (a, b) { var c = _findExistingStyles(); if (a = jQuery.grep(a, function (a) { return a && -1 === jQuery.inArray(a, c) }), _config.loadStyles) return _config.loadStyles(a, b); var d = null, e = !!document.createStyleSheet; jQuery.each(a, function (a, b) { e ? document.createStyleSheet(b) : (d = d || [], d.push('')) }), d && jQuery(\"head\").append(d.join(\"\")), b() }, _loadScripts = function (a, b) { var c = _findExistingScripts(); if (a = jQuery.grep(a, function (a) { return a && -1 === jQuery.inArray(a, c) }), _config.loadScripts) return _config.loadScripts(a, b); if (!a.length) return b(); var d = window.document, e = a.length, f = 0, g = d && (d.head || d.getElementsByTagName(\"head\")[0]), h = g && g.getElementsByTagName(\"base\")[0] || null, i = \"addEventListener\" in window ? {} : { loaded: !0, complete: !0 }, j = function (a) { setTimeout(function () { var b = { src: a.target.src, appId: appConfigs[0].appId }; F2.log(\"Script defined in '\" + b.appId + \"' failed to load '\" + b.src + \"'\"), F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD, b), _bUsesAppHandlers ? F2.AppHandlers.__trigger(_sAppHandlerToken, F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED, appConfigs[0], b.src) : _appScriptLoadFailed(appConfigs[0], b.src) }, _config.scriptErrorTimeout) }, k = function () { ++f === e && b() }, l = function (a, b) { var c, d = _loadingScripts[a]; if (d) { for (var e = 0; e < d.length; e++) c = d[e], b ? c.error(b) : c.success(); _loadingScripts[a] = null } }; jQuery.each(a, function (a, b) { var c = d.createElement(\"script\"), e = b, f = e.toLowerCase(); return _loadingScripts[f] ? void _loadingScripts[f].push({ success: k, error: j }) : (_loadingScripts[f] = [], _config.debugMode && (e += \"?cachebuster=\" + (new Date).getTime()), c.async = !1, c.type = \"text/javascript\", c.charset = \"utf-8\", c.onerror = function (a) { j(a), l(f, a) }, c.onload = c.onreadystatechange = function (a) { a = a || window.event, (\"load\" == a.type || i[c.readyState]) && (c.onload = c.onreadystatechange = c.onerror = \"\", k(), l(f), c = null) }, c.src = e, void g.insertBefore(c, h)) }) }, _loadInlineScripts = function (inlines, cb) { if (_config.loadInlineScripts) _config.loadInlineScripts(inlines, cb); else { for (var i = 0, len = inlines.length; len > i; i++) try { eval(inlines[i]) } catch (exception) { F2.log(\"Error loading inline script: \" + exception + \"\\n\\n\" + inlines[i]), F2.Events.emit(\"RESOURCE_FAILED_TO_LOAD\", { appId: appConfigs[0].appId, src: inlines[i], err: exception }), _bUsesAppHandlers ? F2.AppHandlers.__trigger(_sAppHandlerToken, F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED, appConfigs[0], exception) : _appScriptLoadFailed(appConfigs[0], exception) } cb() } }, elementInDocument = function (a) { if (a) for (; a.parentNode;) if (a = a.parentNode, a === document) return !0; return !1 }, _loadHtml = function (a) { jQuery.each(a, function (a, b) { if (_isPlaceholderElement(appConfigs[a].root)) jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER + \" \" + appConfigs[a].appId)); else if (_bUsesAppHandlers) { F2.AppHandlers.__trigger(_sAppHandlerToken, F2.Constants.AppHandlers.APP_RENDER, appConfigs[a], _outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER + \" \" + appConfigs[a].appId))); var c = appConfigs[a].appId, d = appConfigs[a].root; if (!d) throw \"Root for \" + c + \" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.\"; if (!elementInDocument(d)) throw \"App root for \" + c + \" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.\"; if (F2.AppHandlers.__trigger(_sAppHandlerToken, F2.Constants.AppHandlers.APP_RENDER_AFTER, appConfigs[a]), !F2.isNativeDOMNode(d)) throw \"App root for \" + c + \" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element.\" } else appConfigs[a].root = _afterAppRender(appConfigs[a], _appRender(appConfigs[a], b.html)); _initAppEvents(appConfigs[a]) }) }, scripts = appManifest.scripts || [], styles = appManifest.styles || [], inlines = appManifest.inlineScripts || [], apps = appManifest.apps || []; _loadStyles(styles, function () { _loadHtml(apps), _loadScripts(scripts, function () { appConfigs[0] && F2.Events.emit(\"APP_SCRIPTS_LOADED\", { appId: appConfigs[0].appId, scripts: scripts }), _loadInlineScripts(inlines, function () { jQuery.each(appConfigs, function (a, b) { _createAppInstance(b, appManifest.apps[a]) }) }) }) }) }, _loadSecureApp = function (a, b) { if (_config.secureAppPagePath) { if (_isPlaceholderElement(a.root)) jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery(\"\").addClass(F2.Constants.Css.APP_CONTAINER + \" \" + a.appId)); else if (_bUsesAppHandlers) { var c = jQuery(a.root); if (F2.AppHandlers.__trigger(_sAppHandlerToken, F2.Constants.AppHandlers.APP_RENDER, a, _outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER + \" \" + a.appId))), 0 === c.parents(\"body:first\").length) throw \"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.\"; if (F2.AppHandlers.__trigger(_sAppHandlerToken, F2.Constants.AppHandlers.APP_RENDER_AFTER, a), !a.root) throw \"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.\"; if (!F2.isNativeDOMNode(a.root)) throw \"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.\" } else a.root = _afterAppRender(a, _appRender(a, \"\")); a.ui = new F2.UI(a), _initAppEvents(a), F2.Rpc.register(a, b) } else F2.log('Unable to load secure app: \"secureAppPagePath\" is not defined in F2.ContainerConfig.') }, _outerHtml = function (a) { return jQuery(\"\").append(a).html() }, _validateApp = function (a) { return a.appId ? a.root || a.manifestUrl ? !0 : (F2.log('\"manifestUrl\" missing from app object'), !1) : (F2.log('\"appId\" missing from app object'), !1) }, _validateContainerConfig = function () { if (_config && _config.xhr) { if (\"function\" != typeof _config.xhr && \"object\" != typeof _config.xhr) throw \"ContainerConfig.xhr should be a function or an object\"; if (_config.xhr.dataType && \"function\" != typeof _config.xhr.dataType) throw \"ContainerConfig.xhr.dataType should be a function\"; if (_config.xhr.type && \"function\" != typeof _config.xhr.type) throw \"ContainerConfig.xhr.type should be a function\"; if (_config.xhr.url && \"function\" != typeof _config.xhr.url) throw \"ContainerConfig.xhr.url should be a function\" } return !0 }; return { getContainerState: function () { return _isInit() ? jQuery.map(_apps, function (a) { return { appId: a.config.appId } }) : void F2.log(\"F2.init() must be called before F2.getContainerState()\") }, getContainerLocale: function () { return _isInit() ? F2.ContainerConfig.locale : void F2.log(\"F2.init() must be called before F2.getContainerLocale()\") }, init: function (a) { _config = a || {}, _validateContainerConfig(), _hydrateContainerConfig(_config), _bUsesAppHandlers = !(_config.beforeAppRender || _config.appRender || _config.afterAppRender || _config.appScriptLoadFailed), (_config.secureAppPagePath || _config.isSecureAppPage) && F2.Rpc.init(_config.secureAppPagePath ? _config.secureAppPagePath : !1), F2.UI.init(_config), _config.isSecureAppPage || _initContainerEvents() }, isInit: _isInit, loadPlaceholders: function (a) { var b = [], c = [], d = function (a) { a && b.push(a) }, e = function (a) { if (a) for (var b = 0, c = a.length; c > b; b++) d(a[b]) }; if (a && !F2.isNativeDOMNode(a)) throw '\"parentNode\" must be null or a DOM node'; a && a.hasAttribute(\"data-f2-appid\") ? d(a) : (a = a || document, a.querySelectorAll && e(a.querySelectorAll(\"[data-f2-appid]\"))); for (var f = 0, g = b.length; g > f; f++) { var h = _getAppConfigFromElement(b[f]); c.push(h) } c.length && F2.registerApps(c) }, registerApps: function (a, b) { if (!_isInit()) return void F2.log(\"F2.init() must be called before F2.registerApps()\"); if (!a) return void F2.log(\"At least one AppConfig must be passed when calling F2.registerApps()\"); var c = [], d = {}, e = {}, f = !1; return a = [].concat(a), b = [].concat(b || []), f = !!b.length, a.length ? a.length && f && a.length != b.length ? void F2.log('The length of \"apps\" does not equal the length of \"appManifests\"') : (jQuery.each(a, function (a, e) { if (e = _createAppConfig(e), e.root = e.root || null, _validateApp(e)) { if (_apps[e.instanceId] = { config: e }, e.root && !_isPlaceholderElement(e.root)) { if (!e.root && \"string\" != typeof e.root && !F2.isNativeDOMNode(e.root)) throw F2.log(\"AppConfig invalid for pre-load, not a valid string and not dom node\"), F2.log(\"AppConfig instance:\", e), \"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.\"; if (1 != jQuery(e.root).length) throw F2.log(\"AppConfig invalid for pre-load, root not unique\"), F2.log(\"AppConfig instance:\", e), F2.log(\"Number of dom node instances:\", jQuery(e.root).length), \"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.\"; return _createAppInstance(e), void _initAppEvents(e) } _isPlaceholderElement(e.root) || (_bUsesAppHandlers ? (F2.AppHandlers.__trigger(_sAppHandlerToken, F2.Constants.AppHandlers.APP_CREATE_ROOT, e), F2.AppHandlers.__trigger(_sAppHandlerToken, F2.Constants.AppHandlers.APP_RENDER_BEFORE, e)) : e.root = _beforeAppRender(e)), f ? _loadApps(e, b[a]) : e.enableBatchRequests && !e.isSecure ? (d[e.manifestUrl.toLowerCase()] = d[e.manifestUrl.toLowerCase()] || [], d[e.manifestUrl.toLowerCase()].push(e)) : c.push({ apps: [e], url: e.manifestUrl }) } }), void (f || (jQuery.each(d, function (a, b) { c.push({ url: a, apps: b }) }), jQuery.each(c, function (a, b) { var c = F2.Constants.JSONP_CALLBACK + b.apps[0].appId; e[c] = e[c] || [], e[c].push(b) }), jQuery.each(e, function (a, b) { var c = function (d, e) { if (e) { var f = e.url, g = \"GET\", h = \"jsonp\", i = function () { c(a, b.pop()) }, j = function () { jQuery.each(e.apps, function (a, b) { b.name = b.name || b.appId, F2.log(\"Removed failed \" + b.name + \" app\", b), F2.removeApp(b.instanceId) }) }, k = function (a) { _loadApps(e.apps, a) }; if (_config.xhr && _config.xhr.dataType && (h = _config.xhr.dataType(e.url, e.apps), \"string\" != typeof h)) throw \"ContainerConfig.xhr.dataType should return a string\"; if (_config.xhr && _config.xhr.type && (g = _config.xhr.type(e.url, e.apps), \"string\" != typeof g)) throw \"ContainerConfig.xhr.type should return a string\"; if (_config.xhr && _config.xhr.url && (f = _config.xhr.url(e.url, e.apps), \"string\" != typeof f)) throw \"ContainerConfig.xhr.url should return a string\"; var l = _config.xhr; \"function\" != typeof l && (l = function (a, b, c, f, i) { jQuery.ajax({ url: a, type: g, data: { params: F2.stringify(e.apps, F2.appConfigReplacer) }, jsonp: !1, jsonpCallback: d, dataType: h, success: c, error: function (a, b, c) { F2.log(\"Failed to load app(s)\", c.toString(), e.apps), f() }, complete: i }) }), l(f, e.apps, k, j, i) } }; c(a, b.pop()) })))) : void F2.log(\"At least one AppConfig must be passed when calling F2.registerApps()\") }, removeAllApps: function () { return _isInit() ? void jQuery.each(_apps, function (a, b) { F2.removeApp(b.config.instanceId) }) : void F2.log(\"F2.init() must be called before F2.removeAllApps()\") }, removeApp: function (a) { return _isInit() ? void (_apps[a] && (F2.AppHandlers.__trigger(_sAppHandlerToken, F2.Constants.AppHandlers.APP_DESTROY_BEFORE, _apps[a]), F2.AppHandlers.__trigger(_sAppHandlerToken, F2.Constants.AppHandlers.APP_DESTROY, _apps[a]), F2.AppHandlers.__trigger(_sAppHandlerToken, F2.Constants.AppHandlers.APP_DESTROY_AFTER, _apps[a]), delete _apps[a])) : void F2.log(\"F2.init() must be called before F2.removeApp()\") } } }()), jQuery(function () { var a = [], b = function (b) { b && a.push(b) }, c = function (a) { if (a) for (var c = 0, d = a.length; d > c; c++) b(a[c]) }; if (b(document.getElementById(\"f2-autoload\")), document.querySelectorAll && (c(document.querySelectorAll(\"[data-f2-autoload]\")), c(document.querySelectorAll(\".f2-autoload\"))), a.length) { F2.init(); for (var d = 0, e = a.length; e > d; d++) F2.loadPlaceholders(a[d]) } }), exports.F2 = F2, \"undefined\" != typeof define && define.amd && define(function () { return F2 })\n\t}\n}(\"undefined\" != typeof exports ? exports : window);\n//# sourceMappingURL=f2.min.js.map","\n(function (root) {\n\n\troot.currentUrl = window.location.href.toLowerCase();\n\n\troot.useMockData = function () {\n\t\treturn currentUrl.indexOf('..mockmode..=on') >= 0 || currentUrl.indexOf(encodeURIComponent('..mockmode..=on')) >= 0;\n\t}\n\n\troot.isDevEnvironment = function () {\n\t\treturn currentUrl.indexOf('localhost') >= 0 || currentUrl.indexOf('dev') >= 0;\n\t}\n\n\troot.isAcceptanceEnvironment = function () {\n\t\treturn currentUrl.indexOf('wsodqa') >= 0;\n\t}\n})(window);\n\n"]}