/* Minification failed. Returning unminified contents.
(1201,21-24): run-time error JS1009: Expected '}': ...
(1219,9-10): run-time error JS1006: Expected ')': }
(1218,14): run-time error JS1004: Expected ';'
(1219,10-11): run-time error JS1195: Expected expression: )
 */
!function () { "use strict"; if ("object" == typeof window) if ("IntersectionObserver" in window && "IntersectionObserverEntry" in window && "intersectionRatio" in window.IntersectionObserverEntry.prototype) "isIntersecting" in window.IntersectionObserverEntry.prototype || Object.defineProperty(window.IntersectionObserverEntry.prototype, "isIntersecting", { get: function () { return this.intersectionRatio > 0 } }); else { var t = function (t) { for (var e = window.document, o = i(e); o;)o = i(e = o.ownerDocument); return e }(), e = [], o = null, n = null; s.prototype.THROTTLE_TIMEOUT = 100, s.prototype.POLL_INTERVAL = null, s.prototype.USE_MUTATION_OBSERVER = !0, s._setupCrossOriginUpdater = function () { return o || (o = function (t, o) { n = t && o ? l(t, o) : { top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0 }, e.forEach((function (t) { t._checkForIntersections() })) }), o }, s._resetCrossOriginUpdater = function () { o = null, n = null }, s.prototype.observe = function (t) { if (!this._observationTargets.some((function (e) { return e.element == t }))) { if (!t || 1 != t.nodeType) throw new Error("target must be an Element"); this._registerInstance(), this._observationTargets.push({ element: t, entry: null }), this._monitorIntersections(t.ownerDocument), this._checkForIntersections() } }, s.prototype.unobserve = function (t) { this._observationTargets = this._observationTargets.filter((function (e) { return e.element != t })), this._unmonitorIntersections(t.ownerDocument), 0 == this._observationTargets.length && this._unregisterInstance() }, s.prototype.disconnect = function () { this._observationTargets = [], this._unmonitorAllIntersections(), this._unregisterInstance() }, s.prototype.takeRecords = function () { var t = this._queuedEntries.slice(); return this._queuedEntries = [], t }, s.prototype._initThresholds = function (t) { var e = t || [0]; return Array.isArray(e) || (e = [e]), e.sort().filter((function (t, e, o) { if ("number" != typeof t || isNaN(t) || t < 0 || t > 1) throw new Error("threshold must be a number between 0 and 1 inclusively"); return t !== o[e - 1] })) }, s.prototype._parseRootMargin = function (t) { var e = (t || "0px").split(/\s+/).map((function (t) { var e = /^(-?\d*\.?\d+)(px|%)$/.exec(t); if (!e) throw new Error("rootMargin must be specified in pixels or percent"); return { value: parseFloat(e[1]), unit: e[2] } })); return e[1] = e[1] || e[0], e[2] = e[2] || e[0], e[3] = e[3] || e[1], e }, s.prototype._monitorIntersections = function (e) { var o = e.defaultView; if (o && -1 == this._monitoringDocuments.indexOf(e)) { var n = this._checkForIntersections, r = null, s = null; this.POLL_INTERVAL ? r = o.setInterval(n, this.POLL_INTERVAL) : (h(o, "resize", n, !0), h(e, "scroll", n, !0), this.USE_MUTATION_OBSERVER && "MutationObserver" in o && (s = new o.MutationObserver(n)).observe(e, { attributes: !0, childList: !0, characterData: !0, subtree: !0 })), this._monitoringDocuments.push(e), this._monitoringUnsubscribes.push((function () { var t = e.defaultView; t && (r && t.clearInterval(r), c(t, "resize", n, !0)), c(e, "scroll", n, !0), s && s.disconnect() })); var u = this.root && (this.root.ownerDocument || this.root) || t; if (e != u) { var a = i(e); a && this._monitorIntersections(a.ownerDocument) } } }, s.prototype._unmonitorIntersections = function (e) { var o = this._monitoringDocuments.indexOf(e); if (-1 != o) { var n = this.root && (this.root.ownerDocument || this.root) || t; if (!this._observationTargets.some((function (t) { var o = t.element.ownerDocument; if (o == e) return !0; for (; o && o != n;) { var r = i(o); if ((o = r && r.ownerDocument) == e) return !0 } return !1 }))) { var r = this._monitoringUnsubscribes[o]; if (this._monitoringDocuments.splice(o, 1), this._monitoringUnsubscribes.splice(o, 1), r(), e != n) { var s = i(e); s && this._unmonitorIntersections(s.ownerDocument) } } } }, s.prototype._unmonitorAllIntersections = function () { var t = this._monitoringUnsubscribes.slice(0); this._monitoringDocuments.length = 0, this._monitoringUnsubscribes.length = 0; for (var e = 0; e < t.length; e++)t[e]() }, s.prototype._checkForIntersections = function () { if (this.root || !o || n) { var t = this._rootIsInDom(), e = t ? this._getRootRect() : { top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0 }; this._observationTargets.forEach((function (n) { var i = n.element, s = u(i), h = this._rootContainsTarget(i), c = n.entry, a = t && h && this._computeTargetAndRootIntersection(i, s, e), l = null; this._rootContainsTarget(i) ? o && !this.root || (l = e) : l = { top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0 }; var f = n.entry = new r({ time: window.performance && performance.now && performance.now(), target: i, boundingClientRect: s, rootBounds: l, intersectionRect: a }); c ? t && h ? this._hasCrossedThreshold(c, f) && this._queuedEntries.push(f) : c && c.isIntersecting && this._queuedEntries.push(f) : this._queuedEntries.push(f) }), this), this._queuedEntries.length && this._callback(this.takeRecords(), this) } }, s.prototype._computeTargetAndRootIntersection = function (e, i, r) { if ("none" != window.getComputedStyle(e).display) { for (var s, h, c, a, f, d, g, m, v = i, _ = p(e), b = !1; !b && _;) { var w = null, y = 1 == _.nodeType ? window.getComputedStyle(_) : {}; if ("none" == y.display) return null; if (_ == this.root || 9 == _.nodeType) if (b = !0, _ == this.root || _ == t) o && !this.root ? !n || 0 == n.width && 0 == n.height ? (_ = null, w = null, v = null) : w = n : w = r; else { var I = p(_), E = I && u(I), T = I && this._computeTargetAndRootIntersection(I, E, r); E && T ? (_ = I, w = l(E, T)) : (_ = null, v = null) } else { var R = _.ownerDocument; _ != R.body && _ != R.documentElement && "visible" != y.overflow && (w = u(_)) } if (w && (s = w, h = v, c = void 0, a = void 0, f = void 0, d = void 0, g = void 0, m = void 0, c = Math.max(s.top, h.top), a = Math.min(s.bottom, h.bottom), f = Math.max(s.left, h.left), d = Math.min(s.right, h.right), m = a - c, v = (g = d - f) >= 0 && m >= 0 && { top: c, bottom: a, left: f, right: d, width: g, height: m } || null), !v) break; _ = _ && p(_) } return v } }, s.prototype._getRootRect = function () { var e; if (this.root && !d(this.root)) e = u(this.root); else { var o = d(this.root) ? this.root : t, n = o.documentElement, i = o.body; e = { top: 0, left: 0, right: n.clientWidth || i.clientWidth, width: n.clientWidth || i.clientWidth, bottom: n.clientHeight || i.clientHeight, height: n.clientHeight || i.clientHeight } } return this._expandRectByRootMargin(e) }, s.prototype._expandRectByRootMargin = function (t) { var e = this._rootMarginValues.map((function (e, o) { return "px" == e.unit ? e.value : e.value * (o % 2 ? t.width : t.height) / 100 })), o = { top: t.top - e[0], right: t.right + e[1], bottom: t.bottom + e[2], left: t.left - e[3] }; return o.width = o.right - o.left, o.height = o.bottom - o.top, o }, s.prototype._hasCrossedThreshold = function (t, e) { var o = t && t.isIntersecting ? t.intersectionRatio || 0 : -1, n = e.isIntersecting ? e.intersectionRatio || 0 : -1; if (o !== n) for (var i = 0; i < this.thresholds.length; i++) { var r = this.thresholds[i]; if (r == o || r == n || r < o != r < n) return !0 } }, s.prototype._rootIsInDom = function () { return !this.root || f(t, this.root) }, s.prototype._rootContainsTarget = function (e) { var o = this.root && (this.root.ownerDocument || this.root) || t; return f(o, e) && (!this.root || o == e.ownerDocument) }, s.prototype._registerInstance = function () { e.indexOf(this) < 0 && e.push(this) }, s.prototype._unregisterInstance = function () { var t = e.indexOf(this); -1 != t && e.splice(t, 1) }, window.IntersectionObserver = s, window.IntersectionObserverEntry = r } function i(t) { try { return t.defaultView && t.defaultView.frameElement || null } catch (t) { return null } } function r(t) { this.time = t.time, this.target = t.target, this.rootBounds = a(t.rootBounds), this.boundingClientRect = a(t.boundingClientRect), this.intersectionRect = a(t.intersectionRect || { top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0 }), this.isIntersecting = !!t.intersectionRect; var e = this.boundingClientRect, o = e.width * e.height, n = this.intersectionRect, i = n.width * n.height; this.intersectionRatio = o ? Number((i / o).toFixed(4)) : this.isIntersecting ? 1 : 0 } function s(t, e) { var o, n, i, r = e || {}; if ("function" != typeof t) throw new Error("callback must be a function"); if (r.root && 1 != r.root.nodeType && 9 != r.root.nodeType) throw new Error("root must be a Document or Element"); this._checkForIntersections = (o = this._checkForIntersections.bind(this), n = this.THROTTLE_TIMEOUT, i = null, function () { i || (i = setTimeout((function () { o(), i = null }), n)) }), this._callback = t, this._observationTargets = [], this._queuedEntries = [], this._rootMarginValues = this._parseRootMargin(r.rootMargin), this.thresholds = this._initThresholds(r.threshold), this.root = r.root || null, this.rootMargin = this._rootMarginValues.map((function (t) { return t.value + t.unit })).join(" "), this._monitoringDocuments = [], this._monitoringUnsubscribes = [] } function h(t, e, o, n) { "function" == typeof t.addEventListener ? t.addEventListener(e, o, n || !1) : "function" == typeof t.attachEvent && t.attachEvent("on" + e, o) } function c(t, e, o, n) { "function" == typeof t.removeEventListener ? t.removeEventListener(e, o, n || !1) : "function" == typeof t.detatchEvent && t.detatchEvent("on" + e, o) } function u(t) { var e; try { e = t.getBoundingClientRect() } catch (t) { } return e ? (e.width && e.height || (e = { top: e.top, right: e.right, bottom: e.bottom, left: e.left, width: e.right - e.left, height: e.bottom - e.top }), e) : { top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0 } } function a(t) { return !t || "x" in t ? t : { top: t.top, y: t.top, bottom: t.bottom, left: t.left, x: t.left, right: t.right, width: t.width, height: t.height } } function l(t, e) { var o = e.top - t.top, n = e.left - t.left; return { top: o, left: n, height: e.height, width: e.width, bottom: o + e.height, right: n + e.width } } function f(t, e) { for (var o = e; o;) { if (o == t) return !0; o = p(o) } return !1 } function p(e) { var o = e.parentNode; return 9 == e.nodeType && e != t ? i(e) : (o && o.assignedSlot && (o = o.assignedSlot.parentNode), o && 11 == o.nodeType && o.host ? o.host : o) } function d(t) { return t && 9 === t.nodeType } }();;
/*
 AngularJS v1.1.5
 (c) 2010-2012 Google, Inc. http://angularjs.org
 License: MIT
*/
(function (M, T, p) {
    'use strict'; function lc() { var b = M.angular; M.angular = mc; return b } function Xa(b) { return !b || typeof b.length !== "number" ? !1 : typeof b.hasOwnProperty != "function" && typeof b.constructor != "function" ? !0 : b instanceof R || ga && b instanceof ga || Ea.call(b) !== "[object Object]" || typeof b.callee === "function" } function n(b, a, c) {
        var d; if (b) if (H(b)) for (d in b) d != "prototype" && d != "length" && d != "name" && b.hasOwnProperty(d) && a.call(c, b[d], d); else if (b.forEach && b.forEach !== n) b.forEach(a, c); else if (Xa(b)) for (d =
            0; d < b.length; d++)a.call(c, b[d], d); else for (d in b) b.hasOwnProperty(d) && a.call(c, b[d], d); return b
    } function qb(b) { var a = [], c; for (c in b) b.hasOwnProperty(c) && a.push(c); return a.sort() } function nc(b, a, c) { for (var d = qb(b), e = 0; e < d.length; e++)a.call(c, b[d[e]], d[e]); return d } function rb(b) { return function (a, c) { b(c, a) } } function Fa() {
        for (var b = ba.length, a; b;) { b--; a = ba[b].charCodeAt(0); if (a == 57) return ba[b] = "A", ba.join(""); if (a == 90) ba[b] = "0"; else return ba[b] = String.fromCharCode(a + 1), ba.join("") } ba.unshift("0");
        return ba.join("")
    } function sb(b, a) { a ? b.$$hashKey = a : delete b.$$hashKey } function t(b) { var a = b.$$hashKey; n(arguments, function (a) { a !== b && n(a, function (a, c) { b[c] = a }) }); sb(b, a); return b } function N(b) { return parseInt(b, 10) } function tb(b, a) { return t(new (t(function () { }, { prototype: b })), a) } function q() { } function qa(b) { return b } function S(b) { return function () { return b } } function C(b) { return typeof b == "undefined" } function B(b) { return typeof b != "undefined" } function L(b) { return b != null && typeof b == "object" } function E(b) {
        return typeof b ==
            "string"
    } function Ya(b) { return typeof b == "number" } function ra(b) { return Ea.apply(b) == "[object Date]" } function F(b) { return Ea.apply(b) == "[object Array]" } function H(b) { return typeof b == "function" } function sa(b) { return b && b.document && b.location && b.alert && b.setInterval } function U(b) { return E(b) ? b.replace(/^\s*/, "").replace(/\s*$/, "") : b } function oc(b) { return b && (b.nodeName || b.bind && b.find) } function Za(b, a, c) { var d = []; n(b, function (b, g, i) { d.push(a.call(c, b, g, i)) }); return d } function Ga(b, a) {
        if (b.indexOf) return b.indexOf(a);
        for (var c = 0; c < b.length; c++)if (a === b[c]) return c; return -1
    } function ta(b, a) { var c = Ga(b, a); c >= 0 && b.splice(c, 1); return a } function V(b, a) {
        if (sa(b) || b && b.$evalAsync && b.$watch) throw Error("Can't copy Window or Scope"); if (a) { if (b === a) throw Error("Can't copy equivalent objects or arrays"); if (F(b)) for (var c = a.length = 0; c < b.length; c++)a.push(V(b[c])); else { c = a.$$hashKey; n(a, function (b, c) { delete a[c] }); for (var d in b) a[d] = V(b[d]); sb(a, c) } } else (a = b) && (F(b) ? a = V(b, []) : ra(b) ? a = new Date(b.getTime()) : L(b) && (a = V(b, {})));
        return a
    } function pc(b, a) { var a = a || {}, c; for (c in b) b.hasOwnProperty(c) && c.substr(0, 2) !== "$$" && (a[c] = b[c]); return a } function ia(b, a) {
        if (b === a) return !0; if (b === null || a === null) return !1; if (b !== b && a !== a) return !0; var c = typeof b, d; if (c == typeof a && c == "object") if (F(b)) { if ((c = b.length) == a.length) { for (d = 0; d < c; d++)if (!ia(b[d], a[d])) return !1; return !0 } } else if (ra(b)) return ra(a) && b.getTime() == a.getTime(); else {
            if (b && b.$evalAsync && b.$watch || a && a.$evalAsync && a.$watch || sa(b) || sa(a)) return !1; c = {}; for (d in b) if (!(d.charAt(0) ===
                "$" || H(b[d]))) { if (!ia(b[d], a[d])) return !1; c[d] = !0 } for (d in a) if (!c[d] && d.charAt(0) !== "$" && a[d] !== p && !H(a[d])) return !1; return !0
        } return !1
    } function $a(b, a) { var c = arguments.length > 2 ? ka.call(arguments, 2) : []; return H(a) && !(a instanceof RegExp) ? c.length ? function () { return arguments.length ? a.apply(b, c.concat(ka.call(arguments, 0))) : a.apply(b, c) } : function () { return arguments.length ? a.apply(b, arguments) : a.call(b) } : a } function qc(b, a) {
        var c = a; /^\$+/.test(b) ? c = p : sa(a) ? c = "$WINDOW" : a && T === a ? c = "$DOCUMENT" : a && a.$evalAsync &&
            a.$watch && (c = "$SCOPE"); return c
    } function ha(b, a) { return JSON.stringify(b, qc, a ? "  " : null) } function ub(b) { return E(b) ? JSON.parse(b) : b } function ua(b) { b && b.length !== 0 ? (b = I("" + b), b = !(b == "f" || b == "0" || b == "false" || b == "no" || b == "n" || b == "[]")) : b = !1; return b } function va(b) { b = w(b).clone(); try { b.html("") } catch (a) { } var c = w("<div>").append(b).html(); try { return b[0].nodeType === 3 ? I(c) : c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/, function (a, b) { return "<" + I(b) }) } catch (d) { return I(c) } } function vb(b) {
        var a = {}, c, d; n((b ||
            "").split("&"), function (b) { b && (c = b.split("="), d = decodeURIComponent(c[0]), a[d] = B(c[1]) ? decodeURIComponent(c[1]) : !0) }); return a
    } function wb(b) { var a = []; n(b, function (b, d) { a.push(wa(d, !0) + (b === !0 ? "" : "=" + wa(b, !0))) }); return a.length ? a.join("&") : "" } function ab(b) { return wa(b, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+") } function wa(b, a) { return encodeURIComponent(b).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, a ? "%20" : "+") } function rc(b,
        a) { function c(a) { a && d.push(a) } var d = [b], e, g, i = ["ng:app", "ng-app", "x-ng-app", "data-ng-app"], f = /\sng[:\-]app(:\s*([\w\d_]+);?)?\s/; n(i, function (a) { i[a] = !0; c(T.getElementById(a)); a = a.replace(":", "\\:"); b.querySelectorAll && (n(b.querySelectorAll("." + a), c), n(b.querySelectorAll("." + a + "\\:"), c), n(b.querySelectorAll("[" + a + "]"), c)) }); n(d, function (a) { if (!e) { var b = f.exec(" " + a.className + " "); b ? (e = a, g = (b[2] || "").replace(/\s+/g, ",")) : n(a.attributes, function (b) { if (!e && i[b.name]) e = a, g = b.value }) } }); e && a(e, g ? [g] : []) }
    function xb(b, a) { var c = function () { b = w(b); a = a || []; a.unshift(["$provide", function (a) { a.value("$rootElement", b) }]); a.unshift("ng"); var c = yb(a); c.invoke(["$rootScope", "$rootElement", "$compile", "$injector", "$animator", function (a, b, c, d, e) { a.$apply(function () { b.data("$injector", d); c(b)(a) }); e.enabled(!0) }]); return c }, d = /^NG_DEFER_BOOTSTRAP!/; if (M && !d.test(M.name)) return c(); M.name = M.name.replace(d, ""); Ha.resumeBootstrap = function (b) { n(b, function (b) { a.push(b) }); c() } } function bb(b, a) {
        a = a || "_"; return b.replace(sc,
            function (b, d) { return (d ? a : "") + b.toLowerCase() })
    } function cb(b, a, c) { if (!b) throw Error("Argument '" + (a || "?") + "' is " + (c || "required")); return b } function xa(b, a, c) { c && F(b) && (b = b[b.length - 1]); cb(H(b), a, "not a function, got " + (b && typeof b == "object" ? b.constructor.name || "Object" : typeof b)); return b } function tc(b) {
        function a(a, b, e) { return a[b] || (a[b] = e()) } return a(a(b, "angular", Object), "module", function () {
            var b = {}; return function (d, e, g) {
                e && b.hasOwnProperty(d) && (b[d] = null); return a(b, d, function () {
                    function a(c,
                        d, e) { return function () { b[e || "push"]([c, d, arguments]); return m } } if (!e) throw Error("No module: " + d); var b = [], c = [], j = a("$injector", "invoke"), m = {
                            _invokeQueue: b, _runBlocks: c, requires: e, name: d, provider: a("$provide", "provider"), factory: a("$provide", "factory"), service: a("$provide", "service"), value: a("$provide", "value"), constant: a("$provide", "constant", "unshift"), animation: a("$animationProvider", "register"), filter: a("$filterProvider", "register"), controller: a("$controllerProvider", "register"), directive: a("$compileProvider",
                                "directive"), config: j, run: function (a) { c.push(a); return this }
                        }; g && j(g); return m
                })
            }
        })
    } function Ia(b) { return b.replace(uc, function (a, b, d, e) { return e ? d.toUpperCase() : d }).replace(vc, "Moz$1") } function db(b, a) {
        function c() { var e; for (var b = [this], c = a, i, f, h, j, m, k; b.length;) { i = b.shift(); f = 0; for (h = i.length; f < h; f++) { j = w(i[f]); c ? j.triggerHandler("$destroy") : c = !c; m = 0; for (e = (k = j.children()).length, j = e; m < j; m++)b.push(ga(k[m])) } } return d.apply(this, arguments) } var d = ga.fn[b], d = d.$original || d; c.$original = d; ga.fn[b] =
            c
    } function R(b) { if (b instanceof R) return b; if (!(this instanceof R)) { if (E(b) && b.charAt(0) != "<") throw Error("selectors not implemented"); return new R(b) } if (E(b)) { var a = T.createElement("div"); a.innerHTML = "<div>&#160;</div>" + b; a.removeChild(a.firstChild); eb(this, a.childNodes); this.remove() } else eb(this, b) } function fb(b) { return b.cloneNode(!0) } function ya(b) { zb(b); for (var a = 0, b = b.childNodes || []; a < b.length; a++)ya(b[a]) } function Ab(b, a, c) {
        var d = ca(b, "events"); ca(b, "handle") && (C(a) ? n(d, function (a, c) {
            gb(b,
                c, a); delete d[c]
        }) : C(c) ? (gb(b, a, d[a]), delete d[a]) : ta(d[a], c))
    } function zb(b) { var a = b[Ja], c = Ka[a]; c && (c.handle && (c.events.$destroy && c.handle({}, "$destroy"), Ab(b)), delete Ka[a], b[Ja] = p) } function ca(b, a, c) { var d = b[Ja], d = Ka[d || -1]; if (B(c)) d || (b[Ja] = d = ++wc, d = Ka[d] = {}), d[a] = c; else return d && d[a] } function Bb(b, a, c) { var d = ca(b, "data"), e = B(c), g = !e && B(a), i = g && !L(a); !d && !i && ca(b, "data", d = {}); if (e) d[a] = c; else if (g) if (i) return d && d[a]; else t(d, a); else return d } function La(b, a) {
        return (" " + b.className + " ").replace(/[\n\t]/g,
            " ").indexOf(" " + a + " ") > -1
    } function Cb(b, a) { a && n(a.split(" "), function (a) { b.className = U((" " + b.className + " ").replace(/[\n\t]/g, " ").replace(" " + U(a) + " ", " ")) }) } function Db(b, a) { a && n(a.split(" "), function (a) { if (!La(b, a)) b.className = U(b.className + " " + U(a)) }) } function eb(b, a) { if (a) for (var a = !a.nodeName && B(a.length) && !sa(a) ? a : [a], c = 0; c < a.length; c++)b.push(a[c]) } function Eb(b, a) { return Ma(b, "$" + (a || "ngController") + "Controller") } function Ma(b, a, c) {
        b = w(b); for (b[0].nodeType == 9 && (b = b.find("html")); b.length;) {
            if (c =
                b.data(a)) return c; b = b.parent()
        }
    } function Fb(b, a) { var c = Na[a.toLowerCase()]; return c && Gb[b.nodeName] && c } function xc(b, a) {
        var c = function (c, e) {
            if (!c.preventDefault) c.preventDefault = function () { c.returnValue = !1 }; if (!c.stopPropagation) c.stopPropagation = function () { c.cancelBubble = !0 }; if (!c.target) c.target = c.srcElement || T; if (C(c.defaultPrevented)) { var g = c.preventDefault; c.preventDefault = function () { c.defaultPrevented = !0; g.call(c) }; c.defaultPrevented = !1 } c.isDefaultPrevented = function () {
                return c.defaultPrevented ||
                    c.returnValue == !1
            }; n(a[e || c.type], function (a) { a.call(b, c) }); Z <= 8 ? (c.preventDefault = null, c.stopPropagation = null, c.isDefaultPrevented = null) : (delete c.preventDefault, delete c.stopPropagation, delete c.isDefaultPrevented)
        }; c.elem = b; return c
    } function la(b) { var a = typeof b, c; if (a == "object" && b !== null) if (typeof (c = b.$$hashKey) == "function") c = b.$$hashKey(); else { if (c === p) c = b.$$hashKey = Fa() } else c = b; return a + ":" + c } function za(b) { n(b, this.put, this) } function Hb(b) {
        var a, c; if (typeof b == "function") {
            if (!(a = b.$inject)) a =
                [], c = b.toString().replace(yc, ""), c = c.match(zc), n(c[1].split(Ac), function (b) { b.replace(Bc, function (b, c, d) { a.push(d) }) }), b.$inject = a
        } else F(b) ? (c = b.length - 1, xa(b[c], "fn"), a = b.slice(0, c)) : xa(b, "fn", !0); return a
    } function yb(b) {
        function a(a) { return function (b, c) { if (L(b)) n(b, rb(a)); else return a(b, c) } } function c(a, b) { if (H(b) || F(b)) b = k.instantiate(b); if (!b.$get) throw Error("Provider " + a + " must define $get factory method."); return m[a + f] = b } function d(a, b) { return c(a, { $get: b }) } function e(a) {
            var b = []; n(a, function (a) {
                if (!j.get(a)) if (j.put(a,
                    !0), E(a)) { var c = Aa(a); b = b.concat(e(c.requires)).concat(c._runBlocks); try { for (var d = c._invokeQueue, c = 0, f = d.length; c < f; c++) { var g = d[c], o = k.get(g[0]); o[g[1]].apply(o, g[2]) } } catch (h) { throw h.message && (h.message += " from " + a), h; } } else if (H(a)) try { b.push(k.invoke(a)) } catch (l) { throw l.message && (l.message += " from " + a), l; } else if (F(a)) try { b.push(k.invoke(a)) } catch (i) { throw i.message && (i.message += " from " + String(a[a.length - 1])), i; } else xa(a, "module")
            }); return b
        } function g(a, b) {
            function c(d) {
                if (typeof d !== "string") throw Error("Service name expected");
                if (a.hasOwnProperty(d)) { if (a[d] === i) throw Error("Circular dependency: " + h.join(" <- ")); return a[d] } else try { return h.unshift(d), a[d] = i, a[d] = b(d) } finally { h.shift() }
            } function d(a, b, e) {
                var f = [], j = Hb(a), g, o, h; o = 0; for (g = j.length; o < g; o++)h = j[o], f.push(e && e.hasOwnProperty(h) ? e[h] : c(h)); a.$inject || (a = a[g]); switch (b ? -1 : f.length) {
                    case 0: return a(); case 1: return a(f[0]); case 2: return a(f[0], f[1]); case 3: return a(f[0], f[1], f[2]); case 4: return a(f[0], f[1], f[2], f[3]); case 5: return a(f[0], f[1], f[2], f[3], f[4]);
                    case 6: return a(f[0], f[1], f[2], f[3], f[4], f[5]); case 7: return a(f[0], f[1], f[2], f[3], f[4], f[5], f[6]); case 8: return a(f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]); case 9: return a(f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7], f[8]); case 10: return a(f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7], f[8], f[9]); default: return a.apply(b, f)
                }
            } return {
                invoke: d, instantiate: function (a, b) { var c = function () { }, e; c.prototype = (F(a) ? a[a.length - 1] : a).prototype; c = new c; e = d(a, c, b); return L(e) ? e : c }, get: c, annotate: Hb, has: function (b) {
                    return m.hasOwnProperty(b +
                        f) || a.hasOwnProperty(b)
                }
            }
        } var i = {}, f = "Provider", h = [], j = new za, m = { $provide: { provider: a(c), factory: a(d), service: a(function (a, b) { return d(a, ["$injector", function (a) { return a.instantiate(b) }]) }), value: a(function (a, b) { return d(a, S(b)) }), constant: a(function (a, b) { m[a] = b; l[a] = b }), decorator: function (a, b) { var c = k.get(a + f), d = c.$get; c.$get = function () { var a = u.invoke(d, c); return u.invoke(b, null, { $delegate: a }) } } } }, k = m.$injector = g(m, function () { throw Error("Unknown provider: " + h.join(" <- ")); }), l = {}, u = l.$injector =
            g(l, function (a) { a = k.get(a + f); return u.invoke(a.$get, a) }); n(e(b), function (a) { u.invoke(a || q) }); return u
    } function Cc() {
        var b = !0; this.disableAutoScrolling = function () { b = !1 }; this.$get = ["$window", "$location", "$rootScope", function (a, c, d) {
            function e(a) { var b = null; n(a, function (a) { !b && I(a.nodeName) === "a" && (b = a) }); return b } function g() { var b = c.hash(), d; b ? (d = i.getElementById(b)) ? d.scrollIntoView() : (d = e(i.getElementsByName(b))) ? d.scrollIntoView() : b === "top" && a.scrollTo(0, 0) : a.scrollTo(0, 0) } var i = a.document; b && d.$watch(function () { return c.hash() },
                function () { d.$evalAsync(g) }); return g
        }]
    } function Ib(b) { this.register = function (a, c) { b.factory(Ia(a) + "Animation", c) }; this.$get = ["$injector", function (a) { return function (b) { if (b && (b = Ia(b) + "Animation", a.has(b))) return a.get(b) } }] } function Dc(b, a, c, d) {
        function e(a) { try { a.apply(null, ka.call(arguments, 1)) } finally { if (o--, o === 0) for (; z.length;)try { z.pop()() } catch (b) { c.error(b) } } } function g(a, b) { (function s() { n(r, function (a) { a() }); y = b(s, a) })() } function i() { x != f.url() && (x = f.url(), n(v, function (a) { a(f.url()) })) }
        var f = this, h = a[0], j = b.location, m = b.history, k = b.setTimeout, l = b.clearTimeout, u = {}; f.isMock = !1; var o = 0, z = []; f.$$completeOutstandingRequest = e; f.$$incOutstandingRequestCount = function () { o++ }; f.notifyWhenNoOutstandingRequests = function (a) { n(r, function (a) { a() }); o === 0 ? a() : z.push(a) }; var r = [], y; f.addPollFn = function (a) { C(y) && g(100, k); r.push(a); return a }; var x = j.href, W = a.find("base"); f.url = function (a, b) {
            if (a) {
                if (x != a) return x = a, d.history ? b ? m.replaceState(null, "", a) : (m.pushState(null, "", a), W.attr("href", W.attr("href"))) :
                    b ? j.replace(a) : j.href = a, f
            } else return j.href.replace(/%27/g, "'")
        }; var v = [], A = !1; f.onUrlChange = function (a) { A || (d.history && w(b).bind("popstate", i), d.hashchange ? w(b).bind("hashchange", i) : f.addPollFn(i), A = !0); v.push(a); return a }; f.baseHref = function () { var a = W.attr("href"); return a ? a.replace(/^https?\:\/\/[^\/]*/, "") : "" }; var G = {}, D = "", $ = f.baseHref(); f.cookies = function (a, b) {
            var d, e, f, j; if (a) if (b === p) h.cookie = escape(a) + "=;path=" + $ + ";expires=Thu, 01 Jan 1970 00:00:00 GMT"; else {
                if (E(b)) d = (h.cookie = escape(a) +
                    "=" + escape(b) + ";path=" + $).length + 1, d > 4096 && c.warn("Cookie '" + a + "' possibly not set or overflowed because it was too large (" + d + " > 4096 bytes)!")
            } else { if (h.cookie !== D) { D = h.cookie; d = D.split("; "); G = {}; for (f = 0; f < d.length; f++)e = d[f], j = e.indexOf("="), j > 0 && (a = unescape(e.substring(0, j)), G[a] === p && (G[a] = unescape(e.substring(j + 1)))) } return G }
        }; f.defer = function (a, b) { var c; o++; c = k(function () { delete u[c]; e(a) }, b || 0); u[c] = !0; return c }; f.defer.cancel = function (a) { return u[a] ? (delete u[a], l(a), e(q), !0) : !1 }
    } function Ec() {
        this.$get =
            ["$window", "$log", "$sniffer", "$document", function (b, a, c, d) { return new Dc(b, d, a, c) }]
    } function Fc() {
        this.$get = function () {
            function b(b, d) {
                function e(a) { if (a != k) { if (l) { if (l == a) l = a.n } else l = a; g(a.n, a.p); g(a, k); k = a; k.n = null } } function g(a, b) { if (a != b) { if (a) a.p = b; if (b) b.n = a } } if (b in a) throw Error("cacheId " + b + " taken"); var i = 0, f = t({}, d, { id: b }), h = {}, j = d && d.capacity || Number.MAX_VALUE, m = {}, k = null, l = null; return a[b] = {
                    put: function (a, b) {
                        var c = m[a] || (m[a] = { key: a }); e(c); if (!C(b)) return a in h || i++, h[a] = b, i > j && this.remove(l.key),
                            b
                    }, get: function (a) { var b = m[a]; if (b) return e(b), h[a] }, remove: function (a) { var b = m[a]; if (b) { if (b == k) k = b.p; if (b == l) l = b.n; g(b.n, b.p); delete m[a]; delete h[a]; i-- } }, removeAll: function () { h = {}; i = 0; m = {}; k = l = null }, destroy: function () { m = f = h = null; delete a[b] }, info: function () { return t({}, f, { size: i }) }
                }
            } var a = {}; b.info = function () { var b = {}; n(a, function (a, e) { b[e] = a.info() }); return b }; b.get = function (b) { return a[b] }; return b
        }
    } function Gc() { this.$get = ["$cacheFactory", function (b) { return b("templates") }] } function Jb(b) {
        var a =
            {}, c = "Directive", d = /^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/, e = /(([\d\w\-_]+)(?:\:([^;]+))?;?)/, g = "Template must have exactly one root element. was: ", i = /^\s*(https?|ftp|mailto|file):/; this.directive = function h(d, e) {
                E(d) ? (cb(e, "directive"), a.hasOwnProperty(d) || (a[d] = [], b.factory(d + c, ["$injector", "$exceptionHandler", function (b, c) {
                    var e = []; n(a[d], function (a) {
                        try {
                            var g = b.invoke(a); if (H(g)) g = { compile: S(g) }; else if (!g.compile && g.link) g.compile = S(g.link); g.priority = g.priority || 0; g.name = g.name || d; g.require =
                                g.require || g.controller && g.name; g.restrict = g.restrict || "A"; e.push(g)
                        } catch (h) { c(h) }
                    }); return e
                }])), a[d].push(e)) : n(d, rb(h)); return this
            }; this.urlSanitizationWhitelist = function (a) { return B(a) ? (i = a, this) : i }; this.$get = ["$injector", "$interpolate", "$exceptionHandler", "$http", "$templateCache", "$parse", "$controller", "$rootScope", "$document", function (b, j, m, k, l, u, o, z, r) {
                function y(a, b, c) {
                    a instanceof w || (a = w(a)); n(a, function (b, c) { b.nodeType == 3 && b.nodeValue.match(/\S+/) && (a[c] = w(b).wrap("<span></span>").parent()[0]) });
                    var d = W(a, b, a, c); return function (b, c) { cb(b, "scope"); for (var e = c ? Ba.clone.call(a) : a, j = 0, g = e.length; j < g; j++) { var h = e[j]; (h.nodeType == 1 || h.nodeType == 9) && e.eq(j).data("$scope", b) } x(e, "ng-scope"); c && c(e, b); d && d(b, e, e); return e }
                } function x(a, b) { try { a.addClass(b) } catch (c) { } } function W(a, b, c, d) {
                    function e(a, c, d, g) {
                        var h, i, k, l, o, m, u, z = []; o = 0; for (m = c.length; o < m; o++)z.push(c[o]); u = o = 0; for (m = j.length; o < m; u++)i = z[u], c = j[o++], h = j[o++], c ? (c.scope ? (k = a.$new(L(c.scope)), w(i).data("$scope", k)) : k = a, (l = c.transclude) ||
                            !g && b ? c(h, k, i, d, function (b) { return function (c) { var d = a.$new(); d.$$transcluded = !0; return b(d, c).bind("$destroy", $a(d, d.$destroy)) } }(l || b)) : c(h, k, i, p, g)) : h && h(a, i.childNodes, p, g)
                    } for (var j = [], g, h, k, i = 0; i < a.length; i++)h = new ma, g = v(a[i], [], h, d), h = (g = g.length ? A(g, a[i], h, b, c) : null) && g.terminal || !a[i].childNodes || !a[i].childNodes.length ? null : W(a[i].childNodes, g ? g.transclude : b), j.push(g), j.push(h), k = k || g || h; return k ? e : null
                } function v(a, b, c, j) {
                    var g = c.$attr, h; switch (a.nodeType) {
                        case 1: G(b, da(hb(a).toLowerCase()),
                            "E", j); var i, k, l; h = a.attributes; for (var o = 0, m = h && h.length; o < m; o++)if (i = h[o], i.specified) k = i.name, l = da(k), Y.test(l) && (k = l.substr(6).toLowerCase()), l = da(k.toLowerCase()), g[l] = k, c[l] = i = U(Z && k == "href" ? decodeURIComponent(a.getAttribute(k, 2)) : i.value), Fb(a, l) && (c[l] = !0), s(a, b, i, l), G(b, l, "A", j); a = a.className; if (E(a) && a !== "") for (; h = e.exec(a);)l = da(h[2]), G(b, l, "C", j) && (c[l] = U(h[3])), a = a.substr(h.index + h[0].length); break; case 3: P(b, a.nodeValue); break; case 8: try {
                                if (h = d.exec(a.nodeValue)) l = da(h[1]), G(b, l, "M",
                                    j) && (c[l] = U(h[2]))
                            } catch (u) { }
                    }b.sort(K); return b
                } function A(a, b, c, d, e) {
                    function h(a, b) { if (a) a.require = s.require, z.push(a); if (b) b.require = s.require, ea.push(b) } function i(a, b) { var c, d = "data", e = !1; if (E(a)) { for (; (c = a.charAt(0)) == "^" || c == "?";)a = a.substr(1), c == "^" && (d = "inheritedData"), e = e || c == "?"; c = b[d]("$" + a + "Controller"); if (!c && !e) throw Error("No controller: " + a); } else F(a) && (c = [], n(a, function (a) { c.push(i(a, b)) })); return c } function k(a, d, e, g, h) {
                        var l, v, r, D, x; l = b === e ? c : pc(c, new ma(w(e), c.$attr)); v = l.$$element;
                        if (K) {
                            var y = /^\s*([@=&])(\??)\s*(\w*)\s*$/, s = d.$parent || d; n(K.scope, function (a, b) {
                                var c = a.match(y) || [], e = c[3] || b, g = c[2] == "?", c = c[1], h, k, i; d.$$isolateBindings[b] = c + e; switch (c) {
                                    case "@": l.$observe(e, function (a) { d[b] = a }); l.$$observers[e].$$scope = s; l[e] && (d[b] = j(l[e])(s)); break; case "=": if (g && !l[e]) break; k = u(l[e]); i = k.assign || function () { h = d[b] = k(s); throw Error(Kb + l[e] + " (directive: " + K.name + ")"); }; h = d[b] = k(s); d.$watch(function () { var a = k(s); a !== d[b] && (a !== h ? h = d[b] = a : i(s, a = h = d[b])); return a }); break; case "&": k =
                                        u(l[e]); d[b] = function (a) { return k(s, a) }; break; default: throw Error("Invalid isolate scope definition for directive " + K.name + ": " + a);
                                }
                            })
                        } q && n(q, function (a) { var b = { $scope: d, $element: v, $attrs: l, $transclude: h }; x = a.controller; x == "@" && (x = l[a.name]); v.data("$" + a.name + "Controller", o(x, b)) }); g = 0; for (r = z.length; g < r; g++)try { D = z[g], D(d, v, l, D.require && i(D.require, v)) } catch (Hc) { m(Hc, va(v)) } a && a(d, e.childNodes, p, h); g = 0; for (r = ea.length; g < r; g++)try { D = ea[g], D(d, v, l, D.require && i(D.require, v)) } catch (J) { m(J, va(v)) }
                    } for (var l =
                        -Number.MAX_VALUE, z = [], ea = [], r = null, K = null, W = null, J = c.$$element = w(b), s, A, Y, G, P = d, q, na, t, B = 0, C = a.length; B < C; B++) {
                        s = a[B]; Y = p; if (l > s.priority) break; if (t = s.scope) O("isolated scope", K, s, J), L(t) && (x(J, "ng-isolate-scope"), K = s), x(J, "ng-scope"), r = r || s; A = s.name; if (t = s.controller) q = q || {}, O("'" + A + "' controller", q[A], s, J), q[A] = s; if (t = s.transclude) O("transclusion", G, s, J), G = s, l = s.priority, t == "element" ? (Y = w(b), J = c.$$element = w(T.createComment(" " + A + ": " + c[A] + " ")), b = J[0], ja(e, w(Y[0]), b), P = y(Y, d, l)) : (Y = w(fb(b)).contents(),
                            J.html(""), P = y(Y, d)); if (s.template) if (O("template", W, s, J), W = s, t = H(s.template) ? s.template(J, c) : s.template, t = Lb(t), s.replace) { Y = w("<div>" + U(t) + "</div>").contents(); b = Y[0]; if (Y.length != 1 || b.nodeType !== 1) throw Error(g + t); ja(e, J, b); A = { $attr: {} }; a = a.concat(v(b, a.splice(B + 1, a.length - (B + 1)), A)); D(c, A); C = a.length } else J.html(t); if (s.templateUrl) O("template", W, s, J), W = s, k = $(a.splice(B, a.length - B), k, J, c, e, s.replace, P), C = a.length; else if (s.compile) try { na = s.compile(J, c, P), H(na) ? h(null, na) : na && h(na.pre, na.post) } catch (I) {
                                m(I,
                                    va(J))
                            } if (s.terminal) k.terminal = !0, l = Math.max(l, s.priority)
                    } k.scope = r && r.scope; k.transclude = G && P; return k
                } function G(d, e, j, g) { var l = !1; if (a.hasOwnProperty(e)) for (var k, e = b.get(e + c), i = 0, o = e.length; i < o; i++)try { if (k = e[i], (g === p || g > k.priority) && k.restrict.indexOf(j) != -1) d.push(k), l = !0 } catch (u) { m(u) } return l } function D(a, b) {
                    var c = b.$attr, d = a.$attr, e = a.$$element; n(a, function (d, e) { e.charAt(0) != "$" && (b[e] && (d += (e === "style" ? ";" : " ") + b[e]), a.$set(e, d, !0, c[e])) }); n(b, function (b, j) {
                        j == "class" ? (x(e, b), a["class"] =
                            (a["class"] ? a["class"] + " " : "") + b) : j == "style" ? e.attr("style", e.attr("style") + ";" + b) : j.charAt(0) != "$" && !a.hasOwnProperty(j) && (a[j] = b, d[j] = c[j])
                    })
                } function $(a, b, c, d, e, j, h) {
                    var i = [], o, m, u = c[0], z = a.shift(), r = t({}, z, { controller: null, templateUrl: null, transclude: null, scope: null }), z = H(z.templateUrl) ? z.templateUrl(c, d) : z.templateUrl; c.html(""); k.get(z, { cache: l }).success(function (l) {
                        var k, z, l = Lb(l); if (j) {
                            z = w("<div>" + U(l) + "</div>").contents(); k = z[0]; if (z.length != 1 || k.nodeType !== 1) throw Error(g + l); l = { $attr: {} };
                            ja(e, c, k); v(k, a, l); D(d, l)
                        } else k = u, c.html(l); a.unshift(r); o = A(a, k, d, h); for (m = W(c[0].childNodes, h); i.length;) { var ea = i.shift(), l = i.shift(); z = i.shift(); var x = i.shift(), y = k; l !== u && (y = fb(k), ja(z, w(l), y)); o(function () { b(m, ea, y, e, x) }, ea, y, e, x) } i = null
                    }).error(function (a, b, c, d) { throw Error("Failed to load template: " + d.url); }); return function (a, c, d, e, j) { i ? (i.push(c), i.push(d), i.push(e), i.push(j)) : o(function () { b(m, c, d, e, j) }, c, d, e, j) }
                } function K(a, b) { return b.priority - a.priority } function O(a, b, c, d) {
                    if (b) throw Error("Multiple directives [" +
                        b.name + ", " + c.name + "] asking for " + a + " on: " + va(d));
                } function P(a, b) { var c = j(b, !0); c && a.push({ priority: 0, compile: S(function (a, b) { var d = b.parent(), e = d.data("$binding") || []; e.push(c); x(d.data("$binding", e), "ng-binding"); a.$watch(c, function (a) { b[0].nodeValue = a }) }) }) } function s(a, b, c, d) {
                    var e = j(c, !0); e && b.push({
                        priority: 100, compile: S(function (a, b, c) {
                            b = c.$$observers || (c.$$observers = {}); if (e = j(c[d], !0)) c[d] = e(a), (b[d] || (b[d] = [])).$$inter = !0, (c.$$observers && c.$$observers[d].$$scope || a).$watch(e, function (a) {
                                c.$set(d,
                                    a)
                            })
                        })
                    })
                } function ja(a, b, c) { var d = b[0], e = d.parentNode, j, g; if (a) { j = 0; for (g = a.length; j < g; j++)if (a[j] == d) { a[j] = c; break } } e && e.replaceChild(c, d); c[w.expando] = d[w.expando]; b[0] = c } var ma = function (a, b) { this.$$element = a; this.$attr = b || {} }; ma.prototype = {
                    $normalize: da, $set: function (a, b, c, d) {
                        var e = Fb(this.$$element[0], a), j = this.$$observers; e && (this.$$element.prop(a, b), d = e); this[a] = b; d ? this.$attr[a] = d : (d = this.$attr[a]) || (this.$attr[a] = d = bb(a, "-")); if (hb(this.$$element[0]) === "A" && a === "href") q.setAttribute("href",
                            b), e = q.href, e.match(i) || (this[a] = b = "unsafe:" + e); c !== !1 && (b === null || b === p ? this.$$element.removeAttr(d) : this.$$element.attr(d, b)); j && n(j[a], function (a) { try { a(b) } catch (c) { m(c) } })
                    }, $observe: function (a, b) { var c = this, d = c.$$observers || (c.$$observers = {}), e = d[a] || (d[a] = []); e.push(b); z.$evalAsync(function () { e.$$inter || b(c[a]) }); return b }
                }; var q = r[0].createElement("a"), ea = j.startSymbol(), J = j.endSymbol(), Lb = ea == "{{" || J == "}}" ? qa : function (a) { return a.replace(/\{\{/g, ea).replace(/}}/g, J) }, Y = /^ngAttr[A-Z]/; return y
            }]
    }
    function da(b) { return Ia(b.replace(Ic, "")) } function Jc() { var b = {}, a = /^(\S+)(\s+as\s+(\w+))?$/; this.register = function (a, d) { L(a) ? t(b, a) : b[a] = d }; this.$get = ["$injector", "$window", function (c, d) { return function (e, g) { var i, f; E(e) && (f = e.match(a), i = f[1], f = f[3], e = b.hasOwnProperty(i) ? b[i] : ib(g.$scope, i, !0) || ib(d, i, !0), xa(e, i, !0)); i = c.instantiate(e, g); if (f) { if (typeof g.$scope !== "object") throw Error('Can not export controller as "' + f + '". No scope object provided!'); g.$scope[f] = i } return i } }] } function Kc() {
        this.$get =
            ["$window", function (b) { return w(b.document) }]
    } function Lc() { this.$get = ["$log", function (b) { return function (a, c) { b.error.apply(b, arguments) } }] } function Mc() {
        var b = "{{", a = "}}"; this.startSymbol = function (a) { return a ? (b = a, this) : b }; this.endSymbol = function (b) { return b ? (a = b, this) : a }; this.$get = ["$parse", "$exceptionHandler", function (c, d) {
            function e(e, h) {
                for (var j, m, k = 0, l = [], u = e.length, o = !1, z = []; k < u;)(j = e.indexOf(b, k)) != -1 && (m = e.indexOf(a, j + g)) != -1 ? (k != j && l.push(e.substring(k, j)), l.push(k = c(o = e.substring(j + g,
                    m))), k.exp = o, k = m + i, o = !0) : (k != u && l.push(e.substring(k)), k = u); if (!(u = l.length)) l.push(""), u = 1; if (!h || o) return z.length = u, k = function (a) { try { for (var b = 0, c = u, j; b < c; b++) { if (typeof (j = l[b]) == "function") j = j(a), j == null || j == p ? j = "" : typeof j != "string" && (j = ha(j)); z[b] = j } return z.join("") } catch (g) { d(Error("Error while interpolating: " + e + "\n" + g.toString())) } }, k.exp = e, k.parts = l, k
            } var g = b.length, i = a.length; e.startSymbol = function () { return b }; e.endSymbol = function () { return a }; return e
        }]
    } function Mb(b) {
        for (var b = b.split("/"),
            a = b.length; a--;)b[a] = ab(b[a]); return b.join("/")
    } function Nb(b, a) { var c = jb.exec(b); a.$$protocol = c[1]; a.$$host = c[3]; a.$$port = N(c[5]) || Oa[c[1]] || null } function Ob(b, a) { var c = Pb.exec(b); a.$$path = decodeURIComponent(c[1]); a.$$search = vb(c[3]); a.$$hash = decodeURIComponent(c[5] || ""); if (a.$$path && a.$$path.charAt(0) != "/") a.$$path = "/" + a.$$path } function fa(b, a, c) { return a.indexOf(b) == 0 ? a.substr(b.length) : c } function Ca(b) { var a = b.indexOf("#"); return a == -1 ? b : b.substr(0, a) } function kb(b) {
        return b.substr(0, Ca(b).lastIndexOf("/") +
            1)
    } function Qb(b, a) {
        var a = a || "", c = kb(b); this.$$parse = function (a) { var b = {}; Nb(a, b); var g = fa(c, a); if (!E(g)) throw Error('Invalid url "' + a + '", missing path prefix "' + c + '".'); Ob(g, b); t(this, b); if (!this.$$path) this.$$path = "/"; this.$$compose() }; this.$$compose = function () { var a = wb(this.$$search), b = this.$$hash ? "#" + ab(this.$$hash) : ""; this.$$url = Mb(this.$$path) + (a ? "?" + a : "") + b; this.$$absUrl = c + this.$$url.substr(1) }; this.$$rewrite = function (d) {
            var e; if ((e = fa(b, d)) !== p) return d = e, (e = fa(a, e)) !== p ? c + (fa("/", e) || e) :
                b + d; else if ((e = fa(c, d)) !== p) return c + e; else if (c == d + "/") return c
        }
    } function lb(b, a) {
        var c = kb(b); this.$$parse = function (d) { Nb(d, this); var e = fa(b, d) || fa(c, d); if (!E(e)) throw Error('Invalid url "' + d + '", does not start with "' + b + '".'); e = e.charAt(0) == "#" ? fa(a, e) : e; if (!E(e)) throw Error('Invalid url "' + d + '", missing hash prefix "' + a + '".'); Ob(e, this); this.$$compose() }; this.$$compose = function () {
            var c = wb(this.$$search), e = this.$$hash ? "#" + ab(this.$$hash) : ""; this.$$url = Mb(this.$$path) + (c ? "?" + c : "") + e; this.$$absUrl =
                b + (this.$$url ? a + this.$$url : "")
        }; this.$$rewrite = function (a) { if (Ca(b) == Ca(a)) return a }
    } function Rb(b, a) { lb.apply(this, arguments); var c = kb(b); this.$$rewrite = function (d) { var e; if (b == Ca(d)) return d; else if (e = fa(c, d)) return b + a + e; else if (c === d + "/") return c } } function Pa(b) { return function () { return this[b] } } function Sb(b, a) { return function (c) { if (C(c)) return this[b]; this[b] = a(c); this.$$compose(); return this } } function Nc() {
        var b = "", a = !1; this.hashPrefix = function (a) { return B(a) ? (b = a, this) : b }; this.html5Mode = function (b) {
            return B(b) ?
                (a = b, this) : a
        }; this.$get = ["$rootScope", "$browser", "$sniffer", "$rootElement", function (c, d, e, g) {
            function i(a) { c.$broadcast("$locationChangeSuccess", f.absUrl(), a) } var f, h = d.baseHref(), j = d.url(); a ? (h = h ? j.substring(0, j.indexOf("/", j.indexOf("//") + 2)) + h : j, e = e.history ? Qb : Rb) : (h = Ca(j), e = lb); f = new e(h, "#" + b); f.$$parse(f.$$rewrite(j)); g.bind("click", function (a) {
                if (!a.ctrlKey && !(a.metaKey || a.which == 2)) {
                    for (var b = w(a.target); I(b[0].nodeName) !== "a";)if (b[0] === g[0] || !(b = b.parent())[0]) return; var e = b.prop("href"),
                        j = f.$$rewrite(e); e && !b.attr("target") && j && !a.isDefaultPrevented() && (a.preventDefault(), j != d.url() && (f.$$parse(j), c.$apply(), M.angular["ff-684208-preventDefault"] = !0))
                }
            }); f.absUrl() != j && d.url(f.absUrl(), !0); d.onUrlChange(function (a) { f.absUrl() != a && (c.$broadcast("$locationChangeStart", a, f.absUrl()).defaultPrevented ? d.url(f.absUrl()) : (c.$evalAsync(function () { var b = f.absUrl(); f.$$parse(a); i(b) }), c.$$phase || c.$digest())) }); var m = 0; c.$watch(function () {
                var a = d.url(), b = f.$$replace; if (!m || a != f.absUrl()) m++,
                    c.$evalAsync(function () { c.$broadcast("$locationChangeStart", f.absUrl(), a).defaultPrevented ? f.$$parse(a) : (d.url(f.absUrl(), b), i(a)) }); f.$$replace = !1; return m
            }); return f
        }]
    } function Oc() {
        var b = !0, a = this; this.debugEnabled = function (a) { return B(a) ? (b = a, this) : b }; this.$get = ["$window", function (c) {
            function d(a) { a instanceof Error && (a.stack ? a = a.message && a.stack.indexOf(a.message) === -1 ? "Error: " + a.message + "\n" + a.stack : a.stack : a.sourceURL && (a = a.message + "\n" + a.sourceURL + ":" + a.line)); return a } function e(a) {
                var b =
                    c.console || {}, e = b[a] || b.log || q; return e.apply ? function () { var a = []; n(arguments, function (b) { a.push(d(b)) }); return e.apply(b, a) } : function (a, b) { e(a, b) }
            } return { log: e("log"), warn: e("warn"), info: e("info"), error: e("error"), debug: function () { var c = e("debug"); return function () { b && c.apply(a, arguments) } }() }
        }]
    } function Pc(b, a) {
        function c(a) { return a.indexOf(r) != -1 } function d(a) { a = a || 1; return o + a < b.length ? b.charAt(o + a) : !1 } function e(a) { return "0" <= a && a <= "9" } function g(a) {
            return a == " " || a == "\r" || a == "\t" || a == "\n" ||
                a == "\u000b" || a == "\u00a0"
        } function i(a) { return "a" <= a && a <= "z" || "A" <= a && a <= "Z" || "_" == a || a == "$" } function f(a) { return a == "-" || a == "+" || e(a) } function h(a, c, d) { d = d || o; throw Error("Lexer Error: " + a + " at column" + (B(c) ? "s " + c + "-" + o + " [" + b.substring(c, d) + "]" : " " + d) + " in expression [" + b + "]."); } function j() {
            for (var a = "", c = o; o < b.length;) {
                var j = I(b.charAt(o)); if (j == "." || e(j)) a += j; else {
                    var g = d(); if (j == "e" && f(g)) a += j; else if (f(j) && g && e(g) && a.charAt(a.length - 1) == "e") a += j; else if (f(j) && (!g || !e(g)) && a.charAt(a.length -
                        1) == "e") h("Invalid exponent"); else break
                } o++
            } a *= 1; l.push({ index: c, text: a, json: !0, fn: function () { return a } })
        } function m() {
            for (var c = "", d = o, f, j, h, k; o < b.length;) { k = b.charAt(o); if (k == "." || i(k) || e(k)) k == "." && (f = o), c += k; else break; o++ } if (f) for (j = o; j < b.length;) { k = b.charAt(j); if (k == "(") { h = c.substr(f - d + 1); c = c.substr(0, f - d); o = j; break } if (g(k)) j++; else break } d = { index: d, text: c }; if (Da.hasOwnProperty(c)) d.fn = d.json = Da[c]; else { var m = Tb(c, a); d.fn = t(function (a, b) { return m(a, b) }, { assign: function (a, b) { return Ub(a, c, b) } }) } l.push(d);
            h && (l.push({ index: f, text: ".", json: !1 }), l.push({ index: f + 1, text: h, json: !1 }))
        } function k(a) { var c = o; o++; for (var d = "", e = a, f = !1; o < b.length;) { var j = b.charAt(o); e += j; if (f) j == "u" ? (j = b.substring(o + 1, o + 5), j.match(/[\da-f]{4}/i) || h("Invalid unicode escape [\\u" + j + "]"), o += 4, d += String.fromCharCode(parseInt(j, 16))) : (f = Qc[j], d += f ? f : j), f = !1; else if (j == "\\") f = !0; else if (j == a) { o++; l.push({ index: c, text: e, string: d, json: !0, fn: function () { return d } }); return } else d += j; o++ } h("Unterminated quote", c) } for (var l = [], u, o = 0, z = [],
            r, y = ":"; o < b.length;) {
            r = b.charAt(o); if (c("\"'")) k(r); else if (e(r) || c(".") && e(d())) j(); else if (i(r)) { if (m(), "{,".indexOf(y) != -1 && z[0] == "{" && (u = l[l.length - 1])) u.json = u.text.indexOf(".") == -1 } else if (c("(){}[].,;:?")) l.push({ index: o, text: r, json: ":[,".indexOf(y) != -1 && c("{[") || c("}]:,") }), c("{[") && z.unshift(r), c("}]") && z.shift(), o++; else if (g(r)) { o++; continue } else {
                var x = r + d(), n = x + d(2), v = Da[r], A = Da[x], G = Da[n]; G ? (l.push({ index: o, text: n, fn: G }), o += 3) : A ? (l.push({ index: o, text: x, fn: A }), o += 2) : v ? (l.push({
                    index: o,
                    text: r, fn: v, json: "[,:".indexOf(y) != -1 && c("+-")
                }), o += 1) : h("Unexpected next character ", o, o + 1)
            } y = r
        } return l
    } function Rc(b, a, c, d) {
        function e(a, c) { throw Error("Syntax Error: Token '" + c.text + "' " + a + " at column " + (c.index + 1) + " of the expression [" + b + "] starting at [" + b.substring(c.index) + "]."); } function g() { if (O.length === 0) throw Error("Unexpected end of expression: " + b); return O[0] } function i(a, b, c, d) { if (O.length > 0) { var e = O[0], f = e.text; if (f == a || f == b || f == c || f == d || !a && !b && !c && !d) return e } return !1 } function f(b,
            c, d, f) { return (b = i(b, c, d, f)) ? (a && !b.json && e("is not valid json", b), O.shift(), b) : !1 } function h(a) { f(a) || e("is unexpected, expecting [" + a + "]", i()) } function j(a, b) { return t(function (c, d) { return a(c, d, b) }, { constant: b.constant }) } function m(a, b, c) { return t(function (d, e) { return a(d, e) ? b(d, e) : c(d, e) }, { constant: a.constant && b.constant && c.constant }) } function k(a, b, c) { return t(function (d, e) { return b(d, e, a, c) }, { constant: a.constant && c.constant }) } function l() {
                for (var a = []; ;)if (O.length > 0 && !i("}", ")", ";", "]") && a.push(w()),
                    !f(";")) return a.length == 1 ? a[0] : function (b, c) { for (var d, e = 0; e < a.length; e++) { var f = a[e]; f && (d = f(b, c)) } return d }
            } function u() { for (var a = f(), b = c(a.text), d = []; ;)if (a = f(":")) d.push(P()); else { var e = function (a, c, e) { for (var e = [e], f = 0; f < d.length; f++)e.push(d[f](a, c)); return b.apply(a, e) }; return function () { return e } } } function o() { var a = z(), b, c; if (f("?")) if (b = o(), c = f(":")) return m(a, b, o()); else e("expected :", c); else return a } function z() { for (var a = r(), b; ;)if (b = f("||")) a = k(a, b.fn, r()); else return a } function r() {
                var a =
                    y(), b; if (b = f("&&")) a = k(a, b.fn, r()); return a
            } function y() { var a = x(), b; if (b = f("==", "!=", "===", "!==")) a = k(a, b.fn, y()); return a } function x() { var a; a = n(); for (var b; b = f("+", "-");)a = k(a, b.fn, n()); if (b = f("<", ">", "<=", ">=")) a = k(a, b.fn, x()); return a } function n() { for (var a = v(), b; b = f("*", "/", "%");)a = k(a, b.fn, v()); return a } function v() { var a; return f("+") ? A() : (a = f("-")) ? k($, a.fn, v()) : (a = f("!")) ? j(a.fn, v()) : A() } function A() {
                var a; if (f("(")) a = w(), h(")"); else if (f("[")) a = G(); else if (f("{")) a = D(); else {
                    var b = f(); (a =
                        b.fn) || e("not a primary expression", b); if (b.json) a.constant = a.literal = !0
                } for (var c; b = f("(", "[", ".");)b.text === "(" ? (a = s(a, c), c = null) : b.text === "[" ? (c = a, a = ma(a)) : b.text === "." ? (c = a, a = ja(a)) : e("IMPOSSIBLE"); return a
            } function G() { var a = [], b = !0; if (g().text != "]") { do { var c = P(); a.push(c); c.constant || (b = !1) } while (f(",")) } h("]"); return t(function (b, c) { for (var d = [], e = 0; e < a.length; e++)d.push(a[e](b, c)); return d }, { literal: !0, constant: b }) } function D() {
                var a = [], b = !0; if (g().text != "}") {
                    do {
                        var c = f(), c = c.string || c.text;
                        h(":"); var d = P(); a.push({ key: c, value: d }); d.constant || (b = !1)
                    } while (f(","))
                } h("}"); return t(function (b, c) { for (var d = {}, e = 0; e < a.length; e++) { var f = a[e]; d[f.key] = f.value(b, c) } return d }, { literal: !0, constant: b })
            } var $ = S(0), K, O = Pc(b, d), P = function () { var a = o(), c, d; return (d = f("=")) ? (a.assign || e("implies assignment but [" + b.substring(0, d.index) + "] can not be assigned to", d), c = o(), function (b, d) { return a.assign(b, c(b, d), d) }) : a }, s = function (a, b) {
                var c = []; if (g().text != ")") { do c.push(P()); while (f(",")) } h(")"); return function (d,
                    e) { for (var f = [], j = b ? b(d, e) : d, g = 0; g < c.length; g++)f.push(c[g](d, e)); g = a(d, e, j) || q; return g.apply ? g.apply(j, f) : g(f[0], f[1], f[2], f[3], f[4]) }
            }, ja = function (a) { var b = f().text, c = Tb(b, d); return t(function (b, d, e) { return c(e || a(b, d), d) }, { assign: function (c, d, e) { return Ub(a(c, e), b, d) } }) }, ma = function (a) {
                var b = P(); h("]"); return t(function (c, d) { var e = a(c, d), f = b(c, d), j; if (!e) return p; if ((e = e[f]) && e.then) { j = e; if (!("$$v" in e)) j.$$v = p, j.then(function (a) { j.$$v = a }); e = e.$$v } return e }, {
                    assign: function (c, d, e) {
                        return a(c,
                            e)[b(c, e)] = d
                    }
                })
            }, w = function () { for (var a = P(), b; ;)if (b = f("|")) a = k(a, b.fn, u()); else return a }; a ? (P = z, s = ja = ma = w = function () { e("is not valid json", { text: b, index: 0 }) }, K = A()) : K = l(); O.length !== 0 && e("is an unexpected token", O[0]); K.literal = !!K.literal; K.constant = !!K.constant; return K
    } function Ub(b, a, c) { for (var a = a.split("."), d = 0; a.length > 1; d++) { var e = a.shift(), g = b[e]; g || (g = {}, b[e] = g); b = g } return b[a.shift()] = c } function ib(b, a, c) {
        if (!a) return b; for (var a = a.split("."), d, e = b, g = a.length, i = 0; i < g; i++)d = a[i], b && (b =
            (e = b)[d]); return !c && H(b) ? $a(e, b) : b
    } function Vb(b, a, c, d, e) {
        return function (g, i) {
            var f = i && i.hasOwnProperty(b) ? i : g, h; if (f === null || f === p) return f; if ((f = f[b]) && f.then) { if (!("$$v" in f)) h = f, h.$$v = p, h.then(function (a) { h.$$v = a }); f = f.$$v } if (!a || f === null || f === p) return f; if ((f = f[a]) && f.then) { if (!("$$v" in f)) h = f, h.$$v = p, h.then(function (a) { h.$$v = a }); f = f.$$v } if (!c || f === null || f === p) return f; if ((f = f[c]) && f.then) { if (!("$$v" in f)) h = f, h.$$v = p, h.then(function (a) { h.$$v = a }); f = f.$$v } if (!d || f === null || f === p) return f; if ((f =
                f[d]) && f.then) { if (!("$$v" in f)) h = f, h.$$v = p, h.then(function (a) { h.$$v = a }); f = f.$$v } if (!e || f === null || f === p) return f; if ((f = f[e]) && f.then) { if (!("$$v" in f)) h = f, h.$$v = p, h.then(function (a) { h.$$v = a }); f = f.$$v } return f
        }
    } function Tb(b, a) {
        if (mb.hasOwnProperty(b)) return mb[b]; var c = b.split("."), d = c.length, e; if (a) e = d < 6 ? Vb(c[0], c[1], c[2], c[3], c[4]) : function (a, b) { var e = 0, j; do j = Vb(c[e++], c[e++], c[e++], c[e++], c[e++])(a, b), b = p, a = j; while (e < d); return j }; else {
            var g = "var l, fn, p;\n"; n(c, function (a, b) {
                g += "if(s === null || s === undefined) return s;\nl=s;\ns=" +
                    (b ? "s" : '((k&&k.hasOwnProperty("' + a + '"))?k:s)') + '["' + a + '"];\nif (s && s.then) {\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n'
            }); g += "return s;"; e = Function("s", "k", g); e.toString = function () { return g }
        } return mb[b] = e
    } function Sc() { var b = {}; this.$get = ["$filter", "$sniffer", function (a, c) { return function (d) { switch (typeof d) { case "string": return b.hasOwnProperty(d) ? b[d] : b[d] = Rc(d, !1, a, c.csp); case "function": return d; default: return q } } }] } function Tc() {
        this.$get =
            ["$rootScope", "$exceptionHandler", function (b, a) { return Uc(function (a) { b.$evalAsync(a) }, a) }]
    } function Uc(b, a) {
        function c(a) { return a } function d(a) { return i(a) } var e = function () {
            var f = [], h, j; return j = {
                resolve: function (a) { if (f) { var c = f; f = p; h = g(a); c.length && b(function () { for (var a, b = 0, d = c.length; b < d; b++)a = c[b], h.then(a[0], a[1]) }) } }, reject: function (a) { j.resolve(i(a)) }, promise: {
                    then: function (b, j) {
                        var g = e(), i = function (d) { try { g.resolve((b || c)(d)) } catch (e) { a(e), g.reject(e) } }, o = function (b) {
                            try {
                                g.resolve((j ||
                                    d)(b))
                            } catch (c) { a(c), g.reject(c) }
                        }; f ? f.push([i, o]) : h.then(i, o); return g.promise
                    }, always: function (a) { function b(a, c) { var d = e(); c ? d.resolve(a) : d.reject(a); return d.promise } function d(e, f) { var j = null; try { j = (a || c)() } catch (g) { return b(g, !1) } return j && j.then ? j.then(function () { return b(e, f) }, function (a) { return b(a, !1) }) : b(e, f) } return this.then(function (a) { return d(a, !0) }, function (a) { return d(a, !1) }) }
                }
            }
        }, g = function (a) { return a && a.then ? a : { then: function (c) { var d = e(); b(function () { d.resolve(c(a)) }); return d.promise } } },
            i = function (a) { return { then: function (c, j) { var g = e(); b(function () { g.resolve((j || d)(a)) }); return g.promise } } }; return {
                defer: e, reject: i, when: function (f, h, j) { var m = e(), k, l = function (b) { try { return (h || c)(b) } catch (d) { return a(d), i(d) } }, u = function (b) { try { return (j || d)(b) } catch (c) { return a(c), i(c) } }; b(function () { g(f).then(function (a) { k || (k = !0, m.resolve(g(a).then(l, u))) }, function (a) { k || (k = !0, m.resolve(u(a))) }) }); return m.promise }, all: function (a) {
                    var b = e(), c = 0, d = F(a) ? [] : {}; n(a, function (a, e) {
                        c++; g(a).then(function (a) {
                            d.hasOwnProperty(e) ||
                                (d[e] = a, --c || b.resolve(d))
                        }, function (a) { d.hasOwnProperty(e) || b.reject(a) })
                    }); c === 0 && b.resolve(d); return b.promise
                }
            }
    } function Vc() {
        var b = {}; this.when = function (a, c) { b[a] = t({ reloadOnSearch: !0, caseInsensitiveMatch: !1 }, c); if (a) { var d = a[a.length - 1] == "/" ? a.substr(0, a.length - 1) : a + "/"; b[d] = { redirectTo: a } } return this }; this.otherwise = function (a) { this.when(null, a); return this }; this.$get = ["$rootScope", "$location", "$routeParams", "$q", "$injector", "$http", "$templateCache", function (a, c, d, e, g, i, f) {
            function h(a, b, c) {
                for (var b =
                    "^" + b.replace(/[-\/\\^$:*+?.()|[\]{}]/g, "\\$&") + "$", d = "", e = [], f = {}, j = /\\([:*])(\w+)/g, g, i = 0; (g = j.exec(b)) !== null;) { d += b.slice(i, g.index); switch (g[1]) { case ":": d += "([^\\/]*)"; break; case "*": d += "(.*)" }e.push(g[2]); i = j.lastIndex } d += b.substr(i); var h = a.match(RegExp(d, c.caseInsensitiveMatch ? "i" : "")); h && n(e, function (a, b) { f[a] = h[b + 1] }); return h ? f : null
            } function j() {
                var b = m(), j = u.current; if (b && j && b.$$route === j.$$route && ia(b.pathParams, j.pathParams) && !b.reloadOnSearch && !l) j.params = b.params, V(j.params, d), a.$broadcast("$routeUpdate",
                    j); else if (b || j) l = !1, a.$broadcast("$routeChangeStart", b, j), (u.current = b) && b.redirectTo && (E(b.redirectTo) ? c.path(k(b.redirectTo, b.params)).search(b.params).replace() : c.url(b.redirectTo(b.pathParams, c.path(), c.search())).replace()), e.when(b).then(function () {
                        if (b) {
                            var a = t({}, b.resolve), c; n(a, function (b, c) { a[c] = E(b) ? g.get(b) : g.invoke(b) }); if (B(c = b.template)) H(c) && (c = c(b.params)); else if (B(c = b.templateUrl)) if (H(c) && (c = c(b.params)), B(c)) b.loadedTemplateUrl = c, c = i.get(c, { cache: f }).then(function (a) { return a.data });
                            B(c) && (a.$template = c); return e.all(a)
                        }
                    }).then(function (c) { if (b == u.current) { if (b) b.locals = c, V(b.params, d); a.$broadcast("$routeChangeSuccess", b, j) } }, function (c) { b == u.current && a.$broadcast("$routeChangeError", b, j, c) })
            } function m() { var a, d; n(b, function (b, e) { if (!d && (a = h(c.path(), e, b))) d = tb(b, { params: t({}, c.search(), a), pathParams: a }), d.$$route = b }); return d || b[null] && tb(b[null], { params: {}, pathParams: {} }) } function k(a, b) {
                var c = []; n((a || "").split(":"), function (a, d) {
                    if (d == 0) c.push(a); else {
                        var e = a.match(/(\w+)(.*)/),
                            f = e[1]; c.push(b[f]); c.push(e[2] || ""); delete b[f]
                    }
                }); return c.join("")
            } var l = !1, u = { routes: b, reload: function () { l = !0; a.$evalAsync(j) } }; a.$on("$locationChangeSuccess", j); return u
        }]
    } function Wc() { this.$get = S({}) } function Xc() {
        var b = 10; this.digestTtl = function (a) { arguments.length && (b = a); return b }; this.$get = ["$injector", "$exceptionHandler", "$parse", function (a, c, d) {
            function e() {
                this.$id = Fa(); this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null;
                this["this"] = this.$root = this; this.$$destroyed = !1; this.$$asyncQueue = []; this.$$listeners = {}; this.$$isolateBindings = {}
            } function g(a) { if (h.$$phase) throw Error(h.$$phase + " already in progress"); h.$$phase = a } function i(a, b) { var c = d(a); xa(c, b); return c } function f() { } e.prototype = {
                $new: function (a) {
                    if (H(a)) throw Error("API-CHANGE: Use $controller to instantiate controllers."); a ? (a = new e, a.$root = this.$root) : (a = function () { }, a.prototype = this, a = new a, a.$id = Fa()); a["this"] = a; a.$$listeners = {}; a.$parent = this; a.$$watchers =
                        a.$$nextSibling = a.$$childHead = a.$$childTail = null; a.$$prevSibling = this.$$childTail; this.$$childHead ? this.$$childTail = this.$$childTail.$$nextSibling = a : this.$$childHead = this.$$childTail = a; return a
                }, $watch: function (a, b, c) {
                    var d = i(a, "watch"), e = this.$$watchers, g = { fn: b, last: f, get: d, exp: a, eq: !!c }; if (!H(b)) { var h = i(b || q, "listener"); g.fn = function (a, b, c) { h(c) } } if (typeof a == "string" && d.constant) { var r = g.fn; g.fn = function (a, b, c) { r.call(this, a, b, c); ta(e, g) } } if (!e) e = this.$$watchers = []; e.unshift(g); return function () {
                        ta(e,
                            g)
                    }
                }, $watchCollection: function (a, b) {
                    var c = this, e, f, g = 0, i = d(a), h = [], n = {}, x = 0; return this.$watch(function () { f = i(c); var a, b; if (L(f)) if (Xa(f)) { if (e !== h) e = h, x = e.length = 0, g++; a = f.length; if (x !== a) g++, e.length = x = a; for (b = 0; b < a; b++)e[b] !== f[b] && (g++, e[b] = f[b]) } else { e !== n && (e = n = {}, x = 0, g++); a = 0; for (b in f) f.hasOwnProperty(b) && (a++, e.hasOwnProperty(b) ? e[b] !== f[b] && (g++, e[b] = f[b]) : (x++, e[b] = f[b], g++)); if (x > a) for (b in g++, e) e.hasOwnProperty(b) && !f.hasOwnProperty(b) && (x--, delete e[b]) } else e !== f && (e = f, g++); return g },
                        function () { b(f, e, c) })
                }, $digest: function () {
                    var a, d, e, i, u = this.$$asyncQueue, o, z, r = b, n, x = [], p, v; g("$digest"); do {
                        z = !1; for (n = this; u.length;)try { n.$eval(u.shift()) } catch (A) { c(A) } do {
                            if (i = n.$$watchers) for (o = i.length; o--;)try { if (a = i[o], (d = a.get(n)) !== (e = a.last) && !(a.eq ? ia(d, e) : typeof d == "number" && typeof e == "number" && isNaN(d) && isNaN(e))) z = !0, a.last = a.eq ? V(d) : d, a.fn(d, e === f ? d : e, n), r < 5 && (p = 4 - r, x[p] || (x[p] = []), v = H(a.exp) ? "fn: " + (a.exp.name || a.exp.toString()) : a.exp, v += "; newVal: " + ha(d) + "; oldVal: " + ha(e), x[p].push(v)) } catch (G) { c(G) } if (!(i =
                                n.$$childHead || n !== this && n.$$nextSibling)) for (; n !== this && !(i = n.$$nextSibling);)n = n.$parent
                        } while (n = i); if (z && !r--) throw h.$$phase = null, Error(b + " $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: " + ha(x));
                    } while (z || u.length); h.$$phase = null
                }, $destroy: function () {
                    if (!(h == this || this.$$destroyed)) {
                        var a = this.$parent; this.$broadcast("$destroy"); this.$$destroyed = !0; if (a.$$childHead == this) a.$$childHead = this.$$nextSibling; if (a.$$childTail == this) a.$$childTail = this.$$prevSibling;
                        if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling; if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling; this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null
                    }
                }, $eval: function (a, b) { return d(a)(this, b) }, $evalAsync: function (a) { this.$$asyncQueue.push(a) }, $apply: function (a) { try { return g("$apply"), this.$eval(a) } catch (b) { c(b) } finally { h.$$phase = null; try { h.$digest() } catch (d) { throw c(d), d; } } }, $on: function (a, b) {
                    var c = this.$$listeners[a];
                    c || (this.$$listeners[a] = c = []); c.push(b); return function () { c[Ga(c, b)] = null }
                }, $emit: function (a, b) { var d = [], e, f = this, g = !1, i = { name: a, targetScope: f, stopPropagation: function () { g = !0 }, preventDefault: function () { i.defaultPrevented = !0 }, defaultPrevented: !1 }, h = [i].concat(ka.call(arguments, 1)), n, x; do { e = f.$$listeners[a] || d; i.currentScope = f; n = 0; for (x = e.length; n < x; n++)if (e[n]) try { if (e[n].apply(null, h), g) return i } catch (p) { c(p) } else e.splice(n, 1), n--, x--; f = f.$parent } while (f); return i }, $broadcast: function (a, b) {
                    var d =
                        this, e = this, f = { name: a, targetScope: this, preventDefault: function () { f.defaultPrevented = !0 }, defaultPrevented: !1 }, g = [f].concat(ka.call(arguments, 1)), i, h; do { d = e; f.currentScope = d; e = d.$$listeners[a] || []; i = 0; for (h = e.length; i < h; i++)if (e[i]) try { e[i].apply(null, g) } catch (n) { c(n) } else e.splice(i, 1), i--, h--; if (!(e = d.$$childHead || d !== this && d.$$nextSibling)) for (; d !== this && !(e = d.$$nextSibling);)d = d.$parent } while (d = e); return f
                }
            }; var h = new e; return h
        }]
    } function Yc() {
        this.$get = ["$window", "$document", function (b, a) {
            var c =
                {}, d = N((/android (\d+)/.exec(I((b.navigator || {}).userAgent)) || [])[1]), e = a[0] || {}, g, i = /^(Moz|webkit|O|ms)(?=[A-Z])/, f = e.body && e.body.style, h = !1, j = !1; if (f) { for (var m in f) if (h = i.exec(m)) { g = h[0]; g = g.substr(0, 1).toUpperCase() + g.substr(1); break } h = !!("transition" in f || g + "Transition" in f); j = !!("animation" in f || g + "Animation" in f) } return {
                    history: !(!b.history || !b.history.pushState || d < 4), hashchange: "onhashchange" in b && (!e.documentMode || e.documentMode > 7), hasEvent: function (a) {
                        if (a == "input" && Z == 9) return !1; if (C(c[a])) {
                            var b =
                                e.createElement("div"); c[a] = "on" + a in b
                        } return c[a]
                    }, csp: e.securityPolicy ? e.securityPolicy.isActive : !1, vendorPrefix: g, transitions: h, animations: j
                }
        }]
    } function Zc() { this.$get = S(M) } function Wb(b) { var a = {}, c, d, e; if (!b) return a; n(b.split("\n"), function (b) { e = b.indexOf(":"); c = I(U(b.substr(0, e))); d = U(b.substr(e + 1)); c && (a[c] ? a[c] += ", " + d : a[c] = d) }); return a } function $c(b, a) {
        var c = ad.exec(b); if (c == null) return !0; var d = { protocol: c[2], host: c[4], port: N(c[6]) || Oa[c[2]] || null, relativeProtocol: c[2] === p || c[2] === "" },
            c = jb.exec(a), c = { protocol: c[1], host: c[3], port: N(c[5]) || Oa[c[1]] || null }; return (d.protocol == c.protocol || d.relativeProtocol) && d.host == c.host && (d.port == c.port || d.relativeProtocol && c.port == Oa[c.protocol])
    } function Xb(b) { var a = L(b) ? b : p; return function (c) { a || (a = Wb(b)); return c ? a[I(c)] || null : a } } function Yb(b, a, c) { if (H(c)) return c(b, a); n(c, function (c) { b = c(b, a) }); return b } function bd() {
        var b = /^\s*(\[|\{[^\{])/, a = /[\}\]]\s*$/, c = /^\)\]\}',?\n/, d = { "Content-Type": "application/json;charset=utf-8" }, e = this.defaults =
            { transformResponse: [function (d) { E(d) && (d = d.replace(c, ""), b.test(d) && a.test(d) && (d = ub(d, !0))); return d }], transformRequest: [function (a) { return L(a) && Ea.apply(a) !== "[object File]" ? ha(a) : a }], headers: { common: { Accept: "application/json, text/plain, */*" }, post: d, put: d, patch: d }, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN" }, g = this.interceptors = [], i = this.responseInterceptors = []; this.$get = ["$httpBackend", "$browser", "$cacheFactory", "$rootScope", "$q", "$injector", function (a, b, c, d, k, l) {
                function u(a) {
                    function c(a) {
                        var b =
                            t({}, a, { data: Yb(a.data, a.headers, d.transformResponse) }); return 200 <= a.status && a.status < 300 ? b : k.reject(b)
                    } var d = { transformRequest: e.transformRequest, transformResponse: e.transformResponse }, f = {}; t(d, a); d.headers = f; d.method = oa(d.method); t(f, e.headers.common, e.headers[I(d.method)], a.headers); (a = $c(d.url, b.url()) ? b.cookies()[d.xsrfCookieName || e.xsrfCookieName] : p) && (f[d.xsrfHeaderName || e.xsrfHeaderName] = a); var g = [function (a) {
                        var b = Yb(a.data, Xb(f), a.transformRequest); C(a.data) && delete f["Content-Type"]; if (C(a.withCredentials) &&
                            !C(e.withCredentials)) a.withCredentials = e.withCredentials; return o(a, b, f).then(c, c)
                    }, p], j = k.when(d); for (n(y, function (a) { (a.request || a.requestError) && g.unshift(a.request, a.requestError); (a.response || a.responseError) && g.push(a.response, a.responseError) }); g.length;)var a = g.shift(), i = g.shift(), j = j.then(a, i); j.success = function (a) { j.then(function (b) { a(b.data, b.status, b.headers, d) }); return j }; j.error = function (a) { j.then(null, function (b) { a(b.data, b.status, b.headers, d) }); return j }; return j
                } function o(b, c, g) {
                    function j(a,
                        b, c) { n && (200 <= a && a < 300 ? n.put(s, [a, b, Wb(c)]) : n.remove(s)); i(b, a, c); d.$$phase || d.$apply() } function i(a, c, d) { c = Math.max(c, 0); (200 <= c && c < 300 ? l.resolve : l.reject)({ data: a, status: c, headers: Xb(d), config: b }) } function h() { var a = Ga(u.pendingRequests, b); a !== -1 && u.pendingRequests.splice(a, 1) } var l = k.defer(), o = l.promise, n, p, s = z(b.url, b.params); u.pendingRequests.push(b); o.then(h, h); if ((b.cache || e.cache) && b.cache !== !1 && b.method == "GET") n = L(b.cache) ? b.cache : L(e.cache) ? e.cache : r; if (n) if (p = n.get(s)) if (p.then) return p.then(h,
                            h), p; else F(p) ? i(p[1], p[0], V(p[2])) : i(p, 200, {}); else n.put(s, o); p || a(b.method, s, c, j, g, b.timeout, b.withCredentials, b.responseType); return o
                } function z(a, b) { if (!b) return a; var c = []; nc(b, function (a, b) { a == null || a == p || (F(a) || (a = [a]), n(a, function (a) { L(a) && (a = ha(a)); c.push(wa(b) + "=" + wa(a)) })) }); return a + (a.indexOf("?") == -1 ? "?" : "&") + c.join("&") } var r = c("$http"), y = []; n(g, function (a) { y.unshift(E(a) ? l.get(a) : l.invoke(a)) }); n(i, function (a, b) {
                    var c = E(a) ? l.get(a) : l.invoke(a); y.splice(b, 0, {
                        response: function (a) { return c(k.when(a)) },
                        responseError: function (a) { return c(k.reject(a)) }
                    })
                }); u.pendingRequests = []; (function (a) { n(arguments, function (a) { u[a] = function (b, c) { return u(t(c || {}, { method: a, url: b })) } }) })("get", "delete", "head", "jsonp"); (function (a) { n(arguments, function (a) { u[a] = function (b, c, d) { return u(t(d || {}, { method: a, url: b, data: c })) } }) })("post", "put"); u.defaults = e; return u
            }]
    } function cd() { this.$get = ["$browser", "$window", "$document", function (b, a, c) { return dd(b, ed, b.defer, a.angular.callbacks, c[0], a.location.protocol.replace(":", "")) }] }
    function dd(b, a, c, d, e, g) {
        function i(a, b) { var c = e.createElement("script"), d = function () { e.body.removeChild(c); b && b() }; c.type = "text/javascript"; c.src = a; Z ? c.onreadystatechange = function () { /loaded|complete/.test(c.readyState) && d() } : c.onload = c.onerror = d; e.body.appendChild(c); return d } return function (e, h, j, m, k, l, u, o) {
            function z() { p = -1; t && t(); v && v.abort() } function r(a, d, e, f) { var j = (h.match(jb) || ["", g])[1]; A && c.cancel(A); t = v = null; d = j == "file" ? e ? 200 : 404 : d; a(d == 1223 ? 204 : d, e, f); b.$$completeOutstandingRequest(q) }
            var p; b.$$incOutstandingRequestCount(); h = h || b.url(); if (I(e) == "jsonp") { var x = "_" + (d.counter++).toString(36); d[x] = function (a) { d[x].data = a }; var t = i(h.replace("JSON_CALLBACK", "angular.callbacks." + x), function () { d[x].data ? r(m, 200, d[x].data) : r(m, p || -2); delete d[x] }) } else {
                var v = new a; v.open(e, h, !0); n(k, function (a, b) { a && v.setRequestHeader(b, a) }); v.onreadystatechange = function () {
                    if (v.readyState == 4) {
                        var a = v.getAllResponseHeaders(), b = ["Cache-Control", "Content-Language", "Content-Type", "Expires", "Last-Modified",
                            "Pragma"]; a || (a = "", n(b, function (b) { var c = v.getResponseHeader(b); c && (a += b + ": " + c + "\n") })); r(m, p || v.status, v.responseType ? v.response : v.responseText, a)
                    }
                }; if (u) v.withCredentials = !0; if (o) v.responseType = o; v.send(j || "")
            } if (l > 0) var A = c(z, l); else l && l.then && l.then(z)
        }
    } function fd() {
        this.$get = function () {
            return {
                id: "en-us", NUMBER_FORMATS: {
                    DECIMAL_SEP: ".", GROUP_SEP: ",", PATTERNS: [{ minInt: 1, minFrac: 0, maxFrac: 3, posPre: "", posSuf: "", negPre: "-", negSuf: "", gSize: 3, lgSize: 3 }, {
                        minInt: 1, minFrac: 2, maxFrac: 2, posPre: "\u00a4",
                        posSuf: "", negPre: "(\u00a4", negSuf: ")", gSize: 3, lgSize: 3
                    }], CURRENCY_SYM: "$"
                }, DATETIME_FORMATS: {
                    MONTH: "January,February,March,April,May,June,July,August,September,October,November,December".split(","), SHORTMONTH: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","), DAY: "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","), SHORTDAY: "Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","), AMPMS: ["AM", "PM"], medium: "MMM d, y h:mm:ss a", "short": "M/d/yy h:mm a", fullDate: "EEEE, MMMM d, y", longDate: "MMMM d, y",
                    mediumDate: "MMM d, y", shortDate: "M/d/yy", mediumTime: "h:mm:ss a", shortTime: "h:mm a"
                }, pluralCat: function (b) { return b === 1 ? "one" : "other" }
            }
        }
    } function gd() {
        this.$get = ["$rootScope", "$browser", "$q", "$exceptionHandler", function (b, a, c, d) {
            function e(e, f, h) { var j = c.defer(), m = j.promise, k = B(h) && !h, f = a.defer(function () { try { j.resolve(e()) } catch (a) { j.reject(a), d(a) } k || b.$apply() }, f), h = function () { delete g[m.$$timeoutId] }; m.$$timeoutId = f; g[f] = j; m.then(h, h); return m } var g = {}; e.cancel = function (b) {
                return b && b.$$timeoutId in
                    g ? (g[b.$$timeoutId].reject("canceled"), a.defer.cancel(b.$$timeoutId)) : !1
            }; return e
        }]
    } function Zb(b) { function a(a, e) { return b.factory(a + c, e) } var c = "Filter"; this.register = a; this.$get = ["$injector", function (a) { return function (b) { return a.get(b + c) } }]; a("currency", $b); a("date", ac); a("filter", hd); a("json", id); a("limitTo", jd); a("lowercase", kd); a("number", bc); a("orderBy", cc); a("uppercase", ld) } function hd() {
        return function (b, a, c) {
            if (!F(b)) return b; var d = []; d.check = function (a) {
                for (var b = 0; b < d.length; b++)if (!d[b](a)) return !1;
                return !0
            }; switch (typeof c) { case "function": break; case "boolean": if (c == !0) { c = function (a, b) { return Ha.equals(a, b) }; break } default: c = function (a, b) { b = ("" + b).toLowerCase(); return ("" + a).toLowerCase().indexOf(b) > -1 } }var e = function (a, b) {
                if (typeof b == "string" && b.charAt(0) === "!") return !e(a, b.substr(1)); switch (typeof a) {
                    case "boolean": case "number": case "string": return c(a, b); case "object": switch (typeof b) { case "object": return c(a, b); default: for (var d in a) if (d.charAt(0) !== "$" && e(a[d], b)) return !0 }return !1; case "array": for (d =
                        0; d < a.length; d++)if (e(a[d], b)) return !0; return !1; default: return !1
                }
            }; switch (typeof a) { case "boolean": case "number": case "string": a = { $: a }; case "object": for (var g in a) g == "$" ? function () { if (a[g]) { var b = g; d.push(function (c) { return e(c, a[b]) }) } }() : function () { if (a[g]) { var b = g; d.push(function (c) { return e(ib(c, b), a[b]) }) } }(); break; case "function": d.push(a); break; default: return b }for (var i = [], f = 0; f < b.length; f++) { var h = b[f]; d.check(h) && i.push(h) } return i
        }
    } function $b(b) {
        var a = b.NUMBER_FORMATS; return function (b,
            d) { if (C(d)) d = a.CURRENCY_SYM; return dc(b, a.PATTERNS[1], a.GROUP_SEP, a.DECIMAL_SEP, 2).replace(/\u00A4/g, d) }
    } function bc(b) { var a = b.NUMBER_FORMATS; return function (b, d) { return dc(b, a.PATTERNS[0], a.GROUP_SEP, a.DECIMAL_SEP, d) } } function dc(b, a, c, d, e) {
        if (isNaN(b) || !isFinite(b)) return ""; var g = b < 0, b = Math.abs(b), i = b + "", f = "", h = [], j = !1; if (i.indexOf("e") !== -1) { var m = i.match(/([\d\.]+)e(-?)(\d+)/); m && m[2] == "-" && m[3] > e + 1 ? i = "0" : (f = i, j = !0) } if (!j) {
            i = (i.split(ec)[1] || "").length; C(e) && (e = Math.min(Math.max(a.minFrac, i),
                a.maxFrac)); var i = Math.pow(10, e), b = Math.round(b * i) / i, b = ("" + b).split(ec), i = b[0], b = b[1] || "", j = 0, m = a.lgSize, k = a.gSize; if (i.length >= m + k) for (var j = i.length - m, l = 0; l < j; l++)(j - l) % k === 0 && l !== 0 && (f += c), f += i.charAt(l); for (l = j; l < i.length; l++)(i.length - l) % m === 0 && l !== 0 && (f += c), f += i.charAt(l); for (; b.length < e;)b += "0"; e && e !== "0" && (f += d + b.substr(0, e))
        } h.push(g ? a.negPre : a.posPre); h.push(f); h.push(g ? a.negSuf : a.posSuf); return h.join("")
    } function nb(b, a, c) {
        var d = ""; b < 0 && (d = "-", b = -b); for (b = "" + b; b.length < a;)b = "0" + b; c && (b =
            b.substr(b.length - a)); return d + b
    } function Q(b, a, c, d) { c = c || 0; return function (e) { e = e["get" + b](); if (c > 0 || e > -c) e += c; e === 0 && c == -12 && (e = 12); return nb(e, a, d) } } function Qa(b, a) { return function (c, d) { var e = c["get" + b](), g = oa(a ? "SHORT" + b : b); return d[g][e] } } function ac(b) {
        function a(a) {
            var b; if (b = a.match(c)) {
                var a = new Date(0), g = 0, i = 0, f = b[8] ? a.setUTCFullYear : a.setFullYear, h = b[8] ? a.setUTCHours : a.setHours; b[9] && (g = N(b[9] + b[10]), i = N(b[9] + b[11])); f.call(a, N(b[1]), N(b[2]) - 1, N(b[3])); g = N(b[4] || 0) - g; i = N(b[5] || 0) - i; f =
                    N(b[6] || 0); b = Math.round(parseFloat("0." + (b[7] || 0)) * 1E3); h.call(a, g, i, f, b)
            } return a
        } var c = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/; return function (c, e) {
            var g = "", i = [], f, h, e = e || "mediumDate", e = b.DATETIME_FORMATS[e] || e; E(c) && (c = md.test(c) ? N(c) : a(c)); Ya(c) && (c = new Date(c)); if (!ra(c)) return c; for (; e;)(h = nd.exec(e)) ? (i = i.concat(ka.call(h, 1)), e = i.pop()) : (i.push(e), e = null); n(i, function (a) {
                f = od[a]; g += f ? f(c, b.DATETIME_FORMATS) : a.replace(/(^'|'$)/g,
                    "").replace(/''/g, "'")
            }); return g
        }
    } function id() { return function (b) { return ha(b, !0) } } function jd() { return function (b, a) { if (!F(b) && !E(b)) return b; a = N(a); if (E(b)) return a ? a >= 0 ? b.slice(0, a) : b.slice(a, b.length) : ""; var c = [], d, e; a > b.length ? a = b.length : a < -b.length && (a = -b.length); a > 0 ? (d = 0, e = a) : (d = b.length + a, e = b.length); for (; d < e; d++)c.push(b[d]); return c } } function cc(b) {
        return function (a, c, d) {
            function e(a, b) { return ua(b) ? function (b, c) { return a(c, b) } : a } if (!F(a)) return a; if (!c) return a; for (var c = F(c) ? c : [c], c =
                Za(c, function (a) { var c = !1, d = a || qa; if (E(a)) { if (a.charAt(0) == "+" || a.charAt(0) == "-") c = a.charAt(0) == "-", a = a.substring(1); d = b(a) } return e(function (a, b) { var c; c = d(a); var e = d(b), f = typeof c, g = typeof e; f == g ? (f == "string" && (c = c.toLowerCase()), f == "string" && (e = e.toLowerCase()), c = c === e ? 0 : c < e ? -1 : 1) : c = f < g ? -1 : 1; return c }, c) }), g = [], i = 0; i < a.length; i++)g.push(a[i]); return g.sort(e(function (a, b) { for (var d = 0; d < c.length; d++) { var e = c[d](a, b); if (e !== 0) return e } return 0 }, d))
        }
    } function aa(b) {
        H(b) && (b = { link: b }); b.restrict = b.restrict ||
            "AC"; return S(b)
    } function fc(b, a) {
        function c(a, c) { c = c ? "-" + bb(c, "-") : ""; b.removeClass((a ? Ra : Sa) + c).addClass((a ? Sa : Ra) + c) } var d = this, e = b.parent().controller("form") || Ta, g = 0, i = d.$error = {}, f = []; d.$name = a.name; d.$dirty = !1; d.$pristine = !0; d.$valid = !0; d.$invalid = !1; e.$addControl(d); b.addClass(pa); c(!0); d.$addControl = function (a) { f.push(a); a.$name && !d.hasOwnProperty(a.$name) && (d[a.$name] = a) }; d.$removeControl = function (a) {
            a.$name && d[a.$name] === a && delete d[a.$name]; n(i, function (b, c) { d.$setValidity(c, !0, a) }); ta(f,
                a)
        }; d.$setValidity = function (a, b, f) { var k = i[a]; if (b) { if (k && (ta(k, f), !k.length)) { g--; if (!g) c(b), d.$valid = !0, d.$invalid = !1; i[a] = !1; c(!0, a); e.$setValidity(a, !0, d) } } else { g || c(b); if (k) { if (Ga(k, f) != -1) return } else i[a] = k = [], g++, c(!1, a), e.$setValidity(a, !1, d); k.push(f); d.$valid = !1; d.$invalid = !0 } }; d.$setDirty = function () { b.removeClass(pa).addClass(Ua); d.$dirty = !0; d.$pristine = !1; e.$setDirty() }; d.$setPristine = function () { b.removeClass(Ua).addClass(pa); d.$dirty = !1; d.$pristine = !0; n(f, function (a) { a.$setPristine() }) }
    }
    function X(b) { return C(b) || b === "" || b === null || b !== b } function Va(b, a, c, d, e, g) {
        var i = function () { var e = a.val(); if (ua(c.ngTrim || "T")) e = U(e); d.$viewValue !== e && b.$apply(function () { d.$setViewValue(e) }) }; if (e.hasEvent("input")) a.bind("input", i); else { var f, h = function () { f || (f = g.defer(function () { i(); f = null })) }; a.bind("keydown", function (a) { a = a.keyCode; a === 91 || 15 < a && a < 19 || 37 <= a && a <= 40 || h() }); a.bind("change", i); e.hasEvent("paste") && a.bind("paste cut", h) } d.$render = function () { a.val(X(d.$viewValue) ? "" : d.$viewValue) };
        var j = c.ngPattern, m = function (a, b) { return X(b) || a.test(b) ? (d.$setValidity("pattern", !0), b) : (d.$setValidity("pattern", !1), p) }; j && ((e = j.match(/^\/(.*)\/([gim]*)$/)) ? (j = RegExp(e[1], e[2]), e = function (a) { return m(j, a) }) : e = function (a) { var c = b.$eval(j); if (!c || !c.test) throw Error("Expected " + j + " to be a RegExp but was " + c); return m(c, a) }, d.$formatters.push(e), d.$parsers.push(e)); if (c.ngMinlength) {
            var k = N(c.ngMinlength), e = function (a) {
                return !X(a) && a.length < k ? (d.$setValidity("minlength", !1), p) : (d.$setValidity("minlength",
                    !0), a)
            }; d.$parsers.push(e); d.$formatters.push(e)
        } if (c.ngMaxlength) { var l = N(c.ngMaxlength), e = function (a) { return !X(a) && a.length > l ? (d.$setValidity("maxlength", !1), p) : (d.$setValidity("maxlength", !0), a) }; d.$parsers.push(e); d.$formatters.push(e) }
    } function ob(b, a) {
        b = "ngClass" + b; return aa(function (c, d, e) {
            function g(b) { if (a === !0 || c.$index % 2 === a) h && !ia(b, h) && i(h), f(b); h = V(b) } function i(a) { L(a) && !F(a) && (a = Za(a, function (a, b) { if (a) return b })); d.removeClass(F(a) ? a.join(" ") : a) } function f(a) {
                L(a) && !F(a) && (a = Za(a,
                    function (a, b) { if (a) return b })); a && d.addClass(F(a) ? a.join(" ") : a)
            } var h = p; c.$watch(e[b], g, !0); e.$observe("class", function () { var a = c.$eval(e[b]); g(a, a) }); b !== "ngClass" && c.$watch("$index", function (d, g) { var h = d & 1; h !== g & 1 && (h === a ? f(c.$eval(e[b])) : i(c.$eval(e[b]))) })
        })
    } var I = function (b) { return E(b) ? b.toLowerCase() : b }, oa = function (b) { return E(b) ? b.toUpperCase() : b }, Z = N((/msie (\d+)/.exec(I(navigator.userAgent)) || [])[1]), w, ga, ka = [].slice, Wa = [].push, Ea = Object.prototype.toString, mc = M.angular, Ha = M.angular || (M.angular =
        {}), Aa, hb, ba = ["0", "0", "0"]; q.$inject = []; qa.$inject = []; hb = Z < 9 ? function (b) { b = b.nodeName ? b : b[0]; return b.scopeName && b.scopeName != "HTML" ? oa(b.scopeName + ":" + b.nodeName) : b.nodeName } : function (b) { return b.nodeName ? b.nodeName : b[0].nodeName }; var sc = /[A-Z]/g, pd = { full: "1.1.5", major: 1, minor: 1, dot: 5, codeName: "triangle-squarification" }, Ka = R.cache = {}, Ja = R.expando = "ng-" + (new Date).getTime(), wc = 1, gc = M.document.addEventListener ? function (b, a, c) { b.addEventListener(a, c, !1) } : function (b, a, c) { b.attachEvent("on" + a, c) }, gb =
            M.document.removeEventListener ? function (b, a, c) { b.removeEventListener(a, c, !1) } : function (b, a, c) { b.detachEvent("on" + a, c) }, uc = /([\:\-\_]+(.))/g, vc = /^moz([A-Z])/, Ba = R.prototype = {
                ready: function (b) { function a() { c || (c = !0, b()) } var c = !1; T.readyState === "complete" ? setTimeout(a) : (this.bind("DOMContentLoaded", a), R(M).bind("load", a)) }, toString: function () { var b = []; n(this, function (a) { b.push("" + a) }); return "[" + b.join(", ") + "]" }, eq: function (b) { return b >= 0 ? w(this[b]) : w(this[this.length + b]) }, length: 0, push: Wa, sort: [].sort,
                splice: [].splice
            }, Na = {}; n("multiple,selected,checked,disabled,readOnly,required,open".split(","), function (b) { Na[I(b)] = b }); var Gb = {}; n("input,select,option,textarea,button,form,details".split(","), function (b) { Gb[oa(b)] = !0 }); n({
                data: Bb, inheritedData: Ma, scope: function (b) { return Ma(b, "$scope") }, controller: Eb, injector: function (b) { return Ma(b, "$injector") }, removeAttr: function (b, a) { b.removeAttribute(a) }, hasClass: La, css: function (b, a, c) {
                    a = Ia(a); if (B(c)) b.style[a] = c; else {
                        var d; Z <= 8 && (d = b.currentStyle && b.currentStyle[a],
                            d === "" && (d = "auto")); d = d || b.style[a]; Z <= 8 && (d = d === "" ? p : d); return d
                    }
                }, attr: function (b, a, c) { var d = I(a); if (Na[d]) if (B(c)) c ? (b[a] = !0, b.setAttribute(a, d)) : (b[a] = !1, b.removeAttribute(d)); else return b[a] || (b.attributes.getNamedItem(a) || q).specified ? d : p; else if (B(c)) b.setAttribute(a, c); else if (b.getAttribute) return b = b.getAttribute(a, 2), b === null ? p : b }, prop: function (b, a, c) { if (B(c)) b[a] = c; else return b[a] }, text: t(Z < 9 ? function (b, a) {
                    if (b.nodeType == 1) { if (C(a)) return b.innerText; b.innerText = a } else {
                        if (C(a)) return b.nodeValue;
                        b.nodeValue = a
                    }
                } : function (b, a) { if (C(a)) return b.textContent; b.textContent = a }, { $dv: "" }), val: function (b, a) { if (C(a)) return b.value; b.value = a }, html: function (b, a) { if (C(a)) return b.innerHTML; for (var c = 0, d = b.childNodes; c < d.length; c++)ya(d[c]); b.innerHTML = a }
            }, function (b, a) {
                R.prototype[a] = function (a, d) {
                    var e, g; if ((b.length == 2 && b !== La && b !== Eb ? a : d) === p) if (L(a)) { for (e = 0; e < this.length; e++)if (b === Bb) b(this[e], a); else for (g in a) b(this[e], g, a[g]); return this } else { if (this.length) return b(this[0], a, d) } else {
                        for (e = 0; e <
                            this.length; e++)b(this[e], a, d); return this
                    } return b.$dv
                }
            }); n({
                removeData: zb, dealoc: ya, bind: function a(c, d, e) {
                    var g = ca(c, "events"), i = ca(c, "handle"); g || ca(c, "events", g = {}); i || ca(c, "handle", i = xc(c, g)); n(d.split(" "), function (d) {
                        var h = g[d]; if (!h) {
                            if (d == "mouseenter" || d == "mouseleave") {
                                var j = T.body.contains || T.body.compareDocumentPosition ? function (a, c) {
                                    var d = a.nodeType === 9 ? a.documentElement : a, e = c && c.parentNode; return a === e || !(!e || !(e.nodeType === 1 && (d.contains ? d.contains(e) : a.compareDocumentPosition && a.compareDocumentPosition(e) &
                                        16)))
                                } : function (a, c) { if (c) for (; c = c.parentNode;)if (c === a) return !0; return !1 }; g[d] = []; a(c, { mouseleave: "mouseout", mouseenter: "mouseover" }[d], function (a) { var c = a.relatedTarget; (!c || c !== this && !j(this, c)) && i(a, d) })
                            } else gc(c, d, i), g[d] = []; h = g[d]
                        } h.push(e)
                    })
                }, unbind: Ab, replaceWith: function (a, c) { var d, e = a.parentNode; ya(a); n(new R(c), function (c) { d ? e.insertBefore(c, d.nextSibling) : e.replaceChild(c, a); d = c }) }, children: function (a) { var c = []; n(a.childNodes, function (a) { a.nodeType === 1 && c.push(a) }); return c }, contents: function (a) {
                    return a.childNodes ||
                        []
                }, append: function (a, c) { n(new R(c), function (c) { (a.nodeType === 1 || a.nodeType === 11) && a.appendChild(c) }) }, prepend: function (a, c) { if (a.nodeType === 1) { var d = a.firstChild; n(new R(c), function (c) { d ? a.insertBefore(c, d) : (a.appendChild(c), d = c) }) } }, wrap: function (a, c) { var c = w(c)[0], d = a.parentNode; d && d.replaceChild(c, a); c.appendChild(a) }, remove: function (a) { ya(a); var c = a.parentNode; c && c.removeChild(a) }, after: function (a, c) { var d = a, e = a.parentNode; n(new R(c), function (a) { e.insertBefore(a, d.nextSibling); d = a }) }, addClass: Db,
                removeClass: Cb, toggleClass: function (a, c, d) { C(d) && (d = !La(a, c)); (d ? Db : Cb)(a, c) }, parent: function (a) { return (a = a.parentNode) && a.nodeType !== 11 ? a : null }, next: function (a) { if (a.nextElementSibling) return a.nextElementSibling; for (a = a.nextSibling; a != null && a.nodeType !== 1;)a = a.nextSibling; return a }, find: function (a, c) { return a.getElementsByTagName(c) }, clone: fb, triggerHandler: function (a, c) { var d = (ca(a, "events") || {})[c]; n(d, function (c) { c.call(a, { preventDefault: q }) }) }
            }, function (a, c) {
                R.prototype[c] = function (c, e) {
                    for (var g,
                        i = 0; i < this.length; i++)g == p ? (g = a(this[i], c, e), g !== p && (g = w(g))) : eb(g, a(this[i], c, e)); return g == p ? this : g
                }
            }); za.prototype = { put: function (a, c) { this[la(a)] = c }, get: function (a) { return this[la(a)] }, remove: function (a) { var c = this[a = la(a)]; delete this[a]; return c } }; var zc = /^function\s*[^\(]*\(\s*([^\)]*)\)/m, Ac = /,/, Bc = /^\s*(_?)(\S+?)\1\s*$/, yc = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg; Ib.$inject = ["$provide"]; var qd = function () {
                var a = "$ngAnimateController", c = { running: !0 }; this.$get = ["$animation", "$window", "$sniffer", "$rootElement",
                    "$rootScope", function (d, e, g, i) {
                        i.data(a, c); i = function (c, i) {
                            function j(j, k, o) {
                                return function (m, r, p) {
                                    function x(a) { var c = 0, a = E(a) ? a.split(/\s*,\s*/) : []; n(a, function (a) { c = Math.max(parseFloat(a) || 0, c) }); return c } function t() {
                                        m.addClass(K); if ($) $(m, v, P); else if (H(e.getComputedStyle)) {
                                            var a = g.vendorPrefix + "Animation", c = g.vendorPrefix + "Transition", d = 0; n(m, function (f) {
                                                if (f.nodeType == 1) {
                                                    var g = "transition", i = c, j = 1, h = e.getComputedStyle(f) || {}; if (parseFloat(h.animationDuration) > 0 || parseFloat(h[a + "Duration"]) >
                                                        0) g = "animation", i = a, j = Math.max(parseInt(h[g + "IterationCount"]) || 0, parseInt(h[i + "IterationCount"]) || 0, j); f = Math.max(x(h[g + "Delay"]), x(h[i + "Delay"])); g = Math.max(x(h[g + "Duration"]), x(h[i + "Duration"])); d = Math.max(f + j * g, d)
                                                }
                                            }); e.setTimeout(v, d * 1E3)
                                        } else v()
                                    } function v() { if (!v.run) v.run = !0, o(m, r, p), m.removeClass(w), m.removeClass(K), m.removeData(a) } var A = c.$eval(i.ngAnimate), w = A ? L(A) ? A[j] : A + "-" + j : "", D = d(w), A = D && D.setup, $ = D && D.start, D = D && D.cancel; if (w) {
                                        var K = w + "-active"; r || (r = p ? p.parent() : m.parent()); if (!g.transitions &&
                                            !A && !$ || (r.inheritedData(a) || q).running) k(m, r, p), o(m, r, p); else { var O = m.data(a) || {}; O.running && ((D || q)(m), O.done()); m.data(a, { running: !0, done: v }); m.addClass(w); k(m, r, p); if (m.length == 0) return v(); var P = (A || q)(m); e.setTimeout(t, 1) }
                                    } else k(m, r, p), o(m, r, p)
                                }
                            } function m(a, c, d) { d ? d.after(a) : c.append(a) } var k = {}; k.enter = j("enter", m, q); k.leave = j("leave", q, function (a) { a.remove() }); k.move = j("move", function (a, c, d) { m(a, c, d) }, q); k.show = j("show", function (a) { a.css("display", "") }, q); k.hide = j("hide", q, function (a) {
                                a.css("display",
                                    "none")
                            }); k.animate = function (a, c) { j(a, q, q)(c) }; return k
                        }; i.enabled = function (a) { if (arguments.length) c.running = !a; return !c.running }; return i
                    }]
            }, Kb = "Non-assignable model expression: "; Jb.$inject = ["$provide"]; var Ic = /^(x[\:\-_]|data[\:\-_])/i, jb = /^([^:]+):\/\/(\w+:{0,1}\w*@)?(\{?[\w\.-]*\}?)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/, Pb = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/, Oa = { http: 80, https: 443, ftp: 21 }; Rb.prototype = lb.prototype = Qb.prototype = {
                $$replace: !1, absUrl: Pa("$$absUrl"), url: function (a, c) {
                    if (C(a)) return this.$$url;
                    var d = Pb.exec(a); d[1] && this.path(decodeURIComponent(d[1])); if (d[2] || d[1]) this.search(d[3] || ""); this.hash(d[5] || "", c); return this
                }, protocol: Pa("$$protocol"), host: Pa("$$host"), port: Pa("$$port"), path: Sb("$$path", function (a) { return a.charAt(0) == "/" ? a : "/" + a }), search: function (a, c) { if (C(a)) return this.$$search; B(c) ? c === null ? delete this.$$search[a] : this.$$search[a] = c : this.$$search = E(a) ? vb(a) : a; this.$$compose(); return this }, hash: Sb("$$hash", qa), replace: function () { this.$$replace = !0; return this }
            }; var Da = {
                "null": function () { return null },
                "true": function () { return !0 }, "false": function () { return !1 }, undefined: q, "+": function (a, c, d, e) { d = d(a, c); e = e(a, c); return B(d) ? B(e) ? d + e : d : B(e) ? e : p }, "-": function (a, c, d, e) { d = d(a, c); e = e(a, c); return (B(d) ? d : 0) - (B(e) ? e : 0) }, "*": function (a, c, d, e) { return d(a, c) * e(a, c) }, "/": function (a, c, d, e) { return d(a, c) / e(a, c) }, "%": function (a, c, d, e) { return d(a, c) % e(a, c) }, "^": function (a, c, d, e) { return d(a, c) ^ e(a, c) }, "=": q, "===": function (a, c, d, e) { return d(a, c) === e(a, c) }, "!==": function (a, c, d, e) { return d(a, c) !== e(a, c) }, "==": function (a,
                    c, d, e) { return d(a, c) == e(a, c) }, "!=": function (a, c, d, e) { return d(a, c) != e(a, c) }, "<": function (a, c, d, e) { return d(a, c) < e(a, c) }, ">": function (a, c, d, e) { return d(a, c) > e(a, c) }, "<=": function (a, c, d, e) { return d(a, c) <= e(a, c) }, ">=": function (a, c, d, e) { return d(a, c) >= e(a, c) }, "&&": function (a, c, d, e) { return d(a, c) && e(a, c) }, "||": function (a, c, d, e) { return d(a, c) || e(a, c) }, "&": function (a, c, d, e) { return d(a, c) & e(a, c) }, "|": function (a, c, d, e) { return e(a, c)(a, c, d(a, c)) }, "!": function (a, c, d) { return !d(a, c) }
            }, Qc = {
                n: "\n", f: "\u000c", r: "\r",
                t: "\t", v: "\u000b", "'": "'", '"': '"'
            }, mb = {}, ad = /^(([^:]+):)?\/\/(\w+:{0,1}\w*@)?([\w\.-]*)?(:([0-9]+))?(.*)$/, ed = M.XMLHttpRequest || function () { try { return new ActiveXObject("Msxml2.XMLHTTP.6.0") } catch (a) { } try { return new ActiveXObject("Msxml2.XMLHTTP.3.0") } catch (c) { } try { return new ActiveXObject("Msxml2.XMLHTTP") } catch (d) { } throw Error("This browser does not support XMLHttpRequest."); }; Zb.$inject = ["$provide"]; $b.$inject = ["$locale"]; bc.$inject = ["$locale"]; var ec = ".", od = {
                yyyy: Q("FullYear", 4), yy: Q("FullYear",
                    2, 0, !0), y: Q("FullYear", 1), MMMM: Qa("Month"), MMM: Qa("Month", !0), MM: Q("Month", 2, 1), M: Q("Month", 1, 1), dd: Q("Date", 2), d: Q("Date", 1), HH: Q("Hours", 2), H: Q("Hours", 1), hh: Q("Hours", 2, -12), h: Q("Hours", 1, -12), mm: Q("Minutes", 2), m: Q("Minutes", 1), ss: Q("Seconds", 2), s: Q("Seconds", 1), sss: Q("Milliseconds", 3), EEEE: Qa("Day"), EEE: Qa("Day", !0), a: function (a, c) { return a.getHours() < 12 ? c.AMPMS[0] : c.AMPMS[1] }, Z: function (a) {
                        var a = -1 * a.getTimezoneOffset(), c = a >= 0 ? "+" : ""; c += nb(Math[a > 0 ? "floor" : "ceil"](a / 60), 2) + nb(Math.abs(a % 60),
                            2); return c
                    }
            }, nd = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/, md = /^\d+$/; ac.$inject = ["$locale"]; var kd = S(I), ld = S(oa); cc.$inject = ["$parse"]; var rd = S({ restrict: "E", compile: function (a, c) { Z <= 8 && (!c.href && !c.name && c.$set("href", ""), a.append(T.createComment("IE fix"))); return function (a, c) { c.bind("click", function (a) { c.attr("href") || a.preventDefault() }) } } }), pb = {}; n(Na, function (a, c) {
                var d = da("ng-" + c); pb[d] = function () {
                    return {
                        priority: 100, compile: function () {
                            return function (a,
                                g, i) { a.$watch(i[d], function (a) { i.$set(c, !!a) }) }
                        }
                    }
                }
            }); n(["src", "srcset", "href"], function (a) { var c = da("ng-" + a); pb[c] = function () { return { priority: 99, link: function (d, e, g) { g.$observe(c, function (c) { c && (g.$set(a, c), Z && e.prop(a, g[a])) }) } } } }); var Ta = { $addControl: q, $removeControl: q, $setValidity: q, $setDirty: q, $setPristine: q }; fc.$inject = ["$element", "$attrs", "$scope"]; var Wa = function (a) {
                return ["$timeout", function (c) {
                    var d = {
                        name: "form", restrict: "E", controller: fc, compile: function () {
                            return {
                                pre: function (a, d, i, f) {
                                    if (!i.action) {
                                        var h =
                                            function (a) { a.preventDefault ? a.preventDefault() : a.returnValue = !1 }; gc(d[0], "submit", h); d.bind("$destroy", function () { c(function () { gb(d[0], "submit", h) }, 0, !1) })
                                    } var j = d.parent().controller("form"), m = i.name || i.ngForm; m && (a[m] = f); j && d.bind("$destroy", function () { j.$removeControl(f); m && (a[m] = p); t(f, Ta) })
                                }
                            }
                        }
                    }; return a ? t(V(d), { restrict: "EAC" }) : d
                }]
            }, sd = Wa(), td = Wa(!0), ud = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/, vd = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/,
                wd = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/, hc = {
                    text: Va, number: function (a, c, d, e, g, i) {
                        Va(a, c, d, e, g, i); e.$parsers.push(function (a) { var c = X(a); return c || wd.test(a) ? (e.$setValidity("number", !0), a === "" ? null : c ? a : parseFloat(a)) : (e.$setValidity("number", !1), p) }); e.$formatters.push(function (a) { return X(a) ? "" : "" + a }); if (d.min) { var f = parseFloat(d.min), a = function (a) { return !X(a) && a < f ? (e.$setValidity("min", !1), p) : (e.$setValidity("min", !0), a) }; e.$parsers.push(a); e.$formatters.push(a) } if (d.max) {
                            var h = parseFloat(d.max),
                                d = function (a) { return !X(a) && a > h ? (e.$setValidity("max", !1), p) : (e.$setValidity("max", !0), a) }; e.$parsers.push(d); e.$formatters.push(d)
                        } e.$formatters.push(function (a) { return X(a) || Ya(a) ? (e.$setValidity("number", !0), a) : (e.$setValidity("number", !1), p) })
                    }, url: function (a, c, d, e, g, i) { Va(a, c, d, e, g, i); a = function (a) { return X(a) || ud.test(a) ? (e.$setValidity("url", !0), a) : (e.$setValidity("url", !1), p) }; e.$formatters.push(a); e.$parsers.push(a) }, email: function (a, c, d, e, g, i) {
                        Va(a, c, d, e, g, i); a = function (a) {
                            return X(a) || vd.test(a) ?
                                (e.$setValidity("email", !0), a) : (e.$setValidity("email", !1), p)
                        }; e.$formatters.push(a); e.$parsers.push(a)
                    }, radio: function (a, c, d, e) { C(d.name) && c.attr("name", Fa()); c.bind("click", function () { c[0].checked && a.$apply(function () { e.$setViewValue(d.value) }) }); e.$render = function () { c[0].checked = d.value == e.$viewValue }; d.$observe("value", e.$render) }, checkbox: function (a, c, d, e) {
                        var g = d.ngTrueValue, i = d.ngFalseValue; E(g) || (g = !0); E(i) || (i = !1); c.bind("click", function () { a.$apply(function () { e.$setViewValue(c[0].checked) }) });
                        e.$render = function () { c[0].checked = e.$viewValue }; e.$formatters.push(function (a) { return a === g }); e.$parsers.push(function (a) { return a ? g : i })
                    }, hidden: q, button: q, submit: q, reset: q
                }, ic = ["$browser", "$sniffer", function (a, c) { return { restrict: "E", require: "?ngModel", link: function (d, e, g, i) { i && (hc[I(g.type)] || hc.text)(d, e, g, i, c, a) } } }], Sa = "ng-valid", Ra = "ng-invalid", pa = "ng-pristine", Ua = "ng-dirty", xd = ["$scope", "$exceptionHandler", "$attrs", "$element", "$parse", function (a, c, d, e, g) {
                    function i(a, c) {
                        c = c ? "-" + bb(c, "-") : "";
                        e.removeClass((a ? Ra : Sa) + c).addClass((a ? Sa : Ra) + c)
                    } this.$modelValue = this.$viewValue = Number.NaN; this.$parsers = []; this.$formatters = []; this.$viewChangeListeners = []; this.$pristine = !0; this.$dirty = !1; this.$valid = !0; this.$invalid = !1; this.$name = d.name; var f = g(d.ngModel), h = f.assign; if (!h) throw Error(Kb + d.ngModel + " (" + va(e) + ")"); this.$render = q; var j = e.inheritedData("$formController") || Ta, m = 0, k = this.$error = {}; e.addClass(pa); i(!0); this.$setValidity = function (a, c) {
                        if (k[a] !== !c) {
                            if (c) {
                                if (k[a] && m--, !m) i(!0), this.$valid =
                                    !0, this.$invalid = !1
                            } else i(!1), this.$invalid = !0, this.$valid = !1, m++; k[a] = !c; i(c, a); j.$setValidity(a, c, this)
                        }
                    }; this.$setPristine = function () { this.$dirty = !1; this.$pristine = !0; e.removeClass(Ua).addClass(pa) }; this.$setViewValue = function (d) { this.$viewValue = d; if (this.$pristine) this.$dirty = !0, this.$pristine = !1, e.removeClass(pa).addClass(Ua), j.$setDirty(); n(this.$parsers, function (a) { d = a(d) }); if (this.$modelValue !== d) this.$modelValue = d, h(a, d), n(this.$viewChangeListeners, function (a) { try { a() } catch (d) { c(d) } }) };
                    var l = this; a.$watch(function () { var c = f(a); if (l.$modelValue !== c) { var d = l.$formatters, e = d.length; for (l.$modelValue = c; e--;)c = d[e](c); if (l.$viewValue !== c) l.$viewValue = c, l.$render() } })
                }], yd = function () { return { require: ["ngModel", "^?form"], controller: xd, link: function (a, c, d, e) { var g = e[0], i = e[1] || Ta; i.$addControl(g); c.bind("$destroy", function () { i.$removeControl(g) }) } } }, zd = S({ require: "ngModel", link: function (a, c, d, e) { e.$viewChangeListeners.push(function () { a.$eval(d.ngChange) }) } }), jc = function () {
                    return {
                        require: "?ngModel",
                        link: function (a, c, d, e) { if (e) { d.required = !0; var g = function (a) { if (d.required && (X(a) || a === !1)) e.$setValidity("required", !1); else return e.$setValidity("required", !0), a }; e.$formatters.push(g); e.$parsers.unshift(g); d.$observe("required", function () { g(e.$viewValue) }) } }
                    }
                }, Ad = function () {
                    return {
                        require: "ngModel", link: function (a, c, d, e) {
                            var g = (a = /\/(.*)\//.exec(d.ngList)) && RegExp(a[1]) || d.ngList || ","; e.$parsers.push(function (a) { var c = []; a && n(a.split(g), function (a) { a && c.push(U(a)) }); return c }); e.$formatters.push(function (a) {
                                return F(a) ?
                                    a.join(", ") : p
                            })
                        }
                    }
                }, Bd = /^(true|false|\d+)$/, Cd = function () { return { priority: 100, compile: function (a, c) { return Bd.test(c.ngValue) ? function (a, c, g) { g.$set("value", a.$eval(g.ngValue)) } : function (a, c, g) { a.$watch(g.ngValue, function (a) { g.$set("value", a, !1) }) } } } }, Dd = aa(function (a, c, d) { c.addClass("ng-binding").data("$binding", d.ngBind); a.$watch(d.ngBind, function (a) { c.text(a == p ? "" : a) }) }), Ed = ["$interpolate", function (a) {
                    return function (c, d, e) {
                        c = a(d.attr(e.$attr.ngBindTemplate)); d.addClass("ng-binding").data("$binding",
                            c); e.$observe("ngBindTemplate", function (a) { d.text(a) })
                    }
                }], Fd = [function () { return function (a, c, d) { c.addClass("ng-binding").data("$binding", d.ngBindHtmlUnsafe); a.$watch(d.ngBindHtmlUnsafe, function (a) { c.html(a || "") }) } }], Gd = ob("", !0), Hd = ob("Odd", 0), Id = ob("Even", 1), Jd = aa({ compile: function (a, c) { c.$set("ngCloak", p); a.removeClass("ng-cloak") } }), Kd = [function () { return { scope: !0, controller: "@" } }], Ld = ["$sniffer", function (a) { return { priority: 1E3, compile: function () { a.csp = !0 } } }], kc = {}; n("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress".split(" "),
                    function (a) { var c = da("ng-" + a); kc[c] = ["$parse", function (d) { return function (e, g, i) { var f = d(i[c]); g.bind(I(a), function (a) { e.$apply(function () { f(e, { $event: a }) }) }) } }] }); var Md = aa(function (a, c, d) { c.bind("submit", function () { a.$apply(d.ngSubmit) }) }), Nd = ["$animator", function (a) {
                        return {
                            transclude: "element", priority: 1E3, terminal: !0, restrict: "A", compile: function (c, d, e) {
                                return function (c, d, f) {
                                    var h = a(c, f), j, m; c.$watch(f.ngIf, function (a) {
                                        j && (h.leave(j), j = p); m && (m.$destroy(), m = p); ua(a) && (m = c.$new(), e(m, function (a) {
                                            j =
                                                a; h.enter(a, d.parent(), d)
                                        }))
                                    })
                                }
                            }
                        }
                    }], Od = ["$http", "$templateCache", "$anchorScroll", "$compile", "$animator", function (a, c, d, e, g) {
                        return {
                            restrict: "ECA", terminal: !0, compile: function (i, f) {
                                var h = f.ngInclude || f.src, j = f.onload || "", m = f.autoscroll; return function (f, i, n) {
                                    var o = g(f, n), p = 0, r, t = function () { r && (r.$destroy(), r = null); o.leave(i.contents(), i) }; f.$watch(h, function (g) {
                                        var h = ++p; g ? (a.get(g, { cache: c }).success(function (a) {
                                            h === p && (r && r.$destroy(), r = f.$new(), o.leave(i.contents(), i), a = w("<div/>").html(a).contents(),
                                                o.enter(a, i), e(a)(r), B(m) && (!m || f.$eval(m)) && d(), r.$emit("$includeContentLoaded"), f.$eval(j))
                                        }).error(function () { h === p && t() }), f.$emit("$includeContentRequested")) : t()
                                    })
                                }
                            }
                        }
                    }], Pd = aa({ compile: function () { return { pre: function (a, c, d) { a.$eval(d.ngInit) } } } }), Qd = aa({ terminal: !0, priority: 1E3 }), Rd = ["$locale", "$interpolate", function (a, c) {
                        var d = /{}/g; return {
                            restrict: "EA", link: function (e, g, i) {
                                var f = i.count, h = g.attr(i.$attr.when), j = i.offset || 0, m = e.$eval(h), k = {}, l = c.startSymbol(), p = c.endSymbol(); n(m, function (a, e) {
                                    k[e] =
                                        c(a.replace(d, l + f + "-" + j + p))
                                }); e.$watch(function () { var c = parseFloat(e.$eval(f)); return isNaN(c) ? "" : (c in m || (c = a.pluralCat(c - j)), k[c](e, g, !0)) }, function (a) { g.text(a) })
                            }
                        }
                    }], Sd = ["$parse", "$animator", function (a, c) {
                        return {
                            transclude: "element", priority: 1E3, terminal: !0, compile: function (d, e, g) {
                                return function (d, e, h) {
                                    var j = c(d, h), m = h.ngRepeat, k = m.match(/^\s*(.+)\s+in\s+(.*?)\s*(\s+track\s+by\s+(.+)\s*)?$/), l, p, o, z, r, t = { $id: la }; if (!k) throw Error("Expected ngRepeat in form of '_item_ in _collection_[ track by _id_]' but got '" +
                                        m + "'."); h = k[1]; o = k[2]; (k = k[4]) ? (l = a(k), p = function (a, c, e) { r && (t[r] = a); t[z] = c; t.$index = e; return l(d, t) }) : p = function (a, c) { return la(c) }; k = h.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/); if (!k) throw Error("'item' in 'item in collection' should be identifier or (key, value) but got '" + h + "'."); z = k[3] || k[1]; r = k[2]; var x = {}; d.$watchCollection(o, function (a) {
                                            var c, h, k = e, l, o = {}, t, q, w, s, B, y, C = []; if (Xa(a)) B = a; else { B = []; for (w in a) a.hasOwnProperty(w) && w.charAt(0) != "$" && B.push(w); B.sort() } t = B.length; h =
                                                C.length = B.length; for (c = 0; c < h; c++)if (w = a === B ? c : B[c], s = a[w], l = p(w, s, c), x.hasOwnProperty(l)) y = x[l], delete x[l], o[l] = y, C[c] = y; else if (o.hasOwnProperty(l)) throw n(C, function (a) { a && a.element && (x[a.id] = a) }), Error("Duplicates in a repeater are not allowed. Repeater: " + m + " key: " + l); else C[c] = { id: l }, o[l] = !1; for (w in x) if (x.hasOwnProperty(w)) y = x[w], j.leave(y.element), y.element[0].$$NG_REMOVED = !0, y.scope.$destroy(); c = 0; for (h = B.length; c < h; c++) {
                                                    w = a === B ? c : B[c]; s = a[w]; y = C[c]; if (y.element) {
                                                        q = y.scope; l = k[0]; do l =
                                                            l.nextSibling; while (l && l.$$NG_REMOVED); y.element[0] != l && j.move(y.element, null, k); k = y.element
                                                    } else q = d.$new(); q[z] = s; r && (q[r] = w); q.$index = c; q.$first = c === 0; q.$last = c === t - 1; q.$middle = !(q.$first || q.$last); y.element || g(q, function (a) { j.enter(a, null, k); k = a; y.scope = q; y.element = a; o[y.id] = y })
                                                } x = o
                                        })
                                }
                            }
                        }
                    }], Td = ["$animator", function (a) { return function (c, d, e) { var g = a(c, e); c.$watch(e.ngShow, function (a) { g[ua(a) ? "show" : "hide"](d) }) } }], Ud = ["$animator", function (a) {
                        return function (c, d, e) {
                            var g = a(c, e); c.$watch(e.ngHide,
                                function (a) { g[ua(a) ? "hide" : "show"](d) })
                        }
                    }], Vd = aa(function (a, c, d) { a.$watch(d.ngStyle, function (a, d) { d && a !== d && n(d, function (a, d) { c.css(d, "") }); a && c.css(a) }, !0) }), Wd = ["$animator", function (a) {
                        return {
                            restrict: "EA", require: "ngSwitch", controller: ["$scope", function () { this.cases = {} }], link: function (c, d, e, g) {
                                var i = a(c, e), f, h, j = []; c.$watch(e.ngSwitch || e.on, function (a) {
                                    for (var d = 0, l = j.length; d < l; d++)j[d].$destroy(), i.leave(h[d]); h = []; j = []; if (f = g.cases["!" + a] || g.cases["?"]) c.$eval(e.change), n(f, function (a) {
                                        var d =
                                            c.$new(); j.push(d); a.transclude(d, function (c) { var d = a.element; h.push(c); i.enter(c, d.parent(), d) })
                                    })
                                })
                            }
                        }
                    }], Xd = aa({ transclude: "element", priority: 500, require: "^ngSwitch", compile: function (a, c, d) { return function (a, g, i, f) { f.cases["!" + c.ngSwitchWhen] = f.cases["!" + c.ngSwitchWhen] || []; f.cases["!" + c.ngSwitchWhen].push({ transclude: d, element: g }) } } }), Yd = aa({
                        transclude: "element", priority: 500, require: "^ngSwitch", compile: function (a, c, d) {
                            return function (a, c, i, f) {
                                f.cases["?"] = f.cases["?"] || []; f.cases["?"].push({
                                    transclude: d,
                                    element: c
                                })
                            }
                        }
                    }), Zd = aa({ controller: ["$transclude", "$element", function (a, c) { a(function (a) { c.append(a) }) }] }), $d = ["$http", "$templateCache", "$route", "$anchorScroll", "$compile", "$controller", "$animator", function (a, c, d, e, g, i, f) {
                        return {
                            restrict: "ECA", terminal: !0, link: function (a, c, m) {
                                function k() {
                                    var f = d.current && d.current.locals, k = f && f.$template; if (k) {
                                        o.leave(c.contents(), c); l && (l.$destroy(), l = null); k = w("<div></div>").html(k).contents(); o.enter(k, c); var k = g(k), m = d.current; l = m.scope = a.$new(); if (m.controller) f.$scope =
                                            l, f = i(m.controller, f), m.controllerAs && (l[m.controllerAs] = f), c.children().data("$ngControllerController", f); k(l); l.$emit("$viewContentLoaded"); l.$eval(n); e()
                                    } else o.leave(c.contents(), c), l && (l.$destroy(), l = null)
                                } var l, n = m.onload || "", o = f(a, m); a.$on("$routeChangeSuccess", k); k()
                            }
                        }
                    }], ae = ["$templateCache", function (a) { return { restrict: "E", terminal: !0, compile: function (c, d) { d.type == "text/ng-template" && a.put(d.id, c[0].text) } } }], be = S({ terminal: !0 }), ce = ["$compile", "$parse", function (a, c) {
                        var d = /^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w\d]*)|(?:\(\s*([\$\w][\$\w\d]*)\s*,\s*([\$\w][\$\w\d]*)\s*\)))\s+in\s+(.*?)(?:\s+track\s+by\s+(.*?))?$/,
                            e = { $setViewValue: q }; return {
                                restrict: "E", require: ["select", "?ngModel"], controller: ["$element", "$scope", "$attrs", function (a, c, d) {
                                    var h = this, j = {}, m = e, k; h.databound = d.ngModel; h.init = function (a, c, d) { m = a; k = d }; h.addOption = function (c) { j[c] = !0; m.$viewValue == c && (a.val(c), k.parent() && k.remove()) }; h.removeOption = function (a) { this.hasOption(a) && (delete j[a], m.$viewValue == a && this.renderUnknownOption(a)) }; h.renderUnknownOption = function (c) { c = "? " + la(c) + " ?"; k.val(c); a.prepend(k); a.val(c); k.prop("selected", !0) }; h.hasOption =
                                        function (a) { return j.hasOwnProperty(a) }; c.$on("$destroy", function () { h.renderUnknownOption = q })
                                }], link: function (e, i, f, h) {
                                    function j(a, c, d, e) { d.$render = function () { var a = d.$viewValue; e.hasOption(a) ? (v.parent() && v.remove(), c.val(a), a === "" && t.prop("selected", !0)) : C(a) && t ? c.val("") : e.renderUnknownOption(a) }; c.bind("change", function () { a.$apply(function () { v.parent() && v.remove(); d.$setViewValue(c.val()) }) }) } function m(a, c, d) {
                                        var e; d.$render = function () {
                                            var a = new za(d.$viewValue); n(c.find("option"), function (c) {
                                                c.selected =
                                                    B(a.get(c.value))
                                            })
                                        }; a.$watch(function () { ia(e, d.$viewValue) || (e = V(d.$viewValue), d.$render()) }); c.bind("change", function () { a.$apply(function () { var a = []; n(c.find("option"), function (c) { c.selected && a.push(c.value) }); d.$setViewValue(a) }) })
                                    } function k(e, f, g) {
                                        function i() {
                                            var a = { "": [] }, c = [""], d, h, q, v, s; q = g.$modelValue; v = u(e) || []; var z = l ? qb(v) : v, B, y, A; y = {}; s = !1; var C, D; if (o) if (t && F(q)) { s = new za([]); for (h = 0; h < q.length; h++)y[k] = q[h], s.put(t(e, y), q[h]) } else s = new za(q); for (A = 0; B = z.length, A < B; A++) {
                                                y[k] = v[l ? y[l] =
                                                    z[A] : A]; d = m(e, y) || ""; if (!(h = a[d])) h = a[d] = [], c.push(d); o ? d = s.remove(t ? t(e, y) : n(e, y)) != p : (t ? (d = {}, d[k] = q, d = t(e, d) === t(e, y)) : d = q === n(e, y), s = s || d); C = j(e, y); C = C === p ? "" : C; h.push({ id: t ? t(e, y) : l ? z[A] : A, label: C, selected: d })
                                            } o || (r || q === null ? a[""].unshift({ id: "", label: "", selected: !s }) : s || a[""].unshift({ id: "?", label: "", selected: !0 })); y = 0; for (z = c.length; y < z; y++) {
                                                d = c[y]; h = a[d]; if (w.length <= y) q = { element: E.clone().attr("label", d), label: h.label }, v = [q], w.push(v), f.append(q.element); else if (v = w[y], q = v[0], q.label != d) q.element.attr("label",
                                                    q.label = d); C = null; A = 0; for (B = h.length; A < B; A++)if (d = h[A], s = v[A + 1]) { C = s.element; if (s.label !== d.label) C.text(s.label = d.label); if (s.id !== d.id) C.val(s.id = d.id); if (C[0].selected !== d.selected) C.prop("selected", s.selected = d.selected) } else d.id === "" && r ? D = r : (D = x.clone()).val(d.id).attr("selected", d.selected).text(d.label), v.push({ element: D, label: d.label, id: d.id, selected: d.selected }), C ? C.after(D) : q.element.append(D), C = D; for (A++; v.length > A;)v.pop().element.remove()
                                            } for (; w.length > y;)w.pop()[0].element.remove()
                                        }
                                        var h; if (!(h = q.match(d))) throw Error("Expected ngOptions in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_ (track by _expr_)?' but got '" + q + "'."); var j = c(h[2] || h[1]), k = h[4] || h[6], l = h[5], m = c(h[3] || ""), n = c(h[2] ? h[1] : k), u = c(h[7]), t = h[8] ? c(h[8]) : null, w = [[{ element: f, label: "" }]]; r && (a(r)(e), r.removeClass("ng-scope"), r.remove()); f.html(""); f.bind("change", function () {
                                            e.$apply(function () {
                                                var a, c = u(e) || [], d = {}, h, i, j, m, q, r; if (o) {
                                                    i = []; m = 0; for (r = w.length; m < r; m++) {
                                                        a = w[m]; j = 1; for (q = a.length; j <
                                                            q; j++)if ((h = a[j].element)[0].selected) { h = h.val(); l && (d[l] = h); if (t) for (var s = 0; s < c.length; s++) { if (d[k] = c[s], t(e, d) == h) break } else d[k] = c[h]; i.push(n(e, d)) }
                                                    }
                                                } else if (h = f.val(), h == "?") i = p; else if (h == "") i = null; else if (t) for (s = 0; s < c.length; s++) { if (d[k] = c[s], t(e, d) == h) { i = n(e, d); break } } else d[k] = c[h], l && (d[l] = h), i = n(e, d); g.$setViewValue(i)
                                            })
                                        }); g.$render = i; e.$watch(i)
                                    } if (h[1]) {
                                        for (var l = h[0], u = h[1], o = f.multiple, q = f.ngOptions, r = !1, t, x = w(T.createElement("option")), E = w(T.createElement("optgroup")), v = x.clone(),
                                            h = 0, A = i.children(), G = A.length; h < G; h++)if (A[h].value == "") { t = r = A.eq(h); break } l.init(u, r, v); if (o && (f.required || f.ngRequired)) { var D = function (a) { u.$setValidity("required", !f.required || a && a.length); return a }; u.$parsers.push(D); u.$formatters.unshift(D); f.$observe("required", function () { D(u.$viewValue) }) } q ? k(e, i, u) : o ? m(e, i, u) : j(e, i, u, l)
                                    }
                                }
                            }
                    }], de = ["$interpolate", function (a) {
                        var c = { addOption: q, removeOption: q }; return {
                            restrict: "E", priority: 100, compile: function (d, e) {
                                if (C(e.value)) {
                                    var g = a(d.text(), !0); g || e.$set("value",
                                        d.text())
                                } return function (a, d, e) { var j = d.parent(), m = j.data("$selectController") || j.parent().data("$selectController"); m && m.databound ? d.prop("selected", !1) : m = c; g ? a.$watch(g, function (a, c) { e.$set("value", a); a !== c && m.removeOption(c); m.addOption(a) }) : m.addOption(e.value); d.bind("$destroy", function () { m.removeOption(e.value) }) }
                            }
                        }
                    }], ee = S({ restrict: "E", terminal: !0 }); (ga = M.jQuery) ? (w = ga, t(ga.fn, { scope: Ba.scope, controller: Ba.controller, injector: Ba.injector, inheritedData: Ba.inheritedData }), db("remove", !0), db("empty"),
                        db("html")) : w = R; Ha.element = w; (function (a) {
                            t(a, { bootstrap: xb, copy: V, extend: t, equals: ia, element: w, forEach: n, injector: yb, noop: q, bind: $a, toJson: ha, fromJson: ub, identity: qa, isUndefined: C, isDefined: B, isString: E, isFunction: H, isObject: L, isNumber: Ya, isElement: oc, isArray: F, version: pd, isDate: ra, lowercase: I, uppercase: oa, callbacks: { counter: 0 }, noConflict: lc }); Aa = tc(M); try { Aa("ngLocale") } catch (c) { Aa("ngLocale", []).provider("$locale", fd) } Aa("ng", ["ngLocale"], ["$provide", function (a) {
                                a.provider("$compile", Jb).directive({
                                    a: rd,
                                    input: ic, textarea: ic, form: sd, script: ae, select: ce, style: ee, option: de, ngBind: Dd, ngBindHtmlUnsafe: Fd, ngBindTemplate: Ed, ngClass: Gd, ngClassEven: Id, ngClassOdd: Hd, ngCsp: Ld, ngCloak: Jd, ngController: Kd, ngForm: td, ngHide: Ud, ngIf: Nd, ngInclude: Od, ngInit: Pd, ngNonBindable: Qd, ngPluralize: Rd, ngRepeat: Sd, ngShow: Td, ngSubmit: Md, ngStyle: Vd, ngSwitch: Wd, ngSwitchWhen: Xd, ngSwitchDefault: Yd, ngOptions: be, ngView: $d, ngTransclude: Zd, ngModel: yd, ngList: Ad, ngChange: zd, required: jc, ngRequired: jc, ngValue: Cd
                                }).directive(pb).directive(kc);
                                a.provider({ $anchorScroll: Cc, $animation: Ib, $animator: qd, $browser: Ec, $cacheFactory: Fc, $controller: Jc, $document: Kc, $exceptionHandler: Lc, $filter: Zb, $interpolate: Mc, $http: bd, $httpBackend: cd, $location: Nc, $log: Oc, $parse: Sc, $route: Vc, $routeParams: Wc, $rootScope: Xc, $q: Tc, $sniffer: Yc, $templateCache: Gc, $timeout: gd, $window: Zc })
                            }])
                        })(Ha); w(T).ready(function () { rc(T, xb) })
})(window, document); angular.element(document).find("head").append('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak{display:none;}ng\\:form{display:block;}</style>');;
/**
 * Minified by jsDelivr using UglifyJS v3.4.2.
 * Original file: /npm/js-cookie@2.1.3/src/js.cookie.js
 * 
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
!function (e) { var n = !1; if ("function" == typeof define && define.amd && (define(e), n = !0), "object" == typeof exports && (module.exports = e(), n = !0), !n) { var o = window.Cookies, t = window.Cookies = e(); t.noConflict = function () { return window.Cookies = o, t } } }(function () { function l() { for (var e = 0, n = {}; e < arguments.length; e++) { var o = arguments[e]; for (var t in o) n[t] = o[t] } return n } return function e(f) { function u(e, n, o) { var t; if ("undefined" != typeof document) { if (1 < arguments.length) { if ("number" == typeof (o = l({ path: "/" }, u.defaults, o)).expires) { var r = new Date; r.setMilliseconds(r.getMilliseconds() + 864e5 * o.expires), o.expires = r } try { t = JSON.stringify(n), /^[\{\[]/.test(t) && (n = t) } catch (e) { } return n = f.write ? f.write(n, e) : encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), e = (e = (e = encodeURIComponent(String(e))).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)).replace(/[\(\)]/g, escape), document.cookie = [e, "=", n, o.expires ? "; expires=" + o.expires.toUTCString() : "", o.path ? "; path=" + o.path : "", o.domain ? "; domain=" + o.domain : "", o.secure ? "; secure" : ""].join("") } e || (t = {}); for (var i = document.cookie ? document.cookie.split("; ") : [], c = /(%[0-9A-Z]{2})+/g, a = 0; a < i.length; a++) { var p = i[a].split("="), s = p.slice(1).join("="); '"' === s.charAt(0) && (s = s.slice(1, -1)); try { var d = p[0].replace(c, decodeURIComponent); if (s = f.read ? f.read(s, d) : f(s, d) || s.replace(c, decodeURIComponent), this.json) try { s = JSON.parse(s) } catch (e) { } if (e === d) { t = s; break } e || (t[d] = s) } catch (e) { } } return t } } return (u.set = u).get = function (e) { return u.call(u, e) }, u.getJSON = function () { return u.apply({ json: !0 }, [].slice.call(arguments)) }, u.defaults = {}, u.remove = function (e, n) { u(e, "", l(n, { expires: -1 })) }, u.withConverter = e, u }(function () { }) });
//# sourceMappingURL=/sm/292a70e6c648f54146f83ae1cf6e9356c29a938d53162c33b5a6738d4edb70b4.map;
/*
 AngularJS v1.0.7
 (c) 2010-2012 Google, Inc. http://angularjs.org
 License: MIT
*/
(function (m, f, l) {
    'use strict'; f.module("ngCookies", ["ng"]).factory("$cookies", ["$rootScope", "$browser", function (d, b) { var c = {}, g = {}, h, i = !1, j = f.copy, k = f.isUndefined; b.addPollFn(function () { var a = b.cookies(); h != a && (h = a, j(a, g), j(a, c), i && d.$apply()) })(); i = !0; d.$watch(function () { var a, e, d; for (a in g) k(c[a]) && b.cookies(a, l); for (a in c) e = c[a], f.isString(e) ? e !== g[a] && (b.cookies(a, e), d = !0) : f.isDefined(g[a]) ? c[a] = g[a] : delete c[a]; if (d) for (a in e = b.cookies(), c) c[a] !== e[a] && (k(e[a]) ? delete c[a] : c[a] = e[a]) }); return c }]).factory("$cookieStore",
    ["$cookies", function (d) { return { get: function (b) { return (b = d[b]) ? f.fromJson(b) : b }, put: function (b, c) { d[b] = f.toJson(c) }, remove: function (b) { delete d[b] } } }])
})(window, window.angular);;
var controllerProvider = null;
var app360 = angular.module("app360", [
    "ngCookies",
], ["$controllerProvider", function ($controllerProvider) {
    controllerProvider = $controllerProvider;
}])
.run(['$location', '$rootElement', function ($location, $rootElement) {
    // Disable Angular deep linking, allowing SPAs
    // Copied from https://stackoverflow.com/a/11785196
    $rootElement.off('click');
}]);

app360.config(['$locationProvider', function AppConfig($locationProvider) {
    // Enable html5Mode for pushstate ('#'-less URLs)
    // For more info: https://docs.angularjs.org/api/ng/provider/$locationProvider
    if (window.history && window.history.pushState) {
        $locationProvider.html5Mode(true).hashPrefix('');
    }
}]);

function registerAngularController(moduleName, controllerName) {
    var queue = angular.module(moduleName)._invokeQueue;
    for (var i = 0; i < queue.length; i++) {
        var call = queue[i];
        if (call[0] == "$controllerProvider" &&
            call[1] == "register" &&
            call[2][0] == controllerName) {
            controllerProvider.register(controllerName, call[2][1]);
        }
    }
};
const Behavior360 = function () {
    const ViewPortContent = {
        SAFARI_INITIAL: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no',
        NO_ZOOM_FIREFOX_CHROME: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no',
        ANDROID_INITIAL: 'width=device-width, initial-scale=1.0, maximum-scale=2.0'
    }

    const getAgent = function () {
        return document.documentElement.getAttribute("data-browser").toLowerCase();
    }

    const getDevice = function () {
        return browser = { iPod: /ipod/.test(getAgent()), iPad: /ipad/.test(getAgent()), iPhone: /iphone/.test(getAgent()), Android4: /android/.test(getAgent()) };
    }

    const setDataBrowser = function () {
        return document.documentElement.setAttribute("data-browser", navigator.userAgent);
    }

    const setInitialZoom = function () {
        return setZoom(1);
    }

    const setZoom = function (Scale) {
        return document.body.style.zoom = Scale;
    }

    const safariZoomFixes = function () {
        if (isApple()) {
            return changeViewPort(ViewPortContent.SAFARI_INITIAL)
        };
    }

    const isApple = function () {
        return (getDevice().iPad || getDevice().iPhone || getDevice().iPod);
    }

    const isAndroid = function () {
        return (getDevice().Android4);
    }

    const setNoZoom = function () {
        if (isAndroid()) {
            return changeViewPort(ViewPortContent.NO_ZOOM_FIREFOX_CHROME);
        }
    }

    const resetViewPort = function () {
        if (isApple()) {
            return changeViewPort(ViewPortContent.SAFARI_INITIAL);
        }

        if (isAndroid()) {
            return changeViewPort(ViewPortContent.ANDROID_INITIAL);
        }
    }

    const changeViewPort = function (viewPort) {
        var metaTag = document.querySelector("meta[name=viewport]");

        if (metaTag) {
            metaTag.setAttribute('content', viewPort);
        }
        else {
            metaTag = document.createElement('meta');
            metaTag.name = "viewport"
            metaTag.content = viewPort
            document.getElementsByTagName('head')[0].appendChild(metaTag);
        }
    }

    const initializeZoom = function () {
        setInitialZoom();
    }

    const initialize = function () {
        initializeZoom();
        setDataBrowser();
    }

    return {
        Initialize: function () {
            initialize();
        },
        Device: function () {
            return getDevice();
        }
        , SafariZoomFixes: function () {
            safariZoomFixes()
        }
        , ResetViewPort: function () {
            resetViewPort()
        }
        , changeViewPort: function (viewPort) {
            changeViewPort(viewPort)
        }, SetNoZoom: function () {
            setNoZoom();
        },
        SetZomm: function (Scale) {
            setZoom(Scale);
        }, IsApple: function () {
            return isApple();
        }
    };
}();
Behavior360.Initialize();;
(function () {

    "use strict"
    angular.module('app360')
        .service('dataLayerService', function () {

            this.pushTrackingEvent = function (eventtype, eventregion, eventsection, eventitem) {

                if (typeof dataLayer === "undefined") {
                    return;
                }

                dataLayer.push({
                    'eventtype': eventtype,
                    'eventregion': eventregion,
                    'eventsection': eventsection,
                    'eventitem': eventitem,
                    'event': 'TrackingEvent'
                });
            }

            this.pushBuyInfo = function (revision, pay_method, voucher) {

                if (typeof dataLayer === "undefined") {
                    return;
                }

                dataLayer.push({
                    'revisao': revision,
                    'pay_method': pay_method,
                    'voucher': voucher
                })
            }

            this.pushCooInfo = function (eventName,
                addressType,
                addressId,
                zipCode,
                errorType,
                checkoutErrorLogId,
                deliveryOptionsRequestId,
                shippingCredits,
                shippingType,
                shippingOptionFragments,
                shippingOptionFragmentId,
                shippingOptionPriceFastest,
                shippingOptionPriceCheaper,
                shippingOptionPricePopular,
                shippingOptionDaysFastest,
                shippingOptionDaysCheaper,
                shippingOptionDaysPopular,
                shippingOptionsFeatures,
                shippingDiscount,
                shippingOptionPrice,
                shippingOptionDays,
                shippingTier) {
                if (typeof dataLayer === "undefined") {
                    return;
                }

                var obj = {};

                switch (eventName) {
                    case "add_shipping_type": {
                        obj["coo_info"] = {
                            'event': eventName,
                            'address_type': addressType
                        };
                        break;
                    }
                    case "add_address_details": {
                        obj["coo_info"] = {
                            'event': eventName,
                            'address_type': addressType,
                            'address_id': addressId,
                            'zip_code': zipCode
                        };
                        break;
                    }
                    case "address_service_error": {
                        obj["coo_info"] = {
                            'event': eventName,
                            'address_type': addressType,
                            'address_id': addressId,
                            'zip_code': zipCode,
                            'error_type': errorType,
                            'checkout_error_log_id': checkoutErrorLogId,
                            'delivery_options_request_id': deliveryOptionsRequestId
                        };
                        break;
                    }
                    case "show_shipping_options": {
                        obj["coo_info"] = {
                            'event': eventName,
                            'address_type': addressType,
                            'address_id': addressId,
                            'zip_code': zipCode,
                            'delivery_options_request_id': deliveryOptionsRequestId,
                            'shipping_credits': shippingCredits,
                            'shipping_type': shippingType,
                            'shipping_option_fragments': shippingOptionFragments,
                            'shipping_option_fragment_id': shippingOptionFragmentId,
                            'shipping_option_price_fastest': shippingOptionPriceFastest,
                            'shipping_option_price_cheaper': shippingOptionPriceCheaper,
                            'shipping_option_price_popular': shippingOptionPricePopular,
                            'shipping_option_days_fastest': shippingOptionDaysFastest,
                            'shipping_option_days_cheaper': shippingOptionDaysCheaper,
                            'shipping_option_days_popular': shippingOptionDaysPopular,
                            'shipping_options_features': shippingOptionsFeatures
                        };
                        break;
                    }
                    case "add_shipping_info": {
                        obj["coo_info"] = {
                            'event': eventName,
                            'address_type': addressType,
                            'address_id': addressId,
                            'zip_code': zipCode,
                            'delivery_options_request_id': deliveryOptionsRequestId,
                            'shipping_credits': shippingCredits,
                            'shipping_discount': shippingDiscount,
                            'shipping_type': shippingType,
                            'shipping_option_price': shippingOptionPrice,
                            'shipping_option_days': shippingOptionDays,
                            'shipping_tier': shippingTier,
                            'shipping_options_features': shippingOptionsFeatures
                        };
                        break;
                    }
                }
                
                obj.event = eventName;
                dataLayer.push(obj);
            }

            this.pushDynamic = function (prodIds, subProdIds, skus, templateIds, productValues, totalCartValue, macroPageType, pageType, productType, calculatorVersion, personalizationTypes, coupon, itemName, categories, extraFields = {}) {
                pushDynamicPrivate("360_dyn", prodIds, subProdIds, skus, templateIds, productValues, totalCartValue, macroPageType, pageType, productType, calculatorVersion, personalizationTypes, coupon, itemName, categories, extraFields);
            }

            this.pushDynamicChange = function (prodIds, subProdIds, skus, templateIds, productValues, totalCartValue, macroPageType, pageType, productType, calculatorVersion, personalizationTypes, coupon, itemName, categories, extraFields = {}) {
                pushDynamicPrivate("360_dyn_change", prodIds, subProdIds, skus, templateIds, productValues, totalCartValue, macroPageType, pageType, productType, calculatorVersion, personalizationTypes, coupon, itemName, categories, extraFields);
            }

            function pushDynamicPrivate (pushDynamicName, prodIds, subProdIds, skus, templateIds, productValues, totalCartValue, macroPageType, pageType, productType, calculatorVersion, personalizationTypes, coupon, itemName, categories, extraFields = {}){

                if (typeof dataLayer === "undefined") {
                    return;
                }

                if (!personalizationTypes) {
                    personalizationTypes = [];
                }

                if (!templateIds) {
                    templateIds = [];
                }

                if (!productType) {
                    productType = [];
                }

                if (!calculatorVersion) {
                    calculatorVersion = [];
                }

                if (macroPageType.toLowerCase() !== 'noproduct') {
                    templateIds = templateIds.map(function (x) {
                        return x ? x : 'NO_TEMPLATE'
                    });
                }

                var dyn = {
                    'ProdID': prodIds,
                    'SubProdID': subProdIds,
                    'SKU': skus,
                    'TemplateID': templateIds,
                    'ProductValue': productValues,
                    'TotalCartValue': totalCartValue,
                    'MacroPageType': macroPageType,
                    'PageType': pageType,
                    'ProductType': productType,
                    'PersonalizationType': personalizationTypes,
                    'coupon': coupon.toString(),
                    ...extraFields
                };

                for (var key in categories) {
                    if (categories.hasOwnProperty(key)) {
                        dyn[key.toString()] = categories[key];
                    }
                }

                if (itemName != null) {
                    dyn['item_name'] = itemName;
                }

                var obj = {};
                obj[pushDynamicName] = dyn;
                obj.event = 'DynamicRemarketingPush';
                dataLayer.push(obj);
            }
        })

})();;
var navbar = function () {
    function initialize(headerMenuUrl, isBot) {
        var NOT_INITIALIZED = 0;
        var INITIALIZING = 1;
        var INITIALIZED = 2;

        var status = NOT_INITIALIZED;

        $(window).on('scroll', function () {
            var $scrollTop = $(window).scrollTop();
            var main = document.getElementById("main");
            var overlay = document.getElementById("overlay-background");
            var headerHeight = document.getElementsByClassName("header_desktop")[0];

            if (headerHeight && $scrollTop > headerHeight.clientHeight && main.clientHeight > overlay.clientHeight) {
                overlay.style.position = "fixed";
                overlay.style.top = 0;
            }
            else if (overlay) {
                overlay.style.position = "absolute";
                overlay.style.top = null;
            }
        });

        notMakeRequest = function (event) {
            return false;
        }

        if (isBot) {
            bindMenuHoverEvent();
        }

        $(".nav-hover-blue").mouseenter(function () {
            bindMenuHoverEvent();
            if (status == INITIALIZED) {
                if ($("#menu-chevron-loader").length > 0) {
                    $("#menu-chevron-loader").remove();
                    $(".nav-chevron-loader").removeClass("nav-chevron-loader");
                    var $icon = $(this).find("#menu-chevron");
                    $icon.removeClass('icon-chevron-down');
                    $icon.addClass('icon-chevron-up');
                }
                else {
                    var $icon = $("#menu-chevron");
                    $icon.removeClass('icon-chevron-down');
                    $icon.addClass('icon-chevron-up');
                }

                $("#overlay-background").removeClass("hidden");
            }
        });

        $(".nav-hover-blue").mouseleave(function () {
            if ($("#menu-chevron-loader").length === 0) {
                var $icon = $(this).find("#menu-chevron");
                $icon.removeClass('icon-chevron-up');
                $icon.addClass('icon-chevron-down');
            }

            $("#overlay-background").addClass("hidden");
        });

        function bindMenuHoverEvent() {
            if (status == NOT_INITIALIZED) {
                status = INITIALIZING;

                $.get(headerMenuUrl)
                    .done(function (data) {
                        var list = $(data);

                        var $tabItem = list.find("#tabitem-0");
                        $tabItem.addClass("first-selected-li");
                        $tabItem.find(".navbar-product-submenu").addClass("navbar-product-submenu-hovered");

                        list.appendTo('#desktop-menu-products');

                        $("#menu-chevron-loader").remove();
                        $(".nav-chevron-loader").removeClass("nav-chevron-loader");

                        var isHovered = $(".nav-hover-blue").
                            filter(function () { return $(this).is(":hover"); }).length > 0;

                        if (isHovered) {
                            var $icon = $("#menu-chevron");
                            $icon.removeClass('icon-chevron-down');
                            $icon.addClass('icon-chevron-up');
                        }

                        $('#desktop-menu-products').show();

                        $(".navbar-submenu > ul > li").mouseenter(function () {
                            $("#tabitem-0").removeClass("first-selected-li");
                        });

                        $("div.navbar-submenu > ul").mouseleave(function () {
                            $(this).find("#tabitem-0").addClass("first-selected-li");
                        });

                        var lastTabAdImage;
                        $('[data-hover-ad-img]').mouseenter(function () {
                            var $item = $(this);

                            var url = $item.data('hover-ad-img');
                            if (!url) {
                                return;
                            }

                            // Validate Tab image DOM structure
                            var $tabImage = $item.closest('.navbar-product-submenu').find('.tab-image');
                            if ($tabImage.length === 0) {
                                return;
                            }
                            lastTabAdImage = $tabImage.attr('src');

                            // Set fallback behaviour
                            $tabImage.error(function () {
                                $(this).unbind("error").attr('src', lastTabAdImage);

                                // Remove invalid image information
                                $item.removeAttr('data-hover-ad-img');
                                $item.removeData('hover-ad-img');
                            });

                            // Replace image url
                            $tabImage.attr('src', url);
                        });

                        $('[data-hover-ad-img]').mouseleave(function () {
                            var $item = $(this);

                            // Check if Catalog Item has image information
                            var url = $item.data('hover-ad-img');
                            if (!url) {
                                return;
                            }

                            // Validate Tab image DOM structure
                            var $tabImage = $item.closest('.navbar-product-submenu').find('.tab-image');
                            if ($tabImage.length === 0) {
                                return;
                            }

                            // Check if image changing is redundant
                            if ($tabImage.attr('src') === lastTabAdImage) {
                                return
                            }

                            // Restore main tab image
                            $tabImage.attr('src', lastTabAdImage);
                        });

                        status = INITIALIZED;
                    }).fail(function () {
                        status = NOT_INITIALIZED;
                    });

            }
        }
    }

    return {
        initialize: initialize
    }
}();;
var navbarMobile = function () {

    function initialize(mobileHeaderMenuUrl, clientAreaTitle, clientAreaHref, isBot) {
        var NOT_INITIALIZED = 0;
        var INITIALIZING = 1;
        var INITIALIZED = 2;

        var status = NOT_INITIALIZED;

        if (isBot) {
            loadMobileMenu(false);
        }

        // Show/Hide actions
        $('#toggleMobileMenu-v2').click(function (e) {
            e.preventDefault();
            loadMobileMenu(true);
        });

        function loadMobileMenu(showMenuAfterLoading) {
            if (status == INITIALIZED) {
                $('#mobile-nav-container > div').addClass('active');
            }
            else if (status == NOT_INITIALIZED) {
                status = INITIALIZING;

                $.get(mobileHeaderMenuUrl)
                    .done(function (data) {
                        $('#mobile-nav-container-v2').append(data);
                        if (showMenuAfterLoading) {
                            $('#mobile-nav-container > div').addClass('active');
                        }
                        $('.mobile-nav > [id^="collapse-"]')
                            .on('hide.bs.collapse', toggleMobileMenuNav)
                            .on('show.bs.collapse', toggleMobileMenuNav);

                        $('#mobile-nav-container > .bg-pane').click(function (e) {
                            e.preventDefault();
                            $('#mobile-nav-container > div').removeClass('active');
                        });

                        $('#clientAreaAnchor').attr('href', clientAreaHref);
                        document.getElementById("clientAreaTitle").innerHTML = clientAreaTitle;
                        status = INITIALIZED;
                    }).fail(function () {
                        status = NOT_INITIALIZED;
                    });
            }
        };
    }

    return {
        initialize: initialize
    }

    function toggleMobileMenuNav(e) {
        var $trigger = $(e.target).prev('.mobile-nav-option');
        $trigger.find('i[class^="icon-chevron"]').toggleClass('icon-chevron-right icon-chevron-left');
        $trigger.toggleClass('active');
    }
} ();;
var languageDropdownDesktop = function () {

    function initialize(languageDropdownUrl) {
        var LANGUAGEDROPDOWN_NOT_INITIALIZED = 0;
        var LANGUAGEDROPDOWN_INITIALIZING = 1;
        var LANGUAGEDROPDOWN_INITIALIZED = 2;

        var languageDropdownStatus = LANGUAGEDROPDOWN_NOT_INITIALIZED;

        $("#languageSwitcher").mouseenter(function () {
            if (languageDropdownStatus == LANGUAGEDROPDOWN_NOT_INITIALIZED) {
                languageDropdownStatus = LANGUAGEDROPDOWN_INITIALIZING;
                setLoading(true);

                $.get(languageDropdownUrl)
                    .done(function (data) {
                        var list = $(data);

                        list
                            .find('.culture-item')
                            .each(function (index, anchor) {
                                var current = new URL(anchor.href);
                                current.searchParams.append("url", encodeURIComponent(window.location.href));
                                anchor.href = current.href;
                            });

                        list.appendTo('#languageSwitcher');
                        $('#languageSwitcher').show();

                        setLoading(false);
                        languageDropdownStatus = LANGUAGEDROPDOWN_INITIALIZED;
                    }).fail(function () {
                        languageDropdownStatus = LANGUAGEDROPDOWN_NOT_INITIALIZED;
                        setLoading(false);
                    });
            }
        });

        function setLoading(initLoading) {
            if (initLoading) {
                $('#dropdown-icon')[0].classList.remove('caret');
                $('#dropdown-icon')[0].classList.add('icon-spinner');
                $('#dropdown-icon')[0].classList.add('icon-spin');
            }
            else {
                $('#dropdown-icon')[0].classList.remove('icon-spinner');
                $('#dropdown-icon')[0].classList.remove('icon-spin');
                $('#dropdown-icon')[0].classList.add('caret');
            }
        }
    }

    return {
        initialize: initialize
    }
}();;
var languageDropdownMobile = function () {

    function initialize(languageDropdownUrl) {
        var LANGUAGEDROPDOWN_NOT_INITIALIZED = 0;
        var LANGUAGEDROPDOWN_INITIALIZING = 1;
        var LANGUAGEDROPDOWN_INITIALIZED = 2;

        var languageDropdownStatus = LANGUAGEDROPDOWN_NOT_INITIALIZED;

        $('#ChooseCultureButton').click(function (e) {
            e.preventDefault();

            if (languageDropdownStatus == LANGUAGEDROPDOWN_INITIALIZED) {
                $('#cultureChooserMobile').modal('show');
            }
            else if (languageDropdownStatus == LANGUAGEDROPDOWN_NOT_INITIALIZED) {
                $('#mobileLoading').show();
                languageDropdownStatus = LANGUAGEDROPDOWN_INITIALIZING;

                $.get(languageDropdownUrl)
                    .done(function (data) {
                        var list = $(data);

                        list
                            .find('.culture-item')
                            .each(function (index, anchor) {
                                var current = new URL(anchor.href);
                                current.searchParams.append("url", encodeURIComponent(window.location.href));
                                anchor.href = current.href;
                            });

                        $('#cultureChooserMobile').append(list);

                        $('#cultureChooserMobile').modal('show');
                        languageDropdownStatus = LANGUAGEDROPDOWN_INITIALIZED;

                        $('#mobileLoading').hide();
                    }).fail(function () {
                        languageDropdownStatus = LANGUAGEDROPDOWN_NOT_INITIALIZED;
                        $('#mobileLoading').hide();
                    });
            }
        });
    }

    return {
        initialize: initialize
    }
} ();;
(function () {
    var csrf_token = document.querySelector("meta[name='csrf-token']").getAttribute("content");
    function csrfSafeMethod(method) {
        return (/^(GET|HEAD|OPTIONS)$/.test(method));
    }

    function isSameHost(url) {
        var location = document.createElement("a");
        location.href = url;

        if (location.host == "") {
            location.href = location.href;
        }
        return location.hostname === document.location.hostname;
    }

    var setRequestHeader = XMLHttpRequest.prototype.setRequestHeader;
    XMLHttpRequest.prototype.setRequestHeader = function (name, value) {
        if (name == 'X-Requested-With') return;
        setRequestHeader.call(this, name, value);
    }

    var open = XMLHttpRequest.prototype.open;
    XMLHttpRequest.prototype.open = function () {
        var res = open.apply(this, arguments);
        if (!csrfSafeMethod(arguments[0])) {
            if (isSameHost(arguments[1])) {
                setRequestHeader.call(this, 'X-Requested-With', 'XMLHttpRequest');
                setRequestHeader.call(this, 'csrf-token', csrf_token);
            }
            this.extended = { isSafe: false };
        }
        else {
            if (isSameHost(arguments[1])) {
                setRequestHeader.call(this, 'X-Requested-With', 'XMLHttpRequest');
            }
            this.extended = { isSafe: true };
        }

        return res;
    };

    var send = XMLHttpRequest.prototype.send;
    XMLHttpRequest.prototype.send = function (data) {
        if (this.onreadystatechange) {
            this._onreadystatechange = this.onreadystatechange;
        }

        var isSafe = this.extended.isSafe;

        this.onreadystatechange = function () {

            if (this.status == 401 || !isSafe && this.status == 403) {
                var location = this.getResponseHeader("Location");
                if (location) {
                    window.location.href = location;
                }
                else if (this._onreadystatechange) {
                    return this._onreadystatechange.apply(this, arguments);
                }
            }
            else if (this._onreadystatechange) {
                return this._onreadystatechange.apply(this, arguments);
            }
        };

        return send.apply(this, arguments);
    }
}) ();;
function customToLocaleString(amount, currencyDefs) {
    if (amount === undefined || amount === null || isNaN(amount)) return amount;
    if (currencyDefs === undefined || currencyDefs === null) return amount;

    const localizedAmount = new Intl.NumberFormat(currencyDefs.currencyCulture, {
        minimumFractionDigits: currencyDefs.decimalPlaces,
        maximumFractionDigits: currencyDefs.decimalPlaces,
    }).format(amount);

    switch (currencyDefs.currencyPositivePattern) {
        case 0:
            {
                return currencyDefs.currencySymbol + localizedAmount;
            }
        case 1:
            {
                return localizedAmount + currencyDefs.currencySymbol;
            }
        case 2:
            {
                return currencyDefs.currencySymbol + " " + localizedAmount;
            }
        case 3:
            {
                return localizedAmount + " " + currencyDefs.currencySymbol;
            }
        default:
            return localizedAmount;
    }
};
