1"use strict"; 2 3function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 4function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } 5function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 6function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } 7function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } 8function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } 9function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } 10function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } 11function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 12/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ 13!function (e, t) { 14 "use strict"; 15 16 "object" == (typeof module === "undefined" ? "undefined" : _typeof(module)) && "object" == _typeof(module.exports) ? module.exports = e.document ? t(e, !0) : function (e) { 17 if (!e.document) throw new Error("jQuery requires a window with a document"); 18 return t(e); 19 } : t(e); 20}("undefined" != typeof window ? window : void 0, function (C, e) { 21 "use strict"; 22 23 var t = [], 24 r = Object.getPrototypeOf, 25 s = t.slice, 26 g = t.flat ? function (e) { 27 return t.flat.call(e); 28 } : function (e) { 29 return t.concat.apply([], e); 30 }, 31 u = t.push, 32 i = t.indexOf, 33 n = {}, 34 o = n.toString, 35 v = n.hasOwnProperty, 36 a = v.toString, 37 l = a.call(Object), 38 y = {}, 39 m = function m(e) { 40 return "function" == typeof e && "number" != typeof e.nodeType; 41 }, 42 x = function x(e) { 43 return null != e && e === e.window; 44 }, 45 E = C.document, 46 c = { 47 type: !0, 48 src: !0, 49 nonce: !0, 50 noModule: !0 51 }; 52 function b(e, t, n) { 53 var r, 54 i, 55 o = (n = n || E).createElement("script"); 56 if (o.text = e, t) for (r in c) (i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i); 57 n.head.appendChild(o).parentNode.removeChild(o); 58 } 59 function w(e) { 60 return null == e ? e + "" : "object" == _typeof(e) || "function" == typeof e ? n[o.call(e)] || "object" : _typeof(e); 61 } 62 var f = "3.5.1", 63 S = function S(e, t) { 64 return new S.fn.init(e, t); 65 }; 66 function p(e) { 67 var t = !!e && "length" in e && e.length, 68 n = w(e); 69 return !m(e) && !x(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e); 70 } 71 S.fn = S.prototype = { 72 jquery: f, 73 constructor: S, 74 length: 0, 75 toArray: function toArray() { 76 return s.call(this); 77 }, 78 get: function get(e) { 79 return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e]; 80 }, 81 pushStack: function pushStack(e) { 82 var t = S.merge(this.constructor(), e);
83 return t.prevObject = this, t; 84 }, 85 each: function each(e) { 86 return S.each(this, e); 87 }, 88 map: function map(n) { 89 return this.pushStack(S.map(this, function (e, t) { 90 return n.call(e, t, e); 91 })); 92 }, 93 slice: function slice() { 94 return this.pushStack(s.apply(this, arguments)); 95 }, 96 first: function first() { 97 return this.eq(0); 98 }, 99 last: function last() { 100 return this.eq(-1); 101 }, 102 even: function even() { 103 return this.pushStack(S.grep(this, function (e, t) { 104 return (t + 1) % 2; 105 })); 106 }, 107 odd: function odd() { 108 return this.pushStack(S.grep(this, function (e, t) { 109 return t % 2; 110 })); 111 }, 112 eq: function eq(e) { 113 var t = this.length, 114 n = +e + (e < 0 ? t : 0); 115 return this.pushStack(0 <= n && n < t ? [this[n]] : []); 116 }, 117 end: function end() { 118 return this.prevObject || this.constructor(); 119 }, 120 push: u, 121 sort: t.sort, 122 splice: t.splice 123 }, S.extend = S.fn.extend = function () { 124 var e, 125 t, 126 n, 127 r, 128 i, 129 o, 130 a = arguments[0] || {}, 131 s = 1, 132 u = arguments.length, 133 l = !1; 134 for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == _typeof(a) || m(a) || (a = {}), s === u && (a = this, s--); s < u; s++) if (null != (e = arguments[s])) for (t in e) r = e[t], "__proto__" !== t && a !== r && (l && r && (S.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t], o = i && !Array.isArray(n) ? [] : i || S.isPlainObject(n) ? n : {}, i = !1, a[t] = S.extend(l, o, r)) : void 0 !== r && (a[t] = r)); 135 return a; 136 }, S.extend({ 137 expando: "jQuery" + (f + Math.random()).replace(/\D/g, ""), 138 isReady: !0, 139 error: function error(e) { 140 throw new Error(e); 141 }, 142 noop: function noop() {}, 143 isPlainObject: function isPlainObject(e) { 144 var t, n; 145 return !(!e || "[object Object]" !== o.call(e)) && (!(t = r(e)) || "function" == typeof (n = v.call(t, "constructor") && t.constructor) && a.call(n) === l); 146 }, 147 isEmptyObject: function isEmptyObject(e) { 148 var t; 149 for (t in e) return !1; 150 return !0; 151 }, 152 globalEval: function globalEval(e, t, n) { 153 b(e, { 154 nonce: t && t.nonce 155 }, n); 156 }, 157 each: function each(e, t) { 158 var n, 159 r = 0; 160 if (p(e)) { 161 for (n = e.length; r < n; r++) if (!1 === t.call(e[r], r, e[r])) break; 162 } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; 163 return e; 164 }, 165 makeArray: function makeArray(e, t) { 166 var n = t || []; 167 return null != e && (p(Object(e)) ? S.merge(n, "string" == typeof e ? [e] : e) : u.call(n, e)), n; 168 }, 169 inArray: function inArray(e, t, n) { 170 return null == t ? -1 : i.call(t, e, n); 171 }, 172 merge: function merge(e, t) { 173 for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r]; 174 return e.length = i, e; 175 }, 176 grep: function grep(e, t, n) { 177 for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) !t(e[i], i) !== a && r.push(e[i]); 178 return r; 179 }, 180 map: function map(e, t, n) { 181 var r, 182 i, 183 o = 0, 184 a = []; 185 if (p(e)) for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && a.push(i);else for (o in e) null != (i = t(e[o], o, n)) && a.push(i); 186 return g(a); 187 }, 188 guid: 1, 189 support: y 190 }), "function" == typeof Symbol && (S.fn[Symbol.iterator] = t[Symbol.iterator]), S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { 191 n["[object " + t + "]"] = t.toLowerCase(); 192 }); 193 var d = function (n) { 194 var e, 195 d, 196 b, 197 o, 198 i, 199 h, 200 f, 201 g, 202 w, 203 u, 204 l, 205 T, 206 C, 207 a, 208 E, 209 v, 210 s, 211 c, 212 y, 213 S = "sizzle" + 1 * new Date(), 214 p = n.document, 215 k = 0, 216 r = 0, 217 m = ue(), 218 x = ue(), 219 A = ue(), 220 N = ue(), 221 D = function D(e, t) { 222 return e === t && (l = !0), 0; 223 }, 224 j = {}.hasOwnProperty, 225 t = [], 226 q = t.pop, 227 L = t.push, 228 H = t.push, 229 O = t.slice, 230 P = function P(e, t) { 231 for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n; 232 return -1; 233 }, 234 R = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", 235 M = "[\\x20\\t\\r\\n\\f]", 236 I = "(?:\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", 237 W = "\\[" + M + "*(" + I + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + M + "*\\]", 238 F = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + W + ")*)|.*)\\)|)", 239 B = new RegExp(M + "+", "g"), 240 $ = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"), 241 _ = new RegExp("^" + M + "*," + M + "*"), 242 z = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"), 243 U = new RegExp(M + "|>"), 244 X = new RegExp(F), 245 V = new RegExp("^" + I + "$"), 246 G = { 247 ID: new RegExp("^#(" + I + ")"), 248 CLASS: new RegExp("^\\.(" + I + ")"), 249 TAG: new RegExp("^(" + I + "|[*])"), 250 ATTR: new RegExp("^" + W), 251 PSEUDO: new RegExp("^" + F), 252 CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i"), 253 bool: new RegExp("^(?:" + R + ")$", "i"), 254 needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i") 255 }, 256 Y = /HTML$/i, 257 Q = /^(?:input|select|textarea|button)$/i, 258 J = /^h\d$/i, 259 K = /^[^{]+\{\s*\[native \w/, 260 Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 261 ee = /[+~]/, 262 te = new RegExp("\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\([^\\r\\n\\f])", "g"), 263 ne = function ne(e, t) { 264 var n = "0x" + e.slice(1) - 65536; 265 return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320)); 266 }, 267 re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, 268 ie = function ie(e, t) { 269 return t ? "\0" === e ? "\uFFFD" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e; 270 }, 271 oe = function oe() { 272 T(); 273 }, 274 ae = be(function (e) { 275 return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase(); 276 }, { 277 dir: "parentNode", 278 next: "legend" 279 }); 280 try { 281 H.apply(t = O.call(p.childNodes), p.childNodes), t[p.childNodes.length].nodeType; 282 } catch (e) { 283 H = { 284 apply: t.length ? function (e, t) { 285 L.apply(e, O.call(t)); 286 } : function (e, t) { 287 var n = e.length, 288 r = 0; 289 while (e[n++] = t[r++]); 290 e.length = n - 1; 291 } 292 }; 293 } 294 function se(t, e, n, r) { 295 var i, 296 o, 297 a, 298 s, 299 u, 300 l, 301 c, 302 f = e && e.ownerDocument, 303 p = e ? e.nodeType : 9; 304 if (n = n || [], "string" != typeof t || !t || 1 !== p && 9 !== p && 11 !== p) return n; 305 if (!r && (T(e), e = e || C, E)) { 306 if (11 !== p && (u = Z.exec(t))) if (i = u[1]) { 307 if (9 === p) { 308 if (!(a = e.getElementById(i))) return n; 309 if (a.id === i) return n.push(a), n; 310 } else if (f && (a = f.getElementById(i)) && y(e, a) && a.id === i) return n.push(a), n; 311 } else { 312 if (u[2]) return H.apply(n, e.getElementsByTagName(t)), n;
313 if ((i = u[3]) && d.getElementsByClassName && e.getElementsByClassName) return H.apply(n, e.getElementsByClassName(i)), n; 314 } 315 if (d.qsa && !N[t + " "] && (!v || !v.test(t)) && (1 !== p || "object" !== e.nodeName.toLowerCase())) { 316 if (c = t, f = e, 1 === p && (U.test(t) || z.test(t))) { 317 (f = ee.test(t) && ye(e.parentNode) || e) === e && d.scope || ((s = e.getAttribute("id")) ? s = s.replace(re, ie) : e.setAttribute("id", s = S)), o = (l = h(t)).length; 318 while (o--) l[o] = (s ? "#" + s : ":scope") + " " + xe(l[o]); 319 c = l.join(","); 320 } 321 try { 322 return H.apply(n, f.querySelectorAll(c)), n; 323 } catch (e) { 324 N(t, !0); 325 } finally { 326 s === S && e.removeAttribute("id"); 327 } 328 } 329 } 330 return g(t.replace($, "$1"), e, n, r); 331 } 332 function ue() { 333 var r = []; 334 return function e(t, n) { 335 return r.push(t + " ") > b.cacheLength && delete e[r.shift()], e[t + " "] = n; 336 }; 337 } 338 function le(e) { 339 return e[S] = !0, e; 340 } 341 function ce(e) { 342 var t = C.createElement("fieldset"); 343 try { 344 return !!e(t); 345 } catch (e) { 346 return !1; 347 } finally { 348 t.parentNode && t.parentNode.removeChild(t), t = null; 349 } 350 } 351 function fe(e, t) { 352 var n = e.split("|"), 353 r = n.length; 354 while (r--) b.attrHandle[n[r]] = t; 355 } 356 function pe(e, t) { 357 var n = t && e, 358 r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; 359 if (r) return r; 360 if (n) while (n = n.nextSibling) if (n === t) return -1; 361 return e ? 1 : -1; 362 } 363 function de(t) { 364 return function (e) { 365 return "input" === e.nodeName.toLowerCase() && e.type === t; 366 }; 367 } 368 function he(n) { 369 return function (e) { 370 var t = e.nodeName.toLowerCase(); 371 return ("input" === t || "button" === t) && e.type === n; 372 }; 373 } 374 function ge(t) { 375 return function (e) { 376 return "form" in e ? e.parentNode && !1 === e.disabled ? "label" in e ? "label" in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && ae(e) === t : e.disabled === t : "label" in e && e.disabled === t; 377 }; 378 } 379 function ve(a) { 380 return le(function (o) { 381 return o = +o, le(function (e, t) { 382 var n, 383 r = a([], e.length, o), 384 i = r.length; 385 while (i--) e[n = r[i]] && (e[n] = !(t[n] = e[n])); 386 }); 387 }); 388 } 389 function ye(e) { 390 return e && "undefined" != typeof e.getElementsByTagName && e; 391 } 392 for (e in d = se.support = {}, i = se.isXML = function (e) { 393 var t = e.namespaceURI, 394 n = (e.ownerDocument || e).documentElement; 395 return !Y.test(t || n && n.nodeName || "HTML"); 396 }, T = se.setDocument = function (e) { 397 var t, 398 n, 399 r = e ? e.ownerDocument || e : p; 400 return r != C && 9 === r.nodeType && r.documentElement && (a = (C = r).documentElement, E = !i(C), p != C && (n = C.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", oe, !1) : n.attachEvent && n.attachEvent("onunload", oe)), d.scope = ce(function (e) { 401 return a.appendChild(e).appendChild(C.createElement("div")), "undefined" != typeof e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length; 402 }), d.attributes = ce(function (e) { 403 return e.className = "i", !e.getAttribute("className"); 404 }), d.getElementsByTagName = ce(function (e) { 405 return e.appendChild(C.createComment("")), !e.getElementsByTagName("*").length; 406 }), d.getElementsByClassName = K.test(C.getElementsByClassName), d.getById = ce(function (e) { 407 return a.appendChild(e).id = S, !C.getElementsByName || !C.getElementsByName(S).length; 408 }), d.getById ? (b.filter.ID = function (e) { 409 var t = e.replace(te, ne); 410 return function (e) { 411 return e.getAttribute("id") === t; 412 }; 413 }, b.find.ID = function (e, t) { 414 if ("undefined" != typeof t.getElementById && E) { 415 var n = t.getElementById(e); 416 return n ? [n] : []; 417 } 418 }) : (b.filter.ID = function (e) { 419 var n = e.replace(te, ne); 420 return function (e) { 421 var t = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id"); 422 return t && t.value === n; 423 }; 424 }, b.find.ID = function (e, t) { 425 if ("undefined" != typeof t.getElementById && E) { 426 var n, 427 r, 428 i, 429 o = t.getElementById(e); 430 if (o) { 431 if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; 432 i = t.getElementsByName(e), r = 0; 433 while (o = i[r++]) if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; 434 } 435 return []; 436 } 437 }), b.find.TAG = d.getElementsByTagName ? function (e, t) { 438 return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : d.qsa ? t.querySelectorAll(e) : void 0; 439 } : function (e, t) { 440 var n, 441 r = [], 442 i = 0, 443 o = t.getElementsByTagName(e); 444 if ("*" === e) { 445 while (n = o[i++]) 1 === n.nodeType && r.push(n); 446 return r; 447 } 448 return o; 449 }, b.find.CLASS = d.getElementsByClassName && function (e, t) { 450 if ("undefined" != typeof t.getElementsByClassName && E) return t.getElementsByClassName(e); 451 }
vendor: 4,915 bytes, lines 451-528
451, s = [], v = [], (d.qsa = K.test(C.querySelectorAll)) && (ce(function (e) { 452 var t; 453 a.appendChild(e).innerHTML = "<a id='" + S + "'></a><select id='" + S + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && v.push("[*^$]=" + M + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || v.push("\\[" + M + "*(?:value|" + R + ")"), e.querySelectorAll("[id~=" + S + "-]").length || v.push("~="), (t = C.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || v.push("\\[" + M + "*name" + M + "*=" + M + "*(?:''|\"\")"), e.querySelectorAll(":checked").length || v.push(":checked"), e.querySelectorAll("a#" + S + "+*").length || v.push(".#.+[+~]"), e.querySelectorAll("\\\f"), v.push("[\\r\\n\\f]"); 454 }), ce(function (e) { 455 e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; 456 var t = C.createElement("input"); 457 t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && v.push("name" + M + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && v.push(":enabled", ":disabled"), a.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && v.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), v.push(",.*:"); 458 })), (d.matchesSelector = K.test(c = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.oMatchesSelector || a.msMatchesSelector)) && ce(function (e) { 459 d.disconnectedMatch = c.call(e, "*"), c.call(e, "[s!='']:x"), s.push("!=", F); 460 }), v = v.length && new RegExp(v.join("|")), s = s.length && new RegExp(s.join("|")), t = K.test(a.compareDocumentPosition), y = t || K.test(a.contains) ? function (e, t) { 461 var n = 9 === e.nodeType ? e.documentElement : e, 462 r = t && t.parentNode; 463 return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))); 464 } : function (e, t) { 465 if (t) while (t = t.parentNode) if (t === e) return !0; 466 return !1; 467 }, D = t ? function (e, t) { 468 if (e === t) return l = !0, 0; 469 var n = !e.compareDocumentPosition - !t.compareDocumentPosition; 470 return n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !d.sortDetached && t.compareDocumentPosition(e) === n ? e == C || e.ownerDocument == p && y(p, e) ? -1 : t == C || t.ownerDocument == p && y(p, t) ? 1 : u ? P(u, e) - P(u, t) : 0 : 4 & n ? -1 : 1); 471 } : function (e, t) { 472 if (e === t) return l = !0, 0; 473 var n, 474 r = 0, 475 i = e.parentNode, 476 o = t.parentNode, 477 a = [e], 478 s = [t]; 479 if (!i || !o) return e == C ? -1 : t == C ? 1 : i ? -1 : o ? 1 : u ? P(u, e) - P(u, t) : 0; 480 if (i === o) return pe(e, t); 481 n = e; 482 while (n = n.parentNode) a.unshift(n); 483 n = t; 484 while (n = n.parentNode) s.unshift(n); 485 while (a[r] === s[r]) r++; 486 return r ? pe(a[r], s[r]) : a[r] == p ? -1 : s[r] == p ? 1 : 0; 487 }), C; 488 }, se.matches = function (e, t) { 489 return se(e, null, null, t); 490 }, se.matchesSelector = function (e, t) { 491 if (T(e), d.matchesSelector && E && !N[t + " "] && (!s || !s.test(t)) && (!v || !v.test(t))) try { 492 var n = c.call(e, t); 493 if (n || d.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n; 494 } catch (e) { 495 N(t, !0); 496 } 497 return 0 < se(t, C, null, [e]).length; 498 }, se.contains = function (e, t) { 499 return (e.ownerDocument || e) != C && T(e), y(e, t); 500 }, se.attr = function (e, t) { 501 (e.ownerDocument || e) != C && T(e); 502 var n = b.attrHandle[t.toLowerCase()], 503 r = n && j.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !E) : void 0; 504 return void 0 !== r ? r : d.attributes || !E ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null; 505 }, se.escape = function (e) { 506 return (e + "").replace(re, ie); 507 }, se.error = function (e) { 508 throw new Error("Syntax error, unrecognized expression: " + e); 509 }, se.uniqueSort = function (e) { 510 var t, 511 n = [], 512 r = 0, 513 i = 0; 514 if (l = !d.detectDuplicates, u = !d.sortStable && e.slice(0), e.sort(D), l) { 515 while (t = e[i++]) t === e[i] && (r = n.push(i)); 516 while (r--) e.splice(n[r], 1); 517 } 518 return u = null, e; 519 }, o = se.getText = function (e) { 520 var t, 521 n = "", 522 r = 0, 523 i = e.nodeType; 524 if (i) { 525 if (1 === i || 9 === i || 11 === i) { 526 if ("string" == typeof e.textContent) return e.textContent; 527 for (e = e.firstChild; e; e = e.nextSibling) n += o(e); 528 }
528 else if (3 === i || 4 === i) return e.nodeValue; 529 } else while (t = e[r++]) n += o(t); 530 return n; 531 }, (b = se.selectors = { 532 cacheLength: 50, 533 createPseudo: le, 534 match: G, 535 attrHandle: {}, 536 find: {}, 537 relative: { 538 ">": { 539 dir: "parentNode", 540 first: !0 541 }, 542 " ": { 543 dir: "parentNode" 544 }, 545 "+": { 546 dir: "previousSibling", 547 first: !0 548 }, 549 "~": { 550 dir: "previousSibling" 551 } 552 }, 553 preFilter: { 554 ATTR: function ATTR(e) { 555 return e[1] = e[1].replace(te, ne), e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4); 556 }, 557 CHILD: function CHILD(e) { 558 return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || se.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && se.error(e[0]), e; 559 }, 560 PSEUDO: function PSEUDO(e) { 561 var t, 562 n = !e[6] && e[2]; 563 return G.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = h(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)); 564 } 565 }, 566 filter: { 567 TAG: function TAG(e) { 568 var t = e.replace(te, ne).toLowerCase(); 569 return "*" === e ? function () { 570 return !0; 571 } : function (e) { 572 return e.nodeName && e.nodeName.toLowerCase() === t; 573 }; 574 }, 575 CLASS: function CLASS(e) { 576 var t = m[e + " "]; 577 return t || (t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && m(e, function (e) { 578 return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || ""); 579 }); 580 }, 581 ATTR: function ATTR(n, r, i) { 582 return function (e) { 583 var t = se.attr(e, n); 584 return null == t ? "!=" === r : !r || (t += "", "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t.indexOf(i) : "*=" === r ? i && -1 < t.indexOf(i) : "$=" === r ? i && t.slice(-i.length) === i : "~=" === r ? -1 < (" " + t.replace(B, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-")); 585 }; 586 }, 587 CHILD: function CHILD(h, e, t, g, v) { 588 var y = "nth" !== h.slice(0, 3), 589 m = "last" !== h.slice(-4), 590 x = "of-type" === e; 591 return 1 === g && 0 === v ? function (e) { 592 return !!e.parentNode; 593 } : function (e, t, n) { 594 var r, 595 i, 596 o, 597 a, 598 s, 599 u, 600 l = y !== m ? "nextSibling" : "previousSibling", 601 c = e.parentNode, 602 f = x && e.nodeName.toLowerCase(), 603 p = !n && !x, 604 d = !1; 605 if (c) { 606 if (y) { 607 while (l) { 608 a = e; 609 while (a = a[l]) if (x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) return !1; 610 u = l = "only" === h && !u && "nextSibling"; 611 } 612 return !0; 613 } 614 if (u = [m ? c.firstChild : c.lastChild], m && p) { 615 d = (s = (r = (i = (o = (a = c)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]) && r[2], a = s && c.childNodes[s]; 616 while (a = ++s && a && a[l] || (d = s = 0) || u.pop()) if (1 === a.nodeType && ++d && a === e) { 617 i[h] = [k, s, d]; 618 break; 619 } 620 } else if (p && (d = s = (r = (i = (o = (a = e)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]), !1 === d) while (a = ++s && a && a[l] || (d = s = 0) || u.pop()) if ((x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) && ++d && (p && ((i = (o = a[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] = [k, d]), a === e)) break; 621 return (d -= v) === g || d % g == 0 && 0 <= d / g; 622 } 623 }; 624 }, 625 PSEUDO: function PSEUDO(e, o) { 626 var t, 627 a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || se.error("unsupported pseudo: " + e); 628 return a[S] ? a(o) : 1 < a.length ? (t = [e, e, "", o], b.setFilters.hasOwnProperty(e.toLowerCase()) ? le(function (e, t) { 629 var n, 630 r = a(e, o), 631 i = r.length; 632 while (i--) e[n = P(e, r[i])] = !(t[n] = r[i]); 633 }) : function (e) { 634 return a(e, 0, t); 635 }) : a; 636 } 637 }, 638 pseudos: { 639 not: le(function (e) { 640 var r = [], 641 i = [], 642 s = f(e.replace($, "$1")); 643 return s[S] ? le(function (e, t, n, r) { 644 var i, 645 o = s(e, null, r, []), 646 a = e.length; 647 while (a--) (i = o[a]) && (e[a] = !(t[a] = i)); 648 }) : function (e, t, n) { 649 return r[0] = e, s(r, null, n, i), r[0] = null, !i.pop(); 650 }; 651 }), 652 has: le(function (t) { 653 return function (e) { 654 return 0 < se(t, e).length; 655 }; 656 }), 657 contains: le(function (t) { 658 return t = t.replace(te, ne), function (e) { 659 return -1 < (e.textContent || o(e)).indexOf(t); 660 }; 661 }), 662 lang: le(function (n) { 663 return V.test(n || "") || se.error("unsupported lang: " + n), n = n.replace(te, ne).toLowerCase(), function (e) { 664 var t; 665 do { 666 if (t = E ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-"); 667 } while ((e = e.parentNode) && 1 === e.nodeType); 668 return !1; 669 }; 670 }), 671 target: function target(e) { 672 var t = n.location && n.location.hash; 673 return t && t.slice(1) === e.id; 674 }, 675 root: function root(e) { 676 return e === a; 677 }, 678 focus: function focus(e) { 679 return e === C.activeElement && (!C.hasFocus || C.hasFocus()) && !!(e.type || e.href || ~e.tabIndex); 680 }, 681 enabled: ge(!1), 682 disabled: ge(!0), 683 checked: function checked(e) { 684 var t = e.nodeName.toLowerCase(); 685 return "input" === t && !!e.checked || "option" === t && !!e.selected; 686 }, 687 selected: function selected(e) { 688 return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected; 689 }, 690 empty: function empty(e) { 691 for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1; 692 return !0; 693 }, 694 parent: function parent(e) { 695 return !b.pseudos.empty(e); 696 }, 697 header: function header(e) { 698 return J.test(e.nodeName); 699 }, 700 input: function input(e) { 701 return Q.test(e.nodeName); 702 }, 703 button: function button(e) { 704 var t = e.nodeName.toLowerCase(); 705 return "input" === t && "button" === e.type || "button" === t; 706 }, 707 text: function text(e) { 708 var t; 709 return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()); 710 }, 711 first: ve(function () { 712 return [0]; 713 }), 714 last: ve(function (e, t) { 715 return [t - 1]; 716 }), 717 eq: ve(function (e, t, n) { 718 return [n < 0 ? n + t : n]; 719 }), 720 even: ve(function (e, t) { 721 for (var n = 0; n < t; n += 2) e.push(n); 722 return e; 723 }), 724 odd: ve(function (e, t) { 725 for (var n = 1; n < t; n += 2) e.push(n); 726 return e; 727 }), 728 lt: ve(function (e, t, n) { 729 for (var r = n < 0 ? n + t : t < n ? t : n; 0 <= --r;) e.push(r); 730 return e; 731 }), 732 gt: ve(function (e, t, n) { 733 for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r); 734 return e; 735 }) 736 } 737 }).pseudos.nth = b.pseudos.eq, { 738 radio: !0, 739 checkbox: !0, 740 file: !0, 741 password: !0, 742 image: !0 743 }) b.pseudos[e] = de(e); 744 for (e in { 745 submit: !0, 746 reset: !0 747 }) b.pseudos[e] = he(e); 748 function me() {} 749 function xe(e) { 750 for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; 751 return r; 752 } 753 function be(s, e, t) { 754 var u = e.dir, 755 l = e.next, 756 c = l || u, 757 f = t && "parentNode" === c, 758 p = r++; 759 return e.first ? function (e, t, n) { 760 while (e = e[u]) if (1 === e.nodeType || f) return s(e, t, n); 761 return !1; 762 } : function (e, t, n) { 763 var r, 764 i, 765 o, 766 a = [k, p]; 767 if (n) { 768 while (e = e[u]) if ((1 === e.nodeType || f) && s(e, t, n)) return !0; 769 } else while (e = e[u]) if (1 === e.nodeType || f) if (i = (o = e[S] || (e[S] = {}))[e.uniqueID] || (o[e.uniqueID] = {}
vendor: 4,351 bytes, lines 769-887
769), l && l === e.nodeName.toLowerCase()) e = e[u] || e;else { 770 if ((r = i[c]) && r[0] === k && r[1] === p) return a[2] = r[2]; 771 if ((i[c] = a)[2] = s(e, t, n)) return !0; 772 } 773 return !1; 774 }; 775 } 776 function we(i) { 777 return 1 < i.length ? function (e, t, n) { 778 var r = i.length; 779 while (r--) if (!i[r](e, t, n)) return !1; 780 return !0; 781 } : i[0]; 782 } 783 function Te(e, t, n, r, i) { 784 for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++) (o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s))); 785 return a; 786 } 787 function Ce(d, h, g, v, y, e) { 788 return v && !v[S] && (v = Ce(v)), y && !y[S] && (y = Ce(y, e)), le(function (e, t, n, r) { 789 var i, 790 o, 791 a, 792 s = [], 793 u = [], 794 l = t.length, 795 c = e || function (e, t, n) { 796 for (var r = 0, i = t.length; r < i; r++) se(e, t[r], n); 797 return n; 798 }(h || "*", n.nodeType ? [n] : n, []), 799 f = !d || !e && h ? c : Te(c, s, d, n, r), 800 p = g ? y || (e ? d : l || v) ? [] : t : f; 801 if (g && g(f, p, n, r), v) { 802 i = Te(p, u), v(i, [], n, r), o = i.length; 803 while (o--) (a = i[o]) && (p[u[o]] = !(f[u[o]] = a)); 804 } 805 if (e) { 806 if (y || d) { 807 if (y) { 808 i = [], o = p.length; 809 while (o--) (a = p[o]) && i.push(f[o] = a); 810 y(null, p = [], i, r); 811 } 812 o = p.length; 813 while (o--) (a = p[o]) && -1 < (i = y ? P(e, a) : s[o]) && (e[i] = !(t[i] = a)); 814 } 815 } else p = Te(p === t ? p.splice(l, p.length) : p), y ? y(null, t, p, r) : H.apply(t, p); 816 }); 817 } 818 function Ee(e) { 819 for (var i, t, n, r = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = be(function (e) { 820 return e === i; 821 }, a, !0), l = be(function (e) { 822 return -1 < P(i, e); 823 }, a, !0), c = [function (e, t, n) { 824 var r = !o && (n || t !== w) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n)); 825 return i = null, r; 826 }]; s < r; s++) if (t = b.relative[e[s].type]) c = [be(we(c), t)];else { 827 if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) { 828 for (n = ++s; n < r; n++) if (b.relative[e[n].type]) break; 829 return Ce(1 < s && we(c), 1 < s && xe(e.slice(0, s - 1).concat({ 830 value: " " === e[s - 2].type ? "*" : "" 831 })).replace($, "$1"), t, s < n && Ee(e.slice(s, n)), n < r && Ee(e = e.slice(n)), n < r && xe(e)); 832 } 833 c.push(t); 834 } 835 return we(c); 836 } 837 return me.prototype = b.filters = b.pseudos, b.setFilters = new me(), h = se.tokenize = function (e, t) { 838 var n, 839 r, 840 i, 841 o, 842 a, 843 s, 844 u, 845 l = x[e + " "]; 846 if (l) return t ? 0 : l.slice(0); 847 a = e, s = [], u = b.preFilter; 848 while (a) { 849 for (o in n && !(r = _.exec(a)) || (r && (a = a.slice(r[0].length) || a), s.push(i = [])), n = !1, (r = z.exec(a)) && (n = r.shift(), i.push({ 850 value: n, 851 type: r[0].replace($, " ") 852 }), a = a.slice(n.length)), b.filter) !(r = G[o].exec(a)) || u[o] && !(r = u[o](r)) || (n = r.shift(), i.push({ 853 value: n, 854 type: o, 855 matches: r 856 }), a = a.slice(n.length)); 857 if (!n) break; 858 } 859 return t ? a.length : a ? se.error(e) : x(e, s).slice(0); 860 }, f = se.compile = function (e, t) { 861 var n, 862 v, 863 y, 864 m, 865 x, 866 r, 867 i = [], 868 o = [], 869 a = A[e + " "]; 870 if (!a) { 871 t || (t = h(e)), n = t.length; 872 while (n--) (a = Ee(t[n]))[S] ? i.push(a) : o.push(a); 873 (a = A(e, (v = o, m = 0 < (y = i).length, x = 0 < v.length, r = function r(e, t, n, _r, i) { 874 var o, 875 a, 876 s, 877 u = 0, 878 l = "0", 879 c = e && [], 880 f = [], 881 p = w, 882 d = e || x && b.find.TAG("*", i), 883 h = k += null == p ? 1 : Math.random() || .1, 884 g = d.length; 885 for (i && (w = t == C || t || i); l !== g && null != (o = d[l]); l++) { 886 if (x && o) { 887 a = 0, t || o.ownerDocument == C || (T(o), n = !E);
888 while (s = v[a++]) if (s(o, t || C, n)) { 889 _r.push(o); 890 break; 891 } 892 i && (k = h); 893 } 894 m && ((o = !s && o) && u--, e && c.push(o)); 895 } 896 if (u += l, m && l !== u) { 897 a = 0; 898 while (s = y[a++]) s(c, f, t, n); 899 if (e) { 900 if (0 < u) while (l--) c[l] || f[l] || (f[l] = q.call(_r)); 901 f = Te(f); 902 } 903 H.apply(_r, f), i && !e && 0 < f.length && 1 < u + y.length && se.uniqueSort(_r); 904 } 905 return i && (k = h, w = p), c; 906 }, m ? le(r) : r))).selector = e; 907 } 908 return a; 909 }, g = se.select = function (e, t, n, r) { 910 var i, 911 o, 912 a, 913 s, 914 u, 915 l = "function" == typeof e && e, 916 c = !r && h(e = l.selector || e); 917 if (n = n || [], 1 === c.length) { 918 if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && 9 === t.nodeType && E && b.relative[o[1].type]) { 919 if (!(t = (b.find.ID(a.matches[0].replace(te, ne), t) || [])[0])) return n; 920 l && (t = t.parentNode), e = e.slice(o.shift().value.length); 921 } 922 i = G.needsContext.test(e) ? 0 : o.length; 923 while (i--) { 924 if (a = o[i], b.relative[s = a.type]) break; 925 if ((u = b.find[s]) && (r = u(a.matches[0].replace(te, ne), ee.test(o[0].type) && ye(t.parentNode) || t))) { 926 if (o.splice(i, 1), !(e = r.length && xe(o))) return H.apply(n, r), n; 927 break; 928 } 929 } 930 } 931 return (l || f(e, c))(r, t, !E, n, !t || ee.test(e) && ye(t.parentNode) || t), n; 932 }, d.sortStable = S.split("").sort(D).join("") === S, d.detectDuplicates = !!l, T(), d.sortDetached = ce(function (e) { 933 return 1 & e.compareDocumentPosition(C.createElement("fieldset")); 934 }), ce(function (e) { 935 return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href"); 936 }) || fe("type|href|height|width", function (e, t, n) { 937 if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2); 938 }), d.attributes && ce(function (e) { 939 return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value"); 940 }) || fe("value", function (e, t, n) { 941 if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue; 942 }), ce(function (e) { 943 return null == e.getAttribute("disabled"); 944 }) || fe(R, function (e, t, n) { 945 var r; 946 if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null; 947 }), se; 948 }(C); 949 S.find = d, S.expr = d.selectors, S.expr[":"] = S.expr.pseudos, S.uniqueSort = S.unique = d.uniqueSort, S.text = d.getText, S.isXMLDoc = d.isXML, S.contains = d.contains, S.escapeSelector = d.escape; 950 var h = function h(e, t, n) { 951 var r = [], 952 i = void 0 !== n; 953 while ((e = e[t]) && 9 !== e.nodeType) if (1 === e.nodeType) { 954 if (i && S(e).is(n)) break; 955 r.push(e); 956 } 957 return r; 958 }, 959 T = function T(e, t) { 960 for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); 961 return n; 962 }, 963 k = S.expr.match.needsContext; 964 function A(e, t) { 965 return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase(); 966 } 967 var N = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; 968 function D(e, n, r) { 969 return m(n) ? S.grep(e, function (e, t) { 970 return !!n.call(e, t, e) !== r; 971 }) : n.nodeType ? S.grep(e, function (e) { 972 return e === n !== r; 973 }) : "string" != typeof n ? S.grep(e, function (e) { 974 return -1 < i.call(n, e) !== r; 975 }) : S.filter(n, e, r); 976 } 977 S.filter = function (e, t, n) { 978 var r = t[0]; 979 return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? S.find.matchesSelector(r, e) ? [r] : [] : S.find.matches(e, S.grep(t, function (e) { 980 return 1 === e.nodeType; 981 })); 982 }, S.fn.extend({ 983 find: function find(e) { 984 var t, 985 n, 986 r = this.length, 987 i = this; 988 if ("string" != typeof e) return this.pushStack(S(e).filter(function () { 989 for (t = 0; t < r; t++) if (S.contains(i[t], this)) return !0; 990 })); 991 for (n = this.pushStack([]), t = 0; t < r; t++) S.find(e, i[t], n); 992 return 1 < r ? S.uniqueSort(n) : n; 993 }, 994 filter: function filter(e) { 995 return this.pushStack(D(this, e || [], !1)); 996 }, 997 not: function not(e) { 998 return this.pushStack(D(this, e || [], !0)); 999 }, 1000 is: function is(e) { 1001 return !!D(this, "string" == typeof e && k.test(e) ? S(e)
1001: e || [], !1).length; 1002 } 1003 }); 1004 var j, 1005 q = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; 1006 (S.fn.init = function (e, t, n) { 1007 var r, i; 1008 if (!e) return this; 1009 if (n = n || j, "string" == typeof e) { 1010 if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : q.exec(e)) || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); 1011 if (r[1]) { 1012 if (t = t instanceof S ? t[0] : t, S.merge(this, S.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : E, !0)), N.test(r[1]) && S.isPlainObject(t)) for (r in t) m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]); 1013 return this; 1014 } 1015 return (i = E.getElementById(r[2])) && (this[0] = i, this.length = 1), this; 1016 } 1017 return e.nodeType ? (this[0] = e, this.length = 1, this) : m(e) ? void 0 !== n.ready ? n.ready(e) : e(S) : S.makeArray(e, this); 1018 }).prototype = S.fn, j = S(E); 1019 var L = /^(?:parents|prev(?:Until|All))/, 1020 H = { 1021 children: !0, 1022 contents: !0, 1023 next: !0, 1024 prev: !0 1025 }; 1026 function O(e, t) { 1027 while ((e = e[t]) && 1 !== e.nodeType); 1028 return e; 1029 } 1030 S.fn.extend({ 1031 has: function has(e) { 1032 var t = S(e, this), 1033 n = t.length; 1034 return this.filter(function () { 1035 for (var e = 0; e < n; e++) if (S.contains(this, t[e])) return !0; 1036 }); 1037 }, 1038 closest: function closest(e, t) { 1039 var n, 1040 r = 0, 1041 i = this.length, 1042 o = [], 1043 a = "string" != typeof e && S(e); 1044 if (!k.test(e)) for (; r < i; r++) for (n = this[r]; n && n !== t; n = n.parentNode) if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && S.find.matchesSelector(n, e))) { 1045 o.push(n); 1046 break; 1047 } 1048 return this.pushStack(1 < o.length ? S.uniqueSort(o) : o); 1049 }, 1050 index: function index(e) { 1051 return e ? "string" == typeof e ? i.call(S(e), this[0]) : i.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1; 1052 }, 1053 add: function add(e, t) { 1054 return this.pushStack(S.uniqueSort(S.merge(this.get(), S(e, t)))); 1055 }, 1056 addBack: function addBack(e) { 1057 return this.add(null == e ? this.prevObject : this.prevObject.filter(e)); 1058 } 1059 }), S.each({ 1060 parent: function parent(e) { 1061 var t = e.parentNode; 1062 return t && 11 !== t.nodeType ? t : null; 1063 }, 1064 parents: function parents(e) { 1065 return h(e, "parentNode"); 1066 }, 1067 parentsUntil: function parentsUntil(e, t, n) { 1068 return h(e, "parentNode", n); 1069 }, 1070 next: function next(e) { 1071 return O(e, "nextSibling"); 1072 }, 1073 prev: function prev(e) { 1074 return O(e, "previousSibling"); 1075 }, 1076 nextAll: function nextAll(e) { 1077 return h(e, "nextSibling"); 1078 }, 1079 prevAll: function prevAll(e) { 1080 return h(e, "previousSibling"); 1081 }, 1082 nextUntil: function nextUntil(e, t, n) { 1083 return h(e, "nextSibling", n); 1084 }, 1085 prevUntil: function prevUntil(e, t, n) { 1086 return h(e, "previousSibling", n); 1087 }, 1088 siblings: function siblings(e) { 1089 return T((e.parentNode || {}).firstChild, e); 1090 }, 1091 children: function children(e) { 1092 return T(e.firstChild); 1093 }, 1094 contents: function contents(e) { 1095 return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (A(e, "template") && (e = e.content || e), S.merge([], e.childNodes)); 1096 } 1097 }, function (r, i) { 1098 S.fn[r] = function (e, t) { 1099 var n = S.map(this, i, e); 1100 return "Until" !== r.slice(-5) && (t = e), t && "string" == typeof t && (n = S.filter(t, n)), 1 < this.length && (H[r] || S.uniqueSort(n), L.test(r) && n.reverse()), this.pushStack(n); 1101 }; 1102 }); 1103 var P = /[^\x20\t\r\n\f]+/g; 1104 function R(e) { 1105 return e; 1106 } 1107 function M(e) { 1108 throw e; 1109 } 1110 function I(e, t, n, r) { 1111 var i; 1112 try { 1113 e && m(i = e.promise) ? i.call(e).done(t).fail(n) : e && m(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r)); 1114 } catch (e) { 1115 n.apply(void 0, [e]); 1116 } 1117 } 1118 S.Callbacks = function (r) { 1119 var e, n; 1120 r = "string" == typeof r ? (e = r, n = {}, S.each(e.match(P) || [], function (e, t) { 1121 n[t] = !0; 1122 }), n) : S.extend({}, r); 1123 var i, 1124 t, 1125 o, 1126 a, 1127 s = [], 1128 u = [], 1129 l = -1, 1130 c = function c() { 1131 for (a = a || r.once, o = i = !0; u.length; l = -1) { 1132 t = u.shift(); 1133 while (++l < s.length) !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && (l = s.length, t = !1); 1134 } 1135 r.memory || (t = !1), i = !1, a && (s = t ? [] : ""); 1136 }, 1137 f = { 1138 add: function add() { 1139 return s && (t && !i && (l = s.length - 1, u.push(t)), function n(e) { 1140 S.each(e, function (e, t) { 1141 m(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== w(t) && n(t); 1142 }); 1143 }(arguments), t && !i && c()), this; 1144 }, 1145 remove: function remove() { 1146 return S.each(arguments, function (e, t) { 1147 var n; 1148 while (-1 < (n = S.inArray(t, s, n))) s.splice(n, 1), n <= l && l--; 1149 }), this; 1150 }, 1151 has: function has(e) { 1152 return e ? -1 < S.inArray(e, s) : 0 < s.length; 1153 }, 1154 empty: function empty() { 1155 return s && (s = []), this; 1156 }, 1157 disable: function disable() { 1158 return a = u = [], s = t = "", this; 1159 }, 1160 disabled: function disabled() { 1161 return !s; 1162 }, 1163 lock: function lock() { 1164 return a = u = [], t || i || (s = t = ""), this; 1165 }, 1166 locked: function locked() { 1167 return !!a; 1168 }, 1169 fireWith: function fireWith(e, t) { 1170 return a || (t = [e, (t = t || []).slice ? t.slice() : t], u.push(t), i || c()), this; 1171 }, 1172 fire: function fire() { 1173 return f.fireWith(this, arguments), this; 1174 }, 1175 fired: function fired() { 1176 return !!o; 1177 } 1178 }; 1179 return f; 1180 }, S.extend({ 1181 Deferred: function Deferred(e) { 1182 var o = [["notify", "progress", S.Callbacks("memory"), S.Callbacks("memory"), 2], ["resolve", "done", S.Callbacks("once memory"), S.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", S.Callbacks("once memory"), S.Callbacks("once memory"), 1, "rejected"]], 1183 i = "pending", 1184 a = { 1185 state: function state() { 1186 return i; 1187 }, 1188 always: function always() { 1189 return s.done(arguments).fail(arguments), this; 1190 },
1191 "catch": function _catch(e) { 1192 return a.then(null, e); 1193 }, 1194 pipe: function pipe() { 1195 var i = arguments; 1196 return S.Deferred(function (r) { 1197 S.each(o, function (e, t) { 1198 var n = m(i[t[4]]) && i[t[4]]; 1199 s[t[1]](function () { 1200 var e = n && n.apply(this, arguments); 1201 e && m(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments); 1202 }); 1203 }), i = null; 1204 }).promise(); 1205 }, 1206 then: function then(t, n, r) { 1207 var u = 0; 1208 function l(i, o, a, s) { 1209 return function () { 1210 var n = this, 1211 r = arguments, 1212 e = function e() { 1213 var e, t; 1214 if (!(i < u)) { 1215 if ((e = a.apply(n, r)) === o.promise()) throw new TypeError("Thenable self-resolution"); 1216 t = e && ("object" == _typeof(e) || "function" == typeof e) && e.then, m(t) ? s ? t.call(e, l(u, o, R, s), l(u, o, M, s)) : (u++, t.call(e, l(u, o, R, s), l(u, o, M, s), l(u, o, R, o.notifyWith))) : (a !== R && (n = void 0, r = [e]), (s || o.resolveWith)(n, r)); 1217 } 1218 }, 1219 t = s ? e : function () { 1220 try { 1221 e(); 1222 } catch (e) { 1223 S.Deferred.exceptionHook && S.Deferred.exceptionHook(e, t.stackTrace), u <= i + 1 && (a !== M && (n = void 0, r = [e]), o.rejectWith(n, r)); 1224 } 1225 }; 1226 i ? t() : (S.Deferred.getStackHook && (t.stackTrace = S.Deferred.getStackHook()), C.setTimeout(t)); 1227 }; 1228 } 1229 return S.Deferred(function (e) { 1230 o[0][3].add(l(0, e, m(r) ? r : R, e.notifyWith)), o[1][3].add(l(0, e, m(t) ? t : R)), o[2][3].add(l(0, e, m(n) ? n : M)); 1231 }).promise(); 1232 }, 1233 promise: function promise(e) { 1234 return null != e ? S.extend(e, a) : a; 1235 } 1236 }, 1237 s = {}; 1238 return S.each(o, function (e, t) { 1239 var n = t[2], 1240 r = t[5]; 1241 a[t[1]] = n.add, r && n.add(function () { 1242 i = r; 1243 }, o[3 - e][2].disable, o[3 - e][3].disable, o[0][2].lock, o[0][3].lock), n.add(t[3].fire), s[t[0]] = function () { 1244 return s[t[0] + "With"](this === s ? void 0 : this, arguments), this; 1245 }, s[t[0] + "With"] = n.fireWith; 1246 }), a.promise(s), e && e.call(s, s), s; 1247 }, 1248 when: function when(e) { 1249 var n = arguments.length, 1250 t = n, 1251 r = Array(t), 1252 i = s.call(arguments), 1253 o = S.Deferred(), 1254 a = function a(t) { 1255 return function (e) { 1256 r[t] = this, i[t] = 1 < arguments.length ? s.call(arguments) : e, --n || o.resolveWith(r, i); 1257 }; 1258 }; 1259 if (n <= 1 && (I(e, o.done(a(t)).resolve, o.reject, !n), "pending" === o.state() || m(i[t] && i[t].then))) return o.then(); 1260 while (t--) I(i[t], a(t), o.reject); 1261 return o.promise(); 1262 } 1263 }); 1264 var W = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 1265 S.Deferred.exceptionHook = function (e, t) { 1266 C.console && C.console.warn && e && W.test(e.name) && C.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t); 1267 }, S.readyException = function (e) { 1268 C.setTimeout(function () { 1269 throw e; 1270 }); 1271 }; 1272 var F = S.Deferred(); 1273 function B() { 1274 E.removeEventListener("DOMContentLoaded", B), C.removeEventListener("load", B), S.ready(); 1275 } 1276 S.fn.ready = function (e) { 1277 return F.then(e)["catch"](function (e) { 1278 S.readyException(e); 1279 }), this; 1280 }, S.extend({ 1281 isReady: !1, 1282 readyWait: 1, 1283 ready: function ready(e) { 1284 (!0 === e ? --S.readyWait : S.isReady) || (S.isReady = !0) !== e && 0 < --S.readyWait || F.resolveWith(E, [S]); 1285 } 1286 }), S.ready.then = F.then, "complete" === E.readyState || "loading" !== E.readyState && !E.documentElement.doScroll ? C.setTimeout(S.ready) : (E.addEventListener("DOMContentLoaded", B), C.addEventListener("load", B)); 1287 var $ = function $(e, t, n, r, i, o, a) { 1288 var s = 0, 1289 u = e.length, 1290 l = null == n; 1291 if ("object" === w(n)) for (s in i = !0, n) $(e, t, s, n[s], !0, o, a);else if (void 0 !== r && (i = !0, m(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function t(e, _t2, n) { 1292 return l.call(S(e), n); 1293 })), t)) for (; s < u;
1293 s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); 1294 return i ? e : l ? t.call(e) : u ? t(e[0], n) : o; 1295 }, 1296 _ = /^-ms-/, 1297 z = /-([a-z])/g; 1298 function U(e, t) { 1299 return t.toUpperCase(); 1300 } 1301 function X(e) { 1302 return e.replace(_, "ms-").replace(z, U); 1303 } 1304 var V = function V(e) { 1305 return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType; 1306 }; 1307 function G() { 1308 this.expando = S.expando + G.uid++; 1309 } 1310 G.uid = 1, G.prototype = { 1311 cache: function cache(e) { 1312 var t = e[this.expando]; 1313 return t || (t = {}, V(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, { 1314 value: t, 1315 configurable: !0 1316 }))), t; 1317 }, 1318 set: function set(e, t, n) { 1319 var r, 1320 i = this.cache(e); 1321 if ("string" == typeof t) i[X(t)] = n;else for (r in t) i[X(r)] = t[r]; 1322 return i; 1323 }, 1324 get: function get(e, t) { 1325 return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][X(t)]; 1326 }, 1327 access: function access(e, t, n) { 1328 return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t); 1329 }, 1330 remove: function remove(e, t) { 1331 var n, 1332 r = e[this.expando]; 1333 if (void 0 !== r) { 1334 if (void 0 !== t) { 1335 n = (t = Array.isArray(t) ? t.map(X) : (t = X(t)) in r ? [t] : t.match(P) || []).length; 1336 while (n--) delete r[t[n]]; 1337 } 1338 (void 0 === t || S.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]); 1339 } 1340 }, 1341 hasData: function hasData(e) { 1342 var t = e[this.expando]; 1343 return void 0 !== t && !S.isEmptyObject(t); 1344 } 1345 }; 1346 var Y = new G(), 1347 Q = new G(), 1348 J = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, 1349 K = /[A-Z]/g; 1350 function Z(e, t, n) { 1351 var r, i; 1352 if (void 0 === n && 1 === e.nodeType) if (r = "data-" + t.replace(K, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(r))) { 1353 try { 1354 n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : J.test(i) ? JSON.parse(i) : i); 1355 } catch (e) {} 1356 Q.set(e, t, n); 1357 } else n = void 0; 1358 return n; 1359 } 1360 S.extend({ 1361 hasData: function hasData(e) { 1362 return Q.hasData(e) || Y.hasData(e); 1363 }, 1364 data: function data(e, t, n) { 1365 return Q.access(e, t, n); 1366 }, 1367 removeData: function removeData(e, t) { 1368 Q.remove(e, t); 1369 }, 1370 _data: function _data(e, t, n) { 1371 return Y.access(e, t, n); 1372 }, 1373 _removeData: function _removeData(e, t) { 1374 Y.remove(e, t); 1375 } 1376 }), S.fn.extend({ 1377 data: function data(n, e) { 1378 var t, 1379 r, 1380 i, 1381 o = this[0], 1382 a = o && o.attributes; 1383 if (void 0 === n) { 1384 if (this.length && (i = Q.get(o), 1 === o.nodeType && !Y.get(o, "hasDataAttrs"))) { 1385 t = a.length; 1386 while (t--) a[t] && 0 === (r = a[t].name).indexOf("data-") && (r = X(r.slice(5)), Z(o, r, i[r])); 1387 Y.set(o, "hasDataAttrs", !0); 1388 } 1389 return i; 1390 } 1391 return "object" == _typeof(n) ? this.each(function () { 1392 Q.set(this, n); 1393 }) : $(this, function (e) { 1394 var t; 1395 if (o && void 0 === e) return void 0 !== (t = Q.get(o, n)) ? t : void 0 !== (t = Z(o, n)) ? t : void 0; 1396 this.each(function () { 1397 Q.set(this, n, e); 1398 }); 1399 }, null, e, 1 < arguments.length, null, !0); 1400 }, 1401 removeData: function removeData(e) { 1402 return this.each(function () { 1403 Q.remove(this, e); 1404 }); 1405 } 1406 }), S.extend({ 1407 queue: function queue(e, t, n) { 1408 var r; 1409 if (e) return t = (t || "fx") + "queue", r = Y.get(e, t), n && (!r || Array.isArray(n) ? r = Y.access(e, t, S.makeArray(n)) : r.push(n)), r || []; 1410 }, 1411 dequeue: function dequeue(e, t) { 1412 t = t || "fx"; 1413 var n = S.queue(e, t), 1414 r = n.length, 1415 i = n.shift(), 1416 o = S._queueHooks(e, t); 1417 "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, function () { 1418 S.dequeue(e, t); 1419 }, o)), !r && o && o.empty.fire(); 1420 }, 1421 _queueHooks: function _queueHooks(e, t) { 1422 var n = t + "queueHooks"; 1423 return Y.get(e, n) || Y.access(e, n, { 1424 empty: S.Callbacks("once memory").add(function () { 1425 Y.remove(e, [t + "queue", n]); 1426 }) 1427 }); 1428 } 1429 }), S.fn.extend({ 1430 queue: function queue(t, n) { 1431 var e = 2; 1432 return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? S.queue(this[0], t) : void 0 === n ? this
1432: this.each(function () { 1433 var e = S.queue(this, t, n); 1434 S._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && S.dequeue(this, t); 1435 }); 1436 }, 1437 dequeue: function dequeue(e) { 1438 return this.each(function () { 1439 S.dequeue(this, e); 1440 }); 1441 }, 1442 clearQueue: function clearQueue(e) { 1443 return this.queue(e || "fx", []); 1444 }, 1445 promise: function promise(e, t) { 1446 var n, 1447 r = 1, 1448 i = S.Deferred(), 1449 o = this, 1450 a = this.length, 1451 s = function s() { 1452 --r || i.resolveWith(o, [o]); 1453 }; 1454 "string" != typeof e && (t = e, e = void 0), e = e || "fx"; 1455 while (a--) (n = Y.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s)); 1456 return s(), i.promise(t); 1457 } 1458 }); 1459 var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, 1460 te = new RegExp("^(?:([+-])=|)(" + ee + ")([a-z%]*)$", "i"), 1461 ne = ["Top", "Right", "Bottom", "Left"], 1462 re = E.documentElement, 1463 ie = function ie(e) { 1464 return S.contains(e.ownerDocument, e); 1465 }, 1466 oe = { 1467 composed: !0 1468 }; 1469 re.getRootNode && (ie = function ie(e) { 1470 return S.contains(e.ownerDocument, e) || e.getRootNode(oe) === e.ownerDocument; 1471 }); 1472 var ae = function ae(e, t) { 1473 return "none" === (e = t || e).style.display || "" === e.style.display && ie(e) && "none" === S.css(e, "display"); 1474 }; 1475 function se(e, t, n, r) { 1476 var i, 1477 o, 1478 a = 20, 1479 s = r ? function () { 1480 return r.cur(); 1481 } : function () { 1482 return S.css(e, t, ""); 1483 }, 1484 u = s(), 1485 l = n && n[3] || (S.cssNumber[t] ? "" : "px"), 1486 c = e.nodeType && (S.cssNumber[t] || "px" !== l && +u) && te.exec(S.css(e, t)); 1487 if (c && c[3] !== l) { 1488 u /= 2, l = l || c[3], c = +u || 1; 1489 while (a--) S.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o; 1490 c *= 2, S.style(e, t, c + l), n = n || []; 1491 } 1492 return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i; 1493 } 1494 var ue = {}; 1495 function le(e, t) { 1496 for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++) (r = e[c]).style && (n = r.style.display, t ? ("none" === n && (l[c] = Y.get(r, "dis
vendor: 11,140 bytes, lines 1496-1738
1496play") || null, l[c] || (r.style.display = "")), "" === r.style.display && ae(r) && (l[c] = (u = a = o = void 0, a = (i = r).ownerDocument, s = i.nodeName, (u = ue[s]) || (o = a.body.appendChild(a.createElement(s)), u = S.css(o, "display"), o.parentNode.removeChild(o), "none" === u && (u = "block"), ue[s] = u)))) : "none" !== n && (l[c] = "none", Y.set(r, "display", n))); 1497 for (c = 0; c < f; c++) null != l[c] && (e[c].style.display = l[c]); 1498 return e; 1499 } 1500 S.fn.extend({ 1501 show: function show() { 1502 return le(this, !0); 1503 }, 1504 hide: function hide() { 1505 return le(this); 1506 }, 1507 toggle: function toggle(e) { 1508 return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () { 1509 ae(this) ? S(this).show() : S(this).hide(); 1510 }); 1511 } 1512 }); 1513 var ce, 1514 fe, 1515 pe = /^(?:checkbox|radio)$/i, 1516 de = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, 1517 he = /^$|^module$|\/(?:java|ecma)script/i; 1518 ce = E.createDocumentFragment().appendChild(E.createElement("div")), (fe = E.createElement("input")).setAttribute("type", "radio"), fe.setAttribute("checked", "checked"), fe.setAttribute("name", "t"), ce.appendChild(fe), y.checkClone = ce.cloneNode(!0).cloneNode(!0).lastChild.checked, ce.innerHTML = "<textarea>x</textarea>", y.noCloneChecked = !!ce.cloneNode(!0).lastChild.defaultValue, ce.innerHTML = "<option></option>", y.option = !!ce.lastChild; 1519 var ge = { 1520 thead: [1, "<table>", "</table>"], 1521 col: [2, "<table><colgroup>", "</colgroup></table>"], 1522 tr: [2, "<table><tbody>", "</tbody></table>"], 1523 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], 1524 _default: [0, "", ""] 1525 }; 1526 function ve(e, t) { 1527 var n; 1528 return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && A(e, t) ? S.merge([e], n) : n; 1529 } 1530 function ye(e, t) { 1531 for (var n = 0, r = e.length; n < r; n++) Y.set(e[n], "globalEval", !t || Y.get(t[n], "globalEval")); 1532 } 1533 ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td, y.option || (ge.optgroup = ge.option = [1, "<select multiple='multiple'>", "</select>"]); 1534 var me = /<|&#?\w+;/; 1535 function xe(e, t, n, r, i) { 1536 for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++) if ((o = e[d]) || 0 === o) if ("object" === w(o)) S.merge(p, o.nodeType ? [o] : o);else if (me.test(o)) { 1537 a = a || f.appendChild(t.createElement("div")), s = (de.exec(o) || ["", ""])[1].toLowerCase(), u = ge[s] || ge._default, a.innerHTML = u[1] + S.htmlPrefilter(o) + u[2], c = u[0]; 1538 while (c--) a = a.lastChild; 1539 S.merge(p, a.childNodes), (a = f.firstChild).textContent = ""; 1540 } else p.push(t.createTextNode(o)); 1541 f.textContent = "", d = 0; 1542 while (o = p[d++]) if (r && -1 < S.inArray(o, r)) i && i.push(o);else if (l = ie(o), a = ve(f.appendChild(o), "script"), l && ye(a), n) { 1543 c = 0; 1544 while (o = a[c++]) he.test(o.type || "") && n.push(o); 1545 } 1546 return f; 1547 } 1548 var be = /^key/, 1549 we = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, 1550 Te = /^([^.]*)(?:\.(.+)|)/; 1551 function Ce() { 1552 return !0; 1553 } 1554 function Ee() { 1555 return !1; 1556 } 1557 function Se(e, t) { 1558 return e === function () { 1559 try { 1560 return E.activeElement; 1561 } catch (e) {} 1562 }() == ("focus" === t); 1563 } 1564 function ke(e, t, n, r, i, o) { 1565 var a, s; 1566 if ("object" == _typeof(t)) { 1567 for (s in "string" != typeof n && (r = r || n, n = void 0), t) ke(e, s, n, r, t[s], o); 1568 return e; 1569 } 1570 if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = Ee;else if (!i) return e; 1571 return 1 === o && (a = i, (i = function i(e) { 1572 return S().off(e), a.apply(this, arguments); 1573 }).guid = a.guid || (a.guid = S.guid++)), e.each(function () { 1574 S.event.add(this, t, i, r, n); 1575 }); 1576 } 1577 function Ae(e, i, o) { 1578 o ? (Y.set(e, i, !1), S.event.add(e, i, { 1579 namespace: !1, 1580 handler: function handler(e) { 1581 var t, 1582 n, 1583 r = Y.get(this, i); 1584 if (1 & e.isTrigger && this[i]) { 1585 if (r.length) (S.event.special[i] || {}).delegateType && e.stopPropagation();else if (r = s.call(arguments), Y.set(this, i, r), t = o(this, i), this[i](), r !== (n = Y.get(this, i)) || t ? Y.set(this, i, !1) : n = {}, r !== n) return e.stopImmediatePropagation(), e.preventDefault(), n.value; 1586 } else r.length && (Y.set(this, i, { 1587 value: S.event.trigger(S.extend(r[0], S.Event.prototype), r.slice(1), this) 1588 }), e.stopImmediatePropagation()); 1589 } 1590 })) : void 0 === Y.get(e, i) && S.event.add(e, i, Ce); 1591 } 1592 S.event = { 1593 global: {}, 1594 add: function add(t, e, n, r, i) { 1595 var o, 1596 a, 1597 s, 1598 u, 1599 l, 1600 c, 1601 f, 1602 p, 1603 d, 1604 h, 1605 g, 1606 v = Y.get(t); 1607 if (V(t)) { 1608 n.handler && (n = (o = n).handler, i = o.selector), i && S.find.matchesSelector(re, i), n.guid || (n.guid = S.guid++), (u = v.events) || (u = v.events = Object.create(null)), (a = v.handle) || (a = v.handle = function (e) { 1609 return "undefined" != typeof S && S.event.triggered !== e.type ? S.event.dispatch.apply(t, arguments) : void 0; 1610 }), l = (e = (e || "").match(P) || [""]).length; 1611 while (l--) d = g = (s = Te.exec(e[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = S.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = S.event.special[d] || {}, c = S.extend({ 1612 type: d, 1613 origType: g, 1614 data: r, 1615 handler: n, 1616 guid: n.guid, 1617 selector: i, 1618 needsContext: i && S.expr.match.needsContext.test(i), 1619 namespace: h.join(".") 1620 }, o), (p = u[d]) || ((p = u[d] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(t, r, h, a) || t.addEventListener && t.addEventListener(d, a)), f.add && (f.add.call(t, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), S.event.global[d] = !0); 1621 } 1622 }, 1623 remove: function remove(e, t, n, r, i) { 1624 var o, 1625 a, 1626 s, 1627 u, 1628 l, 1629 c, 1630 f, 1631 p, 1632 d, 1633 h, 1634 g, 1635 v = Y.hasData(e) && Y.get(e); 1636 if (v && (u = v.events)) { 1637 l = (t = (t || "").match(P) || [""]).length; 1638 while (l--) if (d = g = (s = Te.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d) { 1639 f = S.event.special[d] || {}, p = u[d = (r ? f.delegateType : f.bindType) || d] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length; 1640 while (o--) c = p[o], !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c)); 1641 a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, v.handle) || S.removeEvent(e, d, v.handle), delete u[d]); 1642 } else for (d in u) S.event.remove(e, d + t[l], n, r, !0); 1643 S.isEmptyObject(u) && Y.remove(e, "handle events"); 1644 } 1645 }, 1646 dispatch: function dispatch(e) { 1647 var t, 1648 n, 1649 r, 1650 i, 1651 o, 1652 a, 1653 s = new Array(arguments.length), 1654 u = S.event.fix(e), 1655 l = (Y.get(this, "events") || Object.create(null))[u.type] || [], 1656 c = S.event.special[u.type] || {}; 1657 for (s[0] = u, t = 1; t < arguments.length; t++) s[t] = arguments[t]; 1658 if (u.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, u)) { 1659 a = S.event.handlers.call(this, u, l), t = 0; 1660 while ((i = a[t++]) && !u.isPropagationStopped()) { 1661 u.currentTarget = i.elem, n = 0; 1662 while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped()) u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace) || (u.handleObj = o, u.data = o.data, void 0 !== (r = ((S.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && !1 === (u.result = r) && (u.preventDefault(), u.stopPropagation())); 1663 } 1664 return c.postDispatch && c.postDispatch.call(this, u), u.result; 1665 } 1666 }, 1667 handlers: function handlers(e, t) { 1668 var n, 1669 r, 1670 i, 1671 o, 1672 a, 1673 s = [], 1674 u = t.delegateCount, 1675 l = e.target; 1676 if (u && l.nodeType && !("click" === e.type && 1 <= e.button)) for (; l !== this; l = l.parentNode || this) if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) { 1677 for (o = [], a = {}, n = 0; n < u; n++) void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? -1 < S(i, this).index(l) : S.find(i, this, null, [l]).length), a[i] && o.push(r); 1678 o.length && s.push({ 1679 elem: l, 1680 handlers: o 1681 }); 1682 } 1683 return l = this, u < t.length && s.push({ 1684 elem: l, 1685 handlers: t.slice(u) 1686 }), s; 1687 }, 1688 addProp: function addProp(t, e) { 1689 Object.defineProperty(S.Event.prototype, t, { 1690 enumerable: !0, 1691 configurable: !0, 1692 get: m(e) ? function () { 1693 if (this.originalEvent) return e(this.originalEvent); 1694 } : function () { 1695 if (this.originalEvent) return this.originalEvent[t]; 1696 }, 1697 set: function set(e) { 1698 Object.defineProperty(this, t, { 1699 enumerable: !0, 1700 configurable: !0, 1701 writable: !0, 1702 value: e 1703 }); 1704 } 1705 }); 1706 }, 1707 fix: function fix(e) { 1708 return e[S.expando] ? e : new S.Event(e); 1709 }, 1710 special: { 1711 load: { 1712 noBubble: !0 1713 }, 1714 click: { 1715 setup: function setup(e) { 1716 var t = this || e; 1717 return pe.test(t.type) && t.click && A(t, "input") && Ae(t, "click", Ce), !1; 1718 }, 1719 trigger: function trigger(e) { 1720 var t = this || e; 1721 return pe.test(t.type) && t.click && A(t, "input") && Ae(t, "click"), !0; 1722 }, 1723 _default: function _default(e) { 1724 var t = e.target; 1725 return pe.test(t.type) && t.click && A(t, "input") && Y.get(t, "click") || A(t, "a"); 1726 } 1727 }, 1728 beforeunload: { 1729 postDispatch: function postDispatch(e) { 1730 void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result); 1731 } 1732 } 1733 } 1734 }, S.removeEvent = function (e, t, n) { 1735 e.removeEventListener && e.removeEventListener(t, n); 1736 }, S.Event = function (e, t) { 1737 if (!(this instanceof S.Event)) return new S.Event(e, t); 1738 e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ce : Ee, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && S.extend(this, t), this.timeStamp = e && e.t
1738imeStamp || Date.now(), this[S.expando] = !0; 1739 }, S.Event.prototype = { 1740 constructor: S.Event, 1741 isDefaultPrevented: Ee, 1742 isPropagationStopped: Ee, 1743 isImmediatePropagationStopped: Ee, 1744 isSimulated: !1, 1745 preventDefault: function preventDefault() { 1746 var e = this.originalEvent; 1747 this.isDefaultPrevented = Ce, e && !this.isSimulated && e.preventDefault(); 1748 }, 1749 stopPropagation: function stopPropagation() { 1750 var e = this.originalEvent; 1751 this.isPropagationStopped = Ce, e && !this.isSimulated && e.stopPropagation(); 1752 }, 1753 stopImmediatePropagation: function stopImmediatePropagation() { 1754 var e = this.originalEvent; 1755 this.isImmediatePropagationStopped = Ce, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation(); 1756 } 1757 }, S.each({ 1758 altKey: !0, 1759 bubbles: !0, 1760 cancelable: !0, 1761 changedTouches: !0, 1762 ctrlKey: !0, 1763 detail: !0, 1764 eventPhase: !0, 1765 metaKey: !0, 1766 pageX: !0, 1767 pageY: !0, 1768 shiftKey: !0, 1769 view: !0, 1770 "char": !0, 1771 code: !0, 1772 charCode: !0, 1773 key: !0, 1774 keyCode: !0, 1775 button: !0, 1776 buttons: !0, 1777 clientX: !0, 1778 clientY: !0, 1779 offsetX: !0, 1780 offsetY: !0, 1781 pointerId: !0, 1782 pointerType: !0, 1783 screenX: !0, 1784 screenY: !0, 1785 targetTouches: !0, 1786 toElement: !0, 1787 touches: !0, 1788 which: function which(e) { 1789 var t = e.button; 1790 return null == e.which && be.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && we.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which; 1791 } 1792 }, S.event.addProp), S.each({ 1793 focus: "focusin", 1794 blur: "focusout" 1795 }, function (e, t) { 1796 S.event.special[e] = { 1797 setup: function setup() { 1798 return Ae(this, e, Se), !1; 1799 }, 1800 trigger: function trigger() { 1801 return Ae(this, e), !0; 1802 }, 1803 delegateType: t 1804 }; 1805 }), S.each({ 1806 mouseenter: "mouseover", 1807 mouseleave: "mouseout", 1808 pointerenter: "pointerover", 1809 pointerleave: "pointerout" 1810 }, function (e, i) { 1811 S.event.special[e] = { 1812 delegateType: i, 1813 bindType: i, 1814 handle: function handle(e) { 1815 var t, 1816 n = e.relatedTarget, 1817 r = e.handleObj; 1818 return n && (n === this || S.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t; 1819 } 1820 }; 1821 }), S.fn.extend({ 1822 on: function on(e, t, n, r) { 1823 return ke(this, e, t, n, r); 1824 }, 1825 one: function one(e, t, n, r) { 1826 return ke(this, e, t, n, r, 1); 1827 }, 1828 off: function off(e, t, n) { 1829 var r, i; 1830 if (e && e.preventDefault && e.handleObj) return r = e.handleObj, S(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; 1831 if ("object" == _typeof(e)) { 1832 for (i in e) this.off(i, t, e[i]); 1833 return this; 1834 } 1835 return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = Ee), this.each(function () { 1836 S.event.remove(this, e, n, t); 1837 }); 1838 } 1839 }); 1840 var Ne = /<script|<style|<link/i, 1841 De = /checked\s*(?:[^=]|=\s*.checked.)/i, 1842 je = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; 1843 function qe(e, t) { 1844 return A(e, "table") && A(11 !== t.nodeType ? t : t.firstChild, "tr") && S(e).children("tbody")[0] || e; 1845 } 1846 function Le(e) { 1847 return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e; 1848 } 1849 function He(e) { 1850 return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e; 1851 } 1852 function Oe(e, t) { 1853 var n, r, i, o, a, s; 1854 if (1 === t.nodeType) { 1855 if (Y.hasData(e) && (s = Y.get(e).events)) for (i in Y.remove(t, "handle events"), s) for (n = 0, r = s[i].length; n < r; n++) S.event.add(t, i, s[i][n]); 1856 Q.hasData(e) && (o = Q.access(e), a = S.extend({}, o), Q.set(t, a)); 1857 } 1858 } 1859 function Pe(n, r, i, o) { 1860 r = g(r); 1861 var e, 1862 t, 1863 a, 1864 s, 1865 u, 1866 l, 1867 c = 0, 1868 f = n.length, 1869 p = f - 1, 1870 d = r[0], 1871 h = m(d); 1872 if (h || 1 < f && "string" == typeof d && !y.checkClone && De.test(d)) return n.each(function (e) { 1873 var t = n.eq(e); 1874 h && (r[0] = d.call(this, e, t.html())), Pe(t, r, i, o); 1875 }); 1876 if (f && (t = (e = xe(r, n[0].ownerDocument, !1, n, o)).firstChild, 1 === e.childNodes.length && (e = t), t || o)) { 1877 for (s = (a = S.map(ve(e, "script"), Le)).length; c < f; c++) u = e, c !== p && (u = S.clone(u, !0, !0), s && S.merge(a, ve(u, "script"))), i.call(n[c], u, c); 1878 if (s) for (l = a[a.length - 1].ownerDocument, S.map(a, He), c = 0; c < s; c++) u = a[c], he.test(u.type || "") && !Y.access(u, "globalEval") && S.contains(l, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? S._evalUrl && !u.noModule && S._evalUrl(u.src, { 1879 nonce: u.nonce || u.getAttribute("nonce") 1880 }, l) : b(u.textContent.replace(je, ""), u, l)); 1881 } 1882 return n; 1883 } 1884 function Re(e, t, n) { 1885 for (var r, i = t ? S.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || S.cleanData(ve(r)), r.parentNode && (n && ie(r) && ye(ve(r, "script")), r.parentNode.removeChild(r)); 1886 return e; 1887 } 1888 S.extend({ 1889 htmlPrefilter: function htmlPrefilter(e) { 1890 return e; 1891 }, 1892 clone: function clone(e, t, n) { 1893 var r, 1894 i, 1895 o, 1896 a, 1897 s, 1898 u, 1899 l, 1900 c = e.cloneNode(!0), 1901 f = ie(e);
1902 if (!(y.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || S.isXMLDoc(e))) for (a = ve(c), r = 0, i = (o = ve(e)).length; r < i; r++) s = o[r], u = a[r], void 0, "input" === (l = u.nodeName.toLowerCase()) && pe.test(s.type) ? u.checked = s.checked : "input" !== l && "textarea" !== l || (u.defaultValue = s.defaultValue); 1903 if (t) if (n) for (o = o || ve(e), a = a || ve(c), r = 0, i = o.length; r < i; r++) Oe(o[r], a[r]);else Oe(e, c); 1904 return 0 < (a = ve(c, "script")).length && ye(a, !f && ve(e, "script")), c; 1905 }, 1906 cleanData: function cleanData(e) { 1907 for (var t, n, r, i = S.event.special, o = 0; void 0 !== (n = e[o]); o++) if (V(n)) { 1908 if (t = n[Y.expando]) { 1909 if (t.events) for (r in t.events) i[r] ? S.event.remove(n, r) : S.removeEvent(n, r, t.handle); 1910 n[Y.expando] = void 0; 1911 } 1912 n[Q.expando] && (n[Q.expando] = void 0); 1913 } 1914 } 1915 }), S.fn.extend({ 1916 detach: function detach(e) { 1917 return Re(this, e, !0); 1918 }, 1919 remove: function remove(e) { 1920 return Re(this, e); 1921 }, 1922 text: function text(e) { 1923 return $(this, function (e) { 1924 return void 0 === e ? S.text(this) : this.empty().each(function () { 1925 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e); 1926 }); 1927 }, null, e, arguments.length); 1928 }, 1929 append: function append() { 1930 return Pe(this, arguments, function (e) { 1931 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || qe(this, e).appendChild(e); 1932 }); 1933 }, 1934 prepend: function prepend() { 1935 return Pe(this, arguments, function (e) { 1936 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { 1937 var t = qe(this, e); 1938 t.insertBefore(e, t.firstChild); 1939 } 1940 }); 1941 }, 1942 before: function before() { 1943 return Pe(this, arguments, function (e) { 1944 this.parentNode && this.parentNode.insertBefore(e, this); 1945 }); 1946 }, 1947 after: function after() { 1948 return Pe(this, arguments, function (e) { 1949 this.parentNode && this.parentNode.insertBefore(e, this.nextSibling); 1950 }); 1951 }, 1952 empty: function empty() { 1953 for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (S.cleanData(ve(e, !1)), e.textContent = ""); 1954 return this; 1955 }, 1956 clone: function clone(e, t) { 1957 return e = null != e && e, t = null == t ? e : t, this.map(function () { 1958 return S.clone(this, e, t); 1959 }); 1960 }, 1961 html: function html(e) { 1962 return $(this, function (e) { 1963 var t = this[0] || {}, 1964 n = 0, 1965 r = this.length; 1966 if (void 0 === e && 1 === t.nodeType) return t.innerHTML; 1967 if ("string" == typeof e && !Ne.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) { 1968 e = S.htmlPrefilter(e); 1969 try { 1970 for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (S.cleanData(ve(t, !1)), t.innerHTML = e); 1971 t = 0; 1972 } catch (e) {} 1973 } 1974 t && this.empty().append(e); 1975 }, null, e, arguments.length); 1976 }, 1977 replaceWith: function replaceWith() { 1978 var n = []; 1979 return Pe(this, arguments, function (e) { 1980 var t = this.parentNode; 1981 S.inArray(this, n) < 0 && (S.cleanData(ve(this)), t && t.replaceChild(e, this)); 1982 }, n); 1983 } 1984 }), S.each({ 1985 appendTo: "append", 1986 prependTo: "prepend", 1987 insertBefore: "before", 1988 insertAfter: "after", 1989 replaceAll: "replaceWith" 1990 }, function (e, a) { 1991 S.fn[e] = function (e) { 1992 for (var t, n = [], r = S(e), i = r.length - 1, o = 0; o <= i; o++) t = o === i ? this : this.clone(!0), S(r[o])[a](t), u.apply(n, t.get()); 1993 return this.pushStack(n); 1994 }; 1995 }); 1996 var Me = new RegExp("^(" + ee + ")(?!px)[a-z%]+$", "i"), 1997 Ie = function Ie(e) { 1998 var t = e.ownerDocument.defaultView; 1999 return t && t.opener || (t = C), t.getComputedStyle(e); 2000 }, 2001 We = function We(e, t, n) { 2002 var r, 2003 i, 2004 o = {}; 2005 for (i in t) o[i] = e.style[i], e.style[i] = t[i]; 2006 for (i in r = n.call(e), t) e.style[i] = o[i]; 2007 return r; 2008 }, 2009 Fe = new RegExp(ne.join("|"), "i"); 2010 function Be(e, t, n) { 2011 var r, 2012 i, 2013 o, 2014 a, 2015 s = e.style; 2016 return (n = n || Ie(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || ie(e) || (a = S.style(e, t)), !y.pixelBoxStyles() && Me.test(a) && Fe.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + "" : a; 2017 } 2018 function $e(e, t) { 2019 return { 2020 get: function get() { 2021 if (!e()) return (this.get = t).apply(this, arguments); 2022 delete this.get; 2023 } 2024 }; 2025 } 2026 !function () { 2027 function e() { 2028 if (l) { 2029 u.style.cssText = "position:absolute;
2029left:-11111px;width:60px;margin-top:1px;padding:0;border:0", l.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", re.appendChild(u).appendChild(l); 2030 var e = C.getComputedStyle(l); 2031 n = "1%" !== e.top, s = 12 === t(e.marginLeft), l.style.right = "60%", o = 36 === t(e.right), r = 36 === t(e.width), l.style.position = "absolute", i = 12 === t(l.offsetWidth / 3), re.removeChild(u), l = null; 2032 } 2033 } 2034 function t(e) { 2035 return Math.round(parseFloat(e)); 2036 } 2037 var n, 2038 r, 2039 i, 2040 o, 2041 a, 2042 s, 2043 u = E.createElement("div"), 2044 l = E.createElement("div"); 2045 l.style && (l.style.backgroundClip = "content-box", l.cloneNode(!0).style.backgroundClip = "", y.clearCloneStyle = "content-box" === l.style.backgroundClip, S.extend(y, { 2046 boxSizingReliable: function boxSizingReliable() { 2047 return e(), r; 2048 }, 2049 pixelBoxStyles: function pixelBoxStyles() { 2050 return e(), o; 2051 }, 2052 pixelPosition: function pixelPosition() { 2053 return e(), n; 2054 }, 2055 reliableMarginLeft: function reliableMarginLeft() { 2056 return e(), s; 2057 }, 2058 scrollboxSize: function scrollboxSize() { 2059 return e(), i; 2060 }, 2061 reliableTrDimensions: function reliableTrDimensions() { 2062 var e, t, n, r; 2063 return null == a && (e = E.createElement("table"), t = E.createElement("tr"), n = E.createElement("div"), e.style.cssText = "position:absolute;left:-11111px", t.style.height = "1px", n.style.height = "9px", re.appendChild(e).appendChild(t).appendChild(n), r = C.getComputedStyle(t), a = 3 < parseInt(r.height), re.removeChild(e)), a; 2064 } 2065 })); 2066 }(); 2067 var _e = ["Webkit", "Moz", "ms"], 2068 ze = E.createElement("div").style, 2069 Ue = {}; 2070 function Xe(e) { 2071 var t = S.cssProps[e] || Ue[e]; 2072 return t || (e in ze ? e : Ue[e] = function (e) { 2073 var t = e[0].toUpperCase() + e.slice(1), 2074 n = _e.length; 2075 while (n--) if ((e = _e[n] + t) in ze) return e; 2076 }(e) || e); 2077 } 2078 var Ve = /^(none|table(?!-c[ea]).+)/, 2079 Ge = /^--/, 2080 Ye = { 2081 position: "absolute", 2082 visibility: "hidden", 2083 display: "block" 2084 }, 2085 Qe = { 2086 letterSpacing: "0", 2087 fontWeight: "400" 2088 }; 2089 function Je(e, t, n) { 2090 var r = te.exec(t); 2091 return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t; 2092 } 2093 function Ke(e, t, n, r, i, o) { 2094 var a = "width" === t ? 1 : 0, 2095 s = 0, 2096 u = 0; 2097 if (n === (r ? "border" : "content")) return 0; 2098 for (; a < 4; a += 2) "margin" === n && (u += S.css(e, n + ne[a], !0, i)), r ? ("content" === n && (u -= S.css(e, "padding" + ne[a], !0, i)), "margin" !== n && (u -= S.css(e, "border" + ne[a] + "Width", !0, i))) : (u += S.css(e, "padding" + ne[a], !0, i), "padding" !== n ? u += S.css(e, "border" + ne[a] + "Width", !0, i) : s += S.css(e, "border" + ne[a] + "Width", !0, i)); 2099 return !r && 0 <= o && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5)) || 0), u; 2100 } 2101 function Ze(e, t, n) { 2102 var r = Ie(e), 2103 i = (!y.boxSizingReliable() || n) && "border-box" === S.css(e, "boxSizing", !1, r), 2104 o = i, 2105 a = Be(e, t, r), 2106 s = "offset" + t[0].toUpperCase() + t.slice(1); 2107 if (Me.test(a)) { 2108 if (!n) return a; 2109 a = "auto"; 2110 } 2111 return (!y.boxSizingReliable() && i || !y.reliableTrDimensions() && A(e, "tr") || "auto" === a || !parseFloat(a) && "inline" === S.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === S.css(e, "boxSizing", !1, r), (o = s in e) && (a = e[s])), (a = parseFloat(a) || 0) + Ke(e, t, n || (i ? "border" : "content"), o, r, a) + "px"; 2112 } 2113 function et(e, t, n, r, i) { 2114 return new et.prototype.init(e, t, n, r, i); 2115 } 2116 S.extend({ 2117 cssHooks: { 2118 opacity: { 2119 get: function get(e, t) { 2120 if (t) { 2121 var n = Be(e, "opacity"); 2122 return "" === n ? "1" : n; 2123 } 2124 } 2125 } 2126 }, 2127 cssNumber: { 2128 animationIterationCount: !0, 2129 columnCount: !0, 2130 fillOpacity: !0, 2131 flexGrow: !0, 2132 flexShrink: !0, 2133 fontWeight: !0, 2134 gridArea: !0, 2135 gridColumn: !0, 2136 gridColumnEnd: !0, 2137 gridColumnStart: !0, 2138 gridRow: !0, 2139 gridRowEnd: !0, 2140 gridRowStart: !0, 2141 lineHeight: !0, 2142 opacity: !0, 2143 order: !0, 2144 orphans: !0, 2145 widows: !0, 2146 zIndex: !0, 2147 zoom: !0 2148 }, 2149 cssProps: {}, 2150 style: function style(e, t, n, r) { 2151 if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { 2152 var i, 2153 o, 2154 a, 2155 s = X(t),
2156 u = Ge.test(t), 2157 l = e.style; 2158 if (u || (t = Xe(s)), a = S.cssHooks[t] || S.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; 2159 "string" === (o = _typeof(n)) && (i = te.exec(n)) && i[1] && (n = se(e, t, i), o = "number"), null != n && n == n && ("number" !== o || u || (n += i && i[3] || (S.cssNumber[s] ? "" : "px")), y.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, r)) || (u ? l.setProperty(t, n) : l[t] = n)); 2160 } 2161 }, 2162 css: function css(e, t, n, r) { 2163 var i, 2164 o, 2165 a, 2166 s = X(t); 2167 return Ge.test(t) || (t = Xe(s)), (a = S.cssHooks[t] || S.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = Be(e, t, r)), "normal" === i && t in Qe && (i = Qe[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i; 2168 } 2169 }), S.each(["height", "width"], function (e, u) { 2170 S.cssHooks[u] = { 2171 get: function get(e, t, n) { 2172 if (t) return !Ve.test(S.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? Ze(e, u, n) : We(e, Ye, function () { 2173 return Ze(e, u, n); 2174 }); 2175 }, 2176 set: function set(e, t, n) { 2177 var r, 2178 i = Ie(e), 2179 o = !y.scrollboxSize() && "absolute" === i.position, 2180 a = (o || n) && "border-box" === S.css(e, "boxSizing", !1, i), 2181 s = n ? Ke(e, u, n, a, i) : 0; 2182 return a && o && (s -= Math.ceil(e["offset" + u[0].toUpperCase() + u.slice(1)] - parseFloat(i[u]) - Ke(e, u, "border", !1, i) - .5)), s && (r = te.exec(t)) && "px" !== (r[3] || "px") && (e.style[u] = t, t = S.css(e, u)), Je(0, t, s); 2183 } 2184 }; 2185 }), S.cssHooks.marginLeft = $e(y.reliableMarginLeft, function (e, t) { 2186 if (t) return (parseFloat(Be(e, "marginLeft")) || e.getBoundingClientRect().left - We(e, { 2187 marginLeft: 0 2188 }, function () { 2189 return e.getBoundingClientRect().left; 2190 })) + "px"; 2191 }), S.each({ 2192 margin: "", 2193 padding: "", 2194 border: "Width" 2195 }, function (i, o) { 2196 S.cssHooks[i + o] = { 2197 expand: function expand(e) { 2198 for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++) n[i + ne[t] + o] = r[t] || r[t - 2] || r[0]; 2199 return n; 2200 } 2201 }, "margin" !== i && (S.cssHooks[i + o].set = Je); 2202 }), S.fn.extend({ 2203 css: function css(e, t) { 2204 return $(this, function (e, t, n) { 2205 var r, 2206 i, 2207 o = {}, 2208 a = 0; 2209 if (Array.isArray(t)) { 2210 for (r = Ie(e), i = t.length; a < i; a++) o[t[a]] = S.css(e, t[a], !1, r); 2211 return o; 2212 } 2213 return void 0 !== n ? S.style(e, t, n) : S.css(e, t); 2214 }, e, t, 1 < arguments.length); 2215 } 2216 }), ((S.Tween = et).prototype = { 2217 constructor: et, 2218 init: function init(e, t, n, r, i, o) { 2219 this.elem = e, this.prop = n, this.easing = i || S.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (S.cssNumber[n] ? "" : "px"); 2220 }, 2221 cur: function cur() { 2222 var e = et.propHooks[this.prop]; 2223 return e && e.get ? e.get(this) : et.propHooks._default.get(this); 2224 }, 2225 run: function run(e) { 2226 var t, 2227 n = et.propHooks[this.prop]; 2228 return this.options.duration ? this.pos = t = S.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : et.propHooks._default.set(this), this; 2229 } 2230 }).init.prototype = et.prototype, (et.propHooks = { 2231 _default: { 2232 get: function get(e) { 2233 var t; 2234 return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = S.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0; 2235 }, 2236 set: function set(e) { 2237 S.fx.step[e.prop] ? S.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !S.cssHooks[e.prop] && null == e.elem.style[Xe(e.prop)] ? e.elem[e.prop] = e.now : S.style(e.elem, e.prop, e.now + e.unit); 2238 } 2239 } 2240 }).scrollTop = et.propHooks.scrollLeft = { 2241 set: function set(e) { 2242 e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now); 2243 } 2244 }, S.easing = { 2245 linear: function linear(e) { 2246 return e; 2247 }, 2248 swing: function swing(e) { 2249 return .5 - Math.cos(e * Math.PI) / 2; 2250 }, 2251 _default: "swing" 2252 }, S.fx = et.prototype.init, S.fx.step = {}; 2253 var tt, 2254 nt, 2255 rt, 2256 it, 2257 ot = /^(?:toggle|show|hide)$/, 2258 at = /queueHooks$/; 2259 function st() { 2260 nt && (!1 === E.hidden && C.requestAnimationFrame ? C.requestAnimationFrame(st) : C.setTimeout(st, S.fx.interval), S.fx.tick()); 2261 } 2262 function ut() { 2263 return C.setTimeout(function () { 2264 tt = void 0; 2265 }), tt = Date.now(); 2266 } 2267 function lt(e, t) { 2268 var n, 2269 r = 0, 2270 i = { 2271 height: e 2272 }; 2273 for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = ne[r])] = i["padding" + n] = e;
2274 return t && (i.opacity = i.width = e), i; 2275 } 2276 function ct(e, t, n) { 2277 for (var r, i = (ft.tweeners[t] || []).concat(ft.tweeners["*"]), o = 0, a = i.length; o < a; o++) if (r = i[o].call(n, t, e)) return r; 2278 } 2279 function ft(o, e, t) { 2280 var n, 2281 a, 2282 r = 0, 2283 i = ft.prefilters.length, 2284 s = S.Deferred().always(function () { 2285 delete u.elem; 2286 }), 2287 u = function u() { 2288 if (a) return !1; 2289 for (var e = tt || ut(), t = Math.max(0, l.startTime + l.duration - e), n = 1 - (t / l.duration || 0), r = 0, i = l.tweens.length; r < i; r++) l.tweens[r].run(n); 2290 return s.notifyWith(o, [l, n, t]), n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l]), !1); 2291 }, 2292 l = s.promise({ 2293 elem: o, 2294 props: S.extend({}, e), 2295 opts: S.extend(!0, { 2296 specialEasing: {}, 2297 easing: S.easing._default 2298 }, t), 2299 originalProperties: e, 2300 originalOptions: t, 2301 startTime: tt || ut(), 2302 duration: t.duration, 2303 tweens: [], 2304 createTween: function createTween(e, t) { 2305 var n = S.Tween(o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing); 2306 return l.tweens.push(n), n; 2307 }, 2308 stop: function stop(e) { 2309 var t = 0, 2310 n = e ? l.tweens.length : 0; 2311 if (a) return this; 2312 for (a = !0; t < n; t++) l.tweens[t].run(1); 2313 return e ? (s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]), this; 2314 } 2315 }), 2316 c = l.props; 2317 for (!function (e, t) { 2318 var n, r, i, o, a; 2319 for (n in e) if (i = t[r = X(n)], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = S.cssHooks[r]) && ("expand" in a)) for (n in o = a.expand(o), delete e[r], o) (n in e) || (e[n] = o[n], t[n] = i);else t[r] = i; 2320 }(c, l.opts.specialEasing); r < i; r++) if (n = ft.prefilters[r].call(l, o, c, l.opts)) return m(n.stop) && (S._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), n; 2321 return S.map(c, ct, l), m(l.opts.start) && l.opts.start.call(o, l), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), S.fx.timer(S.extend(u, { 2322 elem: o, 2323 anim: l, 2324 queue: l.opts.queue 2325 })), l; 2326 } 2327 S.Animation = S.extend(ft, { 2328 tweeners: { 2329 "*": [function (e, t) { 2330 var n = this.createTween(e, t); 2331 return se(n.elem, e, te.exec(t), n), n; 2332 }] 2333 }, 2334 tweener: function tweener(e, t) { 2335 m(e) ? (t = e, e = ["*"]) : e = e.match(P); 2336 for (var n, r = 0, i = e.length; r < i; r++) n = e[r], ft.tweeners[n] = ft.tweeners[n] || [], ft.tweeners[n].unshift(t); 2337 }, 2338 prefilters: [function (e, t, n) { 2339 var r, 2340 i, 2341 o, 2342 a, 2343 s, 2344 u, 2345 l, 2346 c, 2347 f = "width" in t || "height" in t, 2348 p = this, 2349 d = {}, 2350 h = e.style, 2351 g = e.nodeType && ae(e), 2352 v = Y.get(e, "fxshow"); 2353 for (r in n.queue || (null == (a = S._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function () { 2354 a.unqueued || s(); 2355 }), a.unqueued++, p.always(function () { 2356 p.always(function () { 2357 a.unqueued--, S.queue(e, "fx").length || a.empty.fire(); 2358 }); 2359 })), t) if (i = t[r], ot.test(i)) { 2360 if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) { 2361 if ("show" !== i || !v || void 0 === v[r]) continue; 2362 g = !0; 2363 } 2364 d[r] = v && v[r] || S.style(e, r); 2365 } 2366 if ((u = !S.isEmptyObject(t)) || !S.isEmptyObject(d)) for (r in f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (l = v && v.display) && (l = Y.get(e, "display")), "none" === (c = S.css(e, "display")) && (l ? c = l : (le([e], !0), l = e.style.display || l, c = S.css(e, "display"), le([e]))), ("inline" === c || "inline-block" === c && null != l) && "none" === S.css(e, "float") && (u || (p.done(function () { 2367 h.display = l; 2368 }), null == l && (c = h.display, l = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", p.always(function () { 2369 h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2]; 2370 })), u = !1, d) u || (v ? "hidden" in v && (g = v.hidden) : v = Y.access(e, "fxshow", { 2371 display: l 2372 }), o && (v.hidden = !g), g && le([e], !0), p.done(function () { 2373 for (r in g || le([e]), Y.remove(e, "fxshow"), d) S.style(e, r, d[r]); 2374 })), u = ct(g ? v[r] : 0, r, p), r in v || (v[r] = u.start, g && (u.end = u.start, u.start = 0)); 2375 }], 2376 prefilter: function prefilter(e, t) { 2377 t ? ft.prefilters.unshift(e) : ft.prefilters.push(e); 2378 } 2379 }), S.speed = function (e, t, n) { 2380 var r = e && "object" == _typeof(e) ? S.extend({}, e) : { 2381 complete: n || !n && t || m(e) && e, 2382 duration: e, 2383 easing: n && t || t && !m(t) && t 2384 }; 2385 return S.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in S.fx.speeds ? r.duration = S.fx.speeds[r.duration] : r.duration = S.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function () { 2386 m(r.old) && r.old.call(this), r.queue && S.dequeue(this, r.queue); 2387 }, r; 2388 }, S.fn.extend({ 2389 fadeTo: function fadeTo(e, t, n, r) { 2390 return this.filter(ae).css("opacity", 0).show().end().animate({ 2391 opacity: t 2392 }, e, n, r); 2393 }, 2394 animate: function animate(t, e, n, r) { 2395 var i = S.isEmptyObject(t), 2396 o = S.speed(e, n, r), 2397 a = function a() { 2398 var e = ft(this, S.extend({}, t), o); 2399 (i || Y.get(this, "finish")) && e.stop(!0); 2400 }; 2401 return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a); 2402 }, 2403 stop: function stop(i, e, o) { 2404 var a = function a(e) { 2405 var t = e.stop; 2406 delete e.stop, t(o); 2407 }; 2408 return "string" != typeof i && (o = e, e = i, i = void 0), e && this.queue(i || "fx", []), this.each(function () { 2409 var e = !0, 2410 t = null != i && i + "queueHooks", 2411 n = S.timers, 2412 r = Y.get(this); 2413 if (t) r[t] && r[t].stop && a(r[t]);else for (t in r) r[t] && r[t].stop && at.test(t) && a(r[t]); 2414 for (t = n.length; t--;) n[t].elem !== this || null != i && n[t].queue !== i || (n[t].anim.stop(o), e = !1, n.splice(t, 1)); 2415 !e && o || S.dequeue(this, i); 2416 }); 2417 }, 2418 finish: function finish(a) { 2419 return !1 !== a && (a = a || "fx"), this.each(function () { 2420 var e, 2421 t = Y.get(this), 2422 n = t[a + "queue"], 2423 r = t[a + "queueHooks"], 2424 i = S.timers, 2425 o = n ? n.length : 0; 2426 for (t.finish = !0, S.queue(this, a, []), r && r.stop && r.stop.call(this, !0), e = i.length; e--;) i[e].elem === this && i[e].queue === a && (i[e].anim.stop(!0), i.splice(e, 1)); 2427 for (e = 0; e < o; e++) n[e] && n[e].finish && n[e].finish.call(this); 2428 delete t.finish; 2429 }); 2430 } 2431 }), S.each(["toggle", "show", "hide"], function (e, r) { 2432 var i = S.fn[r]; 2433 S.fn[r] = function (e, t, n) { 2434 return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(lt(r, !0), e, t, n); 2435 }; 2436 }), S.each({ 2437 slideDown: lt("show"), 2438 slideUp: lt("hide"), 2439 slideToggle: lt("toggle"), 2440 fadeIn: { 2441 opacity: "show" 2442 }, 2443 fadeOut: { 2444 opacity: "hide" 2445 }, 2446 fadeToggle: { 2447 opacity: "toggle" 2448 } 2449 }, function (e, r) { 2450 S.fn[e] = function (e, t, n) { 2451 return this.animate(r, e, t, n); 2452 }; 2453 }), S.timers = [], S.fx.tick = function () { 2454 var e, 2455 t = 0, 2456 n = S.timers; 2457 for (tt = Date.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1); 2458 n.length || S.fx.stop(), tt = void 0; 2459 }, S.fx.timer = function (e) { 2460 S.timers.push(e), S.fx.start(); 2461 }, S.fx.interval = 13, S.fx.start = function () { 2462 nt || (nt = !0, st()); 2463 }, S.fx.stop = function () { 2464 nt = null; 2465 }, S.fx.speeds = { 2466 slow: 600, 2467 fast: 200, 2468 _default: 400 2469 }
2469, S.fn.delay = function (r, e) { 2470 return r = S.fx && S.fx.speeds[r] || r, e = e || "fx", this.queue(e, function (e, t) { 2471 var n = C.setTimeout(e, r); 2472 t.stop = function () { 2473 C.clearTimeout(n); 2474 }; 2475 }); 2476 }, rt = E.createElement("input"), it = E.createElement("select").appendChild(E.createElement("option")), rt.type = "checkbox", y.checkOn = "" !== rt.value, y.optSelected = it.selected, (rt = E.createElement("input")).value = "t", rt.type = "radio", y.radioValue = "t" === rt.value; 2477 var pt, 2478 dt = S.expr.attrHandle; 2479 S.fn.extend({ 2480 attr: function attr(e, t) { 2481 return $(this, S.attr, e, t, 1 < arguments.length); 2482 }, 2483 removeAttr: function removeAttr(e) { 2484 return this.each(function () { 2485 S.removeAttr(this, e); 2486 }); 2487 } 2488 }), S.extend({ 2489 attr: function attr(e, t, n) { 2490 var r, 2491 i, 2492 o = e.nodeType; 2493 if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? S.prop(e, t, n) : (1 === o && S.isXMLDoc(e) || (i = S.attrHooks[t.toLowerCase()] || (S.expr.match.bool.test(t) ? pt : void 0)), void 0 !== n ? null === n ? void S.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : null == (r = S.find.attr(e, t)) ? void 0 : r); 2494 }, 2495 attrHooks: { 2496 type: { 2497 set: function set(e, t) { 2498 if (!y.radioValue && "radio" === t && A(e, "input")) { 2499 var n = e.value; 2500 return e.setAttribute("type", t), n && (e.value = n), t; 2501 } 2502 } 2503 } 2504 }, 2505 removeAttr: function removeAttr(e, t) { 2506 var n, 2507 r = 0, 2508 i = t && t.match(P); 2509 if (i && 1 === e.nodeType) while (n = i[r++]) e.removeAttribute(n); 2510 } 2511 }), pt = { 2512 set: function set(e, t, n) { 2513 return !1 === t ? S.removeAttr(e, n) : e.setAttribute(n, n), n; 2514 } 2515 }, S.each(S.expr.match.bool.source.match(/\w+/g), function (e, t) { 2516 var a = dt[t] || S.find.attr; 2517 dt[t] = function (e, t, n) { 2518 var r, 2519 i, 2520 o = t.toLowerCase(); 2521 return n || (i = dt[o], dt[o] = r, r = null != a(e, t, n) ? o : null, dt[o] = i), r; 2522 }; 2523 }); 2524 var ht = /^(?:input|select|textarea|button)$/i, 2525 gt = /^(?:a|area)$/i; 2526 function vt(e) { 2527 return (e.match(P) || []).join(" "); 2528 } 2529 function yt(e) { 2530 return e.getAttribute && e.getAttribute("class") || ""; 2531 } 2532 function mt(e) { 2533 return Array.isArray(e) ? e : "string" == typeof e && e.match(P) || []; 2534 } 2535 S.fn.extend({ 2536 prop: function prop(e, t) { 2537 return $(this, S.prop, e, t, 1 < arguments.length); 2538 }, 2539 removeProp: function removeProp(e) { 2540 return this.each(function () { 2541 delete this[S.propFix[e] || e]; 2542 }); 2543 } 2544 }), S.extend({ 2545 prop: function prop(e, t, n) { 2546 var r, 2547 i, 2548 o = e.nodeType; 2549 if (3 !== o && 8 !== o && 2 !== o) return 1 === o && S.isXMLDoc(e) || (t = S.propFix[t] || t, i = S.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]; 2550 }, 2551 propHooks: { 2552 tabIndex: { 2553 get: function get(e) { 2554 var t = S.find.attr(e, "tabindex"); 2555 return t ? parseInt(t, 10) : ht.test(e.nodeName) || gt.test(e.nodeName) && e.href ? 0 : -1; 2556 } 2557 } 2558 }, 2559 propFix: { 2560 "for": "htmlFor", 2561 "class": "className" 2562 } 2563 }), y.optSelected || (S.propHooks.selected = { 2564 get: function get(e) { 2565 var t = e.parentNode; 2566 return t && t.parentNode && t.parentNode.selectedIndex, null; 2567 }, 2568 set: function set(e) { 2569 var t = e.parentNode; 2570 t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); 2571 } 2572 }), S.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { 2573 S.propFix[this.toLowerCase()] = this; 2574 }), S.fn.extend({ 2575 addClass: function addClass(t) { 2576 var e, 2577 n, 2578 r, 2579 i, 2580 o, 2581 a, 2582 s, 2583 u = 0; 2584 if (m(t)) return this.each(function (e) { 2585 S(this).addClass(t.call(this, e, yt(this))); 2586 }); 2587 if ((e = mt(t)).length) while (n = this[u++]) if (i = yt(n), r = 1 === n.nodeType && " " + vt(i) + " ") { 2588 a = 0; 2589 while (o = e[a++]) r.indexOf(" " + o + " ") < 0 && (r += o + " "); 2590 i !== (s = vt(r)) && n.setAttribute("class", s); 2591 } 2592 return this; 2593 }, 2594 removeClass: function removeClass(t) { 2595 var e, 2596 n, 2597 r, 2598 i, 2599 o, 2600 a, 2601 s, 2602 u = 0; 2603 if (m(t)) return this.each(function (e) { 2604 S(this).removeClass(t.call(this, e, yt(this))); 2605 }); 2606 if (!arguments.length) return this.attr("class", ""); 2607 if ((e = mt(t)).length) while (n = this[u++]) if (i = yt(n), r = 1 === n.nodeType && " " + vt(i) + " ") { 2608 a = 0; 2609 while (o = e[a++]) while (-1 < r.indexOf(" " + o + " ")) r = r.replace(" " + o + " ", " "); 2610 i !== (s = vt(r)) && n.setAttribute("class", s); 2611 } 2612 return this; 2613 }, 2614 toggleClass: function toggleClass(i, t) { 2615 var o = _typeof(i), 2616 a = "string" === o || Array.isArray(i); 2617 return "boolean" == typeof t && a ? t ? this.addClass(i) : this.removeClass(i) : m(i) ? this.each(function (e) {
2618 S(this).toggleClass(i.call(this, e, yt(this), t), t); 2619 }) : this.each(function () { 2620 var e, t, n, r; 2621 if (a) { 2622 t = 0, n = S(this), r = mt(i); 2623 while (e = r[t++]) n.hasClass(e) ? n.removeClass(e) : n.addClass(e); 2624 } else void 0 !== i && "boolean" !== o || ((e = yt(this)) && Y.set(this, "__className__", e), this.setAttribute && this.setAttribute("class", e || !1 === i ? "" : Y.get(this, "__className__") || "")); 2625 }); 2626 }, 2627 hasClass: function hasClass(e) { 2628 var t, 2629 n, 2630 r = 0; 2631 t = " " + e + " "; 2632 while (n = this[r++]) if (1 === n.nodeType && -1 < (" " + vt(yt(n)) + " ").indexOf(t)) return !0; 2633 return !1; 2634 } 2635 }); 2636 var xt = /\r/g; 2637 S.fn.extend({ 2638 val: function val(n) { 2639 var r, 2640 e, 2641 i, 2642 t = this[0]; 2643 return arguments.length ? (i = m(n), this.each(function (e) { 2644 var t; 2645 1 === this.nodeType && (null == (t = i ? n.call(this, e, S(this).val()) : n) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = S.map(t, function (e) { 2646 return null == e ? "" : e + ""; 2647 })), (r = S.valHooks[this.type] || S.valHooks[this.nodeName.toLowerCase()]) && "set" in r && void 0 !== r.set(this, t, "value") || (this.value = t)); 2648 })) : t ? (r = S.valHooks[t.type] || S.valHooks[t.nodeName.toLowerCase()]) && "get" in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof (e = t.value) ? e.replace(xt, "") : null == e ? "" : e : void 0; 2649 } 2650 }), S.extend({ 2651 valHooks: { 2652 option: { 2653 get: function get(e) { 2654 var t = S.find.attr(e, "value"); 2655 return null != t ? t : vt(S.text(e)); 2656 } 2657 }, 2658 select: { 2659 get: function get(e) { 2660 var t, 2661 n, 2662 r, 2663 i = e.options, 2664 o = e.selectedIndex, 2665 a = "select-one" === e.type, 2666 s = a ? null : [], 2667 u = a ? o + 1 : i.length; 2668 for (r = o < 0 ? u : a ? o : 0; r < u; r++) if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !A(n.parentNode, "optgroup"))) { 2669 if (t = S(n).val(), a) return t; 2670 s.push(t); 2671 } 2672 return s; 2673 }, 2674 set: function set(e, t) { 2675 var n, 2676 r, 2677 i = e.options, 2678 o = S.makeArray(t), 2679 a = i.length; 2680 while (a--) ((r = i[a]).selected = -1 < S.inArray(S.valHooks.option.get(r), o)) && (n = !0); 2681 return n || (e.selectedIndex = -1), o; 2682 } 2683 } 2684 } 2685 }), S.each(["radio", "checkbox"], function () { 2686 S.valHooks[this] = { 2687 set: function set(e, t) { 2688 if (Array.isArray(t)) return e.checked = -1 < S.inArray(S(e).val(), t); 2689 } 2690 }, y.checkOn || (S.valHooks[this].get = function (e) { 2691 return null === e.getAttribute("value") ? "on" : e.value; 2692 }); 2693 }), y.focusin = "onfocusin" in C; 2694 var bt = /^(?:focusinfocus|focusoutblur)$/, 2695 wt = function wt(e) { 2696 e.stopPropagation(); 2697 }; 2698 S.extend(S.event, { 2699 trigger: function trigger(e, t, n, r) { 2700 var i, 2701 o, 2702 a, 2703 s, 2704 u, 2705 l, 2706 c, 2707 f, 2708 p = [n || E], 2709 d = v.call(e, "type") ? e.type : e, 2710 h = v.call(e, "namespace") ? e.namespace.split(".") : []; 2711 if (o = f = a = n = n || E, 3 !== n.nodeType && 8 !== n.nodeType && !bt.test(d + S.event.triggered) && (-1 < d.indexOf(".") && (d = (h = d.split(".")).shift(), h.sort()), u = d.indexOf(":") < 0 && "on" + d, (e = e[S.expando] ? e : new S.Event(d, "object" == _typeof(e) && e)).isTrigger = r ? 2 : 3, e.namespace = h.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : S.makeArray(t, [e]), c = S.event.special[d] || {}, r || !c.trigger || !1 !== c.trigger.apply(n, t))) { 2712 if (!r && !c.noBubble && !x(n)) { 2713 for (s = c.delegateType || d, bt.test(s + d) || (o = o.parentNode); o; o = o.parentNode) p.push(o), a = o; 2714 a === (n.ownerDocument || E) && p.push(a.defaultView || a.parentWindow || C); 2715 } 2716 i = 0; 2717 while ((o = p[i++]) && !e.isPropagationStopped()) f = o, e.type = 1 < i ? s : c.bindType || d, (l = (Y.get(o, "events") || Object.create(null))[e.type] && Y.get(o, "handle")) && l.apply(o, t), (l = u && o[u]) && l.apply && V(o) && (e.result = l.apply(o, t), !1 === e.result && e.preventDefault()); 2718 return e.type = d, r || e.isDefaultPrevented() || c._default && !1 !== c._default.apply(p.pop(), t) || !V(n) || u && m(n[d]) && !x(n) && ((a = n[u]) && (n[u] = null), S.event.triggered = d, e.isPropagationStopped() && f.addEventListener(d, wt), n[d](), e.isPropagationStopped() && f.removeEventListener(d, wt), S.event.triggered = void 0, a && (n[u] = a)), e.result; 2719 } 2720 }, 2721 simulate: function simulate(e, t, n) { 2722 var r = S.extend(new S.Event(), n, { 2723 type: e, 2724 isSimulated: !0 2725 }); 2726 S.event.trigger(r, null, t); 2727 } 2728 }), S.fn.extend({ 2729 trigger: function trigger(e, t) { 2730 return this.each(function () { 2731 S.event.trigger(e, t, this); 2732 }); 2733 }, 2734 triggerHandler: function triggerHandler(e, t) { 2735 var n = this[0]; 2736 if (n) return S.event.trigger(e, t, n, !0); 2737 } 2738 }), y.focusin || S.each({ 2739 focus: "focusin", 2740 blur: "focusout" 2741 }, function (n, r) { 2742 var i = function i(e) { 2743 S.event.simulate(r, e.target, S.event.fix(e)); 2744 }; 2745 S.event.special[r] = { 2746 setup: function setup() { 2747 var e = this.ownerDocument || this.document || this, 2748 t = Y.access(e, r); 2749 t || e.addEventListener(n, i, !0), Y.access(e, r, (t || 0) + 1); 2750 }, 2751 teardown: function teardown() { 2752 var e = this.ownerDocument || this.document || this, 2753 t = Y.access(e, r) - 1; 2754 t ? Y.access(e, r, t) : (e.removeEventListener(n, i, !0), Y.remove(e, r)); 2755 } 2756 }; 2757 }); 2758 var Tt = C.location, 2759 Ct = { 2760 guid: Date.now() 2761 }, 2762 Et = /\?/; 2763 S.parseXML = function (e) { 2764 var t; 2765 if (!e || "string" != typeof e) return null; 2766 try { 2767 t = new C.DOMParser().parseFromString(e, "text/xml"); 2768 } catch (e) { 2769 t = void 0; 2770 } 2771 return t && !t.getElementsByTagName("parsererror").length || S.error("Invalid XML: " + e), t; 2772 }; 2773 var St = /\[\]$/, 2774 kt = /\r?\n/g, 2775 At = /^(?:submit|button|image|reset|file)$/i, 2776 Nt = /^(?:input|select|textarea|keygen)/i; 2777 function Dt(n, e, r, i) { 2778 var t; 2779 if (Array.isArray(e)) S.each(e, function (e, t) { 2780 r || St.test(n) ? i(n, t) : Dt(n + "[" + ("object" == _typeof(t) && null != t ? e : "") + "]", t, r, i); 2781 });else if (r || "object" !== w(e)) i(n, e);else for (t in e) Dt(n + "[" + t + "]", e[t], r, i); 2782 } 2783 S.param = function (e, t) { 2784 var n, 2785 r = [], 2786 i = function i(e, t) { 2787 var n = m(t) ? t() : t; 2788 r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n); 2789 }; 2790 if (null == e) return ""; 2791 if (Array.isArray(e) || e.jquery && !S.isPlainObject(e)) S.each(e, function () { 2792 i(this.name, this.value); 2793 });else for (n in e) Dt(n, e[n], t, i); 2794 return r.join("&"); 2795 }, S.fn.extend({ 2796 serialize: function serialize() { 2797 return S.param(this.serializeArray()); 2798 }, 2799 serializeArray: function serializeArray() { 2800 return this.map(function () { 2801 var e = S.prop(this, "elements"); 2802 return e ? S.makeArray(e) : this; 2803 }).filter(function () { 2804 var e = this.type; 2805 return this.name && !S(this).is(":disabled") && Nt.test(this.nodeName) && !At.test(e) && (this.checked || !pe.test(e)); 2806 }).map(function (e, t) { 2807 var n = S(this).val(); 2808 return null == n ? null : Array.isArray(n) ? S.map(n, function (e) { 2809 return { 2810 name: t.name, 2811 value: e.replace(kt, "\r\n") 2812 }; 2813 }) : { 2814 name: t.name, 2815 value: n.replace(kt, "\r\n") 2816 }; 2817 }).get(); 2818 } 2819 }); 2820 var jt = /%20/g, 2821 qt = /#.*$/, 2822 Lt = /([?&])_=[^&]*/, 2823 Ht = /^(.*?):[ \t]*([^\r\n]*)$/gm, 2824 Ot = /^(?:GET|HEAD)$/, 2825 Pt = /^\/\//, 2826 Rt = {}, 2827 Mt = {}, 2828 It = "*/".concat("*"), 2829 Wt = E.createElement("a"); 2830 function Ft(o) { 2831 return function (e, t) { 2832 "string" != typeof e && (t = e, e = "*"); 2833 var n, 2834 r = 0, 2835 i = e.toLowerCase().match(P) || []; 2836 if (m(t)) while (n = i[r++]) "+" === n[0] ? (n = n.slice(1) || "*", (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t); 2837 }; 2838 } 2839 function Bt(t, i, o, a) { 2840 var s = {}, 2841 u = t === Mt; 2842 function l(e) { 2843 var r; 2844 return s[e] = !0, S.each(t[e] || [], function (e, t) { 2845 var n = t(i, o, a); 2846 return "string" != typeof n || u || s[n] ? u ? !(r = n) : void 0 : (i.dataTypes.unshift(n), l(n), !1); 2847 }), r; 2848 } 2849 return l(i.dataTypes[0]) || !s["*"] && l("*"); 2850 } 2851 function $t(e, t) { 2852 var n, 2853 r, 2854 i = S.ajaxSettings.flatOptions || {}; 2855 for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); 2856 return r && S.extend(!0, e, r), e; 2857 } 2858 Wt.href = Tt.href, S.extend({ 2859 active: 0, 2860 lastModified: {}, 2861 etag: {}, 2862 ajaxSettings: { 2863 url: Tt.href, 2864 type: "GET", 2865 isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol), 2866 global: !0, 2867 processData: !0, 2868 async: !0, 2869 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 2870 accepts: { 2871 "*": It, 2872 text: "text/plain", 2873 html: "text/html", 2874 xml: "application/xml, text/xml", 2875 json: "application/json, text/javascript" 2876 }, 2877 contents: { 2878 xml: /\bxml\b/, 2879 html: /\bhtml/, 2880 json: /\bjson\b/ 2881 }, 2882 responseFields: { 2883 xml: "responseXML", 2884 text: "responseText", 2885 json: "responseJSON" 2886 }, 2887 converters: { 2888 "* text": String, 2889 "text html": !0, 2890 "text json": JSON.parse, 2891 "text xml": S.parseXML 2892 }, 2893 flatOptions: { 2894 url: !0, 2895 context: !0 2896 } 2897 }, 2898 ajaxSetup: function ajaxSetup(e, t) { 2899 return t ? $t($t(e, S.ajaxSettings), t) : $t(S.ajaxSettings, e); 2900 }, 2901 ajaxPrefilter: Ft(Rt), 2902 ajaxTransport: Ft(Mt), 2903 ajax: function ajax(e, t) { 2904 "object" == _typeof(e) && (t = e, e = void 0), t = t || {}; 2905 var c, 2906 f, 2907 p, 2908 n, 2909 d, 2910 r, 2911 h, 2912 g, 2913 i, 2914 o, 2915 v = S.ajaxSetup({}, t), 2916 y = v.context || v, 2917 m = v.context && (y.nodeType || y.jquery) ? S(y) : S.event, 2918 x = S.Deferred(), 2919 b = S.Callbacks("once memory"), 2920 w = v.statusCode || {}, 2921 a = {}, 2922 s = {}, 2923 u = "canceled", 2924 T = { 2925 readyState: 0, 2926 getResponseHeader: function getResponseHeader(e) { 2927 var t; 2928 if (h) { 2929 if (!n) { 2930 n = {}; 2931 while (t = Ht.exec(p)) n[t[1].toLowerCase() + " "] = (n[t[1].toLowerCase() + " "] || []).concat(t[2]); 2932 } 2933 t = n[e.toLowerCase() + " "]; 2934 } 2935 return null == t ? null : t.join(", "); 2936 }, 2937 getAllResponseHeaders: function getAllResponseHeaders() { 2938 return h ? p : null; 2939 }, 2940 setRequestHeader: function setRequestHeader(e, t) { 2941 return null == h && (e = s[e.toLowerCase()] = s[e.toLowerCase()] || e, a[e] = t), this; 2942 }, 2943 overrideMimeType: function overrideMimeType(e) { 2944 return null == h && (v.mimeType = e), this; 2945 }, 2946 statusCode: function statusCode(e) { 2947 var t; 2948 if (e) if (h) T.always(e[T.status]);else for (t in e) w[t] = [w[t], e[t]]; 2949 return this; 2950 }, 2951 abort: function abort(e) { 2952 var t = e || u; 2953 return c && c.abort(t), l(0, t), this; 2954 } 2955 }; 2956 if (x.promise(T), v.url = ((e || v.url || Tt.href) + "").replace(Pt, Tt.protocol + "//"), v.type = t.method || t.type || v.method || v.type, v.dataTypes = (v.dataType || "*").toLowerCase().match(P) || [""], null == v.crossDomain) { 2957 r = E.createElement("a"); 2958 try { 2959 r.href = v.url, r.href = r.href, v.crossDomain = Wt.protocol + "//" + Wt.host != r.protocol + "//" + r.host; 2960 } catch (e) { 2961 v.crossDomain = !0; 2962 } 2963 } 2964 if (v.data && v.processData && "string" != typeof v.data && (v.data = S.param(v.data, v.traditional)), Bt(Rt, v, t, T), h) return T; 2965 for (i in (g = S.event && v.global) && 0 == S.active++ && S.event.trigger("ajaxStart"), v.type = v.type.toUpperCase(), v.hasContent = !Ot.test(v.type), f = v.url.replace(qt, ""), v.hasContent ? v.data && v.processData && 0 === (v.contentType || "").indexOf("application/x-www-form-urlencoded") && (v.data = v.data.replace(jt, "+")) : (o = v.url.
2965slice(f.length), v.data && (v.processData || "string" == typeof v.data) && (f += (Et.test(f) ? "&" : "?") + v.data, delete v.data), !1 === v.cache && (f = f.replace(Lt, "$1"), o = (Et.test(f) ? "&" : "?") + "_=" + Ct.guid++ + o), v.url = f + o), v.ifModified && (S.lastModified[f] && T.setRequestHeader("If-Modified-Since", S.lastModified[f]), S.etag[f] && T.setRequestHeader("If-None-Match", S.etag[f])), (v.data && v.hasContent && !1 !== v.contentType || t.contentType) && T.setRequestHeader("Content-Type", v.contentType), T.setRequestHeader("Accept", v.dataTypes[0] && v.accepts[v.dataTypes[0]] ? v.accepts[v.dataTypes[0]] + ("*" !== v.dataTypes[0] ? ", " + It + "; q=0.01" : "") : v.accepts["*"]), v.headers) T.setRequestHeader(i, v.headers[i]); 2966 if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h)) return T.abort(); 2967 if (u = "abort", b.add(v.complete), T.done(v.success), T.fail(v.error), c = Bt(Mt, v, t, T)) { 2968 if (T.readyState = 1, g && m.trigger("ajaxSend", [T, v]), h) return T; 2969 v.async && 0 < v.timeout && (d = C.setTimeout(function () { 2970 T.abort("timeout"); 2971 }, v.timeout)); 2972 try { 2973 h = !1, c.send(a, l); 2974 } catch (e) { 2975 if (h) throw e; 2976 l(-1, e); 2977 } 2978 } else l(-1, "No Transport"); 2979 function l(e, t, n, r) { 2980 var i, 2981 o, 2982 a, 2983 s, 2984 u, 2985 l = t; 2986 h || (h = !0, d && C.clearTimeout(d), c = void 0, p = r || "", T.readyState = 0 < e ? 4 : 0, i = 200 <= e && e < 300 || 304 === e, n && (s = function (e, t, n) { 2987 var r, 2988 i, 2989 o, 2990 a, 2991 s = e.contents, 2992 u = e.dataTypes; 2993 while ("*" === u[0]) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); 2994 if (r) for (i in s) if (s[i] && s[i].test(r)) { 2995 u.unshift(i); 2996 break; 2997 } 2998 if (u[0] in n) o = u[0];else { 2999 for (i in n) { 3000 if (!u[0] || e.converters[i + " " + u[0]]) { 3001 o = i; 3002 break; 3003 } 3004 a || (a = i); 3005 } 3006 o = o || a; 3007 } 3008 if (o) return o !== u[0] && u.unshift(o), n[o]; 3009 }(v, T, n)), !i && -1 < S.inArray("script", v.dataTypes) && (v.converters["text script"] = function () {}), s = function (e, t, n, r) { 3010 var i, 3011 o, 3012 a, 3013 s, 3014 u, 3015 l = {}, 3016 c = e.dataTypes.slice(); 3017 if (c[1]) for (a in e.converters) l[a.toLowerCase()] = e.converters[a]; 3018 o = c.shift(); 3019 while (o) if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift()) if ("*" === o) o = u;else if ("*" !== u && u !== o) { 3020 if (!(a = l[u + " " + o] || l["* " + o])) for (i in l) if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) { 3021 !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], c.unshift(s[1])); 3022 break; 3023 } 3024 if (!0 !== a) if (a && e["throws"]) t = a(t);else try { 3025 t = a(t); 3026 } catch (e) { 3027 return { 3028 state: "parsererror", 3029 error: a ? e : "No conversion from " + u + " to " + o 3030 }; 3031 } 3032 } 3033 return { 3034 state: "success", 3035 data: t 3036 }; 3037 }(v, s, T, i), i ? (v.ifModified && ((u = T.getResponseHeader("Last-Modified")) && (S.lastModified[f] = u), (u = T.getResponseHeader("etag")) && (S.etag[f] = u)), 204 === e || "HEAD" === v.type ? l = "nocontent" : 304 === e ? l = "notmodified" : (l = s.state, o = s.data, i = !(a = s.error))) : (a = l, !e && l || (l = "error", e < 0 && (e = 0))), T.status = e, T.statusText = (t || l) + "", i ? x.resolveWith(y, [o, l, T]) : x.rejectWith(y, [T, l, a]), T.statusCode(w), w = void 0, g && m.trigger(i ? "ajaxSuccess" : "ajaxError", [T, v, i ? o : a]), b.fireWith(y, [T, l]), g && (m.trigger("ajaxComplete", [T, v]), --S.active || S.event.trigger("ajaxStop"))); 3038 } 3039 return T; 3040 }, 3041 getJSON: function getJSON(e, t, n) { 3042 return S.get(e, t, n, "json"); 3043 }, 3044 getScript: function getScript(e, t) { 3045 return S.get(e, void 0, t, "script"); 3046 } 3047 }), S.each(["get", "post"], function (e, i) { 3048 S[i] = function (e, t, n, r) { 3049 return m(t) && (r = r || n, n = t, t = void 0), S.ajax(S.extend({ 3050 url: e, 3051 type: i, 3052 dataType: r, 3053 data: t, 3054 success: n 3055 }, S.isPlainObject(e) && e)); 3056 }; 3057 }), S.ajaxPrefilter(function (e) { 3058 var t; 3059 for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || ""); 3060 }), S._evalUrl = function (e, t, n) { 3061 return S.ajax({ 3062 url: e, 3063 type: "GET", 3064 dataType: "script", 3065 cache: !0, 3066 async: !1, 3067 global: !1, 3068 converters: { 3069 "text script": function textScript() {} 3070 }, 3071 dataFilter: function dataFilter(e) { 3072 S.globalEval(e, t, n); 3073 } 3074 }); 3075 }, S.fn.extend({ 3076 wrapAll: function wrapAll(e) { 3077 var t; 3078 return this[0] && (m(e) && (e = e.call(this[0])), t = S(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function () { 3079 var e = this; 3080 while (e.firstElementChild) e = e.firstElementChild; 3081 return e; 3082 }).append(this)), this; 3083 }, 3084 wrapInner: function wrapInner(n) { 3085 return m(n) ? this.each(function (e) { 3086 S(this).wrapInner(n.call(this, e)); 3087 }) : this.each(function () { 3088 var e = S(this), 3089 t = e.contents(); 3090 t.length ? t.wrapAll(n) : e.append(n); 3091 }); 3092 }, 3093 wrap: function wrap(t) { 3094 var n = m(t); 3095 return this.each(function (e) { 3096 S(this).wrapAll(n ? t.call(this, e) : t); 3097 }); 3098 }, 3099 unwrap: function unwrap(e) { 3100 return this.parent(e).not("body").each(function () { 3101 S(this).replaceWith(this.childNodes); 3102 }), this; 3103 } 3104 }), S.expr.pseudos.hidden = function (e) { 3105 return !S.expr.pseudos.visible(e); 3106 }, S.expr.pseudos.visible = function (e) { 3107 return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); 3108 }, S.ajaxSettings.xhr = function () { 3109 try { 3110 return new C.XMLHttpRequest(); 3111 } catch (e) {} 3112 }; 3113 var _t = { 3114 0: 200, 3115 1223: 204 3116 }, 3117 zt = S.ajaxSettings.xhr(); 3118 y.cors = !!zt && "withCredentials" in zt, y.ajax = zt = !!zt, S.ajaxTransport(function (i) { 3119 var _o, a; 3120 if (y.cors || zt && !i.crossDomain) return { 3121 send: function send(e, t) { 3122 var n, 3123 r = i.xhr(); 3124 if (r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields) for (n in i.xhrFields) r[n] = i.xhrFields[n]; 3125 for (n in i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType), i.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"), e) r.setRequestHeader(n, e[n]); 3126 _o = function o(e) { 3127 return function () { 3128 _o && (_o = a = r.onload = r.onerror = r.onabort = r.ontimeout = r.onreadystatechange = null, "abort" === e ? r.abort() : "error" === e ? "number" != typeof r.status ? t(0, "error") : t(r.status, r.statusText) : t(_t[r.status] || r.status, r.statusText, "text" !== (r.responseType || "text") || "string" != typeof r.responseText ? { 3129 binary: r.response 3130 } : { 3131 text: r.responseText 3132 }, r.getAllResponseHeaders())); 3133 }; 3134 }, r.onload = _o(), a = r.onerror = r.ontimeout = _o("error"), void 0 !== r.onabort ? r.onabort = a : r.onreadystatechange = function () { 3135 4 === r.readyState && C.setTimeout(function () { 3136 _o && a(); 3137 }); 3138 }, _o = _o("abort"); 3139 try { 3140 r.send(i.hasContent && i.data || null); 3141 } catch (e) { 3142 if (_o) throw e; 3143 } 3144 }, 3145 abort: function abort() { 3146 _o && _o(); 3147 } 3148 }; 3149 }), S.ajaxPrefilter(function (e) { 3150 e.crossDomain && (e.contents.script = !1); 3151 }), S.ajaxSetup({ 3152 accepts: { 3153 script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" 3154 }, 3155 contents: { 3156 script: /\b(?:java|ecma)script\b/ 3157 }, 3158 converters: { 3159 "text script": function textScript(e) { 3160 return S.globalEval(e), e; 3161 } 3162 } 3163 }), S.ajaxPrefilter("script", function (e) { 3164 void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET"); 3165 }), S.ajaxTransport("script", function (n) { 3166 var r, _i; 3167 if (n.crossDomain || n.scriptAttrs) return { 3168 send: function send(e, t) { 3169 r = S("<script>").attr(n.scriptAttrs || {}).prop({ 3170 charset: n.scriptCharset, 3171 src: n.url 3172 }).on("load error", _i = function i(e) { 3173 r.remove(), _i = null, e && t("error" === e.type ? 404 : 200, e.type); 3174 }), E.head.appendChild(r[0]); 3175 }, 3176 abort: function abort() { 3177 _i && _i(); 3178 } 3179 }; 3180 }); 3181 var Ut, 3182 Xt = [], 3183 Vt = /(=)\?(?=&|$)|\?\?/; 3184 S.ajaxSetup({ 3185 jsonp: "callback", 3186 jsonpCallback: function jsonpCallback() { 3187 var e = Xt.pop() || S.expando + "_" + Ct.guid++; 3188 return this[e] = !0, e; 3189 } 3190 }), S.ajaxPrefilter("json jsonp", function (e, t, n) { 3191 var r, 3192 i, 3193 o,
vendor: 4,092 bytes, lines 3194-3272
3194 a = !1 !== e.jsonp && (Vt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Vt.test(e.data) && "data"); 3195 if (a || "jsonp" === e.dataTypes[0]) return r = e.jsonpCallback = m(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, a ? e[a] = e[a].replace(Vt, "$1" + r) : !1 !== e.jsonp && (e.url += (Et.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function () { 3196 return o || S.error(r + " was not called"), o[0]; 3197 }, e.dataTypes[0] = "json", i = C[r], C[r] = function () { 3198 o = arguments; 3199 }, n.always(function () { 3200 void 0 === i ? S(C).removeProp(r) : C[r] = i, e[r] && (e.jsonpCallback = t.jsonpCallback, Xt.push(r)), o && m(i) && i(o[0]), o = i = void 0; 3201 }), "script"; 3202 }), y.createHTMLDocument = ((Ut = E.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === Ut.childNodes.length), S.parseHTML = function (e, t, n) { 3203 return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t, t = !1), t || (y.createHTMLDocument ? ((r = (t = E.implementation.createHTMLDocument("")).createElement("base")).href = E.location.href, t.head.appendChild(r)) : t = E), o = !n && [], (i = N.exec(e)) ? [t.createElement(i[1])] : (i = xe([e], t, o), o && o.length && S(o).remove(), S.merge([], i.childNodes))); 3204 var r, i, o; 3205 }, S.fn.load = function (e, t, n) { 3206 var r, 3207 i, 3208 o, 3209 a = this, 3210 s = e.indexOf(" "); 3211 return -1 < s && (r = vt(e.slice(s)), e = e.slice(0, s)), m(t) ? (n = t, t = void 0) : t && "object" == _typeof(t) && (i = "POST"), 0 < a.length && S.ajax({ 3212 url: e, 3213 type: i || "GET", 3214 dataType: "html", 3215 data: t 3216 }).done(function (e) { 3217 o = arguments, a.html(r ? S("<div>").append(S.parseHTML(e)).find(r) : e); 3218 }).always(n && function (e, t) { 3219 a.each(function () { 3220 n.apply(this, o || [e.responseText, t, e]); 3221 }); 3222 }), this; 3223 }, S.expr.pseudos.animated = function (t) { 3224 return S.grep(S.timers, function (e) { 3225 return t === e.elem; 3226 }).length; 3227 }, S.offset = { 3228 setOffset: function setOffset(e, t, n) { 3229 var r, 3230 i, 3231 o, 3232 a, 3233 s, 3234 u, 3235 l = S.css(e, "position"), 3236 c = S(e), 3237 f = {}; 3238 "static" === l && (e.style.position = "relative"), s = c.offset(), o = S.css(e, "top"), u = S.css(e, "left"), ("absolute" === l || "fixed" === l) && -1 < (o + u).indexOf("auto") ? (a = (r = c.position()).top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(u) || 0), m(t) && (t = t.call(e, n, S.extend({}, s))), null != t.top && (f.top = t.top - s.top + a), null != t.left && (f.left = t.left - s.left + i), "using" in t ? t.using.call(e, f) : ("number" == typeof f.top && (f.top += "px"), "number" == typeof f.left && (f.left += "px"), c.css(f)); 3239 } 3240 }, S.fn.extend({ 3241 offset: function offset(t) { 3242 if (arguments.length) return void 0 === t ? this : this.each(function (e) { 3243 S.offset.setOffset(this, t, e); 3244 }); 3245 var e, 3246 n, 3247 r = this[0]; 3248 return r ? r.getClientRects().length ? (e = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, { 3249 top: e.top + n.pageYOffset, 3250 left: e.left + n.pageXOffset 3251 }) : { 3252 top: 0, 3253 left: 0 3254 } : void 0; 3255 }, 3256 position: function position() { 3257 if (this[0]) { 3258 var e, 3259 t, 3260 n, 3261 r = this[0], 3262 i = { 3263 top: 0, 3264 left: 0 3265 }; 3266 if ("fixed" === S.css(r, "position")) t = r.getBoundingClientRect();else { 3267 t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement; 3268 while (e && (e === n.body || e === n.documentElement) && "static" === S.css(e, "position")) e = e.parentNode; 3269 e && e !== r && 1 === e.nodeType && ((i = S(e).offset()).top += S.css(e, "borderTopWidth", !0), i.left += S.css(e, "borderLeftWidth", !0)); 3270 } 3271 return { 3272 top: t.top - i.top - S.css(r, "marginTop", !0),
3273 left: t.left - i.left - S.css(r, "marginLeft", !0) 3274 }; 3275 } 3276 }, 3277 offsetParent: function offsetParent() { 3278 return this.map(function () { 3279 var e = this.offsetParent; 3280 while (e && "static" === S.css(e, "position")) e = e.offsetParent; 3281 return e || re; 3282 }); 3283 } 3284 }), S.each({ 3285 scrollLeft: "pageXOffset", 3286 scrollTop: "pageYOffset" 3287 }, function (t, i) { 3288 var o = "pageYOffset" === i; 3289 S.fn[t] = function (e) { 3290 return $(this, function (e, t, n) { 3291 var r; 3292 if (x(e) ? r = e : 9 === e.nodeType && (r = e.defaultView), void 0 === n) return r ? r[i] : e[t]; 3293 r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : e[t] = n; 3294 }, t, e, arguments.length); 3295 }; 3296 }), S.each(["top", "left"], function (e, n) { 3297 S.cssHooks[n] = $e(y.pixelPosition, function (e, t) { 3298 if (t) return t = Be(e, n), Me.test(t) ? S(e).position()[n] + "px" : t; 3299 }); 3300 }), S.each({ 3301 Height: "height", 3302 Width: "width" 3303 }, function (a, s) { 3304 S.each({ 3305 padding: "inner" + a, 3306 content: s, 3307 "": "outer" + a 3308 }, function (r, o) { 3309 S.fn[o] = function (e, t) { 3310 var n = arguments.length && (r || "boolean" != typeof e), 3311 i = r || (!0 === e || !0 === t ? "margin" : "border"); 3312 return $(this, function (e, t, n) { 3313 var r; 3314 return x(e) ? 0 === o.indexOf("outer") ? e["inner" + a] : e.document.documentElement["client" + a] : 9 === e.nodeType ? (r = e.documentElement, Math.max(e.body["scroll" + a], r["scroll" + a], e.body["offset" + a], r["offset" + a], r["client" + a])) : void 0 === n ? S.css(e, t, i) : S.style(e, t, n, i); 3315 }, s, n ? e : void 0, n); 3316 }; 3317 }); 3318 }), S.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) { 3319 S.fn[t] = function (e) { 3320 return this.on(t, e); 3321 }; 3322 }), S.fn.extend({ 3323 bind: function bind(e, t, n) { 3324 return this.on(e, null, t, n); 3325 }, 3326 unbind: function unbind(e, t) { 3327 return this.off(e, null, t); 3328 }, 3329 delegate: function delegate(e, t, n, r) { 3330 return this.on(t, e, n, r); 3331 }, 3332 undelegate: function undelegate(e, t, n) { 3333 return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n); 3334 }, 3335 hover: function hover(e, t) { 3336 return this.mouseenter(e).mouseleave(t || e); 3337 } 3338 }), S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function (e, n) { 3339 S.fn[n] = function (e, t) { 3340 return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n); 3341 }; 3342 }); 3343 var Gt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; 3344 S.proxy = function (e, t) { 3345 var n, r, i; 3346 if ("string" == typeof t && (n = e[t], t = e, e = n), m(e)) return r = s.call(arguments, 2), (i = function i() { 3347 return e.apply(t || this, r.concat(s.call(arguments))); 3348 }).guid = e.guid = e.guid || S.guid++, i; 3349 }, S.holdReady = function (e) { 3350 e ? S.readyWait++ : S.ready(!0); 3351 }, S.isArray = Array.isArray, S.parseJSON = JSON.parse, S.nodeName = A, S.isFunction = m, S.isWindow = x, S.camel
3351Case = X, S.type = w, S.now = Date.now, S.isNumeric = function (e) { 3352 var t = S.type(e); 3353 return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)); 3354 }, S.trim = function (e) { 3355 return null == e ? "" : (e + "").replace(Gt, ""); 3356 }, "function" == typeof define && define.amd && define("jquery", [], function () { 3357 return S; 3358 }); 3359 var Yt = C.jQuery, 3360 Qt = C.$; 3361 return S.noConflict = function (e) { 3362 return C.$ === S && (C.$ = Qt), e && C.jQuery === S && (C.jQuery = Yt), S; 3363 }, "undefined" == typeof e && (C.jQuery = C.$ = S), S; 3364}); 3365 3366// requires: jquery-3.5.1.min.js 3367 3368// make the counter count 3369$(function () { 3370 var $counters = $('[data-counter]'); // get all the counters on the page 3371 // counters might be for different values, so have loops and computation for each 3372 $counters.each(function (i, counter) { 3373 var $counter = $(counter); 3374 var start = null; // timestamp of when the counter loaded 3375 var last = null; // timestamp of previous update 3376 // rate means `1 test per [rate] ms` (NOT `[rate] tests / s`) 3377 var rate = parseInt($counter.data('counter-rate'), 10); 3378 // counter starts at `value` 3379 var value = parseInt($counter.data('counter-value'), 10); 3380 // interval is how many ms between element updates (fastest is 60fps) 3381 var interval = parseInt($counter.data('counter-interval'), 10); 3382 function updateCounter(timestamp) { 3383 if (!start) start = timestamp; // set start the first time through 3384 if (!last) last = timestamp; // set last the first time through 3385 // don't bother updating unless `interval` ms have passed 3386 if (timestamp - last > interval) { 3387 last = timestamp; // update 3388 var elapsed = timestamp - start; // ms since the counter loaded 3389 var newValue = value + elapsed / rate; // new value of the counter 3390 $counter.text(parseInt(newValue).toLocaleString()); // update the element 3391 } 3392 3393 window.requestAnimationFrame(updateCounter); // loop again 3394 } 3395 3396 window.requestAnimationFrame(updateCounter); // kick off loop 3397 }); 3398}); 3399 3400// requires: jquery-3.5.1.min.js 3401 3402$(function () { 3403 // disable submit button after submit 3404 // especially useful on forms that take a long time 3405 $('form').on('submit', function (event) { 3406 var $form = $(event.target); 3407 var $submit = $form.find('[type="submit"]'); 3408 $submit.attr('disabled', 'disabled'); 3409 }); 3410}); 3411 3412// make a global ookla object so we can put functionality there 3413var ookla = {}; 3414ookla.exists = true; 3415!function (e) { 3416 var n = !1; 3417 if ("function" == typeof define && define.amd && (define(e), n = !0), "object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports)) && (module.exports = e(), n = !0), !n) { 3418 var o = window.Cookies, 3419 t = window.Cookies = e(); 3420 t.noConflict = function () { 3421 return window.Cookies = o, t; 3422 }; 3423 } 3424}(function () { 3425 function e() { 3426 for (var e = 0, n = {}; e < arguments.length; e++) { 3427 var o = arguments[e]; 3428 for (var t in o) n[t] = o[t]; 3429 } 3430 return n; 3431 } 3432 return function n(o) { 3433 function t(n, r, i) { 3434 var c; 3435 if ("undefined" != typeof document) { 3436 if (arguments.length > 1) { 3437 if ("number" == typeof (i = e({ 3438 path: "/" 3439 }, t.defaults, i)).expires) { 3440 var a = new Date(); 3441 a.setMilliseconds(a.getMilliseconds() + 864e5 * i.expires), i.expires = a; 3442 } 3443 i.expires = i.expires ? i.expires.toUTCString() : ""; 3444 try { 3445 c = JSON.stringify(r), /^[\{\[]/.test(c) && (r = c); 3446 } catch (e) {} 3447 r = o.write ? o.write(r, n) : encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), n = (n = (n = encodeURIComponent(String(n))).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)).replace(/[\(\)]/g, escape); 3448 var s = ""; 3449 for (var f in i) i[f] && (s += "; " + f, !0 !== i[f] && (s += "=" + i[f])); 3450 return document.cookie = n + "=" + r + s; 3451 } 3452 n || (c = {}); 3453 for (var p = document.cookie ? document.cookie.split("; ") : [], d = /(%[0-9A-Z]{2})+/g, u = 0; u < p.length; u++) { 3454 var l = p[u].split("="), 3455 C = l.slice(1).join("="); 3456 this.json || '"' !== C.charAt(0) || (C = C.slice(1, -1)); 3457 try { 3458 var g = l[0].replace(d, decodeURIComponent); 3459 if (C = o.read ? o.read(C, g) : o(C, g) || C.replace(d, decodeURIComponent), this.json) try { 3460 C = JSON.parse(C); 3461 } catch (e) {} 3462 if (n === g) { 3463 c = C; 3464 break; 3465 } 3466 n || (c[g] = C); 3467 } catch (e) {} 3468 } 3469 return c; 3470 } 3471 } 3472 return t.set = t, t.get = function (e) { 3473 return t.call(t, e); 3474 }, t.getJSON = function () { 3475 return t.apply({ 3476 json: !0 3477 }, [].slice.call(arguments)); 3478 }, t.defaults = {}, t.remove = function (n, o) { 3479 t(n, "", e(o, { 3480 expires: -1 3481 })); 3482 }, t.withConverter = n, t; 3483 }(function () {}); 3484}); 3485// requires: jquery-3.5.1.min.js 3486// requires: js.cookie.min.js 3487
3488// this saves the cookie when clicking on the language selector 3489// it does not handle any redirection 3490 3491$(function () { 3492 var $languageSelector = $('[data-language-selector]'); 3493 if (!$languageSelector.length) return; 3494 var cookieName = 'preferredLocale'; 3495 var stDomain = 'speedtest.net'; 3496 var hostname = window.location.hostname; 3497 var cookieDomain = hostname.endsWith(stDomain) ? stDomain : hostname; 3498 3499 // set a preferred language 3500 $languageSelector.on('click', 'a[data-language]', function (e) { 3501 var lang = $(e.target).data('language'); 3502 Cookies.set(cookieName, lang, { 3503 expires: 180, 3504 domain: cookieDomain 3505 }); 3506 }); 3507}); 3508 3509// requires: jquery-3.5.1.min.js 3510 3511$(function () { 3512 $('.nav-mobile-controls a').on('click', function (e) { 3513 e.preventDefault(); 3514 $('body').toggleClass('nav-opened'); 3515 }); 3516}); 3517 3518// requires: jquery-3.5.1.min.js 3519// requires: global.js 3520 3521$(function () { 3522 var stubClass = 'modal-stub'; 3523 var containerSelector = '.modal-container'; 3524 var backgroundSelector = '.modal-background'; 3525 $('[data-modal-target]').on('click', function (e) { 3526 e.preventDefault(); 3527 modalOpen($(e.target).data('modal-target')); 3528 }); 3529 function modalOpen(modalId) { 3530 // insert a stub where this modal originally was in the dom 3531 var $modal = $(modalId).replaceWith('<div class="' + stubClass + '"></div>'); 3532 $(containerSelector).append($modal); 3533 $modal.addClass('modal-open').show(); 3534 // .modal-dialog is a soft modal (role="dialog") 3535 // .modal-alert is a hard modal (role="alert" or role="alertdialog") 3536 if ($modal.hasClass('modal-alert')) { 3537 // turn on aria-modal attr 3538 $modal.attr('aria-modal', 'true'); 3539 // set up tab controls inside modal 3540 modalHandleTabNavigation($modal); 3541 $(backgroundSelector).show(); 3542 } 3543 // add close events to the modal background as well as any .modal-close elements 3544 $(backgroundSelector).add('.modal-close').on('click', function (e) { 3545 e.preventDefault(); 3546 modalClose(); 3547 }); 3548 } 3549 function modalClose() { 3550 var $modal = $('.modal-open').removeClass('modal-open').hide().removeAttr('aria-modal'); 3551 var inPlace = $modal.hasClass('modal-in-place'); 3552 if (!inPlace) { 3553 // swap the stub with the modal 3554 $('.' + stubClass).replaceWith($modal); 3555 } 3556 $(backgroundSelector).hide(); 3557 // return focus to previously focused element, then reset that value for next time 3558 if (ookla.modals.$focused) { 3559 ookla.modals.$focused.focus(); 3560 ookla.modals.$focused = null; 3561 } 3562 } 3563 3564 // tab capture code from: 3565 // https://uxdesign.cc/how-to-trap-focus-inside-modal-to-make-it-ada-compliant-6a50f9a70700 3566 function modalHandleTabNavigation($modal) { 3567 // remember previously focused element 3568 ookla.modals.$focused = $(':focus'); 3569 // add all the elements inside modal which you want to make focusable 3570 3571 var focusableElements = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'; 3572 var $focusableContent = $modal.find(focusableElements); 3573 // get first and last elements to be focused inside modal 3574 var $firstFocusableElement = $focusableContent.eq(0); 3575 var $lastFocusableElement = $focusableContent.eq(-1); 3576 $(document).on('keydown', function (e) { 3577 // close modal on escape key 3578 if (e.key === 'Escape' || e.which === 27) { 3579 modalClose(); 3580 } 3581 // capture tab order inside modal 3582 var isTabPressed = e.key === 'Tab' || e.keyCode === 9; 3583 if (!isTabPressed) { 3584 return; 3585 } 3586 // if shift key pressed for shift + tab combination 3587 if (e.shiftKey) { 3588 if (document.activeElement === $firstFocusableElement.get(0)) { 3589 $lastFocusableElement.focus();
3589 // add focus for the last focusable element 3590 e.preventDefault(); 3591 } 3592 } else { 3593 // if tab key is pressed 3594 // if focused has reached to last focusable element then 3595 // focus first focusable element after pressing tab 3596 if (document.activeElement === $lastFocusableElement.get(0)) { 3597 $firstFocusableElement.focus(); // add focus for the first focusable element 3598 e.preventDefault(); 3599 } 3600 } 3601 }); 3602 // if anything in the modal has the autofocus attribute 3603 // (like the server search input), move focus to that. 3604 // otherwise focus on the first focusable element. 3605 var $autofocus = $modal.find('[autofocus], .input-autofocus'); 3606 if ($autofocus.length) { 3607 $autofocus.focus(); 3608 } else { 3609 $firstFocusableElement.focus(); 3610 } 3611 } 3612 3613 // expose open and close functions globally 3614 ookla.modals = {}; 3615 ookla.modals.$focused = null; // remember trigger element to return focus on modal close 3616 ookla.modals.open = modalOpen; 3617 ookla.modals.close = modalClose; 3618 3619 // open .modal-open-automatically modals when the page loads 3620 // only do it for the .first() one because multiple modals break things 3621 var $modalOpenAutomatically = $('.modal-open-automatically'); 3622 if ($modalOpenAutomatically.length) { 3623 modalOpen('#' + $modalOpenAutomatically.first().attr('id')); 3624 } 3625}); 3626 3627// open and close tooltips in the performance directory 3628 3629// expected pug structure: 3630// --- 3631// .performance-tooltip-boundary 3632// .whatever-elements-you-want 3633// .some-element-with-a-tooltip 3634// | some text 3635// | 3636// | 3637// .performance-tooltip-container 3638// a.performance-tooltip-trigger(href="#") 3639// svg.svg-icon: use(xlink:href='#ic_help') 3640// .performance-tooltip 3641// .performance-tooltip-inner 3642// p tooltip contents 3643// --- 3644// on large screens, the tooltip's positioning context is .performance-tooltip-container 3645// on small screens, the tooltip's positioning context is .performance-tooltip-boundary 3646// see performance.less for more layout options and information. 3647 3648(function () { 3649 // Add one event listener on the page that can handle everything. Event delegation! 3650 // eslint-disable-next-line no-undef 3651 document.addEventListener('click', function (e) { 3652 // Close any open tooltips if the user clicks anywhere on the page. However, if the click event 3653 // occurred inside an open tooltip, do not close that specific tooltip. This means a tooltip 3654 // will remain open if the user is interacting with it, which enables things like clicking 3655 // links in the tooltip, selecting text in the tooltip for copy/paste, etc. 3656 var skip = e.target.closest('.performance-tooltip'); 3657 closeTooltips(skip); 3658 // If the click event happened inside a tooltip trigger, open that tooltip. 3659 if (!!e.target.closest('.performance-tooltip-trigger')) { 3660 var container = e.target.closest('.performance-tooltip-container'); 3661 var tooltips = container.querySelectorAll('.performance-tooltip'); 3662 var bodyRect = document.body.getBoundingClientRect(); 3663 var containerRect = container.getBoundingClientRect(); 3664 var _iterator = _createForOfIteratorHelper(tooltips), 3665 _step; 3666 try { 3667 for (_iterator.s(); !(_step = _iterator.n()).done;) { 3668 var tooltip = _step.value; 3669 tooltip.classList.add('performance-tooltip-visible'); 3670 moveTooltip(containerRect, tooltip, bodyRect); 3671 } 3672 } catch (err) { 3673 _iterator.e(err); 3674 } finally { 3675 _iterator.f(); 3676 } 3677 e.preventDefault(); 3678 } 3679 }); 3680 // Close any open tooltips (with the exception of `skip`, if it exists). 3681 // There should only ever be one tooltip open at a time, but try to close any that are open. 3682 function closeTooltips(skip) { 3683 // eslint-disable-next-line no-undef 3684 var tooltips = document.querySelectorAll('.performance-tooltip-visible'); 3685 var _iterator2 = _createForOfIteratorHelper(tooltips), 3686 _step2; 3687 try { 3688 for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { 3689 var tooltip = _step2.value; 3690 // Don't close a tooltip the user is interacting with 3691 if (skip !== tooltip) { 3692 tooltip.classList.remove('performance-tooltip-visible'); 3693 var inner = tooltip.querySelector('.performance-tooltip-inner'); 3694 resetTooltip(inner); 3695 } 3696 } 3697 } catch (err) { 3698 _iterator2.e(err); 3699 } finally { 3700 _iterator2.f(); 3701 } 3702 } 3703 var timeout; // used for resize event debounce 3704 function checkTooltips() { 3705 // debounce so the function doesn't run over and over again very fast when resizing the screen 3706 // cancel the previous timeout 3707 clearTimeout(timeout); 3708 // create a new timeout 3709 timeout = setTimeout(function () { 3710 var bodyRect = document.body.getBoundingClientRect(); 3711 var tooltips = document.querySelectorAll('.performance-tooltip-visible'); 3712 var _iterator3 = _createForOfIteratorHelper(tooltips), 3713 _step3;
3714 try { 3715 for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { 3716 var tooltip = _step3.value; 3717 var container = tooltip.closest('.performance-tooltip-container'); 3718 var containerRect = container.getBoundingClientRect(); 3719 moveTooltip(containerRect, tooltip, bodyRect); 3720 } 3721 } catch (err) { 3722 _iterator3.e(err); 3723 } finally { 3724 _iterator3.f(); 3725 } 3726 }, 100); // run 100ms after last resize event 3727 } 3728 // move or resize the tooltip horizontally so it's not off the sides of the screen 3729 function moveTooltip(containerRect, tooltip, bodyRect) { 3730 var inner = tooltip.querySelector('.performance-tooltip-inner'); 3731 resetTooltip(inner); 3732 var innerRect = inner.getBoundingClientRect(); 3733 // make sure the tooltip isn't wider than the screen. 3734 // this should never happen based on the current styles, but check just in case. 3735 if (innerRect.width > bodyRect.width) { 3736 inner.style.width = "calc(".concat(bodyRect.width, "px - 1em)"); 3737 // recalculate innerRect 3738 innerRect = inner.getBoundingClientRect(); 3739 } 3740 // don't let the tooltip extend off the right side of the screen 3741 if (innerRect.x + innerRect.width > bodyRect.width) { 3742 inner.style.left = "calc(".concat(bodyRect.width - containerRect.x - innerRect.width, "px - 0.5em)"); 3743 // recalculate innerRect 3744 innerRect = inner.getBoundingClientRect(); 3745 } 3746 // don't let the tooltip extend off the left side of the screen 3747 if (innerRect.x < 0) { 3748 inner.style.left = "calc(0px - ".concat(containerRect.x, "px + 0.5em)"); 3749 // recalculate innerRect 3750 innerRect = inner.getBoundingClientRect(); 3751 } 3752 } 3753 // put the tooltip back in its original place so it can be tested again 3754 function resetTooltip(inner) { 3755 inner.style.left = null; // return left control to the stylesheet 3756 inner.style.width = null; // return width control to the stylesheet 3757 } 3758 3759 window.addEventListener('resize', checkTooltips); 3760})(); 3761 3762// requires: jquery-3.5.1.min.js 3763 3764$(function () { 3765 /* eslint "complexity": ["warn", 13] */ 3766 var ua = navigator.userAgent.toLowerCase(); 3767 var android = /android/.test(ua) && !window.MSStream; 3768 var ios = /ipad|iphone|ipod/.test(ua) && !window.MSStream; 3769 var iphone = /iphone|ipod/.test(ua) && !window.MSStream; 3770 var ipad = /ipad/.test(ua) && !window.MSStream; 3771 var className = ''; 3772 className += !android && !ios ? 'body-platform-desktop ' : ''; 3773 className += android || ios ? 'body-platform-mobile ' : ''; 3774 className += android ? 'body-platform-android ' : ''; 3775 className += ios ? 'body-platform-ios ' : ''; 3776 className += iphone ? 'body-platform-iphone ' : ''; 3777 className += ipad ? 'body-platform-ipad ' : ''; 3778 $('body').addClass(className.trim()); 3779}); 3780 3781// requires: jquery-3.5.1.min.js 3782// requires: js.cookie.min.js 3783// requires: global.js 3784// requires: modals.js 3785 3786$(function () { 3787 var $privacyUpdate = $('#privacy-updated-modal'); 3788 if (!$privacyUpdate.length) return; // if the notice isn't present, do nothing 3789 3790 var cookieName = $privacyUpdate.data('cookie-name'); 3791 var dayThreshold = 3 * 30; // usually three months 3792 var dayThresholdAgo = Date.now() - dayThreshold * 24 * 60 * 60 * 1000; 3793 var lastUpdated = $privacyUpdate.data('last-updated'); // YYYY-MM-DD format 3794 var lastUpdatedParsed = Date.parse(lastUpdated); 3795 var noticeDismissed = Cookies.get(cookieName); 3796 var noticeDismissedParsed = Date.parse(noticeDismissed); 3797 3798 // on the off chance that lastUpdated is NaN, do nothing 3799 if (!lastUpdatedParsed) return; 3800 3801 // if it was updated more than 3 months ago, do nothing 3802 if (lastUpdatedParsed < dayThresholdAgo) return; 3803 3804 // if there's no cookie, or the update is more recent, show the notice 3805 if (!noticeDismissedParsed || noticeDismissedParsed < lastUpdatedParsed) { 3806 showNotice($privacyUpdate, cookieName, lastUpdated, dayThreshold); 3807 return; 3808 } 3809 function showNotice($notice, cookieName, lastUpdated, dayThreshold) { 3810 ookla.modals.open($notice); 3811 $notice.on('click', 'a', function (e) { 3812 var href = $(e.target).closest('a').attr('href'); 3813 Cookies.set(cookieName, lastUpdated, { 3814 expires: dayThreshold 3815 }); 3816 if (href === '#') { 3817 e.preventDefault(); 3818 } 3819 }); 3820 } 3821}); 3822 3823// requires: jquery-3.5.1.min.js 3824// requires: global.js 3825 3826// determine if user is logged in, their username, and their country 3827$(function () { 3828 var $body = $('body'); 3829 ookla.user = { 3830 loggedIn: $body.is('[data-user-loggedin]'), 3831 userName: $body.data('user-username'), 3832 country: $body.data('user-country') 3833 }; 3834}); 3835(function () { 3836 var ShouldHideMarginals = /*#__PURE__*/function () { 3837 function ShouldHideMarginals() { 3838 _classCallCheck(this, ShouldHideMarginals); 3839 this.key = 'marginals'; 3840 this.value = 'hide'; 3841 this.selector = '.speedtest-marginals'; 3842 } 3843 _createClass(ShouldHideMarginals, [{ 3844 key: "hasQueryParam", 3845 value: function hasQueryParam() { 3846 var params = new URLSearchParams(window.location.search); 3847 var marginals = params.get(this.key); 3848 return marginals && marginals === this.value; 3849 } 3850 }, {
3851 key: "hasSaved", 3852 value: function hasSaved() { 3853 return sessionStorage.getItem(this.key) === this.value; 3854 } 3855 }, { 3856 key: "save", 3857 value: function save() { 3858 sessionStorage.setItem(this.key, this.value); 3859 } 3860 }, { 3861 key: "hideMarginals", 3862 value: function hideMarginals() { 3863 var marginals = document.querySelectorAll(this.selector); 3864 marginals.forEach(function (marginal) { 3865 marginal.style.display = 'none'; 3866 }); 3867 } 3868 }, { 3869 key: "init", 3870 value: function init() { 3871 if (this.hasSaved()) { 3872 this.hideMarginals(); 3873 } else if (this.hasQueryParam()) { 3874 this.hideMarginals(); 3875 this.save(); 3876 } 3877 } 3878 }]); 3879 return ShouldHideMarginals; 3880 }(); 3881 var shouldHideMarginals = new ShouldHideMarginals(); 3882 shouldHideMarginals.init(); 3883})(); 3884 3885// set your language back on st4 when you're logged in 3886$(function () { 3887 $('[data-language-selector]').on('click', 'a[data-language]', function (e) { 3888 var lang = $(e.target).data('language'); 3889 $.post('/api/js/user-settings', { 3890 action: 'savesettings', 3891 language: lang 3892 }).fail(function () { 3893 // setting preferred locale failed; log this but continue the click 3894 // eslint-disable-next-line no-console 3895 console.error('setting preferredLocale failed'); 3896 }).always(function () { 3897 // continue the navigation 3898 window.location = $(e.target).attr('href'); 3899 }); 3900 e.preventDefault(); 3901 }); 3902}); 3903 3904// log out of st4 3905$(function () { 3906 $('[data-user-logout-link]').on('click', function (e) { 3907 $.post('/user-logout').fail(function (data) { 3908 // logout failed; log this but continue the click 3909 // eslint-disable-next-line no-console 3910 console.error('logout failed', data); 3911 }).always(function () { 3912 // refresh to show new status 3913 window.location.reload(); 3914 }); 3915 e.preventDefault(); 3916 }); 3917}); 3918(function () { 3919 var nav = document.querySelector('.nav-menu'); 3920 var activeMenuItem = null; 3921 nav.addEventListener('click', handleClickEvent); 3922 nav.addEventListener('mouseenter', handleMouseEnterandFocusEvent, true); 3923 nav.addEventListener('focusin', handleMouseEnterandFocusEvent, true); 3924 nav.addEventListener('focusout', handleFocusOutandMouseLeaveEvent, true); 3925 nav.addEventListener('mouseleave', handleFocusOutandMouseLeaveEvent, true); 3926 3927 // Handle click 3928 function handleClickEvent(event) { 3929 var eventItem = event.target.closest('.nav-item-text'); 3930 var linkItem = event.target.closest('a.nav-link'); 3931 if (!eventItem) return; 3932 if (linkItem) { 3933 event.preventDefault(); 3934 // Navigate to link 3935 window.location.href = linkItem.getAttribute('href'); 3936 return; 3937 } 3938 if (eventItem === activeMenuItem) { 3939 // Close submenu that is currently active 3940 closeAllOtherItems(null); 3941 activeMenuItem = null; 3942 return; 3943 } 3944 3945 // Open the submenu for the newly clicked item 3946 closeAllOtherItems(eventItem); 3947 openSpecificItem(eventItem); 3948 } 3949 3950 // Handle mouseenter and focus events 3951 function handleMouseEnterandFocusEvent(event) { 3952 var eventItem = event.target.closest('.nav-item-text'); 3953 if (eventItem) { 3954 closeAllOtherItems(eventItem); 3955 openSpecificItem(eventItem); 3956 } 3957 } 3958 3959 // Handle focusout and mouseleave events 3960 function handleFocusOutandMouseLeaveEvent(event) { 3961 // Check if focus is moving outside the navigation menu structure 3962 if (!nav.contains(event.relatedTarget)) { 3963 // Close all submenus 3964 closeAllOtherItems(null); 3965 activeMenuItem = null; 3966 } 3967 } 3968 3969 // Open the specific item passed as an argument 3970 function openSpecificItem(eventItem) { 3971 eventItem.classList.add('active'); 3972 activeMenuItem = eventItem; 3973 } 3974 3975 // Close all other items except the one passed as an argument 3976 function closeAllOtherItems(exceptItem) { 3977 var items = nav.querySelectorAll('.nav-item-text'); 3978 items.forEach(function (item) { 3979 if (item !== exceptItem) { 3980 item.classList.remove('active'); 3981 } 3982 }); 3983 } 3984 3985 // Handle keyboard event for .nav-item-text elements 3986 $('.nav-item-text').on('keydown', function (event) { 3987 if (event.key === 'Enter') { 3988 event.preventDefault(); 3989 handleClickEvent(event); 3990 } 3991 }); 3992})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.