PageSourceSearch

https://id.engl.co.uk/id.engl.co.uk/b2c_1a_englweb/oauth2/v2.0/aut…=ID_NET10_0&x-client-ver=8.22.0.0

html engl.co.uk collected 2026-09-26 08:00:59 UTC 225,911 bytes, 1,905 lines download raw bytes

1<!DOCTYPE html>
2<!-- Build: 1.1.795.0 -->
3<!-- StateVersion: 2.1.1 -->
4<!-- DeploymentMode: Production -->
5<!-- CorrelationId: 1a3ec32f-1d0a-4367-ad6d-16b93553c595 -->
6<!-- DataCenter: AM3 -->
7<!-- Slice: 001-000 -->
8<html lang="en-US"><head><link rel="icon" href="data:;base64,iVBORw0KGgo=">
8<script data-container="true" nonce="cj4UYjqXC2rPgHGh8O1GTA==">var CP = {"list":[{"id":"ForgotPasswordExchange","description":"Forgot your password?"}]};
9var SA_FIELDS = {"AttributeFields":[{"UX_INPUT_TYPE":"TextBox","USER_INPUT_TYPE":"TextBox","IS_TEXT":true,"IS_EMAIL":false,"IS_PASSWORD":false,"IS_DATE":false,"IS_RADIO":false,"IS_DROP":false,"IS_TEXT_IN_PARAGRAPH":false,"IS_CHECK_MULTI":false,"IS_LINK":false,"VERIFY":false,"DN":"Email address","ID":"signInName","U_HELP":"","DAY_PRE":"0","MONTH_PRE":"0","YEAR_PRE":"0","IS_REQ":true,"IS_RDO":false,"OPTIONS":[]},{"UX_INPUT_TYPE":"Password","USER_INPUT_TYPE":"Password","IS_TEXT":false,"IS_EMAIL":false,"IS_PASSWORD":true,"IS_DATE":false,"IS_RADIO":false,"IS_DROP":false,"IS_TEXT_IN_PARAGRAPH":false,"IS_CHECK_MULTI":false,"IS_LINK":false,"VERIFY":false,"DN":"Password","ID":"password","U_HELP":"Enter password","DAY_PRE":"0","MONTH_PRE":"0","YEAR_PRE":"0","IS_REQ":true,"IS_RDO":false,"OPTIONS":[]}]};
10
11
12var CONTENT = {"remember_me":"Keep me signed in","invalid_generic":"Please enter a valid {0}","createaccount_one_link":"Sign up now","forgotpassword_link":"Forgot your password?","createaccount_three_links":"Sign up with {0}, {1}, or {2}","requiredField_generic":"Please enter your {0}","local_intro_generic":"Sign in with your {0}","unknown_error":"We are having trouble signing you in. Please try again later.","requiredField_password":"Please enter your password","divider_title":"OR","createaccount_intro":"Don&#39;t have an account?","social_intro":"Sign in with your social account","button_signin":"Sign in","heading":"Sign in","createaccount_two_links":"Sign up with {0} or {1}"};
13
14var SETTINGS = {"remoteResource":"https://englsoftware.blob.core.windows.net/website/bootstrap/custom-ui.html","retryLimit":3,"trimSpacesInPassword":true,"api":"CombinedSigninAndSignup","csrf":"R3hQdGp4aHBZN0s2RzZkTFlEdlhDQVVha1J5WmhoMGFIV1UxVWtlT3lVay84WnRhcVlhK3RaTTE1M3Z4MHpoQzJKWkNxZW93NWtjZ3hzYy9XWk1ldlE9PTsyMDI2LTA5LTI2VDA4OjAwOjU4Ljc4NjM4MjNaO3E0SmtLQkxudnV3ZzJ3OUtWaXJKd0E9PTt7Ik9yY2hlc3RyYXRpb25TdGVwIjoxfQ==","transId":"StateProperties=eyJUSUQiOiIxYTNlYzMyZi0xZDBhLTQzNjctYWQ2ZC0xNmI5MzU1M2M1OTUifQ","pageViewId":"fc8b7ddd-933b-44f8-b697-29658712f7ce","suppressElementCss":false,"isPageViewIdSentWithHeader":false,"allowAutoFocusOnPasswordField":true,"pageMode":1,"config":{"showSignupLink":"True","sendHintOnSignup":"False","includePasswordRequirements":"true","enableRememberMe":"True","forgotPasswordLinkLocation":"AfterInput","forgotPasswordLinkOverride":"ForgotPasswordExchange","operatingMode":"Email","announceVerCompleteMsg":"True"},"hosts":{"tenant":"/id.engl.co.uk/B2C_1A_ENGLWeb","policy":"B2C_1A_ENGLWeb","static":"https://id.engl.co.uk/static/"},"locale":{"lang":"en","country":"US"},"tenantBranding":{"Locale":"0","backgroundColor":""},"xhrSettings":{"retryEnabled":true,"retryMaxAttempts":3,"retryDelay":200,"retryExponent":2,"retryOn":["error","timeout"]}};
15
16</script>
16<script nonce="cj4UYjqXC2rPgHGh8O1GTA==">window.staticHost="https://id.engl.co.uk/static";window.targetSlice="001-000";window.targetDc="AM3";window.initializationTimeout=30000;window.diagsAlways=true;window.maxTrace=1000</script>
vendor: 16,451 bytes, lines 16-21
16<script id="element" data-script="element" nonce="cj4UYjqXC2rPgHGh8O1GTA==">/* inject:qrcodejs.qrcode.js */
17/* endinject */
18
19/* inject:jquery-3.4.1.min.js */
20/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
21!function (e, t) { "use strict"; "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function (e) { if (!e.document) throw new Error("jQuery requires a window with a document"); return t(e) } : t(e) }("undefined" != typeof window ? window : this, function (C, e) { "use strict"; var t = [], E = C.document, r = Object.getPrototypeOf, s = t.slice, g = t.concat, u = t.push, i = t.indexOf, n = {}, o = n.toString, v = n.hasOwnProperty, a = v.toString, l = a.call(Object), y = {}, m = function (e) { return "function" == typeof e && "number" != typeof e.nodeType }, x = function (e) { return null != e && e === e.window }, c = { type: !0, src: !0, nonce: !0, noModule: !0 }; function b(e, t, n) { var r, i, o = (n = n || E).createElement("script"); if (o.text = e, t) for (r in c) (i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i); n.head.appendChild(o).parentNode.removeChild(o) } function w(e) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[o.call(e)] || "object" : typeof e } var f = "3.4.1", k = function (e, t) { return new k.fn.init(e, t) }, p = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; function d(e) { var t = !!e && "length" in e && e.length, n = w(e); return !m(e) && !x(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e) } k.fn = k.prototype = { jquery: f, constructor: k, length: 0, toArray: function () { return s.call(this) }, get: function (e) { return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e] }, pushStack: function (e) { var t = k.merge(this.constructor(), e); return t.prevObject = this, t }, each: function (e) { return k.each(this, e) }, map: function (n) { return this.pushStack(k.map(this, function (e, t) { return n.call(e, t, e) })) }, slice: function () { return this.pushStack(s.apply(this, arguments)) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, eq: function (e) { var t = this.length, n = +e + (e < 0 ? t : 0); return this.pushStack(0 <= n && n < t ? [this[n]] : []) }, end: function () { return this.prevObject || this.constructor() }, push: u, sort: t.sort, splice: t.splice }, k.extend = k.fn.extend = function () { var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, u = arguments.length, l = !1; for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || m(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 && (k.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t], o = i && !Array.isArray(n) ? [] : i || k.isPlainObject(n) ? n : {}, i = !1, a[t] = k.extend(l, o, r)) : void 0 !== r && (a[t] = r)); return a }, k.extend({ expando: "jQuery" + (f + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (e) { throw new Error(e) }, noop: function () { }, isPlainObject: function (e) { var t, n; return !(!e || "[object Object]" !== o.call(e)) && (!(t = r(e)) || "function" == typeof (n = v.call(t, "constructor") && t.constructor) && a.call(n) === l) }, isEmptyObject: function (e) { var t; for (t in e) return !1; return !0 }, globalEval: function (e, t) { b(e, { nonce: t && t.nonce }) }, each: function (e, t) { var n, r = 0; if (d(e)) { for (n = e.length; r < n; r++)if (!1 === t.call(e[r], r, e[r])) break } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; return e }, trim: function (e) { return null == e ? "" : (e + "").replace(p, "") }, makeArray: function (e, t) { var n = t || []; return null != e && (d(Object(e)) ? k.merge(n, "string" == typeof e ? [e] : e) : u.call(n, e)), n }, inArray: function (e, t, n) { return null == t ? -1 : i.call(t, e, n) }, merge: function (e, t) { for (var n = +t.length, r = 0, i = e.length; r < n; r++)e[i++] = t[r]; return e.length = i, e }, grep: function (e, t, n) { for (var r = [], i = 0, o = e.length, a = !n; i < o; i++)!t(e[i], i) !== a && r.push(e[i]); return r }, map: function (e, t, n) { var r, i, o = 0, a = []; if (d(e)) for (r = e.length; o < r; o++)null != (i = t(e[o], o, n)) && a.push(i); else for (o in e) null != (i = t(e[o], o, n)) && a.push(i); return g.apply([], a) }, guid: 1, support: y }), "function" == typeof Symbol && (k.fn[Symbol.iterator] = t[Symbol.iterator]), k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { n["[object " + t + "]"] = t.toLowerCase() }); var h = function (n) { var e, d, b, o, i, h, f, g, w, u, l, T, C, a, E, v, s, c, y, k = "sizzle" + 1 * new Date, m = n.document, S = 0, r = 0, p = ue(), x = ue(), N = ue(), A = ue(), D = function (e, t) { return e === t && (l = !0), 0 }, j = {}.hasOwnProperty, t = [], q = t.pop, L = t.push, H = t.push, O = t.slice, P = function (e, t) { for (var n = 0, r = e.length; n < r; n++)if (e[n] === t) return n; return -1 }, R = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", M = "[\\x20\\t\\r\\n\\f]", I = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", W = "\\[" + M + "*(" + I + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + M + "*\\]", $ = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + W + ")*)|.*)\\)|)", F = new RegExp(M + "+", "g"), B = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"), _ = new RegExp("^" + M + "*," + M + "*"), z = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"), U = new RegExp(M + "|>"), X = new RegExp($), V = new RegExp("^" + I + "$"), G = { ID: new RegExp("^#(" + I + ")"), CLASS: new RegExp("^\\.(" + I + ")"), TAG: new RegExp("^(" + I + "|[*])"), ATTR: new RegExp("^" + W), PSEUDO: new RegExp("^" + $), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i"), bool: new RegExp("^(?:" + R + ")$", "i"), needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i") }, Y = /HTML$/i, Q = /^(?:input|select|textarea|button)$/i, J = /^h\d$/i, K = /^[^{]+\{\s*\[native \w/, Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ee = /[+~]/, te = new RegExp("\\\\([\\da-f]{1,6}" + M + "?|(" + M + ")|.)", "ig"), ne = function (e, t, n) { var r = "0x" + t - 65536; return r != r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320) }, re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, ie = function (e, t) { return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e }, oe = function () { T() }, ae = be(function (e) { return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase() }, { dir: "parentNode", next: "legend" }); try { H.apply(t = O.call(m.childNodes), m.childNodes), t[m.childNodes.length].nodeType } catch (e) { H = { apply: t.length ? function (e, t) { L.apply(e, O.call(t)) } : function (e, t) { var n = e.length, r = 0; while (e[n++] = t[r++]); e.length = n - 1 } } } function se(t, e, n, r) { var i, o, a, s, u, l, c, f = e && e.ownerDocument, p = e ? e.nodeType : 9; if (n = n || [], "string" != typeof t || !t || 1 !== p && 9 !== p && 11 !== p) return n; if (!r && ((e ? e.ownerDocument || e : m) !== C && T(e), e = e || C, E)) { if (11 !== p && (u = Z.exec(t))) if (i = u[1]) { if (9 === p) { if (!(a = e.getElementById(i))) return n; if (a.id === i) return n.push(a), n } else if (f && (a = f.getElementById(i)) && y(e, a) && a.id === i) return n.push(a), n } else { if (u[2]) return H.apply(n, e.getElementsByTagName(t)), n; if ((i = u[3]) && d.getElementsByClassName && e.getElementsByClassName) return H.apply(n, e.getElementsByClassName(i)), n } if (d.qsa && !A[t + " "] && (!v || !v.test(t)) && (1 !== p || "object" !== e.nodeName.toLowerCase())) { if (c = t, f = e, 1 === p && U.test(t)) { (s = e.getAttribute("id")) ? s = s.replace(re, ie) : e.setAttribute("id", s = k), o = (l = h(t)).length; while (o--) l[o] = "#" + s + " " + xe(l[o]); c = l.join(","), f = ee.test(t) && ye(e.parentNode) || e } try { return H.apply(n, f.querySelectorAll(c)), n } catch (e) { A(t, !0) } finally { s === k && e.removeAttribute("id") } } } return g(t.replace(B, "$1"), e, n, r) } function ue() { var r = []; return function e(t, n) { return r.push(t + " ") > b.cacheLength && delete e[r.shift()], e[t + " "] = n } } function le(e) { return e[k] = !0, e } function ce(e) { var t = C.createElement("fieldset"); try { return !!e(t) } catch (e) { return !1 } finally { t.parentNode && t.parentNode.removeChild(t), t = null } } function fe(e, t) { var n = e.split("|"), r = n.length; while (r--) b.attrHandle[n[r]] = t } function pe(e, t) { var n = t && e, r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; if (r) return r; if (n) while (n = n.nextSibling) if (n === t) return -1; return e ? 1 : -1 } function de(t) { return function (e) { return "input" === e.nodeName.toLowerCase() && e.type === t } } function he(n) { return function (e) { var t = e.nodeName.toLowerCase(); return ("input" === t || "button" === t) && e.type === n } } function ge(t) { return function (e) { 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 } } function ve(a) { return le(function (o) { return o = +o, le(function (e, t) { var n, r = a([], e.length, o), i = r.length; while (i--) e[n = r[i]] && (e[n] = !(t[n] = e[n])) }) }) } function ye(e) { return e && "undefined" != typeof e.getElementsByTagName && e } for (e in d = se.support = {}, i = se.isXML = function (e) { var t = e.namespaceURI, n = (e.ownerDocument || e).documentElement; return !Y.test(t || n && n.nodeName || "HTML") }, T = se.setDocument = function (e) { var t, n, r = e ? e.ownerDocument || e : m; return r !== C && 9 === r.nodeType && r.documentElement && (a = (C = r).documentElement, E = !i(C), m !== C && (n = C.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", oe, !1) : n.attachEvent && n.attachEvent("onunload", oe)), d.attributes = ce(function (e) { return e.className = "i", !e.getAttribute("className") }), d.getElementsByTagName = ce(function (e) { return e.appendChild(C.createComment("")), !e.getElementsByTagName("*").length }), d.getElementsByClassName = K.test(C.getElementsByClassName), d.getById = ce(function (e) { return a.appendChild(e).id = k, !C.getElementsByName || !C.getElementsByName(k).length }), d.getById ? (b.filter.ID = function (e) { var t = e.replace(te, ne); return function (e) { return e.getAttribute("id") === t } }, b.find.ID = function (e, t) { if ("undefined" != typeof t.getElementById && E) { var n = t.getElementById(e); return n ? [n] : [] } }) : (b.filter.ID = function (e) { var n = e.replace(te, ne); return function (e) { var t = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id"); return t && t.value === n } }, b.find.ID = function (e, t) { if ("undefined" != typeof t.getElementById && E) { var n, r, i, o = t.getElementById(e); if (o) { if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; i = t.getElementsByName(e), r = 0; while (o = i[r++]) if ((n = o.getAttributeNode("id")) && n.value === e) return [o] } return [] } }), b.find.TAG = d.getElementsByTagName ? function (e, t) { return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : d.qsa ? t.querySelectorAll(e) : void 0 } : function (e, t) { var n, r = [], i = 0, o = t.getElementsByTagName(e); if ("*" === e) { while (n = o[i++]) 1 === n.nodeType && r.push(n); return r } return o }, b.find.CLASS = d.getElementsByClassName && function (e, t) { if ("undefined" != typeof t.getElementsByClassName && E) return t.getElementsByClassName(e) }, s = [], v = [], (d.qsa = K.test(C.querySelectorAll)) && (ce(function (e) { a.appendChild(e).innerHTML = "<a id='" + k + "'></a><select id='" + k + "-\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~=" + k + "-]").length || v.push("~="), e.querySelectorAll(":checked").length || v.push(":checked"), e.querySelectorAll("a#" + k + "+*").length || v.push(".#.+[+~]") }), ce(function (e) { e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; var t = C.createElement("input"); 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(",.*:") })), (d.matchesSelector = K.test(c = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.oMatchesSelector || a.msMatchesSelector)) && ce(function (e) { d.disconnectedMatch = c.call(e, "*"), c.call(e, "[s!='']:x"), s.push("!=", $) }), 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) { var n = 9 === e.nodeType ? e.documentElement : e, r = t && t.parentNode; return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))) } : function (e, t) { if (t) while (t = t.parentNode) if (t === e) return !0; return !1 }, D = t ? function (e, t) { if (e === t) return l = !0, 0; var n = !e.compareDocumentPosition - !t.compareDocumentPosition; return n || (1 & (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !d.sortDetached && t.compareDocumentPosition(e) === n ? e === C || e.ownerDocument === m && y(m, e) ? -1 : t === C || t.ownerDocument === m && y(m, t) ? 1 : u ? P(u, e) - P(u, t) : 0 : 4 & n ? -1 : 1) } : function (e, t) { if (e === t) return l = !0, 0; var n, r = 0, i = e.parentNode, o = t.parentNode, a = [e], s = [t]; if (!i || !o) return e === C ? -1 : t === C ? 1 : i ? -1 : o ? 1 : u ? P(u, e) - P(u, t) : 0; if (i === o) return pe(e, t); n = e; while (n = n.parentNode) a.unshift(n); n = t; while (n = n.parentNode) s.unshift(n); while (a[r] === s[r]) r++; return r ? pe(a[r], s[r]) : a[r] === m ? -1 : s[r] === m ? 1 : 0 }), C }, se.matches = function (e, t) { return se(e, null, null, t) }, se.matchesSelector = function (e, t) { if ((e.ownerDocument || e) !== C && T(e), d.matchesSelector && E && !A[t + " "] && (!s || !s.test(t)) && (!v || !v.test(t))) try { var n = c.call(e, t); if (n || d.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n } catch (e) { A(t, !0) } return 0 < se(t, C, null, [e]).length }, se.contains = function (e, t) { return (e.ownerDocument || e) !== C && T(e), y(e, t) }, se.attr = function (e, t) { (e.ownerDocument || e) !== C && T(e); var n = b.attrHandle[t.toLowerCase()], r = n && j.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !E) : void 0; return void 0 !== r ? r : d.attributes || !E ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null }, se.escape = function (e) { return (e + "").replace(re, ie) }, se.error = function (e) { throw new Error("Syntax error, unrecognized expression: " + e) }, se.uniqueSort = function (e) { var t, n = [], r = 0, i = 0; if (l = !d.detectDuplicates, u = !d.sortStable && e.slice(0), e.sort(D), l) { while (t = e[i++]) t === e[i] && (r = n.push(i)); while (r--) e.splice(n[r], 1) } return u = null, e }, o = se.getText = function (e) { var t, n = "", r = 0, i = e.nodeType; if (i) { if (1 === i || 9 === i || 11 === i) { if ("string" == typeof e.textContent) return e.textContent; for (e = e.firstChild; e; e = e.nextSibling)n += o(e) }
vendor: 9,884 bytes, line 21
21 else if (3 === i || 4 === i) return e.nodeValue } else while (t = e[r++]) n += o(t); return n }, (b = se.selectors = { cacheLength: 50, createPseudo: le, match: G, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function (e) { return e[1] = e[1].replace(te, ne), e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4) }, CHILD: function (e) { return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || 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 }, PSEUDO: function (e) { var t, n = !e[6] && e[2]; 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)) } }, filter: { TAG: function (e) { var t = e.replace(te, ne).toLowerCase(); return "*" === e ? function () { return !0 } : function (e) { return e.nodeName && e.nodeName.toLowerCase() === t } }, CLASS: function (e) { var t = p[e + " "]; return t || (t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && p(e, function (e) { return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "") }) }, ATTR: function (n, r, i) { return function (e) { var t = se.attr(e, n); 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(F, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-")) } }, CHILD: function (h, e, t, g, v) { var y = "nth" !== h.slice(0, 3), m = "last" !== h.slice(-4), x = "of-type" === e; return 1 === g && 0 === v ? function (e) { return !!e.parentNode } : function (e, t, n) { var r, i, o, a, s, u, l = y !== m ? "nextSibling" : "previousSibling", c = e.parentNode, f = x && e.nodeName.toLowerCase(), p = !n && !x, d = !1; if (c) { if (y) { while (l) { a = e; while (a = a[l]) if (x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) return !1; u = l = "only" === h && !u && "nextSibling" } return !0 } if (u = [m ? c.firstChild : c.lastChild], m && p) { d = (s = (r = (i = (o = (a = c)[k] || (a[k] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === S && r[1]) && r[2], a = s && c.childNodes[s]; while (a = ++s && a && a[l] || (d = s = 0) || u.pop()) if (1 === a.nodeType && ++d && a === e) { i[h] = [S, s, d]; break } } else if (p && (d = s = (r = (i = (o = (a = e)[k] || (a[k] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === S && 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[k] || (a[k] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] = [S, d]), a === e)) break; return (d -= v) === g || d % g == 0 && 0 <= d / g } } }, PSEUDO: function (e, o) { var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || se.error("unsupported pseudo: " + e); return a[k] ? a(o) : 1 < a.length ? (t = [e, e, "", o], b.setFilters.hasOwnProperty(e.toLowerCase()) ? le(function (e, t) { var n, r = a(e, o), i = r.length; while (i--) e[n = P(e, r[i])] = !(t[n] = r[i]) }) : function (e) { return a(e, 0, t) }) : a } }, pseudos: { not: le(function (e) { var r = [], i = [], s = f(e.replace(B, "$1")); return s[k] ? le(function (e, t, n, r) { var i, o = s(e, null, r, []), a = e.length; while (a--) (i = o[a]) && (e[a] = !(t[a] = i)) }) : function (e, t, n) { return r[0] = e, s(r, null, n, i), r[0] = null, !i.pop() } }), has: le(function (t) { return function (e) { return 0 < se(t, e).length } }), contains: le(function (t) { return t = t.replace(te, ne), function (e) { return -1 < (e.textContent || o(e)).indexOf(t) } }), lang: le(function (n) { return V.test(n || "") || se.error("unsupported lang: " + n), n = n.replace(te, ne).toLowerCase(), function (e) { var t; do { if (t = E ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-") } while ((e = e.parentNode) && 1 === e.nodeType); return !1 } }), target: function (e) { var t = n.location && n.location.hash; return t && t.slice(1) === e.id }, root: function (e) { return e === a }, focus: function (e) { return e === C.activeElement && (!C.hasFocus || C.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) }, enabled: ge(!1), disabled: ge(!0), checked: function (e) { var t = e.nodeName.toLowerCase(); return "input" === t && !!e.checked || "option" === t && !!e.selected }, selected: function (e) { return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected }, empty: function (e) { for (e = e.firstChild; e; e = e.nextSibling)if (e.nodeType < 6) return !1; return !0 }, parent: function (e) { return !b.pseudos.empty(e) }, header: function (e) { return J.test(e.nodeName) }, input: function (e) { return Q.test(e.nodeName) }, button: function (e) { var t = e.nodeName.toLowerCase(); return "input" === t && "button" === e.type || "button" === t }, text: function (e) { var t; return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()) }, first: ve(function () { return [0] }), last: ve(function (e, t) { return [t - 1] }), eq: ve(function (e, t, n) { return [n < 0 ? n + t : n] }), even: ve(function (e, t) { for (var n = 0; n < t; n += 2)e.push(n); return e }), odd: ve(function (e, t) { for (var n = 1; n < t; n += 2)e.push(n); return e }), lt: ve(function (e, t, n) { for (var r = n < 0 ? n + t : t < n ? t : n; 0 <= --r;)e.push(r); return e }), gt: ve(function (e, t, n) { for (var r = n < 0 ? n + t : n; ++r < t;)e.push(r); return e }) } }).pseudos.nth = b.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) b.pseudos[e] = de(e); for (e in { submit: !0, reset: !0 }) b.pseudos[e] = he(e); function me() { } function xe(e) { for (var t = 0, n = e.length, r = ""; t < n; t++)r += e[t].value; return r } function be(s, e, t) { var u = e.dir, l = e.next, c = l || u, f = t && "parentNode" === c, p = r++; return e.first ? function (e, t, n) { while (e = e[u]) if (1 === e.nodeType || f) return s(e, t, n); return !1 } : function (e, t, n) { var r, i, o, a = [S, p]; if (n) { while (e = e[u]) if ((1 === e.nodeType || f) && s(e, t, n)) return !0 } else while (e = e[u]) if (1 === e.nodeType || f) if (i = (o = e[k] || (e[k] = {}))[e.uniqueID] || (o[e.uniqueID] = {}), l && l === e.nodeName.toLowerCase()) e = e[u] || e; else { if ((r = i[c]) && r[0] === S && r[1] === p) return a[2] = r[2]; if ((i[c] = a)[2] = s(e, t, n)) return !0 } return !1 } } function we(i) { return 1 < i.length ? function (e, t, n) { var r = i.length; while (r--) if (!i[r](e, t, n)) return !1; return !0 } : i[0] } function Te(e, t, n, r, i) { for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++)(o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s))); return a } function Ce(d, h, g, v, y, e) { return v && !v[k] && (v = Ce(v)), y && !y[k] && (y = Ce(y, e)), le(function (e, t, n, r) { var i, o, a, s = [], u = [], l = t.length, c = e || function (e, t, n) { for (var r = 0, i = t.length; r < i; r++)se(e, t[r], n); return n }(h || "*", n.nodeType ? [n] : n, []), f = !d || !e && h ? c : Te(c, s, d, n, r), p = g ? y || (e ? d : l || v) ? [] : t : f; if (g && g(f, p, n, r), v) { i = Te(p, u), v(i, [], n, r), o = i.length; while (o--) (a = i[o]) && (p[u[o]] = !(f[u[o]] = a)) } if (e) { if (y || d) { if (y) { i = [], o = p.length; while (o--) (a = p[o]) && i.push(f[o] = a); y(null, p = [], i, r) } o = p.length; while (o--) (a = p[o]) && -1 < (i = y ? P(e, a) : s[o]) && (e[i] = !(t[i] = a)) } } else p = Te(p === t ? p.splice(l, p.length) : p), y ? y(null, t, p, r) : H.apply(t, p) }) } function Ee(e) { 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) { return e === i }, a, !0), l = be(function (e) { return -1 < P(i, e) }, a, !0), c = [function (e, t, n) { var r = !o && (n || t !== w) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n)); return i = null, r }]; s < r; s++)if (t = b.relative[e[s].type]) c = [be(we(c), t)]; else { if ((t = b.filter[e[s].type].apply(null, e[s].matches))[k]) { for (n = ++s; n < r; n++)if (b.relative[e[n].type]) break; return Ce(1 < s && we(c), 1 < s && xe(e.slice(0, s - 1).concat({ value: " " === e[s - 2].type ? "*" : "" })).replace(B, "$1"), t, s < n && Ee(e.slice(s, n)), n < r && Ee(e = e.slice(n)), n < r && xe(e)) } c.push(t) } return we(c) } return me.prototype = b.filters = b.pseudos, b.setFilters = new me, h = se.tokenize = function (e, t) { var n, r, i, o, a, s, u, l = x[e + " "]; if (l) return t ? 0 : l.slice(0); a = e, s = [], u = b.preFilter; while (a) { 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({ value: n, type: r[0].replace(B, " ") }), a = a.slice(n.length)), b.filter) !(r = G[o].exec(a)) || u[o] && !(r = u[o](r)) || (n = r.shift(), i.push({ value: n, type: o, matches: r }), a = a.slice(n.length)); if (!n) break } return t ? a.length : a ? se.error(e) : x(e, s).slice(0) }, f = se.compile = function (e, t) { var n, v, y, m, x, r, i = [], o = [], a = N[e + " "]; if (!a) { t || (t = h(e)), n = t.length; while (n--) (a = Ee(t[n]))[k] ? i.push(a) : o.push(a); (a = N(e, (v = o, m = 0 < (y = i).length, x = 0 < v.length, r = function (e, t, n, r, i) { var o, a, s, u = 0, l = "0", c = e && [], f = [], p 
vendor: 9,885 bytes, line 21
21= w, d = e || x && b.find.TAG("*", i), h = S += null == p ? 1 : Math.random() || .1, g = d.length; for (i && (w = t === C || t || i); l !== g && null != (o = d[l]); l++) { if (x && o) { a = 0, t || o.ownerDocument === C || (T(o), n = !E); while (s = v[a++]) if (s(o, t || C, n)) { r.push(o); break } i && (S = h) } m && ((o = !s && o) && u-- , e && c.push(o)) } if (u += l, m && l !== u) { a = 0; while (s = y[a++]) s(c, f, t, n); if (e) { if (0 < u) while (l--) c[l] || f[l] || (f[l] = q.call(r)); f = Te(f) } H.apply(r, f), i && !e && 0 < f.length && 1 < u + y.length && se.uniqueSort(r) } return i && (S = h, w = p), c }, m ? le(r) : r))).selector = e } return a }, g = se.select = function (e, t, n, r) { var i, o, a, s, u, l = "function" == typeof e && e, c = !r && h(e = l.selector || e); if (n = n || [], 1 === c.length) { if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && 9 === t.nodeType && E && b.relative[o[1].type]) { if (!(t = (b.find.ID(a.matches[0].replace(te, ne), t) || [])[0])) return n; l && (t = t.parentNode), e = e.slice(o.shift().value.length) } i = G.needsContext.test(e) ? 0 : o.length; while (i--) { if (a = o[i], b.relative[s = a.type]) break; if ((u = b.find[s]) && (r = u(a.matches[0].replace(te, ne), ee.test(o[0].type) && ye(t.parentNode) || t))) { if (o.splice(i, 1), !(e = r.length && xe(o))) return H.apply(n, r), n; break } } } return (l || f(e, c))(r, t, !E, n, !t || ee.test(e) && ye(t.parentNode) || t), n }, d.sortStable = k.split("").sort(D).join("") === k, d.detectDuplicates = !!l, T(), d.sortDetached = ce(function (e) { return 1 & e.compareDocumentPosition(C.createElement("fieldset")) }), ce(function (e) { return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href") }) || fe("type|href|height|width", function (e, t, n) { if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) }), d.attributes && ce(function (e) { return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") }) || fe("value", function (e, t, n) { if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue }), ce(function (e) { return null == e.getAttribute("disabled") }) || fe(R, function (e, t, n) { var r; if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null }), se }(C); k.find = h, k.expr = h.selectors, k.expr[":"] = k.expr.pseudos, k.uniqueSort = k.unique = h.uniqueSort, k.text = h.getText, k.isXMLDoc = h.isXML, k.contains = h.contains, k.escapeSelector = h.escape; var T = function (e, t, n) { var r = [], i = void 0 !== n; while ((e = e[t]) && 9 !== e.nodeType) if (1 === e.nodeType) { if (i && k(e).is(n)) break; r.push(e) } return r }, S = function (e, t) { for (var n = []; e; e = e.nextSibling)1 === e.nodeType && e !== t && n.push(e); return n }, N = k.expr.match.needsContext; function A(e, t) { return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() } var D = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; function j(e, n, r) { return m(n) ? k.grep(e, function (e, t) { return !!n.call(e, t, e) !== r }) : n.nodeType ? k.grep(e, function (e) { return e === n !== r }) : "string" != typeof n ? k.grep(e, function (e) { return -1 < i.call(n, e) !== r }) : k.filter(n, e, r) } k.filter = function (e, t, n) { var r = t[0]; return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? k.find.matchesSelector(r, e) ? [r] : [] : k.find.matches(e, k.grep(t, function (e) { return 1 === e.nodeType })) }, k.fn.extend({ find: function (e) { var t, n, r = this.length, i = this; if ("string" != typeof e) return this.pushStack(k(e).filter(function () { for (t = 0; t < r; t++)if (k.contains(i[t], this)) return !0 })); for (n = this.pushStack([]), t = 0; t < r; t++)k.find(e, i[t], n); return 1 < r ? k.uniqueSort(n) : n }, filter: function (e) { return this.pushStack(j(this, e || [], !1)) }, not: function (e) { return this.pushStack(j(this, e || [], !0)) }, is: function (e) { return !!j(this, "string" == typeof e && N.test(e) ? k(e) : e || [], !1).length } }); var q, L = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; (k.fn.init = function (e, t, n) { var r, i; if (!e) return this; if (n = n || q, "string" == typeof e) { if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : L.exec(e)) || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); if (r[1]) { if (t = t instanceof k ? t[0] : t, k.merge(this, k.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : E, !0)), D.test(r[1]) && k.isPlainObject(t)) for (r in t) m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]); return this } return (i = E.getElementById(r[2])) && (this[0] = i, this.length = 1), this } return e.nodeType ? (this[0] = e, this.length = 1, this) : m(e) ? void 0 !== n.ready ? n.ready(e) : e(k) : k.makeArray(e, this) }).prototype = k.fn, q = k(E); var H = /^(?:parents|prev(?:Until|All))/, O = { children: !0, contents: !0, next: !0, prev: !0 }; function P(e, t) { while ((e = e[t]) && 1 !== e.nodeType); return e } k.fn.extend({ has: function (e) { var t = k(e, this), n = t.length; return this.filter(function () { for (var e = 0; e < n; e++)if (k.contains(this, t[e])) return !0 }) }, closest: function (e, t) { var n, r = 0, i = this.length, o = [], a = "string" != typeof e && k(e); if (!N.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 && k.find.matchesSelector(n, e))) { o.push(n); break } return this.pushStack(1 < o.length ? k.uniqueSort(o) : o) }, index: function (e) { return e ? "string" == typeof e ? i.call(k(e), this[0]) : i.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function (e, t) { return this.pushStack(k.uniqueSort(k.merge(this.get(), k(e, t)))) }, addBack: function (e) { return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) } }), k.each({ parent: function (e) { var t = e.parentNode; return t && 11 !== t.nodeType ? t : null }, parents: function (e) { return T(e, "parentNode") }, parentsUntil: function (e, t, n) { return T(e, "parentNode", n) }, next: function (e) { return P(e, "nextSibling") }, prev: function (e) { return P(e, "previousSibling") }, nextAll: function (e) { return T(e, "nextSibling") }, prevAll: function (e) { return T(e, "previousSibling") }, nextUntil: function (e, t, n) { return T(e, "nextSibling", n) }, prevUntil: function (e, t, n) { return T(e, "previousSibling", n) }, siblings: function (e) { return S((e.parentNode || {}).firstChild, e) }, children: function (e) { return S(e.firstChild) }, contents: function (e) { return "undefined" != typeof e.contentDocument ? e.contentDocument : (A(e, "template") && (e = e.content || e), k.merge([], e.childNodes)) } }, function (r, i) { k.fn[r] = function (e, t) { var n = k.map(this, i, e); return "Until" !== r.slice(-5) && (t = e), t && "string" == typeof t && (n = k.filter(t, n)), 1 < this.length && (O[r] || k.uniqueSort(n), H.test(r) && n.reverse()), this.pushStack(n) } }); var R = /[^\x20\t\r\n\f]+/g; function M(e) { return e } function I(e) { throw e } function W(e, t, n, r) { var i; try { 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)) } catch (e) { n.apply(void 0, [e]) } } k.Callbacks = function (r) { var e, n; r = "string" == typeof r ? (e = r, n = {}, k.each(e.match(R) || [], function (e, t) { n[t] = !0 }), n) : k.extend({}, r); var i, t, o, a, s = [], u = [], l = -1, c = function () { for (a = a || r.once, o = i = !0; u.length; l = -1) { t = u.shift(); while (++l < s.length) !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && (l = s.length, t = !1) } r.memory || (t = !1), i = !1, a && (s = t ? [] : "") }, f = { add: function () { return s && (t && !i && (l = s.length - 1, u.push(t)), function n(e) { k.each(e, function (e, t) { m(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== w(t) && n(t) }) }(arguments), t && !i && c()), this }, remove: function () { return k.each(arguments, function (e, t) { var n; while (-1 < (n = k.inArray(t, s, n))) s.splice(n, 1), n <= l && l-- }), this }, has: function (e) { return e ? -1 < k.inArray(e, s) : 0 < s.length }, empty: function () { return s && (s = []), this }, disable: function () { return a = u = [], s = t = "", this }, disabled: function () { return !s }, lock: function () { return a = u = [], t || i || (s = t = ""), this }, locked: function () { return !!a }, fireWith: function (e, t) { return a || (t = [e, (t = t || []).slice ? t.slice() : t], u.push(t), i || c()), this }, fire: function () { return f.fireWith(this, arguments), this }, fired: function () { return !!o } }; return f }, k.extend({ Deferred: function (e) { var o = [["notify", "progress", k.Callbacks("memory"), k.Callbacks("memory"), 2], ["resolve", "done", k.Callbacks("once memory"), k.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", k.Callbacks("once memory"), k.Callbacks("once memory"), 1, "rejected"]], i = "pending", a = { state: function () { return i }, always: function () { return s.done(arguments).fail(arguments), this }, "catch": function (e) { return a.then(null, e) }, pipe: function () { var i = arguments; return k.Deferred(function (r) { k.each(o, function (e, t) { var n = m(i[t[4]]) && i[t[4]]; s[t[1]](function () { var e = n && n.apply(this, arguments); e && m(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments) }) }), i = null }).promise() }, then: function (t, n, r) { var u = 0; function l(i, o, a, s) { return function () { var n = this, r = arguments, e = function () { var e, t; if (!(i < u)) { if ((e = a.apply(n, r)) === o.promise()) throw new TypeError("Thenable self
21-resolution"); t = e && ("object" == typeof e || "function" == typeof e) && e.then, m(t) ? s ? t.call(e, l(u, o, M, s), l(u, o, I, s)) : (u++ , t.call(e, l(u, o, M, s), l(u, o, I, s), l(u, o, M, o.notifyWith))) : (a !== M && (n = void 0, r = [e]), (s || o.resolveWith)(n, r)) } }, t = s ? e : function () { try { e() } catch (e) { k.Deferred.exceptionHook && k.Deferred.exceptionHook(e, t.stackTrace), u <= i + 1 && (a !== I && (n = void 0, r = [e]), o.rejectWith(n, r)) } }; i ? t() : (k.Deferred.getStackHook && (t.stackTrace = k.Deferred.getStackHook()), C.setTimeout(t)) } } return k.Deferred(function (e) { o[0][3].add(l(0, e, m(r) ? r : M, e.notifyWith)), o[1][3].add(l(0, e, m(t) ? t : M)), o[2][3].add(l(0, e, m(n) ? n : I)) }).promise() }, promise: function (e) { return null != e ? k.extend(e, a) : a } }, s = {}; return k.each(o, function (e, t) { var n = t[2], r = t[5]; a[t[1]] = n.add, r && n.add(function () { i = r }, 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 () { return s[t[0] + "With"](this === s ? void 0 : this, arguments), this }, s[t[0] + "With"] = n.fireWith }), a.promise(s), e && e.call(s, s), s }, when: function (e) { var n = arguments.length, t = n, r = Array(t), i = s.call(arguments), o = k.Deferred(), a = function (t) { return function (e) { r[t] = this, i[t] = 1 < arguments.length ? s.call(arguments) : e, --n || o.resolveWith(r, i) } }; if (n <= 1 && (W(e, o.done(a(t)).resolve, o.reject, !n), "pending" === o.state() || m(i[t] && i[t].then))) return o.then(); while (t--) W(i[t], a(t), o.reject); return o.promise() } }); var $ = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; k.Deferred.exceptionHook = function (e, t) { C.console && C.console.warn && e && $.test(e.name) && C.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t) }, k.readyException = function (e) { C.setTimeout(function () { throw e }) }; var F = k.Deferred(); function B() { E.removeEventListener("DOMContentLoaded", B), C.removeEventListener("load", B), k.ready() } k.fn.ready = function (e) { return F.then(e)["catch"](function (e) { k.readyException(e) }), this }, k.extend({ isReady: !1, readyWait: 1, ready: function (e) { (!0 === e ? --k.readyWait : k.isReady) || (k.isReady = !0) !== e && 0 < --k.readyWait || F.resolveWith(E, [k]) } }), k.ready.then = F.then, "complete" === E.readyState || "loading" !== E.readyState && !E.documentElement.doScroll ? C.setTimeout(k.ready) : (E.addEventListener("DOMContentLoaded", B), C.addEventListener("load", B)); var _ = function (e, t, n, r, i, o, a) { var s = 0, u = e.length, l = null == n; 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 (e, t, n) { return l.call(k(e), n) })), t)) for (; s < u; s++)t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); return i ? e : l ? t.call(e) : u ? t(e[0], n) : o }, z = /^-ms-/, U = /-([a-z])/g; function X(e, t) { return t.toUpperCase() } function V(e) { return e.replace(z, "ms-").replace(U, X) } var G = function (e) { return 1 === e.nodeType || 9 === e.nodeType || !+e.n
vendor: 3,404 bytes, line 21
21odeType }; function Y() { this.expando = k.expando + Y.uid++ } Y.uid = 1, Y.prototype = { cache: function (e) { var t = e[this.expando]; return t || (t = {}, G(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), t }, set: function (e, t, n) { var r, i = this.cache(e); if ("string" == typeof t) i[V(t)] = n; else for (r in t) i[V(r)] = t[r]; return i }, get: function (e, t) { return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][V(t)] }, access: function (e, t, n) { 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) }, remove: function (e, t) { var n, r = e[this.expando]; if (void 0 !== r) { if (void 0 !== t) { n = (t = Array.isArray(t) ? t.map(V) : (t = V(t)) in r ? [t] : t.match(R) || []).length; while (n--) delete r[t[n]] } (void 0 === t || k.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]) } }, hasData: function (e) { var t = e[this.expando]; return void 0 !== t && !k.isEmptyObject(t) } }; var Q = new Y, J = new Y, K = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, Z = /[A-Z]/g; function ee(e, t, n) { var r, i; if (void 0 === n && 1 === e.nodeType) if (r = "data-" + t.replace(Z, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(r))) { try { n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : K.test(i) ? JSON.parse(i) : i) } catch (e) { } J.set(e, t, n) } else n = void 0; return n } k.extend({ hasData: function (e) { return J.hasData(e) || Q.hasData(e) }, data: function (e, t, n) { return J.access(e, t, n) }, removeData: function (e, t) { J.remove(e, t) }, _data: function (e, t, n) { return Q.access(e, t, n) }, _removeData: function (e, t) { Q.remove(e, t) } }), k.fn.extend({ data: function (n, e) { var t, r, i, o = this[0], a = o && o.attributes; if (void 0 === n) { if (this.length && (i = J.get(o), 1 === o.nodeType && !Q.get(o, "hasDataAttrs"))) { t = a.length; while (t--) a[t] && 0 === (r = a[t].name).indexOf("data-") && (r = V(r.slice(5)), ee(o, r, i[r])); Q.set(o, "hasDataAttrs", !0) } return i } return "object" == typeof n ? this.each(function () { J.set(this, n) }) : _(this, function (e) { var t; if (o && void 0 === e) return void 0 !== (t = J.get(o, n)) ? t : void 0 !== (t = ee(o, n)) ? t : void 0; this.each(function () { J.set(this, n, e) }) }, null, e, 1 < arguments.length, null, !0) }, removeData: function (e) { return this.each(function () { J.remove(this, e) }) } }), k.extend({ queue: function (e, t, n) { var r; if (e) return t = (t || "fx") + "queue", r = Q.get(e, t), n && (!r || Array.isArray(n) ? r = Q.access(e, t, k.makeArray(n)) : r.push(n)), r || [] }, dequeue: function (e, t) { t = t || "fx"; var n = k.queue(e, t), r = n.length, i = n.shift(), o = k._queueHooks(e, t); "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, function () { k.dequeue(e, t) }, o)), !r && o && o.empty.fire() }, _queueHooks: function (e, t) { var n = t + "queueHooks"; return Q.get(e, n) || Q.access(e, n, { empty: k.Callbacks("once memory").add(function () { Q.remove(e, [t + "queue", n]) }) }) } }), k.fn.extend({ queue: function (t, n) { var e = 2; return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? k.queue(this[0], t) : void 0 === n ? this 
vendor: 11,441 bytes, line 21
21: this.each(function () { var e = k.queue(this, t, n); k._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && k.dequeue(this, t) }) }, dequeue: function (e) { return this.each(function () { k.dequeue(this, e) }) }, clearQueue: function (e) { return this.queue(e || "fx", []) }, promise: function (e, t) { var n, r = 1, i = k.Deferred(), o = this, a = this.length, s = function () { --r || i.resolveWith(o, [o]) }; "string" != typeof e && (t = e, e = void 0), e = e || "fx"; while (a--) (n = Q.get(o[a], e + "queueHooks")) && n.empty && (r++ , n.empty.add(s)); return s(), i.promise(t) } }); var te = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, ne = new RegExp("^(?:([+-])=|)(" + te + ")([a-z%]*)$", "i"), re = ["Top", "Right", "Bottom", "Left"], ie = E.documentElement, oe = function (e) { return k.contains(e.ownerDocument, e) }, ae = { composed: !0 }; ie.getRootNode && (oe = function (e) { return k.contains(e.ownerDocument, e) || e.getRootNode(ae) === e.ownerDocument }); var se = function (e, t) { return "none" === (e = t || e).style.display || "" === e.style.display && oe(e) && "none" === k.css(e, "display") }, ue = function (e, t, n, r) { var i, o, a = {}; for (o in t) a[o] = e.style[o], e.style[o] = t[o]; for (o in i = n.apply(e, r || []), t) e.style[o] = a[o]; return i }; function le(e, t, n, r) { var i, o, a = 20, s = r ? function () { return r.cur() } : function () { return k.css(e, t, "") }, u = s(), l = n && n[3] || (k.cssNumber[t] ? "" : "px"), c = e.nodeType && (k.cssNumber[t] || "px" !== l && +u) && ne.exec(k.css(e, t)); if (c && c[3] !== l) { u /= 2, l = l || c[3], c = +u || 1; while (a--) k.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o; c *= 2, k.style(e, t, c + l), n = n || [] } return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i } var ce = {}; function fe(e, t) { 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] = Q.get(r, "display") || null, l[c] || (r.style.display = "")), "" === r.style.display && se(r) && (l[c] = (u = a = o = void 0, a = (i = r).ownerDocument, s = i.nodeName, (u = ce[s]) || (o = a.body.appendChild(a.createElement(s)), u = k.css(o, "display"), o.parentNode.removeChild(o), "none" === u && (u = "block"), ce[s] = u)))) : "none" !== n && (l[c] = "none", Q.set(r, "display", n))); for (c = 0; c < f; c++)null != l[c] && (e[c].style.display = l[c]); return e } k.fn.extend({ show: function () { return fe(this, !0) }, hide: function () { return fe(this) }, toggle: function (e) { return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () { se(this) ? k(this).show() : k(this).hide() }) } }); var pe = /^(?:checkbox|radio)$/i, de = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, he = /^$|^module$|\/(?:java|ecma)script/i, ge = { option: [1, "<select multiple='multiple'>", "</select>"], thead: [1, "<table>", "</table>"], col: [2, "<table><colgroup>", "</colgroup></table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""] }; function ve(e, t) { var n; return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && A(e, t) ? k.merge([e], n) : n } function ye(e, t) { for (var n = 0, r = e.length; n < r; n++)Q.set(e[n], "globalEval", !t || Q.get(t[n], "globalEval")) } ge.optgroup = ge.option, ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td; var me, xe, be = /<|&#?\w+;/; function we(e, t, n, r, i) { 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)) k.merge(p, o.nodeType ? [o] : o); else if (be.test(o)) { a = a || f.appendChild(t.createElement("div")), s = (de.exec(o) || ["", ""])[1].toLowerCase(), u = ge[s] || ge._default, a.innerHTML = u[1] + k.htmlPrefilter(o) + u[2], c = u[0]; while (c--) a = a.lastChild; k.merge(p, a.childNodes), (a = f.firstChild).textContent = "" } else p.push(t.createTextNode(o)); f.textContent = "", d = 0; while (o = p[d++]) if (r && -1 < k.inArray(o, r)) i && i.push(o); else if (l = oe(o), a = ve(f.appendChild(o), "script"), l && ye(a), n) { c = 0; while (o = a[c++]) he.test(o.type || "") && n.push(o) } return f } me = E.createDocumentFragment().appendChild(E.createElement("div")), (xe = E.createElement("input")).setAttribute("type", "radio"), xe.setAttribute("checked", "checked"), xe.setAttribute("name", "t"), me.appendChild(xe), y.checkClone = me.cloneNode(!0).cloneNode(!0).lastChild.checked, me.innerHTML = "<textarea>x</textarea>", y.noCloneChecked = !!me.cloneNode(!0).lastChild.defaultValue; var Te = /^key/, Ce = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, Ee = /^([^.]*)(?:\.(.+)|)/; function ke() { return !0 } function Se() { return !1 } function Ne(e, t) { return e === function () { try { return E.activeElement } catch (e) { } }() == ("focus" === t) } function Ae(e, t, n, r, i, o) { var a, s; if ("object" == typeof t) { for (s in "string" != typeof n && (r = r || n, n = void 0), t) Ae(e, s, n, r, t[s], o); return e } if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = Se; else if (!i) return e; return 1 === o && (a = i, (i = function (e) { return k().off(e), a.apply(this, arguments) }).guid = a.guid || (a.guid = k.guid++)), e.each(function () { k.event.add(this, t, i, r, n) }) } function De(e, i, o) { o ? (Q.set(e, i, !1), k.event.add(e, i, { namespace: !1, handler: function (e) { var t, n, r = Q.get(this, i); if (1 & e.isTrigger && this[i]) { if (r.length) (k.event.special[i] || {}).delegateType && e.stopPropagation(); else if (r = s.call(arguments), Q.set(this, i, r), t = o(this, i), this[i](), r !== (n = Q.get(this, i)) || t ? Q.set(this, i, !1) : n = {}, r !== n) return e.stopImmediatePropagation(), e.preventDefault(), n.value } else r.length && (Q.set(this, i, { value: k.event.trigger(k.extend(r[0], k.Event.prototype), r.slice(1), this) }), e.stopImmediatePropagation()) } })) : void 0 === Q.get(e, i) && k.event.add(e, i, ke) } k.event = { global: {}, add: function (t, e, n, r, i) { var o, a, s, u, l, c, f, p, d, h, g, v = Q.get(t); if (v) { n.handler && (n = (o = n).handler, i = o.selector), i && k.find.matchesSelector(ie, i), n.guid || (n.guid = k.guid++), (u = v.events) || (u = v.events = {}), (a = v.handle) || (a = v.handle = function (e) { return "undefined" != typeof k && k.event.triggered !== e.type ? k.event.dispatch.apply(t, arguments) : void 0 }), l = (e = (e || "").match(R) || [""]).length; while (l--) d = g = (s = Ee.exec(e[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = k.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = k.event.special[d] || {}, c = k.extend({ type: d, origType: g, data: r, handler: n, guid: n.guid, selector: i, needsContext: i && k.expr.match.needsContext.test(i), namespace: h.join(".") }, 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), k.event.global[d] = !0) } }, remove: function (e, t, n, r, i) { var o, a, s, u, l, c, f, p, d, h, g, v = Q.hasData(e) && Q.get(e); if (v && (u = v.events)) { l = (t = (t || "").match(R) || [""]).length; while (l--) if (d = g = (s = Ee.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d) { f = k.event.special[d] || {}, p = u[d = (r ? f.delegateType : f.bindType) || d] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length; 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)); a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, v.handle) || k.removeEvent(e, d, v.handle), delete u[d]) } else for (d in u) k.event.remove(e, d + t[l], n, r, !0); k.isEmptyObject(u) && Q.remove(e, "handle events") } }, dispatch: function (e) { var t, n, r, i, o, a, s = k.event.fix(e), u = new Array(arguments.length), l = (Q.get(this, "events") || {})[s.type] || [], c = k.event.special[s.type] || {}; for (u[0] = s, t = 1; t < arguments.length; t++)u[t] = arguments[t]; if (s.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, s)) { a = k.event.handlers.call(this, s, l), t = 0; while ((i = a[t++]) && !s.isPropagationStopped()) { s.currentTarget = i.elem, n = 0; while ((o = i.handlers[n++]) && !s.isImmediatePropagationStopped()) s.rnamespace && !1 !== o.namespace && !s.rnamespace.test(o.namespace) || (s.handleObj = o, s.data = o.data, void 0 !== (r = ((k.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, u)) && !1 === (s.result = r) && (s.preventDefault(), s.stopPropagation())) } return c.postDispatch && c.postDispatch.call(this, s), s.result } }, handlers: function (e, t) { var n, r, i, o, a, s = [], u = t.delegateCount, l = e.target; 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)) { for (o = [], a = {}, n = 0; n < u; n++)void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? -1 < k(i, this).index(l) : k.find(i, this, null, [l]).length), a[i] && o.push(r); o.length && s.push({ elem: l, handlers: o }) } return l = this, u < t.length && s.push({ elem: l, handlers: t.slice(u) }), s }, addProp: function (t, e) { Object.defineProperty(k.Event.prototype, t, { enumerable: !0, configurable: !0, get: m(e) ? function () { if (this.originalEvent) return e(this.originalEvent) } : function () { if (this.originalEvent) return this.originalEvent[t] }, set: function (e) { Object.defineProperty(this, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) } }) }, fix: function (e) { return e[k.expando] ? e : new k.Event(e) }, special: { load: { noBubble: !0 }, click: { setup: function (e) { var t = this || e; return pe.test(t.type) && t.click && A(t, "input") && De(t, "click", ke), !1 }, trigger: function (e) { var t = this || e; return pe.test(t.type) && t.click && A(t, "input") && De(t, "click"), !0 }, _default: function (e) { var t = e.target; return pe.test(t.type) && t.click && A(t, "input") && Q.get(t, "click") || A(t, "a") } }, beforeunload: { postDispatch: function (e) { void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result) } } } }, k.removeEvent = function (e, t, n) { e.removeEventListener && e.removeEventListener(t, n) }, k.Event = function (e, t) { if (!(this instanceof k.Event)) return new k.Event(e, t); e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? ke : Se, 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 && k.extend(this, t), this.timeStamp = e && e.t
vendor: 2,609 bytes, line 21
21imeStamp || Date.now(), this[k.expando] = !0 }, k.Event.prototype = { constructor: k.Event, isDefaultPrevented: Se, isPropagationStopped: Se, isImmediatePropagationStopped: Se, isSimulated: !1, preventDefault: function () { var e = this.originalEvent; this.isDefaultPrevented = ke, e && !this.isSimulated && e.preventDefault() }, stopPropagation: function () { var e = this.originalEvent; this.isPropagationStopped = ke, e && !this.isSimulated && e.stopPropagation() }, stopImmediatePropagation: function () { var e = this.originalEvent; this.isImmediatePropagationStopped = ke, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation() } }, k.each({ altKey: !0, bubbles: !0, cancelable: !0, changedTouches: !0, ctrlKey: !0, detail: !0, eventPhase: !0, metaKey: !0, pageX: !0, pageY: !0, shiftKey: !0, view: !0, "char": !0, code: !0, charCode: !0, key: !0, keyCode: !0, button: !0, buttons: !0, clientX: !0, clientY: !0, offsetX: !0, offsetY: !0, pointerId: !0, pointerType: !0, screenX: !0, screenY: !0, targetTouches: !0, toElement: !0, touches: !0, which: function (e) { var t = e.button; return null == e.which && Te.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Ce.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which } }, k.event.addProp), k.each({ focus: "focusin", blur: "focusout" }, function (e, t) { k.event.special[e] = { setup: function () { return De(this, e, Ne), !1 }, trigger: function () { return De(this, e), !0 }, delegateType: t } }), k.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function (e, i) { k.event.special[e] = { delegateType: i, bindType: i, handle: function (e) { var t, n = e.relatedTarget, r = e.handleObj; return n && (n === this || k.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t } } }), k.fn.extend({ on: function (e, t, n, r) { return Ae(this, e, t, n, r) }, one: function (e, t, n, r) { return Ae(this, e, t, n, r, 1) }, off: function (e, t, n) { var r, i; if (e && e.preventDefault && e.handleObj) return r = e.handleObj, k(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; if ("object" == typeof e) { for (i in e) this.off(i, t, e[i]); return this } return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = Se), this.each(function () { k.event.remove(this, e, n, t) }) } }); var je = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, qe = /
vendor: 10,177 bytes, line 21
21<script|<style|<link/i, Le = /checked\s*(?:[^=]|=\s*.checked.)/i, He = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; function Oe(e, t) { return A(e, "table") && A(11 !== t.nodeType ? t : t.firstChild, "tr") && k(e).children("tbody")[0] || e } function Pe(e) { return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e } function Re(e) { return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e } function Me(e, t) { var n, r, i, o, a, s, u, l; if (1 === t.nodeType) { if (Q.hasData(e) && (o = Q.access(e), a = Q.set(t, o), l = o.events)) for (i in delete a.handle, a.events = {}, l) for (n = 0, r = l[i].length; n < r; n++)k.event.add(t, i, l[i][n]); J.hasData(e) && (s = J.access(e), u = k.extend({}, s), J.set(t, u)) } } function Ie(n, r, i, o) { r = g.apply([], r); var e, t, a, s, u, l, c = 0, f = n.length, p = f - 1, d = r[0], h = m(d); if (h || 1 < f && "string" == typeof d && !y.checkClone && Le.test(d)) return n.each(function (e) { var t = n.eq(e); h && (r[0] = d.call(this, e, t.html())), Ie(t, r, i, o) }); if (f && (t = (e = we(r, n[0].ownerDocument, !1, n, o)).firstChild, 1 === e.childNodes.length && (e = t), t || o)) { for (s = (a = k.map(ve(e, "script"), Pe)).length; c < f; c++)u = e, c !== p && (u = k.clone(u, !0, !0), s && k.merge(a, ve(u, "script"))), i.call(n[c], u, c); if (s) for (l = a[a.length - 1].ownerDocument, k.map(a, Re), c = 0; c < s; c++)u = a[c], he.test(u.type || "") && !Q.access(u, "globalEval") && k.contains(l, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? k._evalUrl && !u.noModule && k._evalUrl(u.src, { nonce: u.nonce || u.getAttribute("nonce") }) : b(u.textContent.replace(He, ""), u, l)) } return n } function We(e, t, n) { for (var r, i = t ? k.filter(t, e) : e, o = 0; null != (r = i[o]); o++)n || 1 !== r.nodeType || k.cleanData(ve(r)), r.parentNode && (n && oe(r) && ye(ve(r, "script")), r.parentNode.removeChild(r)); return e } k.extend({ htmlPrefilter: function (e) { return e.replace(je, "<$1></$2>") }, clone: function (e, t, n) { var r, i, o, a, s, u, l, c = e.cloneNode(!0), f = oe(e); if (!(y.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || k.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); if (t) if (n) for (o = o || ve(e), a = a || ve(c), r = 0, i = o.length; r < i; r++)Me(o[r], a[r]); else Me(e, c); return 0 < (a = ve(c, "script")).length && ye(a, !f && ve(e, "script")), c }, cleanData: function (e) { for (var t, n, r, i = k.event.special, o = 0; void 0 !== (n = e[o]); o++)if (G(n)) { if (t = n[Q.expando]) { if (t.events) for (r in t.events) i[r] ? k.event.remove(n, r) : k.removeEvent(n, r, t.handle); n[Q.expando] = void 0 } n[J.expando] && (n[J.expando] = void 0) } } }), k.fn.extend({ detach: function (e) { return We(this, e, !0) }, remove: function (e) { return We(this, e) }, text: function (e) { return _(this, function (e) { return void 0 === e ? k.text(this) : this.empty().each(function () { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e) }) }, null, e, arguments.length) }, append: function () { return Ie(this, arguments, function (e) { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Oe(this, e).appendChild(e) }) }, prepend: function () { return Ie(this, arguments, function (e) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var t = Oe(this, e); t.insertBefore(e, t.firstChild) } }) }, before: function () { return Ie(this, arguments, function (e) { this.parentNode && this.parentNode.insertBefore(e, this) }) }, after: function () { return Ie(this, arguments, function (e) { this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) }) }, empty: function () { for (var e, t = 0; null != (e = this[t]); t++)1 === e.nodeType && (k.cleanData(ve(e, !1)), e.textContent = ""); return this }, clone: function (e, t) { return e = null != e && e, t = null == t ? e : t, this.map(function () { return k.clone(this, e, t) }) }, html: function (e) { return _(this, function (e) { var t = this[0] || {}, n = 0, r = this.length; if (void 0 === e && 1 === t.nodeType) return t.innerHTML; if ("string" == typeof e && !qe.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) { e = k.htmlPrefilter(e); try { for (; n < r; n++)1 === (t = this[n] || {}).nodeType && (k.cleanData(ve(t, !1)), t.innerHTML = e); t = 0 } catch (e) { } } t && this.empty().append(e) }, null, e, arguments.length) }, replaceWith: function () { var n = []; return Ie(this, arguments, function (e) { var t = this.parentNode; k.inArray(this, n) < 0 && (k.cleanData(ve(this)), t && t.replaceChild(e, this)) }, n) } }), k.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (e, a) { k.fn[e] = function (e) { for (var t, n = [], r = k(e), i = r.length - 1, o = 0; o <= i; o++)t = o === i ? this : this.clone(!0), k(r[o])[a](t), u.apply(n, t.get()); return this.pushStack(n) } }); var $e = new RegExp("^(" + te + ")(?!px)[a-z%]+$", "i"), Fe = function (e) { var t = e.ownerDocument.defaultView; return t && t.opener || (t = C), t.getComputedStyle(e) }, Be = new RegExp(re.join("|"), "i"); function _e(e, t, n) { var r, i, o, a, s = e.style; return (n = n || Fe(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || oe(e) || (a = k.style(e, t)), !y.pixelBoxStyles() && $e.test(a) && Be.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 } function ze(e, t) { return { get: function () { if (!e()) return (this.get = t).apply(this, arguments); delete this.get } } } !function () { function e() { if (u) { s.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", u.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", ie.appendChild(s).appendChild(u); var e = C.getComputedStyle(u); n = "1%" !== e.top, a = 12 === t(e.marginLeft), u.style.right = "60%", o = 36 === t(e.right), r = 36 === t(e.width), u.style.position = "absolute", i = 12 === t(u.offsetWidth / 3), ie.removeChild(s), u = null } } function t(e) { return Math.round(parseFloat(e)) } var n, r, i, o, a, s = E.createElement("div"), u = E.createElement("div"); u.style && (u.style.backgroundClip = "content-box", u.cloneNode(!0).style.backgroundClip = "", y.clearCloneStyle = "content-box" === u.style.backgroundClip, k.extend(y, { boxSizingReliable: function () { return e(), r }, pixelBoxStyles: function () { return e(), o }, pixelPosition: function () { return e(), n }, reliableMarginLeft: function () { return e(), a }, scrollboxSize: function () { return e(), i } })) }(); var Ue = ["Webkit", "Moz", "ms"], Xe = E.createElement("div").style, Ve = {}; function Ge(e) { var t = k.cssProps[e] || Ve[e]; return t || (e in Xe ? e : Ve[e] = function (e) { var t = e[0].toUpperCase() + e.slice(1), n = Ue.length; while (n--) if ((e = Ue[n] + t) in Xe) return e }(e) || e) } var Ye = /^(none|table(?!-c[ea]).+)/, Qe = /^--/, Je = { position: "absolute", visibility: "hidden", display: "block" }, Ke = { letterSpacing: "0", fontWeight: "400" }; function Ze(e, t, n) { var r = ne.exec(t); return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t } function et(e, t, n, r, i, o) { var a = "width" === t ? 1 : 0, s = 0, u = 0; if (n === (r ? "border" : "content")) return 0; for (; a < 4; a += 2)"margin" === n && (u += k.css(e, n + re[a], !0, i)), r ? ("content" === n && (u -= k.css(e, "padding" + re[a], !0, i)), "margin" !== n && (u -= k.css(e, "border" + re[a] + "Width", !0, i))) : (u += k.css(e, "padding" + re[a], !0, i), "padding" !== n ? u += k.css(e, "border" + re[a] + "Width", !0, i) : s += k.css(e, "border" + re[a] + "Width", !0, i)); return !r && 0 <= o && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5)) || 0), u } function tt(e, t, n) { var r = Fe(e), i = (!y.boxSizingReliable() || n) && "border-box" === k.css(e, "boxSizing", !1, r), o = i, a = _e(e, t, r), s = "offset" + t[0].toUpperCase() + t.slice(1); if ($e.test(a)) { if (!n) return a; a = "auto" } return (!y.boxSizingReliable() && i || "auto" === a || !parseFloat(a) && "inline" === k.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === k.css(e, "boxSizing", !1, r), (o = s in e) && (a = e[s])), (a = parseFloat(a) || 0) + et(e, t, n || (i ? "border" : "content"), o, r, a) + "px" } function nt(e, t, n, r, i) { return new nt.prototype.init(e, t, n, r, i) } k.extend({ cssHooks: { opacity: { get: function (e, t) { if (t) { var n = _e(e, "opacity"); return "" === n ? "1" : n } } } }, cssNumber: { animationIterationCount: !0, columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, gridArea: !0, gridColumn: !0, gridColumnEnd: !0, gridColumnStart: !0, gridRow: !0, gridRowEnd: !0, gridRowStart: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, cssProps: {}, style: function (e, t, n, r) { if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { var i, o, a, s = V(t), u = Qe.test(t), l = e.style; if (u || (t = Ge(s)), a = k.cssHooks[t] || k.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; "string" === (o = typeof n) && (i = ne.exec(n)) && i[1] && (n = le(e, t, i), o = "number"), null != n && n == n && ("number" !== o || u || (n += i && i[3] || (k.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)) } }, css: function (e, t, n, r) { var i, o, a, s = V(t); return Qe.test(t) || (t = Ge(s)), (a = k.cssHooks[t] || k.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = _e(e, t, r)), "n
21ormal" === i && t in Ke && (i = Ke[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i } }), k.each(["height", "width"], function (e, u) { k.cssHooks[u] = { get: function (e, t, n) { if (t) return !Ye.test(k.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? tt(e, u, n) : ue(e, Je, function () { return tt(e, u, n) }) }, set: function (e, t, n) { var r, i = Fe(e), o = !y.scrollboxSize() && "absolute" === i.position, a = (o || n) && "border-box" === k.css(e, "boxSizing", !1, i), s = n ? et(e, u, n, a, i) : 0; return a && o && (s -= Math.ceil(e["offset" + u[0].toUpperCase() + u.slice(1)] - parseFloat(i[u]) - et(e, u, "border", !1, i) - .5)), s && (r = ne.exec(t)) && "px" !== (r[3] || "px") && (e.style[u] = t, t = k.css(e, u)), Ze(0, t, s) } } }), k.cssHooks.marginLeft = ze(y.reliableMarginLeft, function (e, t) { if (t) return (parseFloat(_e(e, "marginLeft")) || e.getBoundingClientRect().left - ue(e, { marginLeft: 0 }, function () { return e.getBoundingClientRect().left })) + "px" }), k.each({ margin: "", padding: "", border: "Width" }, function (i, o) { k.cssHooks[i + o] = { expand: function (e) { for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++)n[i + re[t] + o] = r[t] || r[t - 2] || r[0]; return n } }, "margin" !== i && (k.cssHooks[i + o].set = Ze) }), k.fn.extend({ css: function (e, t) { return _(this, function (e, t, n) { var r, i, o = {}, a = 0; if (Array.isArray(t)) { for (r = Fe(e), i = t.length; a < i; a++)o[t[a]] = k.css(e, t[a], !1, r); return o } return void 0 !== n ? k.style(e, t, n) : k.css(e, t) }, e, t, 1 < arguments.length) } }), ((k.Tween = nt).prototype = { constructor: nt, init: function (e, t, n, r, i, o) { this.elem = e, this.prop = n, this.easing = i || k.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (k.cssNumber[n] ? "" : "px") }, cur: function () { var e = nt.propHooks[this.prop]; return e && e.get ? e.get(this) : nt.propHooks._default.get(this) }, run: function (e) { var t, n = nt.propHooks[this.prop]; return this.options.duration ? this.pos = t = k.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) : nt.propHooks._default.set(this), this } }).init.prototype = nt.prototype, (nt.propHooks = { _default: { get: function (e) { var t; return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = k.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0 }, set: function (e) { k.fx.step[e.prop] ? k.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !k.cssHooks[e.prop] && null == e.elem.style[Ge(e.prop)] ? e.elem[e.prop] = e.now : k.style(e.elem, e.prop, e.now + e.unit) } } }).scrollTop = nt.propHooks.scrollLeft = { set: function (e) { e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) } }, k.easing = { linear: function (e) { return e }, swing: function (e) { return .5 - Math.cos(e * Math.PI) / 2 }, _default: "swing" }, k.fx = nt.prototype.init, k.fx.step = {}; var rt, it, ot, at, st = /^(?:toggle|show|hide)$/, ut = /queueHooks$/; function lt() { it && (!1 === E.hidden && C.requestAnimationFrame ? C.requestAnimationFrame(lt) : C.setTimeout(lt, k.fx.interval), k.fx.tick()) } function ct() { return C.setTimeout(function () { rt = void 0 }), rt = Date.now() } function ft(e, t) { var n, r = 0, i = { height: e }; for (t = t ? 1 : 0; r < 4; r += 2 - t)i["margin" + (n = re[r])] = i["padding" + n] = e; return t && (i.opacity = i.width = e), i } function pt(e, t, n) { for (var r, i = (dt.tweeners[t] || []).concat(dt.tweeners["*"]), o = 0, a = i.length; o < a; o++)if (r = i[o].call(n, t, e)) return r } function dt(o, e, t) { var n, a, r = 0, i = dt.prefilters.length, s = k.Deferred().always(function () { delete u.elem }), u = function () { if (a) return !1; for (var e = rt || ct(), 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); return s.notifyWith(o, [l, n, t]), n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l]), !1) }, l = s.promise({ elem: o, props: k.extend({}, e), opts: k.extend(!0, { specialEasing: {}, easing: k.easing._default }, t), originalProperties: e, originalOptions: t, startTime: rt || ct(), duration: t.duration, tweens: [], createTween: function (e, t) { var n = k.Tween(o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing); return l.tweens.push(n), n }, stop: function (e) { var t = 0, n = e ? l.tweens.length : 0; if (a) return this; for (a = !0; t < n; t++)l.tweens[t].run(1); return e ? (s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]), this } }), c = l.props; for (!function (e, t) { var n, r, i, o, a; for (n in e) if (i = t[r = V(n)], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = k.cssHooks[r]) && "expand" in a) for (n in o = a.expand(o), delete e[r], o) n in e || (e[n] = o[n], t[n] = i); else t[r] = i }(c, l.opts.specialEasing); r < i;
vendor: 5,340 bytes, line 21
21 r++)if (n = dt.prefilters[r].call(l, o, c, l.opts)) return m(n.stop) && (k._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), n; return k.map(c, pt, 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), k.fx.timer(k.extend(u, { elem: o, anim: l, queue: l.opts.queue })), l } k.Animation = k.extend(dt, { tweeners: { "*": [function (e, t) { var n = this.createTween(e, t); return le(n.elem, e, ne.exec(t), n), n }] }, tweener: function (e, t) { m(e) ? (t = e, e = ["*"]) : e = e.match(R); for (var n, r = 0, i = e.length; r < i; r++)n = e[r], dt.tweeners[n] = dt.tweeners[n] || [], dt.tweeners[n].unshift(t) }, prefilters: [function (e, t, n) { var r, i, o, a, s, u, l, c, f = "width" in t || "height" in t, p = this, d = {}, h = e.style, g = e.nodeType && se(e), v = Q.get(e, "fxshow"); for (r in n.queue || (null == (a = k._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function () { a.unqueued || s() }), a.unqueued++ , p.always(function () { p.always(function () { a.unqueued-- , k.queue(e, "fx").length || a.empty.fire() }) })), t) if (i = t[r], st.test(i)) { if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) { if ("show" !== i || !v || void 0 === v[r]) continue; g = !0 } d[r] = v && v[r] || k.style(e, r) } if ((u = !k.isEmptyObject(t)) || !k.isEmptyObject(d)) for (r in f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (l = v && v.display) && (l = Q.get(e, "display")), "none" === (c = k.css(e, "display")) && (l ? c = l : (fe([e], !0), l = e.style.display || l, c = k.css(e, "display"), fe([e]))), ("inline" === c || "inline-block" === c && null != l) && "none" === k.css(e, "float") && (u || (p.done(function () { h.display = l }), null == l && (c = h.display, l = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", p.always(function () { h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2] })), u = !1, d) u || (v ? "hidden" in v && (g = v.hidden) : v = Q.access(e, "fxshow", { display: l }), o && (v.hidden = !g), g && fe([e], !0), p.done(function () { for (r in g || fe([e]), Q.remove(e, "fxshow"), d) k.style(e, r, d[r]) })), u = pt(g ? v[r] : 0, r, p), r in v || (v[r] = u.start, g && (u.end = u.start, u.start = 0)) }], prefilter: function (e, t) { t ? dt.prefilters.unshift(e) : dt.prefilters.push(e) } }), k.speed = function (e, t, n) { var r = e && "object" == typeof e ? k.extend({}, e) : { complete: n || !n && t || m(e) && e, duration: e, easing: n && t || t && !m(t) && t }; return k.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in k.fx.speeds ? r.duration = k.fx.speeds[r.duration] : r.duration = k.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function () { m(r.old) && r.old.call(this), r.queue && k.dequeue(this, r.queue) }, r }, k.fn.extend({ fadeTo: function (e, t, n, r) { return this.filter(se).css("opacity", 0).show().end().animate({ opacity: t }, e, n, r) }, animate: function (t, e, n, r) { var i = k.isEmptyObject(t), o = k.speed(e, n, r), a = function () { var e = dt(this, k.extend({}, t), o); (i || Q.get(this, "finish")) && e.stop(!0) }; return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a) }, stop: function (i, e, o) { var a = function (e) { var t = e.stop; delete e.stop, t(o) }; return "string" != typeof i && (o = e, e = i, i = void 0), e && !1 !== i && this.queue(i || "fx", []), this.each(function () { var e = !0, t = null != i && i + "queueHooks", n = k.timers, r = Q.get(this); if (t) r[t] && r[t].stop && a(r[t]); else for (t in r) r[t] && r[t].stop && ut.test(t) && a(r[t]); 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)); !e && o || k.dequeue(this, i) }) }, finish: function (a) { return !1 !== a && (a = a || "fx"), this.each(function () { var e, t = Q.get(this), n = t[a + "queue"], r = t[a + "queueHooks"], i = k.timers, o = n ? n.length : 0; for (t.finish = !0, k.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)); for (e = 0; e < o; e++)n[e] && n[e].finish && n[e].finish.call(this); delete t.finish }) } }), k.each(["toggle", "show", "hide"], function (e, r) { var i = k.fn[r]; k.fn[r] = function (e, t, n) { return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(ft(r, !0), e, t, n) } }), k.each({ slideDown: ft("show"), slideUp: ft("hide"), slideToggle: ft("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (e, r) { k.fn[e] = function (e, t, n) { return this.animate(r, e, t, n) } }), k.timers = [], k.fx.tick = function () { var e, t = 0, n = k.timers; for (rt = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1); n.length || k.fx.stop(), rt = void 0 }, k.fx.timer = function (e) { k.timers.push(e), k.fx.start() }, k.fx.interval = 13, k.fx.start = function () { it || (it = !0, lt()) }, k.fx.stop = function () { it = null }, k.fx.speeds = { slow: 600, fast: 200, _default: 400 }
vendor: 4,476 bytes, line 21
21, k.fn.delay = function (r, e) { return r = k.fx && k.fx.speeds[r] || r, e = e || "fx", this.queue(e, function (e, t) { var n = C.setTimeout(e, r); t.stop = function () { C.clearTimeout(n) } }) }, ot = E.createElement("input"), at = E.createElement("select").appendChild(E.createElement("option")), ot.type = "checkbox", y.checkOn = "" !== ot.value, y.optSelected = at.selected, (ot = E.createElement("input")).value = "t", ot.type = "radio", y.radioValue = "t" === ot.value; var ht, gt = k.expr.attrHandle; k.fn.extend({ attr: function (e, t) { return _(this, k.attr, e, t, 1 < arguments.length) }, removeAttr: function (e) { return this.each(function () { k.removeAttr(this, e) }) } }), k.extend({ attr: function (e, t, n) { var r, i, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? k.prop(e, t, n) : (1 === o && k.isXMLDoc(e) || (i = k.attrHooks[t.toLowerCase()] || (k.expr.match.bool.test(t) ? ht : void 0)), void 0 !== n ? null === n ? void k.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 = k.find.attr(e, t)) ? void 0 : r) }, attrHooks: { type: { set: function (e, t) { if (!y.radioValue && "radio" === t && A(e, "input")) { var n = e.value; return e.setAttribute("type", t), n && (e.value = n), t } } } }, removeAttr: function (e, t) { var n, r = 0, i = t && t.match(R); if (i && 1 === e.nodeType) while (n = i[r++]) e.removeAttribute(n) } }), ht = { set: function (e, t, n) { return !1 === t ? k.removeAttr(e, n) : e.setAttribute(n, n), n } }, k.each(k.expr.match.bool.source.match(/\w+/g), function (e, t) { var a = gt[t] || k.find.attr; gt[t] = function (e, t, n) { var r, i, o = t.toLowerCase(); return n || (i = gt[o], gt[o] = r, r = null != a(e, t, n) ? o : null, gt[o] = i), r } }); var vt = /^(?:input|select|textarea|button)$/i, yt = /^(?:a|area)$/i; function mt(e) { return (e.match(R) || []).join(" ") } function xt(e) { return e.getAttribute && e.getAttribute("class") || "" } function bt(e) { return Array.isArray(e) ? e : "string" == typeof e && e.match(R) || [] } k.fn.extend({ prop: function (e, t) { return _(this, k.prop, e, t, 1 < arguments.length) }, removeProp: function (e) { return this.each(function () { delete this[k.propFix[e] || e] }) } }), k.extend({ prop: function (e, t, n) { var r, i, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o) return 1 === o && k.isXMLDoc(e) || (t = k.propFix[t] || t, i = k.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t] }, propHooks: { tabIndex: { get: function (e) { var t = k.find.attr(e, "tabindex"); return t ? parseInt(t, 10) : vt.test(e.nodeName) || yt.test(e.nodeName) && e.href ? 0 : -1 } } }, propFix: { "for": "htmlFor", "class": "className" } }), y.optSelected || (k.propHooks.selected = { get: function (e) { var t = e.parentNode; return t && t.parentNode && t.parentNode.selectedIndex, null }, set: function (e) { var t = e.parentNode; t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex) } }), k.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { k.propFix[this.toLowerCase()] = this }), k.fn.extend({ addClass: function (t) { var e, n, r, i, o, a, s, u = 0; if (m(t)) return this.each(function (e) { k(this).addClass(t.call(this, e, xt(this))) }); if ((e = bt(t)).length) while (n = this[u++]) if (i = xt(n), r = 1 === n.nodeType && " " + mt(i) + " ") { a = 0; while (o = e[a++]) r.indexOf(" " + o + " ") < 0 && (r += o + " "); i !== (s = mt(r)) && n.setAttribute("class", s) } return this }, removeClass: function (t) { var e, n, r, i, o, a, s, u = 0; if (m(t)) return this.each(function (e) { k(this).removeClass(t.call(this, e, xt(this))) }); if (!arguments.length) return this.attr("class", ""); if ((e = bt(t)).length) while (n = this[u++]) if (i = xt(n), r = 1 === n.nodeType && " " + mt(i) + " ") { a = 0; while (o = e[a++]) while (-1 < r.indexOf(" " + o + " ")) r = r.replace(" " + o + " ", " "); i !== (s = mt(r)) && n.setAttribute("class", s) } return this }, toggleClass: function (i, t) { var o = typeof i, a = "string" === o || Array.isArray(i); return "boolean" == typeof t && a ? t ? this.addClass(i) : this.removeClass(i) : m(i) ? this.each(function (e) { k(this).toggleClass(i.
vendor: 17,170 bytes, line 21
21call(this, e, xt(this), t), t) }) : this.each(function () { var e, t, n, r; if (a) { t = 0, n = k(this), r = bt(i); while (e = r[t++]) n.hasClass(e) ? n.removeClass(e) : n.addClass(e) } else void 0 !== i && "boolean" !== o || ((e = xt(this)) && Q.set(this, "__className__", e), this.setAttribute && this.setAttribute("class", e || !1 === i ? "" : Q.get(this, "__className__") || "")) }) }, hasClass: function (e) { var t, n, r = 0; t = " " + e + " "; while (n = this[r++]) if (1 === n.nodeType && -1 < (" " + mt(xt(n)) + " ").indexOf(t)) return !0; return !1 } }); var wt = /\r/g; k.fn.extend({ val: function (n) { var r, e, i, t = this[0]; return arguments.length ? (i = m(n), this.each(function (e) { var t; 1 === this.nodeType && (null == (t = i ? n.call(this, e, k(this).val()) : n) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = k.map(t, function (e) { return null == e ? "" : e + "" })), (r = k.valHooks[this.type] || k.valHooks[this.nodeName.toLowerCase()]) && "set" in r && void 0 !== r.set(this, t, "value") || (this.value = t)) })) : t ? (r = k.valHooks[t.type] || k.valHooks[t.nodeName.toLowerCase()]) && "get" in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof (e = t.value) ? e.replace(wt, "") : null == e ? "" : e : void 0 } }), k.extend({ valHooks: { option: { get: function (e) { var t = k.find.attr(e, "value"); return null != t ? t : mt(k.text(e)) } }, select: { get: function (e) { var t, n, r, i = e.options, o = e.selectedIndex, a = "select-one" === e.type, s = a ? null : [], u = a ? o + 1 : i.length; 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"))) { if (t = k(n).val(), a) return t; s.push(t) } return s }, set: function (e, t) { var n, r, i = e.options, o = k.makeArray(t), a = i.length; while (a--) ((r = i[a]).selected = -1 < k.inArray(k.valHooks.option.get(r), o)) && (n = !0); return n || (e.selectedIndex = -1), o } } } }), k.each(["radio", "checkbox"], function () { k.valHooks[this] = { set: function (e, t) { if (Array.isArray(t)) return e.checked = -1 < k.inArray(k(e).val(), t) } }, y.checkOn || (k.valHooks[this].get = function (e) { return null === e.getAttribute("value") ? "on" : e.value }) }), y.focusin = "onfocusin" in C; var Tt = /^(?:focusinfocus|focusoutblur)$/, Ct = function (e) { e.stopPropagation() }; k.extend(k.event, { trigger: function (e, t, n, r) { var i, o, a, s, u, l, c, f, p = [n || E], d = v.call(e, "type") ? e.type : e, h = v.call(e, "namespace") ? e.namespace.split(".") : []; if (o = f = a = n = n || E, 3 !== n.nodeType && 8 !== n.nodeType && !Tt.test(d + k.event.triggered) && (-1 < d.indexOf(".") && (d = (h = d.split(".")).shift(), h.sort()), u = d.indexOf(":") < 0 && "on" + d, (e = e[k.expando] ? e : new k.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] : k.makeArray(t, [e]), c = k.event.special[d] || {}, r || !c.trigger || !1 !== c.trigger.apply(n, t))) { if (!r && !c.noBubble && !x(n)) { for (s = c.delegateType || d, Tt.test(s + d) || (o = o.parentNode); o; o = o.parentNode)p.push(o), a = o; a === (n.ownerDocument || E) && p.push(a.defaultView || a.parentWindow || C) } i = 0; while ((o = p[i++]) && !e.isPropagationStopped()) f = o, e.type = 1 < i ? s : c.bindType || d, (l = (Q.get(o, "events") || {})[e.type] && Q.get(o, "handle")) && l.apply(o, t), (l = u && o[u]) && l.apply && G(o) && (e.result = l.apply(o, t), !1 === e.result && e.preventDefault()); return e.type = d, r || e.isDefaultPrevented() || c._default && !1 !== c._default.apply(p.pop(), t) || !G(n) || u && m(n[d]) && !x(n) && ((a = n[u]) && (n[u] = null), k.event.triggered = d, e.isPropagationStopped() && f.addEventListener(d, Ct), n[d](), e.isPropagationStopped() && f.removeEventListener(d, Ct), k.event.triggered = void 0, a && (n[u] = a)), e.result } }, simulate: function (e, t, n) { var r = k.extend(new k.Event, n, { type: e, isSimulated: !0 }); k.event.trigger(r, null, t) } }), k.fn.extend({ trigger: function (e, t) { return this.each(function () { k.event.trigger(e, t, this) }) }, triggerHandler: function (e, t) { var n = this[0]; if (n) return k.event.trigger(e, t, n, !0) } }), y.focusin || k.each({ focus: "focusin", blur: "focusout" }, function (n, r) { var i = function (e) { k.event.simulate(r, e.target, k.event.fix(e)) }; k.event.special[r] = { setup: function () { var e = this.ownerDocument || this, t = Q.access(e, r); t || e.addEventListener(n, i, !0), Q.access(e, r, (t || 0) + 1) }, teardown: function () { var e = this.ownerDocument || this, t = Q.access(e, r) - 1; t ? Q.access(e, r, t) : (e.removeEventListener(n, i, !0), Q.remove(e, r)) } } }); var Et = C.location, kt = Date.now(), St = /\?/; k.parseXML = function (e) { var t; if (!e || "string" != typeof e) return null; try { t = (new C.DOMParser).parseFromString(e, "text/xml") } catch (e) { t = void 0 } return t && !t.getElementsByTagName("parsererror").length || k.error("Invalid XML: " + e), t }; var Nt = /\[\]$/, At = /\r?\n/g, Dt = /^(?:submit|button|image|reset|file)$/i, jt = /^(?:input|select|textarea|keygen)/i; function qt(n, e, r, i) { var t; if (Array.isArray(e)) k.each(e, function (e, t) { r || Nt.test(n) ? i(n, t) : qt(n + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, r, i) }); else if (r || "object" !== w(e)) i(n, e); else for (t in e) qt(n + "[" + t + "]", e[t], r, i) } k.param = function (e, t) { var n, r = [], i = function (e, t) { var n = m(t) ? t() : t; r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n) }; if (null == e) return ""; if (Array.isArray(e) || e.jquery && !k.isPlainObject(e)) k.each(e, function () { i(this.name, this.value) }); else for (n in e) qt(n, e[n], t, i); return r.join("&") }, k.fn.extend({ serialize: function () { return k.param(this.serializeArray()) }, serializeArray: function () { return this.map(function () { var e = k.prop(this, "elements"); return e ? k.makeArray(e) : this }).filter(function () { var e = this.type; return this.name && !k(this).is(":disabled") && jt.test(this.nodeName) && !Dt.test(e) && (this.checked || !pe.test(e)) }).map(function (e, t) { var n = k(this).val(); return null == n ? null : Array.isArray(n) ? k.map(n, function (e) { return { name: t.name, value: e.replace(At, "\r\n") } }) : { name: t.name, value: n.replace(At, "\r\n") } }).get() } }); var Lt = /%20/g, Ht = /#.*$/, Ot = /([?&])_=[^&]*/, Pt = /^(.*?):[ \t]*([^\r\n]*)$/gm, Rt = /^(?:GET|HEAD)$/, Mt = /^\/\//, It = {}, Wt = {}, $t = "*/".concat("*"), Ft = E.createElement("a"); function Bt(o) { return function (e, t) { "string" != typeof e && (t = e, e = "*"); var n, r = 0, i = e.toLowerCase().match(R) || []; 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) } } function _t(t, i, o, a) { var s = {}, u = t === Wt; function l(e) { var r; return s[e] = !0, k.each(t[e] || [], function (e, t) { var n = t(i, o, a); return "string" != typeof n || u || s[n] ? u ? !(r = n) : void 0 : (i.dataTypes.unshift(n), l(n), !1) }), r } return l(i.dataTypes[0]) || !s["*"] && l("*") } function zt(e, t) { var n, r, i = k.ajaxSettings.flatOptions || {}; for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); return r && k.extend(!0, e, r), e } Ft.href = Et.href, k.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: Et.href, type: "GET", isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": $t, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": k.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function (e, t) { return t ? zt(zt(e, k.ajaxSettings), t) : zt(k.ajaxSettings, e) }, ajaxPrefilter: Bt(It), ajaxTransport: Bt(Wt), ajax: function (e, t) { "object" == typeof e && (t = e, e = void 0), t = t || {}; var c, f, p, n, d, r, h, g, i, o, v = k.ajaxSetup({}, t), y = v.context || v, m = v.context && (y.nodeType || y.jquery) ? k(y) : k.event, x = k.Deferred(), b = k.Callbacks("once memory"), w = v.statusCode || {}, a = {}, s = {}, u = "canceled", T = { readyState: 0, getResponseHeader: function (e) { var t; if (h) { if (!n) { n = {}; while (t = Pt.exec(p)) n[t[1].toLowerCase() + " "] = (n[t[1].toLowerCase() + " "] || []).concat(t[2]) } t = n[e.toLowerCase() + " "] } return null == t ? null : t.join(", ") }, getAllResponseHeaders: function () { return h ? p : null }, setRequestHeader: function (e, t) { return null == h && (e = s[e.toLowerCase()] = s[e.toLowerCase()] || e, a[e] = t), this }, overrideMimeType: function (e) { return null == h && (v.mimeType = e), this }, statusCode: function (e) { var t; if (e) if (h) T.always(e[T.status]); else for (t in e) w[t] = [w[t], e[t]]; return this }, abort: function (e) { var t = e || u; return c && c.abort(t), l(0, t), this } }; if (x.promise(T), v.url = ((e || v.url || Et.href) + "").replace(Mt, Et.protocol + "//"), v.type = t.method || t.type || v.method || v.type, v.dataTypes = (v.dataType || "*").toLowerCase().match(R) || [""], null == v.crossDomain) { r = E.createElement("a"); try { r.href = v.url, r.href = r.href, v.crossDomain = Ft.protocol + "//" + Ft.host != r.protocol + "//" + r.host } catch (e) { v.crossDomain = !0 } } if (v.data && v.processData && "string" != typeof v.data && (v.data = k.param(v.data, v.traditional)), _t(It, v, t, T), h) return T; for (i in (g = k.event && v.global) && 0 == k.active++ && k.event.trigger("ajaxStart"), v.type = v.type.toUpperCase(), v.hasContent = !Rt.test(v.type), f = v.url.replace(Ht, ""), v.hasContent ? v.data && v.processData && 0 === (v.contentType || "").indexOf("application/x-www-form-urlencoded") && (v.data = v.data.replace(Lt, "+")) : (o = v.url.slice(f.length), v.data && (v.processData || "string" == typeof v.data) && (f += (St.test(f) ? "&" : "?") + v.data, delete v.data), !1 === v.cache && (f = f.replace(Ot, "$1"), o = (St.test(f) ? "&" : "?") + "_=" + kt++ + o), v.url = f + o), v.ifModified && (k.lastModified[f] && T.setRequestHeader("If-Modified-Since", k.lastModified[f]), k.etag[f] && T.setRequestHeader("If-None-Match", k.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] ? ", " + $t + "; q=0.01" : "") : v.accepts["*"]), v.headers) T.setRequestHeader(i, v.headers[i]); if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h)) return T.abort(); if (u = "abort", b.add(v.complete), T.done(v.success), T.fail(v.error), c = _t(Wt, v, t, T)) { if (T.readyState = 1, g && m.trigger("ajaxSend", [T, v]), h) return T; v.async && 0 < v.timeout && (d = C.setTimeout(function () { T.abort("timeout") }, v.timeout)); try { h = !1, c.send(a, l) } catch (e) { if (h) throw e; l(-1, e) } } else l(-1, "No Transport"); function l(e, t, n, r) { var i, o, a, s, u, l = t; 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) { var r, i, o, a, s = e.contents, u = e.dataTypes; while ("*" === u[0]) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); if (r) for (i in s) if (s[i] && s[i].test(r)) { u.unshift(i); break } if (u[0] in n) o = u[0]; else { for (i in n) { if (!u[0] || e.converters[i + " " + u[0]]) { o = i; break } a || (a = i) } o = o || a } if (o) return o !== u[0] && u.unshift(o), n[o] }(v, T, n)), s = function (e, t, n, r) { var i, o, a, s, u, l = {}, c = e.dataTypes.slice(); if (c[1]) for (a in e.converters) l[a.toLowerCase()] = e.converters[a]; o = c.shift(); 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) { if (!(a = l[u + " " + o] || l["* " + o])) for (i in l) if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) { !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], c.unshift(s[1])); break } if (!0 !== a) if (a && e["throws"]) t = a(t); else try { t = a(t) } catch (e) { return { state: "parsererror", error: a ? e : "No conversion from " + u + " to " + o } } } return { state: "success", data: t } }(v, s, T, i), i ? (v.ifModified && ((u = T.getResponseHeader("Last-Modified")) && (k.lastModified[f] = u), (u = T.getResponseHeader("etag")) && (k.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]), --k.active || k.event.trigger("ajaxStop"))) } return T }, getJSON: function (e, t, n) { return k.get(e, t, n, "json") }, getScript: function (e, t) { return k.get(e, void 0, t, "script") } }), k.each(["get", "post"], function (e, i) { k[i] = function (e, t, n, r) { return m(t) && (r = r || n, n = t, t = void 0), k.ajax(k.extend({ url: e, type: i, dataType: r, data: t, success: n }, k.isPlainObject(e) && e)) } }), k._evalUrl = function (e, t) { return k.ajax({ url: e, type: "GET", dataType: "script", cache: !0, async: !1, global: !1, converters: { "text script": function () { } }, dataFilter: function (e) { k.globalEval(e, t) } }) }, k.fn.extend({ wrapAll: function (e) { var t; return this[0] && (m(e) && (e = e.call(this[0])), t = k(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function () { var e = this; while (e.firstElementChild) e = e.firstElementChild; return e }).append(this)), this }, wrapInner: function (n) { return m(n) ? this.each(function (e) { k(this).wrapInner(n.call(this, e)) }) : this.each(function () { var e = k(this), t = e.contents(); t.length ? t.wrapAll(n) : e.append(n) }) }, wrap: function (t) { var n = m(t); return this.each(function (e) { k(this).wrapAll(n ? t.call(this, e) : t) }) }, unwrap: function (e) { return this.parent(e).not("body").each(function () { k(this).replaceWith(this.childNodes) }), this } }), k.expr.pseudos.hidden = function (e) { return !k.expr.pseudos.visible(e) }, k.expr.pseudos.visible = function (e) { return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) }, k.ajaxSettings.xhr = function () { try { return new C.XMLHttpRequest } catch (e) { } }; var Ut = { 0: 200, 1223: 204 }, Xt = k.ajaxSettings.xhr(); y.cors = !!Xt && "withCredentials" in Xt, y.ajax = Xt = !!Xt, k.ajaxTransport(function (i) { var o, a; if (y.cors || Xt && !i.crossDomain) return { send: function (e, t) { var n, r = i.xhr(); 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]; 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]); o = function (e) { return function () { 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(Ut[r.status] || r.status, r.statusText, "text" !== (r.responseType || "text") || "string" != typeof r.responseText ? { binary: r.response } : { text: r.responseText }, r.getAllResponseHeaders())) } }, r.onload = o(), a = r.onerror = r.ontimeout = o("error"), void 0 !== r.onabort ? r.onabort = a : r.onreadystatechange = function () { 4 === r.readyState && C.setTimeout(function () { o && a() }) }, o = o("abort"); try { r.send(i.hasContent && i.data || null) } catch (e) { if (o) throw e } }, abort: function () { o && o() } } }), k.ajaxPrefilter(function (e) { e.crossDomain && (e.contents.script = !1) }), k.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function (e) { return k.globalEval(e), e } } }), k.ajaxPrefilter("script", function (e) { void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET") }), k.ajaxTransport("script", function (n) { var r, i; if (n.crossDomain || n.scriptAttrs) return { send: function (e, t) { r = k("
21<script>").attr(n.scriptAttrs || {}).prop({ charset: n.scriptCharset, src: n.url }).on("load error", i = function (e) { r.remove(), i = null, e && t("error" === e.type ? 404 : 200, e.type) }), E.head.appendChild(r[0]) }, abort: function () { i && i() } } }); var Vt, Gt = [], Yt = /(=)\?(?=&|$)|\?\?/; k.ajaxSetup({ jsonp: "callback", jsonpCallback: function () { var e = Gt.pop() || k.expando + "_" + kt++; return this[e] = !0, e } }), k.ajaxPrefilter("json jsonp", function (e, t, n) { var r, i, o, a = !1 !== e.jsonp && (Yt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Yt.test(e.data) && "data"); if (a || "jsonp" === e.dataTypes[0]) return r = e.jsonpCallback = m(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, a ? e[a] = e[a].replace(Yt, "$1" + r) : !1 !== e.jsonp && (e.url += (St.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function () { return o || k.error(r + " was not called"), o[0] }, e.dataTypes[0] = "json", i = C[r], C[r] = function () { o = arguments }, n.always(function () { void 0 === i ? k(C).removeProp(r) : C[r] = i, e[r] && (e.jsonpCallback = t.jsonpCallback, Gt.push(r)), o && m(i) && i(o[0]), o = i = void 0 }), "script" }), y.createHTMLDocument = ((Vt = E.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === Vt.childNodes.length), k.parseHTML = function (e, t, n) { 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 = D.exec(e)) ? [t.createElement(i[1])] : (i = we([e], t, o), o && o.length && k(o).remove(), k.merge([], i.childNodes))); var r, i, o }, k.fn.load = function (e, t, n) { var r, i, o, a = this, s = e.indexOf(" "); return -1 < s && (r = mt(e.slice(s)), e = e.slice(0, s)), m(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), 0 < a.length && k.ajax({ url: e, type: i || "GET", dataType: "html", data: t }).done(function (e) { o = arguments, a.html(r ? k("<div>").append(k.parseHTML(e)).find(r) : e) }).always(n && function (e, t) { a.each(function () { n.apply(this, o || [e.responseText, t, e]) }) }), this }, k.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) { k.fn[t] = function (e) { return this.on(t, e) } }), k.expr.pseudos.animated = function (t) { return k.grep(k.timers, function (e) { return t === e.elem }).length }, k.offset = { setOffset: function (e, t, n) { var r, i, o, a, s, u, l = k.css(e, "position"), c = k(e), f = {}; "static" === l && (e.style.position = "relative"), s = c.offset(), o = k.css(e, "top"), u = k.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, k.extend({}, s))), null != t.top && (f.top = t.top - s.top + a), null != t.left && (f.left = t.left - s.left + i), "using" in t ? t.using.call(e, f) : c.css(f) } }, k.fn.extend({ offset: function (t) { if (arguments.length) return void 0 === t ? this : this.each(function (e) { k.offset.setOffset(this, t, e) }); var e, n, r = this[0]; return r ? r.getClientRects().length ? (e = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, { top: e.top + n.pageYOffset, left: e.left + n.pageXOffset }) : { top: 0, left: 0 } : void 0 }, position: function () { if (this[0]) { var e, t, n, r = this[0], i = { top: 0, left: 0 }; if ("fixed" === k.css(r, "position")) t = r.getBoundingClientRect(); else { t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement; while (e && (e === n.body || e === n.documentElement) && "static" === k.css(e, "position")) e = e.parentNode; e && e !== r && 1 === e.nodeType && ((i = k(e).offset()).top += k.css(e, "borderTopWidth", !0), i.left += k.css(e, "borderLeftWidth", !0)) } return { top: t.top - i.top - k.css(r, "marginTop", !0), left: t.left - i.left - k.css(r, "marginLeft", !0) } } }, offsetParent: function () { return this.map(function () { var e = this.offsetParent; while (e && "static" === k.css(e, "position")) e = e.offsetParent; return e || ie }) } }), k.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (t, i) { var o = "pageYOffset" === i; k.fn[t] = function (e) { return _(this, function (e, t, n) { var r;
vendor: 4,151 bytes, lines 21-74
21 if (x(e) ? r = e : 9 === e.nodeType && (r = e.defaultView), void 0 === n) return r ? r[i] : e[t]; r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : e[t] = n }, t, e, arguments.length) } }), k.each(["top", "left"], function (e, n) { k.cssHooks[n] = ze(y.pixelPosition, function (e, t) { if (t) return t = _e(e, n), $e.test(t) ? k(e).position()[n] + "px" : t }) }), k.each({ Height: "height", Width: "width" }, function (a, s) { k.each({ padding: "inner" + a, content: s, "": "outer" + a }, function (r, o) { k.fn[o] = function (e, t) { var n = arguments.length && (r || "boolean" != typeof e), i = r || (!0 === e || !0 === t ? "margin" : "border"); return _(this, function (e, t, n) { var r; 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 ? k.css(e, t, i) : k.style(e, t, n, i) }, s, n ? e : void 0, n) } }) }), k.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) { k.fn[n] = function (e, t) { return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n) } }), k.fn.extend({ hover: function (e, t) { return this.mouseenter(e).mouseleave(t || e) } }), k.fn.extend({ bind: function (e, t, n) { return this.on(e, null, t, n) }, unbind: function (e, t) { return this.off(e, null, t) }, delegate: function (e, t, n, r) { return this.on(t, e, n, r) }, undelegate: function (e, t, n) { return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n) } }), k.proxy = function (e, t) { var n, r, i; if ("string" == typeof t && (n = e[t], t = e, e = n), m(e)) return r = s.call(arguments, 2), (i = function () { return e.apply(t || this, r.concat(s.call(arguments))) }).guid = e.guid = e.guid || k.guid++ , i }, k.holdReady = function (e) { e ? k.readyWait++ : k.ready(!0) }, k.isArray = Array.isArray, k.parseJSON = JSON.parse, k.nodeName = A, k.isFunction = m, k.isWindow = x, k.camelCase = V, k.type = w, k.now = Date.now, k.isNumeric = function (e) { var t = k.type(e); return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)) }, "function" == typeof define && define.amd && define("jquery", [], function () { return k }); var Qt = C.jQuery, Jt = C.$; return k.noConflict = function (e) { return C.$ === k && (C.$ = Jt), e && C.jQuery === k && (C.jQuery = Qt), k }, e || (C.jQuery = C.$ = k), k });
22/* endinject */
23
24/* inject:pageLoadTime.js */
25"use strict";
26function PageLoadTime() {
27}
28
29PageLoadTime.prototype.getPerformanceData = function () {
30    var performance = window.performance || {};
31    var perfData = {};
32
33    if (performance.navigation) {
34        perfData.navigation = _getPerformanceObjectData(performance.navigation);
35    }
36
37    if (performance.timing) {
38        perfData.timing = _getPerformanceObjectData(performance.timing);
39    }
40
41    // report all entries
42    if (performance.getEntries) {
43        perfData.entries = _mapObject(performance.getEntries(), _getPerformanceObjectData);
44    }
45
46    // Chrome has a new experimental connection speed Api
47    if (navigator.connection) {
48        perfData.connection = _getPerformanceObjectData(navigator.connection);
49    }
50
51    return perfData;
52}
53
54function _isFunction(f) { return 'function' == (typeof (f)); }
55
56function _mapObject(array, mapping) {
57    var result = [];
58    var array = array || [];
59    for (var i = 0, j = array.length; i < j; i++) {
60        result.push(mapping(array[i], i));
61    }
62    return result;
63}
64
65function _getPerformanceObjectData(object) {
66    var result = {};
67
68    // In some browsers, some of the PerformanceTiming objects have a native toJSON method
69    // that returns a JS object with all of the properties of the PerformanceTiming object.
70    if (object.toJSON) {
71        return object.toJSON();
72    }
73
74    // PerformanceTiming objects are not regular JS objects. Calling Ob
74ject.hasOwnProperty
75    // on them does not work.
76    for (var property in object) {
77        if (!_isFunction(object[property])) {
78            result[property] = object[property];
79        }
80    }
81
82    return result;
83}
84/* endinject */
85
86/* inject:ief-diagnostics.js */
87"use strict";
88
89// Object for holding trace information
90// and timing
91var $trace = function(trace, time) {
92    var _trace = trace;
93    // Always log start time
94    var _startTime = new Date().getTime();
95    var _time = time;
96    var _timeElapsed = 0;
97
98    return {
99        // Outputs the trace as object,
100        // ending the timer if one was started
101        // when trace creates
102        toJson: function () {
103
104            // If the trace was a timed trace
105            if (_time) {
106                var elapsed = new Date() - _startTime;
107                _timeElapsed = elapsed;
108            }
109
110            return {
111                // action
112                ac: _trace,
113                // actionStartTime in milliseconds.
114                acST: Math.floor(_startTime / 1000),
115                // actionDuration in milliseconds.
116                acD: _timeElapsed
117            };
118        },
119
120        // Appends the specified trace
121        // to the existing trace info
122        append: function(trace){
123            _trace += trace;
124        }
125    }
126};
127
128var $diags = (function ($trace, settings) {
129    // Array to hold trace diagnostics
130    var _trace = [];
131    var _initializationSuccessful = false;
132
133    // Start a timer that will fire after 10s
134    // and check if the initializationSuccessful flag
135    // is true. If the initializationSuccessful flag
136    // is not true by the time the timer fires, we send
137    // back a response to the service indicating that
138    // a load failure has occurred. This function has a dependency
139    // on the Settings JSON.
140    setTimeout(function () {
141
142        if (!window.$diags.initializationSuccessful) {
143
144            // Configure the default trace
145            var trace = new $trace("T000", false);
146            var diagnosticsCode = "UX001"
147            var failedScript = "";
148
149            if (!window.jQuery || typeof $element === "undefined") {
150                trace = new $trace("T025", false);
151                var scriptLookup = !window.jQuery ? "jQuery" : "element";
152
153                // Get the script source using the data-script attribute
154                var scriptNode = document.querySelectorAll('[data-script="' + scriptLookup + '"]');
155                failedScript = scriptNode[0].src || scriptLookup;
156
157                trace.append(" - " + failedScript);
158                diagnosticsCode = "UX002";
159            }
160
161            window.$diags.trace(trace);
162            window.$diags.sendDiagnostics(diagnosticsCode, failedScript);
163        }
164
165    }, window.initializationTimeout || 7000);
166
167    return {
168        VERSION: "2.0.0",
169
170        // Export the flag
171        initializationSuccessful: _initializationSuccessful,
172
173        // Sends the specified info as diagnostics
174        // information on the service
175        sendDiagnostics: function (code, description, stack) {
176            window.location.replace(this.toDiagnosticsPath(code, description, stack));
177        },
178
179        // Sends the specified info as diagnostics
180        // information on the service asynchronously
181        sendQuietDiagnostics: function (code, description, stack) {
182            $.ajax({ url: this.toDiagnosticsPath(code, description, stack) });
183        },
184
185        // Convert diagnostics to a request path.
186        toDiagnosticsPath: function (code, description, stack) {
187            // Wrap the diagnostics in the version wrapper
188            var diagsJson = this.toJson(code, stack);
189            var path = settings.hosts.tenant + "/api/" + settings.api + "/error?code=" + code + "&diags=" + encodeURIComponent(diagsJson) + "&csrf_token=" + settings.csrf + "&tx=" + settings.transId + "&p=" + settings.hosts.policy;
190
191            // Add any information to the path
192            if (description) {
193                path += "&desc=" + encodeURIComponent(description);
194            }
195
196            return path;
197        },
198
199        // Returns the diagnostics trace
200        // as json
201        toJson: function (code, stack) {
202            // Check the length of the trace to ensure that it is below the max trace
203            var jsonTrace = JSON.stringify(_trace);
204            var truncated = false;
205
206            while (_trace.length !== 0 && jsonTrace.length > window.maxTrace)
207            {
208                // Remove the first trace, since it is less likely to contain the actual error
209                _trace.shift();
210                jsonTrace = JSON.stringify(_trace);
211                truncated = true;
212            }
213
214            var baseDiagnostics = {
215                "pageViewId": settings.pageViewId,
216                "pageId": settings.api,
217                "trace": _trace
218            };
219
220            if (truncated)
221            {
222                baseDiagnostics.truncated = truncated;
223            }
224
225            // If an error add details to diagnostics
226            if (code)
227            {
228                baseDiagnostics.code = code;
229            }
230
231            // Add any stack detail to the diagnostics
232            // information
233            if (stack)
234            {
235                baseDiagnostics.info = stack;
236            }
237          
238            return JSON.stringify(baseDiagnostics);
239        },
240
241        // Adds the trace information to the
242        // trace stack
243        trace: function (trace) {
244            _trace.push(trace.toJson());
245            return;
246        },
247        
248        // Outputs the contents of the trace
249        // to the console
250        toConsole: function () {
251            for (var i = 0, len = _trace.length; i < len; i++) {
252                console.log(_trace[i]);
253            }
254            return;
255        },
256
257        // Show the current stack trace
258        traceStack: _trace
259    }
260}($trace, SETTINGS));
261
262// Listen to online and offline event and append it to the client side traces.
263(function () {
264    var appendOnlineStatusToTrace = function() {
265        var status = window.navigator !== undefined && window.navigator.onLine !== undefined ? (window.navigator.onLine ? "Online" : "Offline") : "NotSupported";
266        var trace = new $trace("T030", true);
267        trace.append(status);
268        $diags.trace(trace);
269    }
270    window.addEventListener('online', appendOnlineStatusToTrace);
271    window.addEventListener('offline', appendOnlineStatusToTrace);
272}());
273/* endinject */
274
275/* inject:ief-sanitizer.js */
276var $santizer = (function ($cors, settings) {
277    // Processes the cross origin document, santizing
278    // the content before setting as the document
279    var _santize = function (input) {
280
281        // If no sanitization needed, return input
282        if (settings.pageMode === 1) {
283            return input
284        }
285
286        return (function (trace) {
287            try {
288                return sanitizeHtml(input, SETTINGS.sanitizerPolicy);
289            }
290            catch (error) {
291                trace.append(" - err:" + error.message);
292                $diags.trace(trace);
293                // Send diagnostics to the service
294                $diags.sendDiagnostics("UX017", SETTINGS.remoteResource);
295            }
296            finally {
297                $diags.trace(trace);
298            }
299        }(new $trace("T029", true)));
300    };
301
302    // Export the santize function
303    return {
304        santize: _santize
305    };
306}($santizer, SETTINGS));
307/* endinject */
308
309/* inject:ief-initializer.js */
310if (typeof navigator.cookieEnabled === "undefined") {
311    document.cookie = "probe";
312    navigator.cookieEnabled = (document.cookie.indexOf("probe") !== -1) ? true : false;
313};
314
315if (!navigator.cookieEnabled) document.getElementById('no_cookie').className = ''; if (typeof $diags !== 'undefined') $diags.initializationSuccessful = true;
316
317// Globals for indicating the various stages
318// of page readiness. 
319// window.contentReady: indicates that the 
320// cross origin document has been downloaded
321// and can be processed.
322// window.pageReady: indicates that the cross
323// origin content has been processed and DOM
324// updated, ready for initialization
325window.contentReady, window.pageReady = false;
326
327(function () {
328    // Add the querySelectorAll polyfill for IE6 & IE7
329    if (!document.querySelectorAll) {
330        console.log("Creating polyfill for querySelectorAll.");
331        document.querySelectorAll = function (selector, maxCount) {
332            var style = style = document.createStyleSheet()
333            var all = document.all,
334                l = all.length,
335                i,
336                resultSet = [];
337
338            style.addRule(selector, "k:v");
339            for (i = 0; i < l; i += 1) {
340                if (all[i].currentStyle.k === "v") {
341                    resultSet.push(all[i]);
342                    if (resultSet.length > Infinity) {
343                        break;
344                    }
345                }
346            }
347            style.removeRule(0);
348            return resultSet;
349        }
350    }
351
352    // Add the trim polyfill for IE6 & IE7
353    if (!String.prototype.trim) {
354        console.log("Creating polyfill for String.prototype.trim.");
355        (function () {
356            // Make sure we trim BOM and NBSP
357            var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
358            String.prototype.trim = function () {
359                return this.replace(rtrim, '');
360            };
361        })();
362    }
363}());
364
365// Only kick off sript downloads and page
366// processing if the user agent supports
367// cookies and javascript
368if (navigator.cookieEnabled) {
369
370    var preloadCssLink = [];
371
372    // Convert any undefined console functions to a noop.
373    (function () {
374        var method;
375        var noop = function () { };
376        var methods = [
377            'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
378            'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
379            'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
380            'timeStamp', 'trace', 'warn'
381        ];
382        var length = methods.length;
383        var console = (window.console = window.console || {});
384
385        while (length--) {
386            method = methods[length];
387            if (!console[method]) {
388                console[method] = noop;
389            }
390        }
391    }());
392
393    if (!String.prototype.endsWith) {
394        String.prototype.endsWith = function (pattern) {
395            var d = this.length - pattern.length;
396            return d >= 0 && this.lastIndexOf(pattern) === d;
397        };
398    }
399
400    var checkCssPreloaded = function () {
401        preloadCssLink = preloadCssLink.filter(function (cssLink) {
402            for (var i = 0; i < document.styleSheets.length; i++) {
403                try {
404                    // cssRules is a common property that can be used to check if css link is loaded.
405                    // It has full support on all major browsers. https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet
406                    if (document.styleSheets[i].href != null && document.styleSheets[i].href.endsWith(cssLink) && document.styleSheets[i].cssRules) {
407                        return false;
408                    }
409                } catch (e) {
410                    // Initially, on Firefox, cssRules won't be accessible, thus it could throw errors.
411                    if (e.code !== DOMException.INVALID_ACCESS_ERR && e.name !== "Error") {
412                        throw e;
413                    } else {
414                        return true;
415                    }
416                }
417            }
418
419            return true;
420        });
421
422        if (preloadCssLink.length === 0) {
423            $("body").show();
424        } else {
425            setTimeout(function () { checkCssPreloaded(); }, 0);
426        }
427    };
428
429    var preloadJavaScript = function (scriptTags) {
430        var injectScriptInline = function (index) {
431            var scriptTag = $(scriptTags[index]);
432            var url = scriptTag.attr("src");
433            if (url) {
434                return $.ajax({
435                    method: "GET",
436                    url: url,
437                    dataType: "text"
438                }).done(function (data) {
439                    scriptTag.text(data);
440                    scriptTag.removeAttr("src");
441                    console.log("Finish pre-loading JavaScript: " + url);
442                }).fail(function (XMLHttpRequest, textStatus, errorThrown) {
443                    console.log("Loading JavaScript failed: " + url + " " + textStatus + " " + errorThrown);
444                });
445            }
446        };
447
448        var ajaxCalls = [];
449        if (scriptTags) {
450            for (var i = 0; i < scriptTags.length; i++) {
451                ajaxCalls.push(injectScriptInline(i));
452            }
453        }
454
455        return $.when.apply($, ajaxCalls);
456    };
457
458    var $cors = (function ($cors, settings) {
459        var _crossOriginDocument;
460
461        // Processes the cross origin document, santizing
462        // the content before setting as the document
463        var _process = function (callback) {
464            (function (trace) {
465                try {
466                    var html = document.createElement('html');
467                    html.innerHTML = $santizer.santize(_crossOriginDocument);
468                    var sanitizedHead = $(html).find('head:first');
469                    var sanitizedBody = $(html).find('body:first');
470
471                    // Get script tags with data-preload
472                    var scriptTags = sanitizedHead.find("script");
473                    var preloadScripts = [];
474                    for (var i = 0; i < scriptTags.length; i++) {
475                        var script = scriptTags[i];
476                        if (script.getAttribute('src') &&
477                            script.getAttribute('data-preload') &&
478                            script.getAttribute('data-preload').toLowerCase() === 'true') {
479                            preloadScripts.push(script);
480                        }
481                    }
482
483                    preloadJavaScript(preloadScripts).then(function () {
484
485                        // Replace the title
486                        if (sanitizedHead.find("title").length > 0) {
487                            $("title").remove();
488                        }
489
490                        // If the favicon contains an empty href, set
491                        // href a base64 image of an empty png. This avoid the
492                        // favicon request coming back to I2E resulting in the 404s
493                        var faviconLink = "link[rel$='icon']",
494                            favicon = sanitizedHead.find(faviconLink),
495                            defaultIcon = "data:;base64,iVBORw0KGgo=";
496
497                        if (favicon && favicon[0]) {
498                            if (favicon[0].getAttribute("href") === undefined) {
499                                favicon[0].setAttribute("href", defaultIcon);
500                            }
501
502                            // Remove default favicon
503                            $("head").find(faviconLink).remove();
504                        }
505
506                        // Check if any stylesheet links need to be pre-loaded before showing the page
507                        var links = sanitizedHead.find("link");
508                        for (var i = 0; i < links.length; i++) {
509                            var link = links[i];
510                            if (link.getAttribute('rel') === 'stylesheet' &&
511                                link.getAttribute('href') &&
512                                link.getAttribute('data-preload') &&
513                                link.getAttribute('data-preload').toLowerCase() === 'true') {
514                                // Without this setup, SecurityError could appear when accessing styleSheets.cssRules.
515                                link.setAttribute('crossorigin', 'anonymous');
516                                $("body").hide();
517                                preloadCssLink.push(link.getAttribute('href'));
518                            }
519                        }
520
521                        // Add custom template head section into current html head section
522                        $("head").prepend(sanitizedHead.html());
523
524                        // Apply tenant/company branding settings to the theme
525                        // this will customize the theme to look closer to the customer's brand
526                        applyTenantBranding(sanitizedBody);
527
528                        // Merge the element content into the customer
529                        // content
530                        (function (subTrace) {
531                            var api = sanitizedBody.find("#api");
532                            var elementContent = $($element.getElementContent()).html();
533
534                            // Get all existing attributes, before replacing
535                            var existingAttributes = api[0].attributes;
536                            api.replaceWith($(elementContent));
537
538                            // Now add back the existing attributes
539                            // excluding the id attribute back onto
540                            // the api node. Grab the updated #api first.
541                            api = sanitizedBody.find("#api");
542                            $.each(existingAttributes, function () {
543                                if (this.name !== "id") {
544                                    api.attr(this.name, this.value);
545                                }
546                            });
547
548                            sanitizedBody = $(sanitizedBody.html());
549
550                            $diags.trace(subTrace);
551                        }(new $trace("T004", true)));
552
553                        setTimeout(function () {
554                            // Add custom template body section into current html body section
555                            $("body").append(sanitizedBody);
556                            if ($.isFunction(callback)) {
557                                callback();
558                            }
559                        }, 0);
560
561                        // Make sure screen reader to announce the page name, also prevent reading "table".
562                        $("table[class=panel_layout]").attr({ "aria-label": document.title });
563                    });
564                }
565                catch (error) {
566                    trace.append(" - err:" + error.message);
567                }
568                finally {
569                    $diags.trace(trace);
570                }
571            }(new $trace("T019", true)));
572        };
573
574        // So as the this script has loaded, attempt
575        // to get the cross origin document
576        (function getCrossOriginDocument() {
577            (function (trace) {
578                var usingXhr = !window.XDomainRequest;
579                var requestor = usingXhr ? new XMLHttpRequest() : new XDomainRequest();
580                var remoteResource = SETTINGS.remoteResource;
581
582                // If the resource being fetched is from the I2E static service,
583                // add the slice/dc query string
584                if (remoteResource.indexOf(window.staticHost) === 0) {
585                    var initialPrepend = remoteResource.indexOf("?") === -1 ? "?" : "&";
586                    remoteResource += initialPrepend + "slice=" + window.targetSlice;
587                    remoteResource += "&dc=" + window.targetDc;
588                }
589
590                requestor.open("GET", remoteResource);
591
592                // Wire up the event handlers
593                requestor.onload = function () {
594                    if (!usingXhr || usingXhr && requestor.status === 200) {
595                        _crossOriginDocument = requestor.responseText;
596
597                        // Update the global flag to indicate that the cross
598                        // origin content has been now been downloaded
599                        window.contentReady = true;
600                        // Add remote resource URL to indicate if UI is customized on client side.
601                        trace.append(' - URL:' + remoteResource);
602                        $diags.trace(trace);
603                        return;
604                    }
605
606                    // If the resource hasn't been found
607                    if (requestor.status === 404) {
608                        var errorTrace = new $trace("T028", false);
609                        $diags.trace(errorTrace);
610                        $diags.trace(trace);
611                        // Send diagnostics to the service
612                        $diags.sendDiagnostics("UX005", SETTINGS.remoteResource);
613                    }
614
615                    return;
616                }
617
618                // On error gets fired when there is not network or an issue connecting to
619                // the host
620                requestor.onerror = function () {
621                    // We don't get a status back from XDomainRequest, either get 
622                    // sent to onload or onerror as is the case here
623                    var status = 0;
624
625                    if (usingXhr) {
626                        status = requestor.status;
627                    }
628
629                    var errorTrace = new $trace("T027", false);
630                    $diags.trace(errorTrace);
631                    $diags.trace(trace);
632                    // Send diagnostics to the service
633                    $diags.sendDiagnostics("UX004", SETTINGS.remoteResource);
634                    return;
635                }
636
637                // Handle timeout fetching the cross-origin resource
638                requestor.timeout = function () {
639                    // On timeout we retry
640                    this.tryCount++;
641                    if (this.tryCount <= this.retryLimit) {
642                        // Try again
643                        getCrossOriginDocument();
644                        return;
645                    }
646
647                    var timeoutTrace = new $trace("T026", false);
648                    $diags.trace(timeoutTrace);
649                    $diags.trace(trace);
650                    // Send diagnostics to the service
651                    $diags.sendDiagnostics("UX003", SETTINGS.remoteResource);
652                    return;
653                }
654
655                // Required by XDomainRequest, but don't do anthing with this
656                requestor.onprogress = function () {
657                }
658
659                // Set the request timeout to match the initializtion timeout -0.2s,
660                // so that we explicitly catch timeout issues with remote resources
661                requestor.timeout = (window.initializationTimeout || 7000) - 200;
662
663                // Send the request
664                requestor.send();
665            }(new $trace("T021", true)));
666        }());
667
668        // Export the process function
669        return {
670            process: _process
671        };
672    }($cors, SETTINGS));
673
674    var applyTenantBranding = function (templateBody) {
675        // If tenant branding is not set return
676        var tenantBrandingKey = "tenantBranding";
677        if (!SETTINGS[tenantBrandingKey]) {
678            return;
679        }
680
681        var brandingData = SETTINGS[tenantBrandingKey];
682        var backgroundColorKey = "backgroundColor";
683        var backgroundImageUrlKey = "backgroundImageUrl";
684        var bannerLogoUrlKey = "bannerLogoUrl";
685        var $backgroundContainer = templateBody.find("div[data-tenant-branding-background-color=true]");
686        if (brandingData[backgroundColorKey] && $backgroundContainer.length > 0) {
687            var styleEl = document.createElement("style");
688            styleEl.innerHTML = "div[data-tenant-branding-background-color=true]#background_branding_container {background:" + brandingData[backgroundColorKe
688y] + "}";
689            $("head").append(styleEl);
690        }
691
692        var $backgroundImage = templateBody.find("img[data-tenant-branding-background=true]");
693        if (brandingData[backgroundImageUrlKey] && $backgroundImage.length > 0) {
694            $backgroundImage.attr("src", brandingData[backgroundImageUrlKey]);
695        }
696
697        var $companyLogo = templateBody.find("img[data-tenant-branding-logo=true]");
698        if (brandingData[bannerLogoUrlKey] && $companyLogo.length > 0) {
699            $companyLogo.attr("src", brandingData[bannerLogoUrlKey])
700                .show();
701        }
702    };
703
704    var sendPageLoadTime = function () {
705        var pageLoadTime = new PageLoadTime();
706        var pltData = JSON.stringify(pageLoadTime.getPerformanceData());
707        var localSettings = jQuery.extend(true, {}, window.SETTINGS); // Deep copy of original settings object
708        localSettings.contentType = 'application/json; charset=utf-8';
709        localSettings.api = "client";
710        $i2e.sendDataWithRetry(
711            pltData,
712            function (response) {
713            },
714            function (xmlHttpRequest, textStatus, errorThrown) {
715                $diags.trace(new $trace("T035", false));
716            },
717            function () {
718            },
719            "perftrace",
720            localSettings
721        );
722    };
723
724    // Wait for jQuery to load
725    (function defer() {
726        if (window.jQuery && typeof $element !== "undefined") {
727            // We need to wait on the remote
728            // content before we can update the DOM.
729            // Script is ready when the script 
730            // download is complete, not execution
731            // of the script.
732            (function waitOnContentReady() {
733                if (window.contentReady) {
734                    // Cross origin content can
735                    // now be processed, which if successful
736                    // sets the window.pageReady flag
737                    $cors.process(function () {
738                        // Now wait for body and page are ready.
739                        // This ensures that any initialization
740                        // that requires visible elements such as focus work
741                        // as intended
742                        $element.initialize();
743
744                        // Update the initialization flag to prevent diganostics
745                        // phoning home
746                        $diags.initializationSuccessful = true;
747
748                        // Update the global flag indicating that the cross origin
749                        // document has now been set
750                        window.pageReady = true;
751
752                        // Calling asynchronously to avoid potentials issue to block page from rendering.
753                        setTimeout(sendPageLoadTime, 0);
754
755                        checkCssPreloaded();
756                    });
757                }
758                else {
759                    setTimeout(waitOnContentReady, 0);
760                }
761            }());
762        } else {
763            setTimeout(function () { defer(); }, 50);
764        }
765    })();
766}
767
768/* endinject */
769
770/* inject:handlebars.runtime-4.0.12.min.js */
771/**!
772
773 @license
774 handlebars v4.0.12
775
776Copyright (C) 2011-2017 by Yehuda Katz
777
778Permission is hereby granted, free of charge, to any person obtaining a copy
779of this software and associated documentation files (the "Software"), to deal
780in the Software without restriction, including without limitation the rights
781to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
782copies of the Software, and to permit persons to whom the Software is
783furnished to do so, subject to the following conditions:
784
785The above copyright notice and this permission notice shall be included in
786all copies or substantial portions of the Software.
787
788THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
789IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
790FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
791AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
792LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
793OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
794THE SOFTWARE.
795
796*/
797!function (a, b) { "object" == typeof exports && "object" == typeof module ? module.exports = b() : "function" == typeof define && define.amd ? define([], b) : "object" == typeof exports ? exports.Handlebars = b() : a.Handlebars = b() }(this, function () { return function (a) { function b(d) { if (c[d]) return c[d].exports; var e = c[d] = { exports: {}, id: d, loaded: !1 }; return a[d].call(e.exports, e, e.exports, b), e.loaded = !0, e.exports } var c = {}; return b.m = a, b.c = c, b.p = "", b(0) }([function (a, b, c) { "use strict"; function d() { var a = new h.HandlebarsEnvironment; return n.extend(a, h), a.SafeString = j["default"], a.Exception = l["default"], a.Utils = n, a.escapeExpression = n.escapeExpression, a.VM = p, a.template = function (b) { return p.template(b, a) }, a } var e = c(1)["default"], f = c(2)["default"]; b.__esModule = !0; var g = c(3), h = e(g), i = c(20), j = f(i), k = c(5), l = f(k), m = c(4), n = e(m), o = c(21), p = e(o), q = c(33), r = f(q), s = d(); s.create = d, r["default"](s), s["default"] = s, b["default"] = s, a.exports = b["default"] }, function (a, b) { "use strict"; b["default"] = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b["default"] = a, b }, b.__esModule = !0 }, function (a, b) { "use strict"; b["default"] = function (a) { return a && a.__esModule ? a : { "default": a } }, b.__esModule = !0 }, function (a, b, c) { "use strict"; function d(a, b, c) { this.helpers = a || {}, this.partials = b || {}, this.decorators = c || {}, i.registerDefaultHelpers(this), j.registerDefaultDecorators(this) } var e = c(2)["default"]; b.__esModule = !0, b.HandlebarsEnvironment = d; var f = c(4), g = c(5), h = e(g), i = c(9), j = c(17), k = c(19), l = e(k), m = "4.0.12"; b.VERSION = m; var n = 7; b.COMPILER_REVISION = n; var o = { 1: "<= 1.0.rc.2", 2: "== 1.0.0-rc.3", 3: "== 1.0.0-rc.4", 4
vendor: 16,504 bytes, line 797
797: "== 1.x.x", 5: "== 2.0.0-alpha.x", 6: ">= 2.0.0-beta.1", 7: ">= 4.0.0" }; b.REVISION_CHANGES = o; var p = "[object Object]"; d.prototype = { constructor: d, logger: l["default"], log: l["default"].log, registerHelper: function (a, b) { if (f.toString.call(a) === p) { if (b) throw new h["default"]("Arg not supported with multiple helpers"); f.extend(this.helpers, a) } else this.helpers[a] = b }, unregisterHelper: function (a) { delete this.helpers[a] }, registerPartial: function (a, b) { if (f.toString.call(a) === p) f.extend(this.partials, a); else { if ("undefined" == typeof b) throw new h["default"]('Attempting to register a partial called "' + a + '" as undefined'); this.partials[a] = b } }, unregisterPartial: function (a) { delete this.partials[a] }, registerDecorator: function (a, b) { if (f.toString.call(a) === p) { if (b) throw new h["default"]("Arg not supported with multiple decorators"); f.extend(this.decorators, a) } else this.decorators[a] = b }, unregisterDecorator: function (a) { delete this.decorators[a] } }; var q = l["default"].log; b.log = q, b.createFrame = f.createFrame, b.logger = l["default"] }, function (a, b) { "use strict"; function c(a) { return k[a] } function d(a) { for (var b = 1; b < arguments.length; b++)for (var c in arguments[b]) Object.prototype.hasOwnProperty.call(arguments[b], c) && (a[c] = arguments[b][c]); return a } function e(a, b) { for (var c = 0, d = a.length; c < d; c++)if (a[c] === b) return c; return -1 } function f(a) { if ("string" != typeof a) { if (a && a.toHTML) return a.toHTML(); if (null == a) return ""; if (!a) return a + ""; a = "" + a } return m.test(a) ? a.replace(l, c) : a } function g(a) { return !a && 0 !== a || !(!p(a) || 0 !== a.length) } function h(a) { var b = d({}, a); return b._parent = a, b } function i(a, b) { return a.path = b, a } function j(a, b) { return (a ? a + "." : "") + b } b.__esModule = !0, b.extend = d, b.indexOf = e, b.escapeExpression = f, b.isEmpty = g, b.createFrame = h, b.blockParams = i, b.appendContextPath = j; var k = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#x27;", "`": "&#x60;", "=": "&#x3D;" }, l = /[&<>"'`=]/g, m = /[&<>"'`=]/, n = Object.prototype.toString; b.toString = n; var o = function (a) { return "function" == typeof a }; o(/x/) && (b.isFunction = o = function (a) { return "function" == typeof a && "[object Function]" === n.call(a) }), b.isFunction = o; var p = Array.isArray || function (a) { return !(!a || "object" != typeof a) && "[object Array]" === n.call(a) }; b.isArray = p }, function (a, b, c) { "use strict"; function d(a, b) { var c = b && b.loc, g = void 0, h = void 0; c && (g = c.start.line, h = c.start.column, a += " - " + g + ":" + h); for (var i = Error.prototype.constructor.call(this, a), j = 0; j < f.length; j++)this[f[j]] = i[f[j]]; Error.captureStackTrace && Error.captureStackTrace(this, d); try { c && (this.lineNumber = g, e ? Object.defineProperty(this, "column", { value: h, enumerable: !0 }) : this.column = h) } catch (k) { } } var e = c(6)["default"]; b.__esModule = !0; var f = ["description", "fileName", "lineNumber", "message", "name", "number", "stack"]; d.prototype = new Error, b["default"] = d, a.exports = b["default"] }, function (a, b, c) { a.exports = { "default": c(7), __esModule: !0 } }, function (a, b, c) { var d = c(8); a.exports = function (a, b, c) { return d.setDesc(a, b, c) } }, function (a, b) { var c = Object; a.exports = { create: c.create, getProto: c.getPrototypeOf, isEnum: {}.propertyIsEnumerable, getDesc: c.getOwnPropertyDescriptor, setDesc: c.defineProperty, setDescs: c.defineProperties, getKeys: c.keys, getNames: c.getOwnPropertyNames, getSymbols: c.getOwnPropertySymbols, each: [].forEach } }, function (a, b, c) { "use strict"; function d(a) { g["default"](a), i["default"](a), k["default"](a), m["default"](a), o["default"](a), q["default"](a), s["default"](a) } var e = c(2)["default"]; b.__esModule = !0, b.registerDefaultHelpers = d; var f = c(10), g = e(f), h = c(11), i = e(h), j = c(12), k = e(j), l = c(13), m = e(l), n = c(14), o = e(n), p = c(15), q = e(p), r = c(16), s = e(r) }, function (a, b, c) { "use strict"; b.__esModule = !0; var d = c(4); b["default"] = function (a) { a.registerHelper("blockHelperMissing", function (b, c) { var e = c.inverse, f = c.fn; if (b === !0) return f(this); if (b === !1 || null == b) return e(this); if (d.isArray(b)) return b.length > 0 ? (c.ids && (c.ids = [c.name]), a.helpers.each(b, c)) : e(this); if (c.data && c.ids) { var g = d.createFrame(c.data); g.contextPath = d.appendContextPath(c.data.contextPath, c.name), c = { data: g } } return f(b, c) }) }, a.exports = b["default"] }, function (a, b, c) { "use strict"; var d = c(2)["default"]; b.__esModule = !0; var e = c(4), f = c(5), g = d(f); b["default"] = function (a) { a.registerHelper("each", function (a, b) { function c(b, c, f) { j && (j.key = b, j.index = c, j.first = 0 === c, j.last = !!f, k && (j.contextPath = k + b)), i += d(a[b], { data: j, blockParams: e.blockParams([a[b], b], [k + b, null]) }) } if (!b) throw new g["default"]("Must pass iterator to #each"); var d = b.fn, f = b.inverse, h = 0, i = "", j = void 0, k = void 0; if (b.data && b.ids && (k = e.appendContextPath(b.data.contextPath, b.ids[0]) + "."), e.isFunction(a) && (a = a.call(this)), b.data && (j = e.createFrame(b.data)), a && "object" == typeof a) if (e.isArray(a)) for (var l = a.length; h < l; h++)h in a && c(h, h, h === a.length - 1); else { var m = void 0; for (var n in a) a.hasOwnProperty(n) && (void 0 !== m && c(m, h - 1), m = n, h++); void 0 !== m && c(m, h - 1, !0) } return 0 === h && (i = f(this)), i }) }, a.exports = b["default"] }, function (a, b, c) { "use strict"; var d = c(2)["default"]; b.__esModule = !0; var e = c(5), f = d(e); b["default"] = function (a) { a.registerHelper("helperMissing", function () { if (1 !== arguments.length) throw new f["default"]('Missing helper: "' + arguments[arguments.length - 1].name + '"') }) }, a.exports = b["default"] }, function (a, b, c) { "use strict"; b.__esModule = !0; var d = c(4); b["default"] = function (a) { a.registerHelper("if", function (a, b) { return d.isFunction(a) && (a = a.call(this)), !b.hash.includeZero && !a || d.isEmpty(a) ? b.inverse(this) : b.fn(this) }), a.registerHelper("unless", function (b, c) { return a.helpers["if"].call(this, b, { fn: c.inverse, inverse: c.fn, hash: c.hash }) }) }, a.exports = b["default"] }, function (a, b) { "use strict"; b.__esModule = !0, b["default"] = function (a) { a.registerHelper("log", function () { for (var b = [void 0], c = arguments[arguments.length - 1], d = 0; d < arguments.length - 1; d++)b.push(arguments[d]); var e = 1; null != c.hash.level ? e = c.hash.level : c.data && null != c.data.level && (e = c.data.level), b[0] = e, a.log.apply(a, b) }) }, a.exports = b["default"] }, function (a, b) { "use strict"; b.__esModule = !0, b["default"] = function (a) { a.registerHelper("lookup", function (a, b) { return a && a[b] }) }, a.exports = b["default"] }, function (a, b, c) { "use strict"; b.__esModule = !0; var d = c(4); b["default"] = function (a) { a.registerHelper("with", function (a, b) { d.isFunction(a) && (a = a.call(this)); var c = b.fn; if (d.isEmpty(a)) return b.inverse(this); var e = b.data; return b.data && b.ids && (e = d.createFrame(b.data), e.contextPath = d.appendContextPath(b.data.contextPath, b.ids[0])), c(a, { data: e, blockParams: d.blockParams([a], [e && e.contextPath]) }) }) }, a.exports = b["default"] }, function (a, b, c) { "use strict"; function d(a) { g["default"](a) } var e = c(2)["default"]; b.__esModule = !0, b.registerDefaultDecorators = d; var f = c(18), g = e(f) }, function (a, b, c) { "use strict"; b.__esModule = !0; var d = c(4); b["default"] = function (a) { a.registerDecorator("inline", function (a, b, c, e) { var f = a; return b.partials || (b.partials = {}, f = function (e, f) { var g = c.partials; c.partials = d.extend({}, g, b.partials); var h = a(e, f); return c.partials = g, h }), b.partials[e.args[0]] = e.fn, f }) }, a.exports = b["default"] }, function (a, b, c) { "use strict"; b.__esModule = !0; var d = c(4), e = { methodMap: ["debug", "info", "warn", "error"], level: "info", lookupLevel: function (a) { if ("string" == typeof a) { var b = d.indexOf(e.methodMap, a.toLowerCase()); a = b >= 0 ? b : parseInt(a, 10) } return a }, log: function (a) { if (a = e.lookupLevel(a), "undefined" != typeof console && e.lookupLevel(e.level) <= a) { var b = e.methodMap[a]; console[b] || (b = "log"); for (var c = arguments.length, d = Array(c > 1 ? c - 1 : 0), f = 1; f < c; f++)d[f - 1] = arguments[f]; console[b].apply(console, d) } } }; b["default"] = e, a.exports = b["default"] }, function (a, b) { "use strict"; function c(a) { this.string = a } b.__esModule = !0, c.prototype.toString = c.prototype.toHTML = function () { return "" + this.string }, b["default"] = c, a.exports = b["default"] }, function (a, b, c) { "use strict"; function d(a) { var b = a && a[0] || 1, c = s.COMPILER_REVISION; if (b !== c) { if (b < c) { var d = s.REVISION_CHANGES[c], e = s.REVISION_CHANGES[b]; throw new r["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (" + d + ") or downgrade your runtime to an older version (" + e + ").") } throw new r["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (" + a[1] + ").") } } function e(a, b) { function c(c, d, e) { e.hash && (d = p.extend({}, d, e.hash), e.ids && (e.ids[0] = !0)), c = b.VM.resolvePartial.call(this, c, d, e); var f = b.VM.invokePartial.call(this, c, d, e); if (null == f && b.compile && (e.partials[e.name] = b.compile(c, a.compilerOptions, b), f = e.partials[e.name](d, e)), null != f) { if (e.indent) { for (var g = f.split("\n"), h = 0, i = g.length; h < i && (g[h] || h + 1 !== i); h++)g[h] = e.indent + g[h]; f = g.join("\n") } return f } throw new r["default"]("The partial " + e.name + " could not be compiled when running in runtime-only mode") } function d(b) { function c(b) { return "" + a.main(e, b, e.helpers, e.partials, g, i, h) } var f = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], g = f.data; d._setup(f), !f.partial && a.useData && (g = j(b, g)); var h = void 0, i = a.useBlockParams ? [] : void 0; return a.useDepths && (h = f.depths ? b != f.depths[0] ? [b].concat(f.depths) : f.depths : [b]), (c = k(a.main, c, e, f.depths || [], g, i))(b, f) } if (!b) throw new r["default"]("No environment passed to template"); if (!a || !a.main) throw new r["default"]("Unknown template object: " + typeof a); a.main.decorator = a.main_d, b.VM.checkRevision(a.compiler); var e = { strict: function (a, b) { if (!(b in a)) throw new r["default"]('"' + b + '" not defined in ' + a); return a[b] }, lookup: function (a, b) { for (var c = a.length, d = 0; d < c; d++)if (a[d] && null != a[d][b]) return a[d][b] }, lambda: function (a, b) { return "function" == typeof a ? a.call(b) : a }, escapeExpression: p.escapeExpression, invokePartial: c, fn: function (b) { var c = a[b]; return c.decorator = a[b + "_d"], c }, programs: [], program: function (a, b, c, d, e) { var g = this.programs[a], h = this.fn(a); return b || e || d || c ? g = f(this, a, h, b, c, d, e) : g || (g = this.programs[a] = f(this, a, h)), g }, data: function (a, b) { for (; a && b--;)a = a._parent; return a }, merge: function (a, b) { var c = a || b; return a && b && a !== b && (c = p.extend({}, b, a)), c }, nullContext: l({}), noop: b.VM.noop, compilerInfo: a.compiler }; return d.isTop = !0, d._setup = function (c) { c.partial ? (e.helpers = c.helpers, e.partials = c.partials, e.decorators = c.decorators) : (e.helpers = e.merge(c.helpers, b.helpers), a.usePartial && (e.partials = e.merge(c.partials, b.partials)), (a.usePartial || a.useDecorators) && (e.decorators = e.merge(c.decorators, b.decorators))) }, d._child = function (b, c, d, g) { if (a.useBlockParams && !d) throw new r["default"]("must pass block params"); if (a.useDepths && !g) throw new r["default"]("must pass parent depths"); return f(e, b, a[b], c, 0, d, g) }, d } function f(a, b, c, d, e, f, g) { function h(b) { var e = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], h = g; return !g || b == g[0] || b === a.nullContext && null === g[0] || (h = [b].concat(g)), c(a, b, a.helpers, a.partials, e.data || d, f && [e.blockParams].concat(f), h) } return h = k(c, h, a, g, d, f), h.program = b, h.depth = g ? g.length : 0, h.blockParams = e || 0, h } function g(a, b, c) { return a ? a.call || c.name || (c.name = a, a = c.partials[a]) : a = "@partial-block" === c.name ? c.data["partial-block"] : c.partials[c.name], a } function h(a, b, c) { var d = c.data && c.data["partial-block"]; c.partial = !0, c.ids && (c.data.contextPath = c.ids[0] || c.data.contextPath); var e = void 0; if (c.fn && c.fn !== i && !function () { c.data = s.createFrame(c.data); var a = c.fn; e = c.data["partial-block"] = function (b) { var c = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; return c.data = s.createFrame(c.data), c.data["partial-block"] = d, a(b, c) }, a.partials && (c.partials = p.extend({}, c.partials, a.partials)) }(), void 0 === a && e && (a = e), void 0 === a) throw new r["default"]("The partial " + c.name + " could not be found"); if (a instanceof Function) return a(b, c) } function i() { return "" } function j(a, b) { return b && "root" in b || (b = b ? s.createFrame(b) : {}, b.root = a), b } function k(a, b, c, d, e, f) { if (a.decorator) { var g = {}; b = a.decorator(b, g, c, d && d[0], e, f, d), p.extend(b, g) } return b } var l = c(22)["default"], m = c(1)["default"], n = c(2)["default"]; b.__esModule = !0, b.checkRevision = d, b.template = e, b.wrapProgram = f, b.resolvePartial = g, b.invokePartial = h, b.noop = i; var o = c(4), p = m(o), q = c(5), r = n(q), s = c(3) }, function (a, b, c) { a.exports = { "default": c(23), __esModule: !0 } }, function (a, b, c) { c(24), a.exports = c(29).Object.seal }, function (a, b, c) { var d = c(25); c(26)("seal", function (a) { return function (b) { return a && d(b) ? a(b) : b } }) }, function (a, b) { a.exports = function (a) { return "object" == typeof a ? null !== a : "function" == typeof a } }, function (a, b, c) { var d = c(27), e = c(29), f = c(32); a.exports = function (a, b) { var c = (e.Object || {})[a] || Object[a], g = {}; g[a] = b(c), d(d.S + d.F * f(function () { c(1) }), "Object", g) } }, function (a, b, c) { var d = c(28), e = c(29), f = c(30), g = "prototype", h = function (a, b, c) { var i, j, k, l = a & h.F, m = a & h.G, n = a & h.S, o = a & h.P, p = a & h.B, q = a & h.W, r = m ? e : e[b] || (e[b] = {}), s = m ? d : n ? d[b] : (d[b] || {})[g]; m && (c = b); for (i in c) j = !l && s && i in s, j && i in r || (k = j ? s[i] : c[i], r[i] = m && "function" != typeof s[i] ? c[i] : p && j ? f(k, d) : q && s[i] == k ? function (a) { var b = function (b) { return this instanceof a ? new a(b) : a(b) }; return b[g] = a[g], b }(k) : o && "function" == typeof k ? f(Function.call, k) : k, o && ((r[g] || (r[g] = {}))[i] = k)) }; h.F = 1, h.G = 2, h.S = 4, h.P = 8, h.B = 16, h.W = 32, a.exports = h }, function (a, b) { var c = a.exports = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")(); "number" == typeof __g && (__g = c) }, function (a, b) { var c = a.exports = { version: "1.2.6" }; "number" == typeof __e && (__e = c) }, function (a, b, c) { var d = c(31); a.exports = function (a, b, c) { if (d(a), void 0 === b) return a; switch (c) { case 1: return function (c) { return a.call(b, c) }; case 2: return function (c, d) { return a.call(b, c, d) }; case 3: return function (c, d, e) { return a.call(b, c, d, e) } }return function () { return a.apply(b, arguments) } } }, function (a, b) { a.exports = function (a) { if ("function" != typeof a) throw TypeError(a + " is not a function!"); return a } }, function (a, b) { a.exports = function (a) { try { return !!a() } catch (b) { return !0 } } }, function (a, b) { (function (c) { "use strict"; b.__esModule = !0, b["default"] = function (a) { var b = "undefined" != typeof c ? c : window, d = b.Handlebars; a.noConflict = function () { return b.Handlebars === a && (b.Handlebars = d), a } }, a.exports = b["default"] }).call(b, function () { return this }()) }]) });
798/* endinject */
799
800/* inject:ief-core.js */
801"use strict";
802var $i2e = (function (content, settings) {
803    return {
804        VERSION: "2.0.0",
805        APPLE_IDP_PATH_REGEX: new RegExp(/\?claimsexchange=.*apple.*/i),
806        // Sends a request to the server using window.location.replace or window.location.assign
807        // Note: Can only be executed once per page
808        // @parameter path {string} the URL to redirect to
809        // @parameter preserveSessionHistory {boolean} whether to keep the current URL in the browser's session history so that the user can navigate to it with the back button
810        redirectToServer: function (path, preserveSessionHistory) {
811            // Prevent this method from being executed again. This is done to help prevent additional redirects while the first
812            // redirect is in progress (such as what would happen if a button was pressed twice quickly)
813            // Applies it on non Apple IDP cases only. Since apple idp on Safari allows user to stay on the screen with a native pop up.
814            if (!this.isSafari() || !this.APPLE_IDP_PATH_REGEX.test(path)) {
815                this.redirectToServer = function () { };
816            }
817            $diags.trace(new $trace("T002", false));
818            var link = this.getRedirectLink(path);
819            $(document).ready(function () {
820                
821                // Check if diagnostics are being returned on success
822                if (window.diagsAlways)
823                {
824                    link += "&diags=" + encodeURIComponent($diags.toJson());
825                }
826
827                preserveSessionHistory ? window.location.assign(link) : window.location.replace(link);
828            });
829        },
830
831        // Returns a path that can be used in an href or by the redirectToServer function
832        // @parameter {string} the URL to redirect to
833        getRedirectLink: function (path) {
834            path = path + ((path.indexOf("?") === -1) ? "?" : "&") + "csrf_token=" + settings.csrf + "&tx=" + settings.transId;
835
836            // Check if we have metrics
837            if (window.Metrics !== undefined) {
838                path += "&metrics=" + encodeURIComponent(window.Metrics.serialize());
839            }
840
841            return settings.hosts.tenant + "/api/" + settings.api + "/" + path + "&p=" + settings.hosts.policy;
842        },
843
844        // Sends the data to the CPIM service for verification and storage
845        // @parameter {string} the URL encoded form data entered by the user
846        // @parameter {string} the path to include after the API definition in the URL
847        // @parameter {object} an optional local settings object to build the request from
848        sendData: function (data, path, localSettings) {
849            // Use global settings if localSettings was not provided
850            localSettings = localSettings !== undefined ? localSettings : settings;
851
852            var url = localSettings.hosts.tenant + "/"
853                + localSettings.api
854                + (path !== undefined ? "/" + path : "")
855                + "?tx=" + localSettings.transId + "&p=" + localSettings.hosts.policy;
856
857            var headers = {
858                "X-CSRF-TOKEN": settings.csrf
859            };
860
861            if (settings.isPageViewIdSentWithHeader) {
862                headers["x-ms-cpim-pageviewid"] = settings.pageViewId;
863            }
864
865            return $.ajax({
866                type: "POST",
867                dataType: "json",
868                headers: headers,
869                timeout: localSettings.config.timeout || 90000,
870                url: url,
871                cache: false,
872                data: data
873            });
874        },
875
876        // Sends the data to the CPIM service for verification and storage
877        // @parameter {string} the URL encoded form data entered by the user
878        // @parameter {function} the function to call on success
879        // @parameter {function} the function to call on error
880        // @parameter {function} the function to call when request complete
881        // @parameter {string} the path to include after the API definition in the URL
882        // @parameter {object} an optional local settings object to build the request from
883        sendDataWithRetry: function (data, onSuccess, onError, onComplete, path, localSettings) {
884            // Use global settings if localSettings was not provided
885            localSettings = localSettings !== undefined ? localSettings : settings;
886
887            var url = localSettings.hosts.tenant + "/"
888                + localSettings.api
889                + (path !== undefined ? "/" + path : "")
890                + "?tx=" + localSettings.transId + "&p=" + localSettings.hosts.policy;
891
892            var headers = {
893                "X-CSRF-TOKEN": settings.csrf
894            };
895
896            if (settings.isPageViewIdSentWithHeader) {
897                headers["x-ms-cpim-pageviewid"] = settings.pageViewId;
898            }
899
900            var localXhrSettings = localSettings.xhrSettings;
901
902            return $.ajax({
903                type: "POST",
904                dataType: "json",
905                headers: headers,
906                retryMaxAttempts: localXhrSettings && localXhrSettings.hasOwnProperty("retryMaxAttempts") ? localXhrSettings.retryMaxAttempts : 3,
907                retryDelay: localXhrSettings && localXhrSettings.hasOwnProperty("retryDelay") ? localXhrSettings.retryDelay : 200,
908                retryExponent: localXhrSettings && localXhrSettings.hasOwnProperty("retryExponent") ? localXhrSettings.retryExponent : 2,
909                retryEnabled: localXhrSettings && localXhrSettings.hasOwnProperty("retryEnabled") ? localXhrSettings.retryEnabled : false,
910                retryOn: localXhrSettings && localXhrSettings.hasOwnProperty("retryOn") ? localXhrSettings.retryOn : [],
911                retryAttempt: 0,
912                timeout: localSettings.config.timeout || 90000,
913                url: url,
914                cache: false,
915                contentType: localSettings.contentType !== undefined ? localSettings.contentType : 'application/x-www-form-urlencoded; charset=UTF-8',
916                data: data,
917                success: onSuccess,
918                error: function (xhr, textStatus, errorThrown) {
919                    // Check if retry is enabled and if the error is a re-tryable error,
920                    // if not call the onError
921                    if (this.retryEnabled === false || this.retryOn.indexOf(textStatus) === -1) onError(xhr, textStatus, errorThrown);
922
923                    // Check if the agent is online, and if not
924                    // setup the retry
925                    var isOnline = (window.navigator !== undefined && window.navigator.onLine !== undefined) ? window.navigator.onLine : true;
926
927                    // Trace the online status attempt
928                    var onlineTrace = new $trace("T030", false);
929                    onlineTrace.append(isOnline ? "Online" : "Offline");
930                    $diags.trace(onlineTrace);
931
932                    if (isOnline === false) {
933                        // If there are still attempts left
934                        if (this.retryAttempt < this.retryMaxAttempts) {
935
936                            // Prepare the settings for subsequent
937                            // attempts;
938                            this.retryAttempt++; // bump the attempt count
939                            this.retryDelay = this.retryAttempt === 1 ? this.retryDelay : this.retryDelay * this.retryExponent;
940
941                            // Trace the retry attempt
942                            var retryTrace = new $trace("T031", false);
943                            retryTrace.append(" '" + textStatus + ": ' - retryAttempt: " + this.retryAttempt + " - retryDelay: " + this.retryDelay + " - retryExponent:" + this.retryExponent);
944                            $diags.trace(retryTrace);
945
946                            // Now set up the delay before retrying
947                            setTimeout(function (ajaxContext) {
948                                return $.ajax(ajaxContext);
949                            }, this.retryDelay, this);
950                        } else {
951                            // Run out of attempts, handover to the onError
952                            $diags.trace(new $trace("T032", false));
953                            onError(xhr, textStatus, errorThrown);
954                        }
955                    }
956                },
957                complete: onComplete
958            });
959        },
960
961        // Complies the template and binds to the specified
962        // data, returning the bound template
963        generateServiceContent: function (templateName, data) {
964            //var compiled = Handlebars.compile(template);
965            var template = Handlebars.templates[templateName];
966            return template(data);
967        },
968
969        // Inserts the service content to the page
970        // using the api div as the anchor point
971        insertServiceContent: function (serviceContent){
972            var $serviceContent = $(serviceContent);
973            var api = $("#api");
974
975            // Get all existing attributes
976            var existingAttributes = api[0].attributes;
977            api.replaceWith($serviceContent.html());
978
979            // Now add back the existing attributes
980            // excluding the id attribute
981            $.each(existingAttributes, function () {
982                if (this.name !== "id") {
983                    $("#api").attr(this.name, this.value);
984                }
985            });
986        },
987
988        // Returns the text from page CONTENT using the specified key
989        lookupLanguage: function (key) {
990            return content[key];
991        },
992
993        // Uses the static content url from settings to
994        // bind the host to the provided path
995        bindHost: function (path) {
996            return settings.hosts.static + path;
997        },
998
999        isSafari: function () {
1000            var ua = navigator.userAgent.toLowerCase();
1001            if (ua.indexOf('safari') !== -1) {
1002                if (ua.indexOf('chrome') > -1) {
1003                    return false; // Chrome
1004                } else {
1005                    return true; // Safari
1006                }
1007            }
1008        }
1009    }
1010}(CONTENT, SETTINGS));
1011/* endinject */
1012
1013/* inject:ief-handlebar-helpers.js */
1014"use strict";
1015(function (content, settings) {
1016    // Register handlebars helpers
1017    // Langauge helper
1018    Handlebars.registerHelper('getContent', function (contentName) {
1019        return new Handlebars.SafeString(content[contentName]);
1020    });
1021
1022    // Returns content without converting to a SafeString
1023    Handlebars.registerHelper('getRawContent', function (contentName) {
1024        return content[contentName];
1025    });
1026
1027    Handlebars.registerHelper('getSettingAsBoolean', function (settingName) {
1028        var value = settings.config[settingName];
1029        return value && value.toLowerCase() === 'true';
1030    });
1031
1032    // Url helper
1033    Handlebars.registerHelper('getHostQualfiedUrl', function (path) {
1034        return settings.hosts.static + path;
1035    });
1036
1037    // Block helper for outputing a template block if the specified setting is true
1038    Handlebars.registerHelper('isSettingTrue', function (settingName, options) {
1039        var value = settings.config[settingName];
1040
1041        if (value && value.toLowerCase() === 'true') {
1042            return options.fn(this);
1043        }
1044
1045        return null;
1046    });
1047
1048    // Block helper for outputing a template block if the specified setting is equal to the specified
1049    // value of if not present the default
1050    Handlebars.registerHelper('isSettingEqual', function (settingName, equals, defaultValue, options) {
1051        var value = settings.config[settingName] || defaultValue;
1052        var eqArray = equals.split(',');
1053        var arrayLength = eqArray.length;
1054
1055        for (var i = 0; i < arrayLength; i++) {
1056            if (eqArray[i] && eqArray[i].toLowerCase() === value.toLowerCase()) {
1057                return options.fn(this);
1058            }
1059        }
1060
1061        return null;
1062    });
1063
1064    // Block helper for outputing a template block if the specified setting exists
1065    Handlebars.registerHelper('doesSettingExist', function (settingName, options) {
1066        var value = settings.config[settingName];
1067        if (value) {
1068            return options.fn(this);
1069        }
1070        else {
1071            return options.inverse(this);
1072        }
1073    });
1074
1075    // Block helper for outputing a template block if the specified setting contains the specified
1076    // value
1077    Handlebars.registerHelper('doesSettingContain', function (settingName, contains, defaultValue, options) {
1078        var value = settings.config[settingName] || defaultValue;
1079        var valueArray = value.split(',');
1080        var arrayLength = valueArray.length;
1081
1082        for (var i = 0; i < arrayLength; i++) {
1083            if (valueArray[i] && valueArray[i].toLowerCase() === contains.toLowerCase()) {
1084                return options.fn(this);
1085            }
1086        }
1087
1088        return options.inverse(this);
1089    });
1090
1091    // Block helper for outputing a template block if the collection only contains a single item
1092    Handlebars.registerHelper('isSingle', function (collection, options) {
1093        if (collection.length === 1) {
1094            return options.fn(this);
1095        }
1096
1097        return null;
1098    });
1099
1100    // Block helper for outputing a template block if the collection only contains a single item
1101    Handlebars.registerHelper('isMultiple', function (collection, options) {
1102        if (collection.length > 1) {
1103            return options.fn(this);
1104        }
1105
1106        return null;
1107    });
1108
1109    // Block helper for outputing an array
1110    Handlebars.registerHelper('getCountryDialingCodeOptionList', function () {
1111        var optionList = "";
1112        var localeCountry = settings.locale.country;
1113
1114        var elem = document.createElement('textarea');
1115        elem.innerHTML = $i2e.lookupLanguage("countryList");
1116        var processingList = JSON.parse(elem.value);
1117
1118        // Iterate through the isolocalized.countryByLang as this ensures that
1119        // countries appear in the correct alphabetical order.
1120        for (var entry in processingList) {
1121            // Get the dialing code from the data
1122            var dialingCode = $isoData.countryByIso[entry]["dc"];
1123            optionList += "<option value='+" + dialingCode + (localeCountry === entry ? "' selected>" : "'>") + processingList[entry] + (dialingCode ? " (+" + dialingCode + ")" : "") + "</option>";
1124        }
1125        return optionList;
1126    });
1127}(CONTENT, SETTINGS));
1128/* endinject */
1129
1130/* inject:ief-modal.js */
1131/* endinject */
1132
1133/* inject:predicateValidation.js */
1134"use strict";
1135var $predicateValidation = function ($diags, content, settings) {
1136
1137        /**
1138     * UNKNOWN - the method passed was not defined in the xml
1139     * INCLUDES_CHARACTERS - validates that a character set exists in the claim value
1140     * MATCHES_REGEX - check the claim value against a regular expression
1141     * IS_LENGTH_RANGE - check if claim value has length in a specific range
1142     */
1143    var PREDICATE_METHODS = {
1144        UNKNOWN: 0, INCLUDES_CHARACTERS: 1, MATCHES_REGEX: 2, IS_LENGTH_RANGE: 3, IS_DATE_RANGE: 4
1145    };
1146
1147    /**
1148     * MINIMUM - the minimum length
1149     * MAXIMUM - the maximum length
1150     * CHARACTER_SET - the character set to validate against
1151     * REGULAR_EXPRESSION - the regular expression to check against
1152     */
1153    var PREDICATE_PARAMETERS = {
1154        MINIMUM: 1, MAXIMUM: 2, CHARACTER_SET: 3, REGULAR_EXPRESSION: 4
1155    };
1156
1157    // Returns the first object in the Attribute fields who has the same claimID, including those inside display control
1158    var _findAttributeFieldByClaimId = function(claimId) {
1159        if (!Array.isArray(SA_FIELDS.AttributeFields)) return null;
1160        for (var i = 0; i < SA_FIELDS.AttributeFields.length; i++) {
1161            if (SA_FIELDS.AttributeFields[i].ID === claimId) {
1162                return SA_FIELDS.AttributeFields[i];
1163            }
1164
1165            if (SA_FIELDS.AttributeFields[i].USER_INPUT_TYPE === "DisplayControl") {
1166                if (!Array.isArray(SA_FIELDS.AttributeFields[i].DISPLAY_FIELDS)) return null;
1167                for (var j = 0; j < SA_FIELDS.AttributeFields[i].DISPLAY_FIELDS.length; j++) {
1168                    if (SA_FIELDS.AttributeFields[i].DISPLAY_FIELDS[j].ID === claimId) {
1169                        return SA_FIELDS.AttributeFields[i].DISPLAY_FIELDS[j];
1170                    }
1171                }
1172            }
1173        }
1174
1175        return null;
1176    }
1177
1178    // Returns the first object in an array that has a key with a specific value
1179    // @parameter arr is an array of objects
1180    // @parameter key is the key we will be looking at
1181    // @parameter value is the value that the key must have
1182    var _findBy = function (arr, key, value) {
1183        if (!Array.isArray(arr)) return null;
1184
1185        for (var i = 0; i < arr.length; i++) {
1186            var item = arr[i];
1187            if (item[key] != null && item[key] == value) {
1188                return item;
1189            }
1190        }
1191
1192        return null;
1193    }
1194
1195    // Unescape html charaters to use in regex
1196    // Note: this is for fullproffing the client side (the server side should always send characters unescaped)
1197    var _unescapeHtml = function (unsafe) {
1198        return unsafe
1199            .replace(/&amp;/g, "&")
1200            .replace(/&lt;/g, "<")
1201            .replace(/&gt;/g, ">")
1202            .replace(/&quot;/g, "\"")
1203            .replace(/&#039;/g, "'")
1204            .replace(/&#39;/g, "'");
1205    }
1206
1207    // Escape characters used in regex as character set
1208    var _escapeRegExpCharaterSet = function (str) {
1209        return str.replace(/([\/^$*+?.()|[\]{}])/g, "\\$1")
1210    }
1211
1212    // Returns a list of validation methods
1213    // The same methods are implemented on the server side for security reasons
1214    var _validationMethods = function () {
1215        var self = this;
1216        var validationMethods = [];
1217
1218        // Do nothing in case the method is unknown
1219        validationMethods[PREDICATE_METHODS.UNKNOWN] = function (claimValue, params) {
1220            return true;
1221        };
1222
1223        validationMethods[PREDICATE_METHODS.INCLUDES_CHARACTERS] = function (claimValue, params) {
1224            // Escape regular expression characters, so that we only allow character sets
1225            var chars = _unescapeHtml(params[0].VALUE);
1226            var regexValid = new RegExp("[" + _escapeRegExpCharaterSet(chars) + "]+");
1227
1228            return regexValid.test(claimValue);
1229        };
1230
1231        validationMethods[PREDICATE_METHODS.IS_LENGTH_RANGE] = function (claimValue, params) {
1232            var minimum = parseInt($predicateValidation.findBy(params, "NAME", PREDICATE_PARAMETERS.MINIMUM).VALUE);
1233            var maximum = parseInt($predicateValidation.findBy(params, "NAME", PREDICATE_PARAMETERS.MAXIMUM).VALUE);
1234
1235            return minimum <= claimValue.length && claimValue.length <= maximum;
1236        };
1237
1238        validationMethods[PREDICATE_METHODS.IS_DATE_RANGE] = function (claimValue, params) {
1239            var minimum = new Date($predicateValidation.findBy(params, "NAME", PREDICATE_PARAMETERS.MINIMUM).VALUE);
1240            var maximum = new Date($predicateValidation.findBy(params, "NAME", PREDICATE_PARAMETERS.MAXIMUM).VALUE);
1241            var minimumDate = new Date(minimum.getUTCFullYear(), minimum.getUTCMonth(), minimum.getUTCDate());
1242            var maximumDate = new Date(maximum.getUTCFullYear(), maximum.getUTCMonth(), maximum.getUTCDate());
1243            return minimumDate <= claimValue && claimValue <= maximumDate;
1244        };
1245
1246        validationMethods[PREDICATE_METHODS.MATCHES_REGEX] = function (claimValue, params) {
1247            var regex = _unescapeHtml($predicateValidation.findBy(params, "NAME", PREDICATE_PARAMETERS.REGULAR_EXPRESSION).VALUE);
1248            var regexValid = new RegExp(regex);
1249
1250            return regexValid.test(claimValue);
1251        };
1252
1253        return validationMethods;
1254    }
1255
1256    var _computeClaimValueError = function (mainHelpText, invalidPredicates, errorPrefix) {
1257        var hasMain = (mainHelpText != "" && mainHelpText != null);
1258        // Add a new line, spaces and dash for list of errors
1259        var dashPrefix = hasMain ? errorPrefix : "";
1260        var errorMessage = hasMain ? mainHelpText : "";
1261        for (var i = 0; i < invalidPredicates.length; i++) {
1262            errorMessage += dashPrefix + invalidPredicates[i].HELP_TEXT;
1263        }
1264        return errorMessage;
1265    }
1266
1267    var _generateValidationDict = function (claimID, claimValue, errorPrefix) {
1268        var errorMsgs = [];
1269        var passwordValidationDict = { isValid: true, errorMsgs: errorMsgs };
1270
1271        var claimById = $predicateValidation.findAttributeFieldByClaimId(claimID);
1272        if (null == claimById) return passwordValidationDict;
1273
1274        var claimValidation = claimById.INPUT_VALIDATION;
1275        if (null == claimValidation) return passwordValidationDict;
1276
1277        var validationMethods = _validationMethods();
1278
1279        // Validate predicates
1280        var isValid = true;
1281        if (claimValidation.PREDICATES != null) {
1282            for (var i = 0; i < claimValidation.PREDICATES.length; i++) {
1283                var predicate = claimValidation.PREDICATES[i];
1284                if (!validationMethods[predicate.METHOD](claimValue, predicate.PARAMS)) {
1285                    errorMsgs.push(_computeClaimValueError("", [predicate], errorPrefix));
1286                    isValid = false;
1287                }
1288            }
1289        }
1290
1291        // Validate predicate groups
1292        if (claimValidation.PREDICATE_GROUPS != null) {
1293            for (var i = 0; i < claimValidation.PREDICATE_GROUPS.length; i++) {
1294                var predicateGroup = claimValidation.PREDICATE_GROUPS[i];
1295
1296                var countValid = 0;
1297                for (var j = 0; j < predicateGroup.PREDICATES.length; j++) {
1298                    var predicate = predicateGroup.PREDICATES[j];
1299                    var localValid = validationMethods[predicate.METHOD](claimValue, predicate.PARAMS);
1300
1301                    if (localValid) {
1302                        countValid++;
1303                    }
1304                }
1305
1306                // If there where errors in the predicate group
1307                var matchesMinimum = (countValid >= predicateGroup.MATCH_AT_LEAST);
1308                if ((matchesMinimum && predicateGroup.REJECT === true) ||
1309                    (!matchesMinimum && predicateGroup.REJECT !== true)) {
1310                    errorMsgs.push(_computeClaimValueError(predicateGroup.HELP_TEXT, predicateGroup.PREDICATES, errorPrefix));
1311                    isValid = false;
1312                }
1313            }
1314        }
1315
1316        passwordValidationDict.isValid = isValid;
1317        passwordValidationDict.errorMsgs = errorMsgs;
1318
1319        return passwordValidationDict;
1320    }
1321
1322    // Export the public methods
1323    return {
1324        findAttributeFieldByClaimId: _findAttributeFieldByClaimId,
1325        findBy: _findBy,
1326        generateValidationDict: _generateValidationDict,
1327        validationMethods: _validationMethods,
1328        unescapeHtml: _unescapeHtml,
1329        PREDICATE_METHODS: PREDICATE_METHODS,
1330        PREDICATE_PARAMETERS: PREDICATE_PARAMETERS
1331    };
1332}($diags, CONTENT, SETTINGS);
1333
1334
1335/* endinject */
1336
1337/* inject:element */
1338// Note: This is the SSP with KMSI.
1339"use strict";
1340/* inject:handlebar */
1341this.Handlebars=this.Handlebars||{},this.Handlebars.templates=this.Handlebars.templates||{},this.Handlebars.templates.unifiedssp=Handlebars.template({1:function(n,t,l,e,a){var i;return'      <div class="heading">\r\n        <h1 role="heading">'+(null!=(i=(l.getContent||t&&t.getContent||l.helperMissing).call(null!=t?t:n.nullContext||{},"heading",{name:"getContent",hash:{},data:a}))?i:"")+"</h1>\r\n      </div>\r\n"},3:function(n,t,l,e,a){var i;return null!=(i=l.if.call(null!=t?t:n.nullContext||{},null!=t?t.buttonList:t,{name:"if",hash:{},fn:n.program(4,a,0),inverse:n.noop,data:a}))?i:""},4:function(n,t,l,e,a){var i,r=null!=t?t:n.nullContext||{},o=l.helperMissing;return'        <div class="claims-provider-list-buttons social" aria-label="'+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"social_intro",{name:"getContent",hash:{},data:a}))?i:"")+'" role="form">\r\n          <div class="intro">\r\n            <h2 aria-level="1">'+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"social_intro",{name:"getContent",hash:{},data:a}))?i:"")+'</h2>\r\n          </div>\r\n          <div class="options">\r\n'+(null!=(i=l.each.call(r,null!=t?t.buttonList:t,{name:"each",hash:{},fn:n.program(5,a,0),inverse:n.noop,data:a}))?i:"")+"          </div>\r\n        </div>\r\n\r\n"+(null!=(i=l.if.call(r,null!=t?t.AttributeFields:t,{name:"if",hash:{},fn:n.program(15,a,0),inverse:n.noop,data:a}))?i:"")},5:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotPasswordLinkOverride",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(6,a,0),inverse:n.program(8,a,0),data:a}))?i:""},6:function(n,t,l,e,a){return""},8:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomClaimsProviderSelections",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(6,a,0),inverse:n.program(9,a,0),data:a}))?i:""},9:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomUnderFormClaimsProviderSelections",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(6,a,0),inverse:n.program(10,a,0),data:a}))?i:""},10:function(n,t,l,e,a){var i;return"              <div>\r\n"+(null!=(i=l.if.call(null!=t?t:n.nullContext||{},a&&a.first,{name:"if",hash:{},fn:n.program(11,a,0),inverse:n.program(13,a,0),data:a}))?i:"")+"              </div>\r\n            "},11:function(n,t,l,e,a){var i,r=n.lambda;return'                  <button class="accountButton firstButton claims-provider-selection" id="'+(null!=(i=r(null!=t?t.id:t,t))?i:"")+'" role="link" autofocus>'+(null!=(i=r(null!=t?t.description:t,t))?i:"")+"</button>\r\n"},13:function(n,t,l,e,a){var i,r=n.lambda;return'                  <button class="accountButton claims-provider-selection" id="'+(null!=(i=r(null!=t?t.id:t,t))?i:"")+'" role="link">'+(null!=(i=r(null!=t?t.description:t,t))?i:"")+"</button>\r\n"},15:function(n,t,l,e,a){var i;return'        <div class="divider">\r\n          <h2>'+(null!=(i=(l.getContent||t&&t.getContent||l.helperMissing).call(null!=t?t:n.nullContext||{},"divider_title",{name:"getContent",hash:{},data:a}))?i:"")+"</h2>\r\n        </div>\r\n"},17:function(n,t,l,e,a){var i,r=null!=t?t:n.nullContext||{},o=l.helperMissing;return'      <form id="localAccountForm" action="JavaScript:void(0);" class="localAccount" aria-label="'+(null!=(i=(l.buildIntroString||t&&t.buildIntroString||o).call(r,null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[0]:i)?i.DN:i,{name:"buildIntroString",hash:{},data:a}))?i:"")+'">\r\n        <div class="intro">\r\n          <h2 aria-level="1">\r\n            '+(null!=(i=(l.buildIntroString||t&&t.buildIntroString||o).call(r,null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[0]:i)?i.DN:i,{name:"buildIntroString",hash:{},data:a}))?i:"")+'\r\n          </h2>\r\n        </div>\r\n        <div class="error pageLevel" aria-hidden="true" role="alert">\r\n          <p></p>\r\n        </div>\r\n        <div class="entry">\r\n          <div class="entry-item">\r\n'+(null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||o).call(r,"pageFlavor","classic","None",{name:"isSettingEqual",hash:{},fn:n.program(18,a,0),inverse:n.noop,data:a}))?i:"")+'            <div class="error itemLevel" aria-hidden="true" role="alert">\r\n              <p ></p>\r\n            </div>\r\n            '+n.escapeExpression((l.buildInput||t&&t.buildInput||o).call(r,null!=(i=null!=t?t.AttributeFields:t)?i[0]:i,null!=t?t.buttonList:t,{name:"buildInput",hash:{},data:a}))+"\r\n          </div>\r\n"+(null!=(i=l.if.call(r,null!=(i=null!=t?t.AttributeFields:t)?i[1]:i,{name:"if",hash:{},fn:n.program(20,a,0),inverse:n.noop,data:a}))?i:"")+'          <div class="working"></div>\r\n'+(null!=(i=(l.isSettingTrue||t&&t.isSettingTrue||o).call(r,"enableRememberMe",{name:"isSettingTrue",hash:{},fn:n.program(36,a,0),inverse:n.noop,data:a}))?i:"")+"\r\n"+(null!=(i=l.if.call(r,null!=t?t.textLinkList:t,{name:"if",hash:{},fn:n.program(38,a,0),inverse:n.noop,data:a}))?i:"")+'\r\n          <div class="buttons">\r\n            <button id="next" type="submit" form="localAccountForm" >'+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"button_signin",{name:"getContent",hash:{},data:a}))?i:"")+"</button>\r\n          </div>
1341\r\n"+(null!=(i=(l.doesSettingExist||t&&t.doesSettingExist||o).call(r,"forgotPasswordLinkLocation",{name:"doesSettingExist",hash:{},fn:n.program(43,a,0),inverse:n.noop,data:a}))?i:"")+"        </div>\r\n"+(null!=(i=(l.ifSignUpLink||t&&t.ifSignUpLink||o).call(r,null!=t?t.textLinkList:t,{name:"ifSignUpLink",hash:{},fn:n.program(46,a,0),inverse:n.program(48,a,0),data:a}))?i:"")+"      </form>\r\n"},18:function(n,t,l,e,a){var i,r=n.lambda;return'            <label for="'+(null!=(i=r(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[0]:i)?i.ID:i,t))?i:"")+'">\r\n              '+(null!=(i=r(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[0]:i)?i.DN:i,t))?i:"")+"\r\n            </label>\r\n"},20:function(n,t,l,e,a){var i,r=null!=t?t:n.nullContext||{},o=l.helperMissing,s=n.lambda;return'            <div class="entry-item">\r\n              <div class="password-label">\r\n'+(null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||o).call(r,"pageFlavor","classic","None",{name:"isSettingEqual",hash:{},fn:n.program(21,a,0),inverse:n.noop,data:a}
1341))?i:"")+(null!=(i=(l.doesSettingExist||t&&t.doesSettingExist||o).call(r,"forgotPasswordLinkLocation",{name:"doesSettingExist",hash:{},fn:n.program(23,a,0),inverse:n.program(26,a,0),data:a}))?i:"")+'              </div>\r\n              <div class="error itemLevel" aria-hidden="true">\r\n                <p role="alert"></p>\r\n              </div>\r\n              <input type="password" id="'+(null!=(i=s(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[1]:i)?i.ID:i,t))?i:"")+'" name="'+(null!=(i=s(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[1]:i)?i.DN:i,t))?i:"")+'" placeholder="'+(null!=(i=s(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[1]:i)?i.DN:i,t))?i:"")+'" aria-label="'+(null!=(i=s(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[1]:i)?i.DN:i,t))?i:"")+'" autocomplete="current-password" aria-required="true"/>\r\n'+(null!=(i=(l.doesSettingExist||t&&t.doesSettingExist||o).call(r,"forgotPasswordLinkLocation",{name:"doesSettingExist",hash:{},fn:n.program(29,a,0),inverse:n.program(32,a,0),data:a}))?i:"")+"            </div>\r\n"},21:function(n,t,l,e,a){var i,r=n.lambda;return'                <label for="'+(null!=(i=r(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[1]:i)?i.ID:i,t))?i:"")+'">'+(null!=(i=r(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[1]:i)?i.DN:i,t))?i:"")+"</label>\r\n"},23:function(n,t,l,e,a){var i;return null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotPasswordLinkLocation","AfterLabel","None",{name:"isSettingEqual",hash:{},fn:n.program(24,a,0),inverse:n.noop,data:a}))?i:""},24:function(n,t,l,e,a){var i;return'                    <a id="forgotPassword" >'+(null!=(i=(l.getContent||t&&t.getContent||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotpassword_link",{name:"getContent",hash:{},data:a}))?i:"")+"</a>\r\n"},26:function(n,t,l,e,a){var i;
1341return null!=(i=(l.doesSettingExist||t&&t.doesSettingExist||l.helperMissing).call(null!=t?t:n.nullContext||{},"pageFlavor",{name:"doesSettingExist",hash:{},fn:n.program(27,a,0),inverse:n.noop,data:a}))?i:""},27:function(n,t,l,e,a){var i;return(null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||l.helperMissing).call(null!=t?t:n.nullContext||{},"pageFlavor","classic","None",{name:"isSettingEqual",hash:{},fn:n.program(24,a,0),inverse:n.noop,data:a}))?i:"")+"                "},29:function(n,t,l,e,a){var i;return null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotPasswordLinkLocation","AfterInput","None",{name:"isSettingEqual",hash:{},fn:n.program(30,a,0),inverse:n.noop,data:a}))?i:""},30:function(n,t,l,e,a){var i;return'                  <a id="forgotPassword" >'+(null!=(i=(l.getContent||t&&t.getContent||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotpassword_link",{name:"getContent",hash:{},data:a}))?i:"")+"</a>\r\n"},32:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingE
vendor: 6,379 bytes, line 1341
1341xist||t&&t.doesSettingExist||l.helperMissing).call(null!=t?t:n.nullContext||{},"pageFlavor",{name:"doesSettingExist",hash:{},fn:n.program(33,a,0),inverse:n.noop,data:a}))?i:""},33:function(n,t,l,e,a){var i;return(null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||l.helperMissing).call(null!=t?t:n.nullContext||{},"pageFlavor","oceanBlue,slateGray","None",{name:"isSettingEqual",hash:{},fn:n.program(34,a,0),inverse:n.noop,data:a}))?i:"")+"              "},34:function(n,t,l,e,a){var i;return'                <div class="forgot-password center-height">\r\n                  <a id="forgotPassword" >'+(null!=(i=(l.getContent||t&&t.getContent||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotpassword_link",{name:"getContent",hash:{},data:a}))?i:"")+"</a>\r\n                </div>\r\n"},36:function(n,t,l,e,a){var i,r=null!=t?t:n.nullContext||{},o=l.helperMissing;return'              <div class="'+(null!=(i=(l.getRememberMeClass||t&&t.getRememberMeClass||o).call(r,null!=t?t.AttributeFields:t,{name:"getRememberMeClass",hash:{},data:a}))?i:"")+'">\r\n                <input id="rememberMe" type="checkbox" name="rememberMe" />\r\n                <label for="rememberMe">'+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"remember_me",{name:"getContent",hash:{},data:a}))?i:"")+"</label>\r\n              </div>\r\n"},38:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingExist||t&&t.doesSettingExist||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomClaimsProviderSelections",{name:"doesSettingExist",hash:{},fn:n.program(39,a,0),inverse:n.noop,data:a}))?i:""},39:function(n,t,l,e,a){var i;return'              <div class="claims-provider-list-text-links-bottom">\r\n'+(null!=(i=l.each.call(null!=t?t:n.nullContext||{},null!=t?t.textLinkList:t,{name:"each",hash:{},fn:n.program(40,a,0),inverse:n.noop,data:a}))?i:"")+"              </div>\r\n"},40:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomClaimsProviderSelections",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(41,a,0),inverse:n.noop,data:a}))?i:""},41:function(n,t,l,e,a){var i,r=n.lambda;return'                  <div>\r\n                    <a id="'+(null!=(i=r(null!=t?t.id:t,t))?i:"")+'" class="text-link">'+(null!=(i=r(null!=t?t.description:t,t))?i:"")+"</a>\r\n                  </div>\r\n"},43:function(n,t,l,e,a){var i;return null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotPasswordLinkLocation","AfterButtons","None",{name:"isSettingEqual",hash:{},fn:n.program(44,a,0),inverse:n.noop,data:a}))?i:""},44:function(n,t,l,e,a){var i;return'              <a id="forgotPassword" >'+(null!=(i=(l.getContent||t&&t.getContent||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotpassword_link",{name:"getContent",hash:{},data:a}))?i:"")+"</a>\r\n"},46:function(n,t,l,e,a){var i,r=null!=t?t:n.nullContext||{},o=l.helperMissing;return'          <div class="claims-provider-list-text-links">\r\n            <p>\r\n              '+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"createaccount_intro",{name:"getContent",hash:{},data:a}))?i:"")+"&nbsp;"+(null!=(i=(l.buildTextLinks||t&&t.buildTextLinks||o).call(r,null!=t?t.textLinkList:t,{name:"buildTextLinks",hash:{},data:a}))?i:"")+"\r\n            </p>\r\n          </div>\r\n"},48:function(n,t,l,e,a){var i;return null!=(i=l.if.call(null!=t?t:n.nullContext||{},null!=t?t.AttributeFields:t,{name:"if",hash:{},fn:n.program(49,a,0),inverse:n.noop,data:a}))?i:""},49:function(n,t,l,e,a){var i;return null!=(i=(l.isSettingTrue||t&&t.isSettingTrue||l.helperMissing).call(null!=t?t:n.nullContext||{},"showSignupLink",{name:"isSettingTrue",hash:{},fn:n.program(50,a,0),inverse:n.noop,data:a}))?i:""},50:function(n,t,l,e,a){var i,r=null!=t?t:n.nullContext||{},o=l.helperMissing;return'              <div class="divider">\r\n                <h2>'+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"divider_title",{name:"getContent",hash:{},data:a}))?i:"")+'</h2>\r\n              </div>\r\n              <div class="create">\r\n                <p>\r\n                  '+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"createaccount_intro",{name:"getContent",hash:{},data:a}))?i:"")+'<a id="createAccount" >'+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"createaccount_one_link",{name:"getContent",hash:{},data:a}))?i:"")+"</a>\r\n                </p>\r\n              </div>\r\n"},52:function(n,t,l,e,a,i,r){var o,s=null!=t?t:n.nullContext||{};return(null!=(o=l.if.call(s,null!=t?t.AttributeFields:t,{name:"if",hash:{},fn:n.program(15,a,0,i,r),inverse:n.noop,data:a}))?o:"")+(null!=(o=l.if.call(s,null!=t?t.buttonList:t,{name:"if",hash:{},fn:n.program(53,a,0,i,r),inverse:n.noop,data:a}))?o:"")},53:function(n,t,l,e,a,i,r){var o,s=null!=t?t:n.nullContext||{},u=l.helperMissing;return'        <div class="claims-provider-list-buttons social" aria-label="'+(null!=(o=(l.getContent||t&&t.getContent||u).call(s,"social_intro",{name:"getContent",hash:{},data:a}))?o:"")+'" role="form">\r\n          <div class="intro">\r\n            <h2 aria-level="1">'+(null!=(o=(l.getContent||t&&t.getContent||u).call(s,"social_intro",{name:"getContent",hash:{},data:a}))?o:"")+'</h2>\r\n          </div>\r\n          <div class="options">\r\n'+(null!=(o=l.each.call(s,null!=t?t.buttonList:t,{name:"each",hash:{},fn:n.program(54,a,0,i,r),inverse:n.noop,data:a}))?o:"")+"          </div>\r\n        </div>\r\n"},54:function(n,t,l,e,a,i,r){var o;return null!=(o=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotPasswordLinkOverride",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(6,a,0,i,r),inverse:n.program(55,a,0,i,r),data:a}))?o:""},55:function(n,t,l,e,a,i,r){var o;return null!=(o=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomClaimsProviderSelections",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(6,a,0,i,r),inverse:n.program(56,a,0,i,r),data:a}))?o:""},56:function(n,t,l,e,a,i,r){var o;return"                <div>\r\n"+(null!=(o=l.if.call(null!=t?t:n.nullContext||{},a&&a.first,{name:"if",hash:{},fn:n.program(57,a,0,i,r),inverse:n.program(60,a,0,i,r),data:a}))?o:"")+"                </div>\r\n              "}
vendor: 1,914 bytes, line 1341
1341,57:function(n,t,l,e,a,i,r){var o,s=n.lambda;return'                    <button class="accountButton firstButton claims-provider-selection" id="'+(null!=(o=s(null!=t?t.id:t,t))?o:"")+'" role="link" '+(null!=(o=l.if.call(null!=t?t:n.nullContext||{},null!=r[1]?r[1].AttributeFields:r[1],{name:"if",hash:{},fn:n.program(6,a,0,i,r),inverse:n.program(58,a,0,i,r),data:a}))?o:"")+" >"+(null!=(o=s(null!=t?t.description:t,t))?o:"")+"</button>\r\n"},58:function(n,t,l,e,a){return"autofocus"},60:function(n,t,l,e,a){var i,r=n.lambda;return'                    <button class="accountButton claims-provider-selection" id="'+(null!=(i=r(null!=t?t.id:t,t))?i:"")+'" role="link">'+(null!=(i=r(null!=t?t.description:t,t))?i:"")+"</button>\r\n"},62:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingExist||t&&t.doesSettingExist||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomUnderFormClaimsProviderSelections",{name:"doesSettingExist",hash:{},fn:n.program(63,a,0),inverse:n.noop,data:a}))?i:""},63:function(n,t,l,e,a){var i;return'        <div class="claims-provider-list-text-links-bottom-under-form">\r\n'+(null!=(i=l.each.call(null!=t?t:n.nullContext||{},null!=t?t.textLinkList:t,{name:"each",hash:{},fn:n.program(64,a,0),inverse:n.noop,data:a}))?i:"")+"        </div>\r\n"},64:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomUnderFormClaimsProviderSelections",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(65,a,0),inverse:n.noop,data:a}))?i:""},65:function(n,t,l,e,a){var i,r=n.lambda;return'            <div>\r\n              <a id="'+(null!=(i=r(null!=t?t.id:t,t))?i:"")+'" class="text-link">'+(null!=(i=r(null!=t?t.description:t,t))?i:"")+"</a>\r\n            </div>\r\n"},compiler:[7,">= 4.0.0"],main:function(n,t,l,e,a,i,r){var o,s=null!=t?t:n.nullContext||{},u=l.helperMissing;return'
1341<script id="Unified" type="text/x-handlebars-template">\r\n  <div id="api" data-name="Unified">\r\n'+(null!=(o=(l.isSettingTrue||t&&t.isSettingTrue||u).call(s,"showHeading",{name:"isSettingTrue",hash:{},fn:n.program(1,a,0,i,r),inverse:n.noop,data:a}))?o:"")+(null!=(o=(l.isSettingEqual||t&&t.isSettingEqual||u).call(s,"pageFlavor","classic","None",{name:"isSettingEqual",hash:{},fn:n.program(3,a,0,i,r),inverse:n.noop,data:a}))?o:"")+(null!=(o=l.if.call(s,null!=t?t.AttributeFields:t,{name:"if",hash:{},fn:n.program(17,a,0,i,r),inverse:n.noop,data:a}))?o:"")+(null!=(o=(l.isSettingEqual||t&&t.isSettingEqual||u).call(s,"pageFlavor","oceanBlue,slateGray","None",{name:"isSettingEqual",hash:{},fn:n.program(52,a,0,i,r),inverse:n.noop,data:a}))?o:"")+(null!=(o=l.if.call(s,null!=t?t.textLinkList:t,{name:"if",hash:{},fn:n.program(62,a,0,i,r),inverse:n.noop,data:a}))?o:"")+"  </div>\r\n<\/script>"},useData:!0,useDepths:!0});
1342/* endinject */
1343
1344/* inject:element-handlebar-helpers.js */
1345(function (content, settings) {
1346    // Takes array of text links and uses a string template from the window content to build text and links
1347    Handlebars.registerHelper('buildTextLinks', function (textLinksList) {
1348        var signupLinks = getSignUpLinks(textLinksList);
1349
1350        if (signupLinks.length === 1) {
1351            // The text for one link can have a {0}, but it is not required as with 2/3 links.
1352            var displayText = content.createaccount_one_link.replace('{0}', signupLinks[0].description);
1353            return new Handlebars.SafeString(getTextLink(displayText, signupLinks[0].id));
1354        }
1355
1356        var textLinksContent = '';
1357        if (signupLinks.length === 2) {
1358            textLinksContent = content.createaccount_two_links;
1359        } else if (signupLinks.length === 3) {
1360            textLinksContent = content.createaccount_three_links;
1361        }
1362
1363        signupLinks.forEach(function (linkData, idx) {
1364            var linkEl = getTextLink(linkData.description, linkData.id);
1365            textLinksContent = textLinksContent.replace('{' + idx + '}', linkEl);
1366        });
1367
1368        return new Handlebars.SafeString(textLinksContent);
1369
1370        function getTextLink(displayText, id) {
1371            displayText = Handlebars.Utils.escapeExpression(displayText);
1372            id = Handlebars.Utils.escapeExpression(id);
1373            var linkEl = '<a class="text-link" id="' + id + '">' + displayText + '</a>';
1374            return linkEl;
1375        }
1376    });
1377
1378    // returns boolean indicating whether the list of text links includes a sign up link
1379    Handlebars.registerHelper('ifSignUpLink', function (textLinksList, options) {
1380        return getSignUpLinks(textLinksList).length ? options.fn(this) : options.inverse(this);
1381    });
1382
1383    Handlebars.registerHelper('buildIntroString', function (attributeId) {
1384        var introString = content.local_intro_generic.replace('{0}', attributeId.toLowerCase());
1385        return new Handlebars.SafeString(introString);
1386    });
1387
1388    function getControlType (type) {
1389        var controlType = null;
1390
1391        switch (type) {
1392            case "TextBox":
1393                controlType = "text";
1394                break;
1395            case "EmailBox":
1396                controlType = "email";
1397                break;
1398            default:
1399                controlType = "text";
1400        }
1401
1402        return new Handlebars.SafeString(controlType);
1403    }
1404
1405    Handlebars.registerHelper('getControlType', getControlType);
1406
1407    Handlebars.registerHelper('buildInput', function (attributeFields, buttonList) {
1408        var type = getControlType(attributeFields.UX_INPUT_TYPE);
1409        var id = attributeFields.ID;
1410        var name = attributeFields.DN;
1411        var pattern = attributeFields.PAT;
1412        var value = attributeFields.PRE;
1413
1414        var inputElement = '<input';
1415        inputElement += ' type="' + type + '"';
1416        inputElement += ' id="' + id + '"';
1417        inputElement += ' name="' + name + '"';
1418        inputElement += ' title="' + CONTENT.invalid_generic.replace("{0}", name) + '"';
1419        if (attributeFields.PAT) {
1420            inputElement += ' pattern="' + pattern + '"';
1421        }
1422
1423        if (buttonList && (SETTINGS.config.pageFlavor === "oceanBlue" || SETTINGS.config.pageFlavor === "slateGray")) {
1424            inputElement += 'autofocus';
1425        } else if (SETTINGS.config.pageFlavor === "classic") {
1426            inputElement += 'autofocus';
1427        }
1428
1429        inputElement += ' placeholder="' + name + '"';
1430        if (value) {
1431            inputElement += ' value="' + value + '"';
1432        }
1433        
1434        inputElement += ' aria-label="' + name + '"';
1435        inputElement += ' />';
1436        return new Handlebars.SafeString(inputElement);
1437    });
1438
1439    // helper to extract the text links that should be rendered as sign up links
1440    function getSignUpLinks (textLinksList) {
1441        var config = settings.config;
1442        var bottomClaimsProviderSelectionsSetting = config.bottomClaimsProviderSelections || '';
1443        var bottomClaimsProviderSelections = bottomClaimsProviderSelectionsSetting.split(',');
1444        var bottomUnderFormClaimsProviderSelectionsSetting = config.bottomUnderFormClaimsProviderSelections || '';
1445        var bottomUnderFormClaimsProviderSelections = bottomUnderFormClaimsProviderSelectionsSetting.split(',');
1446
1447        return textLinksList.filter(function(link) {
1448            return bottomClaimsProviderSelections.indexOf(link.id) < 0 &&  bottomUnderFormClaimsProviderSelections.indexOf(link.id) < 0;
1449        });
1450    }
1451
1452    // helper to choose which rememberMe styling to use
1453    function getRememberMeClass (attributeFields) {
1454        var attributeID = attributeFields && attributeFields[0].ID;
1455        var leftAlign = "align-to-left";
1456        var rememberMe = "rememberMe";
1457
1458        if (attributeID == 'phoneNumber' || attributeID == 'signInNamePhoneEmail') {
1459            return rememberMe + " " + leftAlign; 
1460        } else {
1461            return rememberMe;
1462        }
1463    }
1464
1465    Handlebars.registerHelper('getRememberMeClass', getRememberMeClass);
1466}(CONTENT, SETTINGS));
1467/* endinject */
1468
1469var $element = function ($diags, content, settings) {
1470    var _loginIdentifier, _loginPwd;
1471    var _serviceContentSet = false;
1472    var _serviceContent;
1473
1474    // Javascript is single-threaded, and works on a message queue system, where each message is processed
1475    // completely before any other message is processed. For example, the callbacks for AJAX calls are added as
1476    // messages to the queue, allowing them to be processed later.
1477    // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop
1478    // This page may involve multiple roundtrips to the service in different scenarios, each of which may
1479    // change the state of the cookies. The intermediate states of some scenarios on this page are not
1480    // compatible with others (for example, waiting for the service to verify the user's username and password
1481    // may not play well with informing the service to redirect to a social IdP, as both write over cookie
1482    // state). On this page, we invoke a simple state mechanism, to cause buttons that trigger new calls to the
1483    // service to be considered no-ops while we wait for the last call to the service to complete. Given the
1484    // single-threaded nature of JavaScript, quickly setting the state to disable these buttons works so long as
1485    // the setting occurs within the context of a single message in the queue.
1486    // Note that this approach of setting up the event handlers exactly once during page initialization, and
1487    // having each handler check state in this manner allows for RPs with custom javascript to still attach to
1488    // the button click events without our code disabling such events as we change state. This also prevents
1489    // us from setting certain attributes after page inititalization, which would otherwise impact screen
1490    // readers and accessibility programs. If a service call is in progress, the click event should be handled
1491    // in such a manner that the event does not propagate (trigger the RPs events). This is done in javascript
1492    // by either calling event.stopImmediatePropagation(), and returning "false" from the event handler function.
1493    var _serviceCallInProgress = false;
1494
1495    var _isRememberMeChecked = function () {
1496        var rememberMe = false;
1497        var rememberMeElement = document.getElementById('rememberMe');
1498        if (rememberMeElement) {
1499            rememberMe = rememberMeElement.checked;
1500        }
1501
1502        return rememberMe;
1503    };
1504
1505    // Makes a call to the service to see if the hint
1506    // is known to the tenant.
1507    var _signIn = function (event) {
1508        if (_serviceCallInProgress) {
1509            event.stopImmediatePropagation();
1510            return false;
1511        }
1512
1513        _serviceCallInProgress = true;
1514
1515        // Show the working div
1516        var working = document.querySelectorAll("div .working");
1517        $(working).css("display", "block");
1518
1519        // We need to switch to using the selfasserted api for validating the hint
1520        var localSettings = jQuery.extend(true, {}, settings); // Deep copy of original settings object
1521        localSettings.api = "SelfAsserted";
1522
1523        var requestData = buildRequestUri();
1524
1525        (function (trace) {
1526            $i2e.sendDataWithRetry(
1527                requestData,
1528                function (response) {
1529                    // 200 means the user exists so send the
1530                    // response forwarding the user to signin
1531                    if (response.status == 200) {
1532                        trace.append("T010");
1533                        var rememberMe = _isRememberMeChecked();
1534                        $i2e.redirectToServer("confirmed?rememberMe=" + rememberMe, true);
1535                        return false;
1536                    }
1537                    // Toggles error unknown for all non-200 responses
1538                    trace.append(response.message);
1539                    _showGeneralError(response.message);
1540                },
1541                function (error) {
1542                    trace.append(error.text);
1543                    _showGeneralError(error.text);
1544                },
1545                function () {
1546                    _serviceCallInProgress = false;
1547
1548                    // Hide the working div
1549                    $(working).css("display", "none");
1550
1551                    $diags.trace(trace);
1552                },
1553                undefined,
1554                localSettings);
1555        }(new $trace("T018", true)));
1556    };
1557
1558    // Builds AJAX request based on user inputs
1559    var buildRequestUri = function () {
1560        var requestData = "request_type=RESPONSE&" + _loginIdentifier.id + "=" + encodeURIComponent(_loginIdentifier.value);
1561        if (_loginPwd) {
1562            requestData += "&" + _loginPwd.id + "=" + encodeURIComponent(_loginPwd.value);
1563        }
1564        return requestData;
1565    }
1566
1567    // Shows the general error using the errorText
1568    // as the content
1569    var _showGeneralError = function (errorText) {
1570        var errorDiv = $("#api .localAccount").children(".error.pageLevel");
1571
1572        // Set the error text
1573        if (errorText) {
1574            errorDiv.children("p:first").text(errorText);
1575        }
1576        else {
1577            errorDiv.children("p:first").html(content.unknown_error);
1578        }
1579
1580        // Set the aria-hidden and then show the error
1581        errorDiv.attr("aria-hidden", "false");
1582        errorDiv.css("display", "block");
1583    };
1584
1585    // Shows the input error div using the error text
1586    // as the content
1587    var _showError = function (parent, errorText) {
1588        var errorDiv = $(parent).children(".error.itemLevel");
1589
1590        // Set the error text
1591        errorDiv.children("p:first").html(errorText);
1592
1593        // Set the aria-hidden and then show the error
1594        errorDiv.attr("aria-hidden", "false");
1595        errorDiv.css("display", "block");
1596
1597        // Now highlight the input
1598        $(parent).children("input").addClass("highlightError");
1599    };
1600
1601    // Resets all visible errors
1602    var _resetErrors = function () {
1603        $("#api .error").css("display", "none");
1604        $("#api .error").attr("aria-hidden", "true");
1605
1606        // Remove any input highlights
1607        $("#api .highlightError").removeClass("highlightError");
1608    };
1609
1610    // Resets the specific input
1611    var _resetError = function (parent) {
1612        // Reset the input
1613        var errorDiv = $(parent).children(".error.itemLevel");
1614
1615        // Set the aria-hidden and then show the error
1616        errorDiv.attr("aria-hidden", "true");
1617        errorDiv.css("display", "none");
1618
1619        // Now highlight the input
1620        $(parent).children("input").removeClass("highlightError");
1621    };
1622
1623    // Validate the loginIdentifier has been correctly populated
1624    var _validateLoginIdentifier = function () {
1625        // Reset the input
1626        _resetError(_loginIdentifier.parentElement);
1627
1628        // Check if loginIdentifier has been populated
1629        if (!_loginIdentifier.value) {
1630
1631            // Note: Do not reference displayName from html as it is unsafe.
1632            var errorText = content.requiredField_generic.replace('{0}', SA_FIELDS.AttributeFields[0].DN);
1633            _showError(_loginIdentifier.parentElement, errorText);
1634            return false;
1635        }
1636
1637        // Predicate validation.
1638        var htmlErrorPrefix = "<br />&nbsp;&nbsp;- ";
1639        var validationDict = $predicateValidation.generateValidationDict(_loginIdentifier.id, _loginIdentifier.value, htmlErrorPrefix);
1640        var msg = validationDict.errorMsgs.join(",");
1641        if (!validationDict.isValid) {
1642            _showError(_loginIdentifier.parentElement, msg);
1643            return false;
1644        }
1645        else {
1646            // Check if loginIdentifier has valid text
1647            if (_loginIdentifier.pattern) {
1648                var valid = new RegExp(_loginIdentifier.pattern).exec(_loginIdentifier.value);
1649                if (!valid) {
1650                    // Show the invalid error
1651                    var claimById = $predicateValidation.findAttributeFieldByClaimId(_loginIdentifier.id);
1652                    _showError(_loginIdentifier.parentElement, claimById.PAT_DESC);
1653
1654                    return false;
1655                }
1656            }
1657        }
1658
1659        return true;
1660    };
1661
1662    // Validate the loginPwd has been correctly populated if the password field is shown
1663    var _validatePasswordIfFieldExists = function () {
1664        if (_loginPwd) {
1665            // Reset the input
1666            _resetError(_loginPwd.parentElement);
1667
1668            // Check if loginPwd has been populated
1669            if (!_loginPwd.value) {
1670                _showError(_loginPwd.parentElement, content.requiredField_password);
1671                return false;
1672            }
1673        }
1674
1675        return true;
1676    };
1677
1678    // Returns whether the left mouse key or enter button has been pressed
1679    // and specifically for buttons if the space bar has been pressed
1680    var _isEnter = function (event) {
1681        var key = event.keyCode || event.which;
1682        return (key === 0) || (key === 1 || key === 13) || ($(event.target).is("button") && key === 32);
1683    };
1684
1685    // Checks to see if the form is ready for
1686    // submission. Uses input validation to determine
1687    // if form is ok to submit
1688    var _doSubmit = function (event) {
1689        // Handle the left click of the mouse, the press of the enter button
1690        if (_isEnter(event)) {
1691
1692            // Reset all errors
1693            _resetErrors();
1694
1695            var identifierResult = _validateLoginIdentifier();
1696            var pswResult = _validatePasswordIfFieldExists();
1697            if (!identifierResult) {
1698                _loginIdentifier.focus();
1699            } else if(!pswResult) {
1700                _loginPwd.focus();
1701            } else {
1702                // Try sign the user in
1703                _signIn(event);
1704            }
1705        }
1706    };
1707
1708    // If one of the social provider or local account signup buttons is selected,
1709    // redirect back using the alternative flow and the id of the
1710    // selected provider
1711    var _initializeClaimsProviderLinksAndButtons = function () {
1712        $("#api .accountButton").click(function (event) {
1713            if (_serviceCallInProgress) {
1714                event.stopImmediatePropagation();
1715                return false;
1716            }
1717            var id = $(this).attr("id");
1718
1719            if (!$i2e.isSafari() || id.toLowerCase().indexOf("apple") < 0) {
1720                _serviceCallInProgress = true;
1721            }
1722
1723            var url = "unified?claimsexchange=" + $(this).attr("id");
1724            $i2e.redirectToServer(url, true);
1725            return;
1726        });
1727
1728        $("#api .text-link")
1729            .attr("href", function () {
1730                return $i2e.getRedirectLink("unified?claimsexchange=" + $(this).attr("id"));
1731            })
1732            .click(function (event) {
1733                if (_serviceCallInProgress) {
1734                    event.stopImmediatePropagation();
1735                    return false;
1736                }
1737
1738                _serviceCallInProgress = true;
1739            });
1740    }
1741
1742    // Initializes the api, merging the api template and
1743    // the data followed by injection into the resource. On
1744    // successful injection, the eventhandlers are wired up
1745    var _initialize = function () {
1746        (function (trace) {
1747            _initializeClaimsProviderLinksAndButtons();
1748            var forgotPasswordLinkOverride = SETTINGS.config["forgotPasswordLinkOverride"];
1749            var forgotPasswordClick = function (event) {
1750                if (_serviceCallInProgress) {
1751                    event.stopImmediatePropagation();
1752                    return false;
1753                }
1754                _serviceCallInProgress = true;
1755                if (_loginIdentifier.value) {
1756                    // If the user has entered a logon identifier, include
1757                    // in the redirect
1758                    var current = $("#forgotPassword").attr("href");
1759                    $("#forgotPassword").attr("href", current + "&hint=" + encodeURI(_loginIdentifier.value));
1760                }
1761            };
1762
1763            // If forgotPasswordLinkOverride is set in the policy, link the forgot password link to that claims exchange
1764            if (forgotPasswordLinkOverride) {
1765                $("#forgotPassword")
1766                    .attr("href", $i2e.getRedirectLink("unified?claimsexchange=" + forgotPasswordLinkOverride))
1767                    .click(forgotPasswordClick);
1768            }
1769            // If forgotPasswordLinkOverride is not set in the policy, send the error to relying party when clicked
1770            else {
1771                // Pregenerate the href and add to the link. When clicked
1772                // check if we need to append the hint
1773                $("#forgotPassword")
1774                    .attr("href", $i2e.getRedirectLink("forgotPassword"))
1775                    .click(forgotPasswordClick);
1776            }
1777
1778            if (SA_FIELDS.AttributeFields) {
1779                // Set the loginIdentifier and password fields
1780                _loginIdentifier = document.querySelectorAll("#" + SA_FIELDS.AttributeFields[0].ID)[0];
1781                _loginIdentifier.value = $.trim(_loginIdentifier.value);
1782
1783                if (SA_FIELDS.AttributeFields[1]) {
1784                    _loginPwd = document.querySelectorAll("#" + SA_FIELDS.AttributeFields[1].ID)[0];
1785                }
1786
1787                // Reset all errors
1788                _resetErrors();
1789
1790                // Handle the enter event loginPwd
1791                _loginPwd && $(_loginPwd).on("keypress", function (event) {
1792                    if (_serviceCallInProgress) {
1793                        event.stopImmediatePropagation();
1794                        return false;
1795                    }
1796
1797                    // Setting _serviceCallInProgress to true is handled in this method if the proper user inputs
1798                    // have been entered
1799                    _doSubmit(event);
1800                });
1801
1802                // Continue (next) button has been click
1803                $("#next").click(function (event) {
1804                    if (_serviceCallInProgress) {
1805                        event.stopImmediatePropagation();
1806                        return false;
1807                    }
1808
1809                    // Setting _serviceCallInProgress to true is handled in this method if the proper user inputs
1810                    // have been entered
1811                    _doSubmit(event);
1812                });
1813
1814                // Pregenerate the href and add to the link. When clicked
1815                // check if we need to append the hint
1816                $("#createAccount")
1817                    .attr("href", $i2e.getRedirectLink("unified?local=signup"))
1818                    .click(function (event) {
1819                        if (_serviceCallInProgress) {
1820                            event.stopImmediatePropagation();
1821                            return false;
1822                        }
1823
1824                        _serviceCallInProgress = true;
1825                        if (settings.config.sendHintOnSignup === "true" && _loginIdentifier.value) {
1826                            var current = $("#createAccount").attr("href");
1827                            $("#createAccount").attr("href", current + "&hint=" + encodeURI(_loginIdentifier.value));
1828                        }
1829                    });
1830            }
1831
1832            $diags.trace(trace);
1833        }(new $trace("T003", true)));
1834    };
1835
1836    // Gets the generated service content
1837    var _getElementContent = function () {
1838        return _serviceContent;
1839    };
1840
1841    // Binds the template to the data and then
1842    // injects into the page
1843    var _generateServiceContent = function (handlebars) {
1844        (function (trace) {
1845            var list = CP.list || [];
1846            var buttonList = list.filter(function (provider) {
1847                return !provider.displayType || provider.displayType === "Button";
1848            });
1849
1850            var textLinkList = list.filter(function(provider) {
1851                return provider.displayType === "SignUpLink" || provider.displayType === "TextLink";
1852            });
1853
1854            // Checking pageFlavor is set in policy.
1855            var pageFlavor = SETTINGS.config["pageFlavor"];
1856
1857            if (!pageFlavor) {
1858                // See if it is set in query string parameter.
1859                var remoteResource = SETTINGS.remoteResource.toLowerCase();
1860                pageFlavor = remoteResource.match(/pageFlavor=(\w+)/i);
1861                if (pageFlavor) {
1862                    SETTINGS.config["pageFlavor"] = pageFlavor[1];
1863                }
1864            }
1865
1866            if (!pageFlavor) {
1867                SETTINGS.config["pageFlavor"] = "classic";
1868                if (SETTINGS.remoteResource.toLowerCase().lastIndexOf("tenant/templates/azureblue/unified.cshtml") > 0) {
1869                    SETTINGS.config["pageFlavor"] = "oceanBlue";
1870                } else if (SETTINGS.remoteResource.toLowerCase().lastIndexOf("tenant/templates/msa/unified.cshtml") > 0) {
1871                    SETTINGS.config["pageFlavor"] = "slateGray";
1872                }
1873            }
1874
1875            _serviceContent = $i2e.generateServiceContent(
1876                "unifiedssp",
1877                {
1878                    buttonList: buttonList,
1879                    AttributeFields: SA_FIELDS.AttributeFields,
1880                    textLinkList: textLinkList
1881                });
1882            $diags.trace(trace);
1883        }(new $trace("T005", true)));
1884    };
1885
1886    // Export the public methods
1887    return {
1888        initialize: _initialize,
1889        generateServiceContent: _generateServiceContent,
1890        getElementContent: _getElementContent,
1891        version: "unifiedssp-2.1.2"
1892    };
1893}($diags, CONTENT, SETTINGS);
1894/* endinject */
1895
1896// This files gets bundled with the element module. Once the element module has
1897// loaded this script calls the generateServiceContent method on the element
1898// in preparartion for initialization post CORS request.
1899$element.generateServiceContent();
1900
1901/* inject:jquery.simplemodal-1.4.5.min.js */
1902/* endinject */
1903
1904/* inject:b2b-extension */
1905/* endinject */</script>
1905<title>Loading...</title><style>.no_display{display:none}.error_container h1{color:#333;font-size:1.2em;font-family:'Segoe UI Light',Segoe,'Segoe UI',SegoeUI-Light-final,Tahoma,Helvetica,Arial,sans-serif;font-weight:lighter}.error_container p{color:#333;font-size:.8em;font-family:'Segoe UI',Segoe,SegoeUI-Regular-final,Tahoma,Helvetica,Arial,sans-serif;margin:14px 0}</style></head><body><noscript><div id="no_js" ><div class="error_container"><div><h1>We can't sign you in</h1><p>Your browser is currently set to block JavaScript. You need to allow JavaScript to use this service.</p><p>To learn how to allow JavaScript or to find out whether your browser supports JavaScript, check the online help in your web browser.</p></div></div></div></noscript><div id="no_cookie"  class="no_display"><div class="error_container"><div><h1>We can't sign you in</h1><p>Your browser is currently set to block cookies. You need to allow cookies to use this service.</p><p>Cookies are small text files stored on your computer that tell us when you're signed in. To learn how to allow cookies, check the online help in your web browser.</p>
1905<script nonce="cj4UYjqXC2rPgHGh8O1GTA==">if (!navigator.cookieEnabled) document.getElementById('no_cookie').className = ''; if (typeof $diags !== 'undefined') $diags.initializationSuccessful = true;</script>
1905</div></div></div></body></html>

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.