diff --git a/.github/workflows/base-cypress-build.yml b/.github/workflows/base-cypress-build.yml index e09aef2c3c..deda2c21ea 100644 --- a/.github/workflows/base-cypress-build.yml +++ b/.github/workflows/base-cypress-build.yml @@ -35,8 +35,8 @@ jobs: ENDPOINT_DOC_STORE_API: http://localhost:3000 AWS_REGION: test region OIDC_PROVIDER_ID: not provided yet - IDENTITY_PROVIDER_POOL_ID: not provided yet - MONITOR_ACCOUNT_ID: not provided yet + IDENTITY_PROVIDER_POOL_ID: "" + MONITOR_ACCOUNT_ID: "" BUILD_ENV: development IMAGE_VERSION: "not-required" run: | diff --git a/.github/workflows/base-vitest-test.yml b/.github/workflows/base-vitest-test.yml index 140c298c42..e9645c853c 100644 --- a/.github/workflows/base-vitest-test.yml +++ b/.github/workflows/base-vitest-test.yml @@ -40,8 +40,8 @@ jobs: ENDPOINT_DOC_STORE_API: http://localhost:3000 AWS_REGION: test region OIDC_PROVIDER_ID: not provided yet - IDENTITY_PROVIDER_POOL_ID: not provided yet - MONITOR_ACCOUNT_ID: not provided yet + IDENTITY_PROVIDER_POOL_ID: "" + MONITOR_ACCOUNT_ID: "" BUILD_ENV: development IMAGE_VERSION: "ndr-not-required" run: | diff --git a/.github/workflows/sonarcloud-analysis.yml b/.github/workflows/sonarcloud-analysis.yml index c39528f54c..278f1d8057 100644 --- a/.github/workflows/sonarcloud-analysis.yml +++ b/.github/workflows/sonarcloud-analysis.yml @@ -30,8 +30,8 @@ jobs: ENDPOINT_DOC_STORE_API: http://localhost:3000 AWS_REGION: test region OIDC_PROVIDER_ID: not provided yet - IDENTITY_PROVIDER_POOL_ID: not provided yet - MONITOR_ACCOUNT_ID: not provided yet + IDENTITY_PROVIDER_POOL_ID: "" + MONITOR_ACCOUNT_ID: "" BUILD_ENV: development IMAGE_VERSION: "ndr-${{ vars.BUILD_ENV }}-app:${{ github.sha }}" run: | diff --git a/app/cypress/e2e/0-ndr-core-tests/homepage.cy.js b/app/cypress/e2e/0-ndr-core-tests/startpage.cy.js similarity index 95% rename from app/cypress/e2e/0-ndr-core-tests/homepage.cy.js rename to app/cypress/e2e/0-ndr-core-tests/startpage.cy.js index 356ac0ad79..08090751cf 100644 --- a/app/cypress/e2e/0-ndr-core-tests/homepage.cy.js +++ b/app/cypress/e2e/0-ndr-core-tests/startpage.cy.js @@ -18,15 +18,15 @@ describe('Home Page', () => { ); }); - it('displays correct page title on home page', { tags: 'regression' }, () => { + it('displays correct page title on start page', { tags: 'regression' }, () => { cy.get('.app-homepage-content h1').should( 'have.text', 'Access and store digital patient documents', ); }); - it('displays start now button on home page', { tags: 'regression' }, () => { - cy.get('.nhsuk-button').should('have.text', 'Start now'); + it('displays start now button on start page', { tags: 'regression' }, () => { + cy.getByTestId('start-btn').should('have.text', 'Start now'); }); it('displays service banner', { tags: 'regression' }, () => { diff --git a/app/main.html b/app/main.html index 14f7b1a588..b6f9a302ce 100644 --- a/app/main.html +++ b/app/main.html @@ -49,6 +49,7 @@ + diff --git a/app/public/cookie-consent.min.js b/app/public/cookie-consent.min.js new file mode 100644 index 0000000000..abb5b55414 --- /dev/null +++ b/app/public/cookie-consent.min.js @@ -0,0 +1,6836 @@ +// NHS.UK cookie consent v0.5.3-alpha +/* eslint-disable */ +!(function (t) { + var n = {}; + function e(r) { + if (n[r]) return n[r].exports; + var o = (n[r] = { i: r, l: !1, exports: {} }); + return t[r].call(o.exports, o, o.exports, e), (o.l = !0), o.exports; + } + (e.m = t), + (e.c = n), + (e.d = function (t, n, r) { + e.o(t, n) || Object.defineProperty(t, n, { enumerable: !0, get: r }); + }), + (e.r = function (t) { + 'undefined' != typeof Symbol && + Symbol.toStringTag && + Object.defineProperty(t, Symbol.toStringTag, { value: 'Module' }), + Object.defineProperty(t, '__esModule', { value: !0 }); + }), + (e.t = function (t, n) { + if ((1 & n && (t = e(t)), 8 & n)) return t; + if (4 & n && 'object' == typeof t && t && t.__esModule) return t; + var r = Object.create(null); + if ( + (e.r(r), + Object.defineProperty(r, 'default', { enumerable: !0, value: t }), + 2 & n && 'string' != typeof t) + ) + for (var o in t) + e.d( + r, + o, + function (n) { + return t[n]; + }.bind(null, o), + ); + return r; + }), + (e.n = function (t) { + var n = + t && t.__esModule + ? function () { + return t.default; + } + : function () { + return t; + }; + return e.d(n, 'a', n), n; + }), + (e.o = function (t, n) { + return Object.prototype.hasOwnProperty.call(t, n); + }), + (e.p = ''), + e((e.s = 125)); +})([ + function (t, n, e) { + var r = e(1), + o = e(7), + i = e(14), + u = e(11), + c = e(17), + a = function (t, n, e) { + var s, + f, + l, + h, + p = t & a.F, + v = t & a.G, + d = t & a.S, + g = t & a.P, + b = t & a.B, + y = v ? r : d ? r[n] || (r[n] = {}) : (r[n] || {}).prototype, + m = v ? o : o[n] || (o[n] = {}), + k = m.prototype || (m.prototype = {}); + for (s in (v && (e = n), e)) + (l = ((f = !p && y && void 0 !== y[s]) ? y : e)[s]), + (h = + b && f + ? c(l, r) + : g && 'function' == typeof l + ? c(Function.call, l) + : l), + y && u(y, s, l, t & a.U), + m[s] != l && i(m, s, h), + g && k[s] != l && (k[s] = l); + }; + (r.core = o), + (a.F = 1), + (a.G = 2), + (a.S = 4), + (a.P = 8), + (a.B = 16), + (a.W = 32), + (a.U = 64), + (a.R = 128), + (t.exports = a); + }, + function (t, n) { + var e = (t.exports = + 'undefined' != typeof window && window.Math == Math + ? window + : 'undefined' != typeof self && self.Math == Math + ? self + : Function('return this')()); + 'number' == typeof __g && (__g = e); + }, + function (t, n) { + t.exports = function (t) { + try { + return !!t(); + } catch (t) { + return !0; + } + }; + }, + function (t, n, e) { + var r = e(4); + t.exports = function (t) { + if (!r(t)) throw TypeError(t + ' is not an object!'); + return t; + }; + }, + function (t, n) { + t.exports = function (t) { + return 'object' == typeof t ? null !== t : 'function' == typeof t; + }; + }, + function (t, n, e) { + var r = e(49)('wks'), + o = e(29), + i = e(1).Symbol, + u = 'function' == typeof i; + (t.exports = function (t) { + return r[t] || (r[t] = (u && i[t]) || (u ? i : o)('Symbol.' + t)); + }).store = r; + }, + function (t, n, e) { + var r = e(19), + o = Math.min; + t.exports = function (t) { + return t > 0 ? o(r(t), 9007199254740991) : 0; + }; + }, + function (t, n) { + var e = (t.exports = { version: '2.6.10' }); + 'number' == typeof __e && (__e = e); + }, + function (t, n, e) { + t.exports = !e(2)(function () { + return ( + 7 != + Object.defineProperty({}, 'a', { + get: function () { + return 7; + }, + }).a + ); + }); + }, + function (t, n, e) { + var r = e(3), + o = e(89), + i = e(26), + u = Object.defineProperty; + n.f = e(8) + ? Object.defineProperty + : function (t, n, e) { + if ((r(t), (n = i(n, !0)), r(e), o)) + try { + return u(t, n, e); + } catch (t) {} + if ('get' in e || 'set' in e) throw TypeError('Accessors not supported!'); + return 'value' in e && (t[n] = e.value), t; + }; + }, + function (t, n, e) { + var r = e(24); + t.exports = function (t) { + return Object(r(t)); + }; + }, + function (t, n, e) { + var r = e(1), + o = e(14), + i = e(13), + u = e(29)('src'), + c = e(130), + a = ('' + c).split('toString'); + (e(7).inspectSource = function (t) { + return c.call(t); + }), + (t.exports = function (t, n, e, c) { + var s = 'function' == typeof e; + s && (i(e, 'name') || o(e, 'name', n)), + t[n] !== e && + (s && (i(e, u) || o(e, u, t[n] ? '' + t[n] : a.join(String(n)))), + t === r + ? (t[n] = e) + : c + ? t[n] + ? (t[n] = e) + : o(t, n, e) + : (delete t[n], o(t, n, e))); + })(Function.prototype, 'toString', function () { + return ('function' == typeof this && this[u]) || c.call(this); + }); + }, + function (t, n, e) { + var r = e(0), + o = e(2), + i = e(24), + u = /"/g, + c = function (t, n, e, r) { + var o = String(i(t)), + c = '<' + n; + return ( + '' !== e && (c += ' ' + e + '="' + String(r).replace(u, '"') + '"'), + c + '>' + o + '' + ); + }; + t.exports = function (t, n) { + var e = {}; + (e[t] = n(c)), + r( + r.P + + r.F * + o(function () { + var n = ''[t]('"'); + return n !== n.toLowerCase() || n.split('"').length > 3; + }), + 'String', + e, + ); + }; + }, + function (t, n) { + var e = {}.hasOwnProperty; + t.exports = function (t, n) { + return e.call(t, n); + }; + }, + function (t, n, e) { + var r = e(9), + o = e(28); + t.exports = e(8) + ? function (t, n, e) { + return r.f(t, n, o(1, e)); + } + : function (t, n, e) { + return (t[n] = e), t; + }; + }, + function (t, n, e) { + var r = e(45), + o = e(24); + t.exports = function (t) { + return r(o(t)); + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(2); + t.exports = function (t, n) { + return ( + !!t && + r(function () { + n ? t.call(null, function () {}, 1) : t.call(null); + }) + ); + }; + }, + function (t, n, e) { + var r = e(18); + t.exports = function (t, n, e) { + if ((r(t), void 0 === n)) return t; + switch (e) { + case 1: + return function (e) { + return t.call(n, e); + }; + case 2: + return function (e, r) { + return t.call(n, e, r); + }; + case 3: + return function (e, r, o) { + return t.call(n, e, r, o); + }; + } + return function () { + return t.apply(n, arguments); + }; + }; + }, + function (t, n) { + t.exports = function (t) { + if ('function' != typeof t) throw TypeError(t + ' is not a function!'); + return t; + }; + }, + function (t, n) { + var e = Math.ceil, + r = Math.floor; + t.exports = function (t) { + return isNaN((t = +t)) ? 0 : (t > 0 ? r : e)(t); + }; + }, + function (t, n, e) { + var r = e(46), + o = e(28), + i = e(15), + u = e(26), + c = e(13), + a = e(89), + s = Object.getOwnPropertyDescriptor; + n.f = e(8) + ? s + : function (t, n) { + if (((t = i(t)), (n = u(n, !0)), a)) + try { + return s(t, n); + } catch (t) {} + if (c(t, n)) return o(!r.f.call(t, n), t[n]); + }; + }, + function (t, n, e) { + var r = e(0), + o = e(7), + i = e(2); + t.exports = function (t, n) { + var e = (o.Object || {})[t] || Object[t], + u = {}; + (u[t] = n(e)), + r( + r.S + + r.F * + i(function () { + e(1); + }), + 'Object', + u, + ); + }; + }, + function (t, n, e) { + var r = e(17), + o = e(45), + i = e(10), + u = e(6), + c = e(105); + t.exports = function (t, n) { + var e = 1 == t, + a = 2 == t, + s = 3 == t, + f = 4 == t, + l = 6 == t, + h = 5 == t || l, + p = n || c; + return function (n, c, v) { + for ( + var d, + g, + b = i(n), + y = o(b), + m = r(c, v, 3), + k = u(y.length), + x = 0, + w = e ? p(n, k) : a ? p(n, 0) : void 0; + k > x; + x++ + ) + if ((h || x in y) && ((g = m((d = y[x]), x, b)), t)) + if (e) w[x] = g; + else if (g) + switch (t) { + case 3: + return !0; + case 5: + return d; + case 6: + return x; + case 2: + w.push(d); + } + else if (f) return !1; + return l ? -1 : s || f ? f : w; + }; + }; + }, + function (t, n) { + var e = {}.toString; + t.exports = function (t) { + return e.call(t).slice(8, -1); + }; + }, + function (t, n) { + t.exports = function (t) { + if (null == t) throw TypeError("Can't call method on " + t); + return t; + }; + }, + function (t, n, e) { + 'use strict'; + if (e(8)) { + var r = e(30), + o = e(1), + i = e(2), + u = e(0), + c = e(60), + a = e(85), + s = e(17), + f = e(42), + l = e(28), + h = e(14), + p = e(43), + v = e(19), + d = e(6), + g = e(116), + b = e(32), + y = e(26), + m = e(13), + k = e(47), + x = e(4), + w = e(10), + S = e(77), + _ = e(33), + E = e(35), + O = e(34).f, + P = e(79), + F = e(29), + A = e(5), + M = e(22), + j = e(50), + I = e(48), + N = e(81), + L = e(40), + T = e(53), + R = e(41), + C = e(80), + W = e(107), + D = e(9), + B = e(20), + U = D.f, + G = B.f, + V = o.RangeError, + z = o.TypeError, + Y = o.Uint8Array, + q = Array.prototype, + J = a.ArrayBuffer, + H = a.DataView, + K = M(0), + $ = M(2), + X = M(3), + Z = M(4), + Q = M(5), + tt = M(6), + nt = j(!0), + et = j(!1), + rt = N.values, + ot = N.keys, + it = N.entries, + ut = q.lastIndexOf, + ct = q.reduce, + at = q.reduceRight, + st = q.join, + ft = q.sort, + lt = q.slice, + ht = q.toString, + pt = q.toLocaleString, + vt = A('iterator'), + dt = A('toStringTag'), + gt = F('typed_constructor'), + bt = F('def_constructor'), + yt = c.CONSTR, + mt = c.TYPED, + kt = c.VIEW, + xt = M(1, function (t, n) { + return Ot(I(t, t[bt]), n); + }), + wt = i(function () { + return 1 === new Y(new Uint16Array([1]).buffer)[0]; + }), + St = + !!Y && + !!Y.prototype.set && + i(function () { + new Y(1).set({}); + }), + _t = function (t, n) { + var e = v(t); + if (e < 0 || e % n) throw V('Wrong offset!'); + return e; + }, + Et = function (t) { + if (x(t) && mt in t) return t; + throw z(t + ' is not a typed array!'); + }, + Ot = function (t, n) { + if (!(x(t) && gt in t)) throw z('It is not a typed array constructor!'); + return new t(n); + }, + Pt = function (t, n) { + return Ft(I(t, t[bt]), n); + }, + Ft = function (t, n) { + for (var e = 0, r = n.length, o = Ot(t, r); r > e; ) o[e] = n[e++]; + return o; + }, + At = function (t, n, e) { + U(t, n, { + get: function () { + return this._d[e]; + }, + }); + }, + Mt = function (t) { + var n, + e, + r, + o, + i, + u, + c = w(t), + a = arguments.length, + f = a > 1 ? arguments[1] : void 0, + l = void 0 !== f, + h = P(c); + if (null != h && !S(h)) { + for (u = h.call(c), r = [], n = 0; !(i = u.next()).done; n++) + r.push(i.value); + c = r; + } + for ( + l && a > 2 && (f = s(f, arguments[2], 2)), + n = 0, + e = d(c.length), + o = Ot(this, e); + e > n; + n++ + ) + o[n] = l ? f(c[n], n) : c[n]; + return o; + }, + jt = function () { + for (var t = 0, n = arguments.length, e = Ot(this, n); n > t; ) + e[t] = arguments[t++]; + return e; + }, + It = + !!Y && + i(function () { + pt.call(new Y(1)); + }), + Nt = function () { + return pt.apply(It ? lt.call(Et(this)) : Et(this), arguments); + }, + Lt = { + copyWithin: function (t, n) { + return W.call(Et(this), t, n, arguments.length > 2 ? arguments[2] : void 0); + }, + every: function (t) { + return Z(Et(this), t, arguments.length > 1 ? arguments[1] : void 0); + }, + fill: function (t) { + return C.apply(Et(this), arguments); + }, + filter: function (t) { + return Pt( + this, + $(Et(this), t, arguments.length > 1 ? arguments[1] : void 0), + ); + }, + find: function (t) { + return Q(Et(this), t, arguments.length > 1 ? arguments[1] : void 0); + }, + findIndex: function (t) { + return tt(Et(this), t, arguments.length > 1 ? arguments[1] : void 0); + }, + forEach: function (t) { + K(Et(this), t, arguments.length > 1 ? arguments[1] : void 0); + }, + indexOf: function (t) { + return et(Et(this), t, arguments.length > 1 ? arguments[1] : void 0); + }, + includes: function (t) { + return nt(Et(this), t, arguments.length > 1 ? arguments[1] : void 0); + }, + join: function (t) { + return st.apply(Et(this), arguments); + }, + lastIndexOf: function (t) { + return ut.apply(Et(this), arguments); + }, + map: function (t) { + return xt(Et(this), t, arguments.length > 1 ? arguments[1] : void 0); + }, + reduce: function (t) { + return ct.apply(Et(this), arguments); + }, + reduceRight: function (t) { + return at.apply(Et(this), arguments); + }, + reverse: function () { + for (var t, n = Et(this).length, e = Math.floor(n / 2), r = 0; r < e; ) + (t = this[r]), (this[r++] = this[--n]), (this[n] = t); + return this; + }, + some: function (t) { + return X(Et(this), t, arguments.length > 1 ? arguments[1] : void 0); + }, + sort: function (t) { + return ft.call(Et(this), t); + }, + subarray: function (t, n) { + var e = Et(this), + r = e.length, + o = b(t, r); + return new (I(e, e[bt]))( + e.buffer, + e.byteOffset + o * e.BYTES_PER_ELEMENT, + d((void 0 === n ? r : b(n, r)) - o), + ); + }, + }, + Tt = function (t, n) { + return Pt(this, lt.call(Et(this), t, n)); + }, + Rt = function (t) { + Et(this); + var n = _t(arguments[1], 1), + e = this.length, + r = w(t), + o = d(r.length), + i = 0; + if (o + n > e) throw V('Wrong length!'); + for (; i < o; ) this[n + i] = r[i++]; + }, + Ct = { + entries: function () { + return it.call(Et(this)); + }, + keys: function () { + return ot.call(Et(this)); + }, + values: function () { + return rt.call(Et(this)); + }, + }, + Wt = function (t, n) { + return ( + x(t) && t[mt] && 'symbol' != typeof n && n in t && String(+n) == String(n) + ); + }, + Dt = function (t, n) { + return Wt(t, (n = y(n, !0))) ? l(2, t[n]) : G(t, n); + }, + Bt = function (t, n, e) { + return !(Wt(t, (n = y(n, !0))) && x(e) && m(e, 'value')) || + m(e, 'get') || + m(e, 'set') || + e.configurable || + (m(e, 'writable') && !e.writable) || + (m(e, 'enumerable') && !e.enumerable) + ? U(t, n, e) + : ((t[n] = e.value), t); + }; + yt || ((B.f = Dt), (D.f = Bt)), + u(u.S + u.F * !yt, 'Object', { getOwnPropertyDescriptor: Dt, defineProperty: Bt }), + i(function () { + ht.call({}); + }) && + (ht = pt = + function () { + return st.call(this); + }); + var Ut = p({}, Lt); + p(Ut, Ct), + h(Ut, vt, Ct.values), + p(Ut, { + slice: Tt, + set: Rt, + constructor: function () {}, + toString: ht, + toLocaleString: Nt, + }), + At(Ut, 'buffer', 'b'), + At(Ut, 'byteOffset', 'o'), + At(Ut, 'byteLength', 'l'), + At(Ut, 'length', 'e'), + U(Ut, dt, { + get: function () { + return this[mt]; + }, + }), + (t.exports = function (t, n, e, a) { + var s = t + ((a = !!a) ? 'Clamped' : '') + 'Array', + l = 'get' + t, + p = 'set' + t, + v = o[s], + b = v || {}, + y = v && E(v), + m = !v || !c.ABV, + w = {}, + S = v && v.prototype, + P = function (t, e) { + U(t, e, { + get: function () { + return (function (t, e) { + var r = t._d; + return r.v[l](e * n + r.o, wt); + })(this, e); + }, + set: function (t) { + return (function (t, e, r) { + var o = t._d; + a && + (r = + (r = Math.round(r)) < 0 + ? 0 + : r > 255 + ? 255 + : 255 & r), + o.v[p](e * n + o.o, r, wt); + })(this, e, t); + }, + enumerable: !0, + }); + }; + m + ? ((v = e(function (t, e, r, o) { + f(t, v, s, '_d'); + var i, + u, + c, + a, + l = 0, + p = 0; + if (x(e)) { + if ( + !( + e instanceof J || + 'ArrayBuffer' == (a = k(e)) || + 'SharedArrayBuffer' == a + ) + ) + return mt in e ? Ft(v, e) : Mt.call(v, e); + (i = e), (p = _t(r, n)); + var b = e.byteLength; + if (void 0 === o) { + if (b % n) throw V('Wrong length!'); + if ((u = b - p) < 0) throw V('Wrong length!'); + } else if ((u = d(o) * n) + p > b) throw V('Wrong length!'); + c = u / n; + } else (c = g(e)), (i = new J((u = c * n))); + for (h(t, '_d', { b: i, o: p, l: u, e: c, v: new H(i) }); l < c; ) + P(t, l++); + })), + (S = v.prototype = _(Ut)), + h(S, 'constructor', v)) + : (i(function () { + v(1); + }) && + i(function () { + new v(-1); + }) && + T(function (t) { + new v(), new v(null), new v(1.5), new v(t); + }, !0)) || + ((v = e(function (t, e, r, o) { + var i; + return ( + f(t, v, s), + x(e) + ? e instanceof J || + 'ArrayBuffer' == (i = k(e)) || + 'SharedArrayBuffer' == i + ? void 0 !== o + ? new b(e, _t(r, n), o) + : void 0 !== r + ? new b(e, _t(r, n)) + : new b(e) + : mt in e + ? Ft(v, e) + : Mt.call(v, e) + : new b(g(e)) + ); + })), + K(y !== Function.prototype ? O(b).concat(O(y)) : O(b), function (t) { + t in v || h(v, t, b[t]); + }), + (v.prototype = S), + r || (S.constructor = v)); + var F = S[vt], + A = !!F && ('values' == F.name || null == F.name), + M = Ct.values; + h(v, gt, !0), + h(S, mt, s), + h(S, kt, !0), + h(S, bt, v), + (a ? new v(1)[dt] == s : dt in S) || + U(S, dt, { + get: function () { + return s; + }, + }), + (w[s] = v), + u(u.G + u.W + u.F * (v != b), w), + u(u.S, s, { BYTES_PER_ELEMENT: n }), + u( + u.S + + u.F * + i(function () { + b.of.call(v, 1); + }), + s, + { from: Mt, of: jt }, + ), + 'BYTES_PER_ELEMENT' in S || h(S, 'BYTES_PER_ELEMENT', n), + u(u.P, s, Lt), + R(s), + u(u.P + u.F * St, s, { set: Rt }), + u(u.P + u.F * !A, s, Ct), + r || S.toString == ht || (S.toString = ht), + u( + u.P + + u.F * + i(function () { + new v(1).slice(); + }), + s, + { slice: Tt }, + ), + u( + u.P + + u.F * + (i(function () { + return ( + [1, 2].toLocaleString() != + new v([1, 2]).toLocaleString() + ); + }) || + !i(function () { + S.toLocaleString.call([1, 2]); + })), + s, + { toLocaleString: Nt }, + ), + (L[s] = A ? F : M), + r || A || h(S, vt, M); + }); + } else t.exports = function () {}; + }, + function (t, n, e) { + var r = e(4); + t.exports = function (t, n) { + if (!r(t)) return t; + var e, o; + if (n && 'function' == typeof (e = t.toString) && !r((o = e.call(t)))) return o; + if ('function' == typeof (e = t.valueOf) && !r((o = e.call(t)))) return o; + if (!n && 'function' == typeof (e = t.toString) && !r((o = e.call(t)))) return o; + throw TypeError("Can't convert object to primitive value"); + }; + }, + function (t, n, e) { + var r = e(29)('meta'), + o = e(4), + i = e(13), + u = e(9).f, + c = 0, + a = + Object.isExtensible || + function () { + return !0; + }, + s = !e(2)(function () { + return a(Object.preventExtensions({})); + }), + f = function (t) { + u(t, r, { value: { i: 'O' + ++c, w: {} } }); + }, + l = (t.exports = { + KEY: r, + NEED: !1, + fastKey: function (t, n) { + if (!o(t)) + return 'symbol' == typeof t ? t : ('string' == typeof t ? 'S' : 'P') + t; + if (!i(t, r)) { + if (!a(t)) return 'F'; + if (!n) return 'E'; + f(t); + } + return t[r].i; + }, + getWeak: function (t, n) { + if (!i(t, r)) { + if (!a(t)) return !0; + if (!n) return !1; + f(t); + } + return t[r].w; + }, + onFreeze: function (t) { + return s && l.NEED && a(t) && !i(t, r) && f(t), t; + }, + }); + }, + function (t, n) { + t.exports = function (t, n) { + return { enumerable: !(1 & t), configurable: !(2 & t), writable: !(4 & t), value: n }; + }; + }, + function (t, n) { + var e = 0, + r = Math.random(); + t.exports = function (t) { + return 'Symbol('.concat(void 0 === t ? '' : t, ')_', (++e + r).toString(36)); + }; + }, + function (t, n) { + t.exports = !1; + }, + function (t, n, e) { + var r = e(91), + o = e(64); + t.exports = + Object.keys || + function (t) { + return r(t, o); + }; + }, + function (t, n, e) { + var r = e(19), + o = Math.max, + i = Math.min; + t.exports = function (t, n) { + return (t = r(t)) < 0 ? o(t + n, 0) : i(t, n); + }; + }, + function (t, n, e) { + var r = e(3), + o = e(92), + i = e(64), + u = e(63)('IE_PROTO'), + c = function () {}, + a = function () { + var t, + n = e(61)('iframe'), + r = i.length; + for ( + n.style.display = 'none', + e(65).appendChild(n), + n.src = 'javascript:', + (t = n.contentWindow.document).open(), + t.write(''), + t.close(), + a = t.F; + r--; + + ) + delete a.prototype[i[r]]; + return a(); + }; + t.exports = + Object.create || + function (t, n) { + var e; + return ( + null !== t + ? ((c.prototype = r(t)), (e = new c()), (c.prototype = null), (e[u] = t)) + : (e = a()), + void 0 === n ? e : o(e, n) + ); + }; + }, + function (t, n, e) { + var r = e(91), + o = e(64).concat('length', 'prototype'); + n.f = + Object.getOwnPropertyNames || + function (t) { + return r(t, o); + }; + }, + function (t, n, e) { + var r = e(13), + o = e(10), + i = e(63)('IE_PROTO'), + u = Object.prototype; + t.exports = + Object.getPrototypeOf || + function (t) { + return ( + (t = o(t)), + r(t, i) + ? t[i] + : 'function' == typeof t.constructor && t instanceof t.constructor + ? t.constructor.prototype + : t instanceof Object + ? u + : null + ); + }; + }, + function (t, n, e) { + var r = e(5)('unscopables'), + o = Array.prototype; + null == o[r] && e(14)(o, r, {}), + (t.exports = function (t) { + o[r][t] = !0; + }); + }, + function (t, n, e) { + var r = e(4); + t.exports = function (t, n) { + if (!r(t) || t._t !== n) throw TypeError('Incompatible receiver, ' + n + ' required!'); + return t; + }; + }, + function (t, n, e) { + var r = e(9).f, + o = e(13), + i = e(5)('toStringTag'); + t.exports = function (t, n, e) { + t && !o((t = e ? t : t.prototype), i) && r(t, i, { configurable: !0, value: n }); + }; + }, + function (t, n, e) { + var r = e(0), + o = e(24), + i = e(2), + u = e(67), + c = '[' + u + ']', + a = RegExp('^' + c + c + '*'), + s = RegExp(c + c + '*$'), + f = function (t, n, e) { + var o = {}, + c = i(function () { + return !!u[t]() || '​…' != '​…'[t](); + }), + a = (o[t] = c ? n(l) : u[t]); + e && (o[e] = a), r(r.P + r.F * c, 'String', o); + }, + l = (f.trim = function (t, n) { + return ( + (t = String(o(t))), + 1 & n && (t = t.replace(a, '')), + 2 & n && (t = t.replace(s, '')), + t + ); + }); + t.exports = f; + }, + function (t, n) { + t.exports = {}; + }, + function (t, n, e) { + 'use strict'; + var r = e(1), + o = e(9), + i = e(8), + u = e(5)('species'); + t.exports = function (t) { + var n = r[t]; + i && + n && + !n[u] && + o.f(n, u, { + configurable: !0, + get: function () { + return this; + }, + }); + }; + }, + function (t, n) { + t.exports = function (t, n, e, r) { + if (!(t instanceof n) || (void 0 !== r && r in t)) + throw TypeError(e + ': incorrect invocation!'); + return t; + }; + }, + function (t, n, e) { + var r = e(11); + t.exports = function (t, n, e) { + for (var o in n) r(t, o, n[o], e); + return t; + }; + }, + function (t, n, e) { + 'use strict'; + e.r(n), + e.d(n, 'getPolicyUrl', function () { + return o; + }), + e.d(n, 'makeUrlAbsolute', function () { + return i; + }), + e.d(n, 'getNoBanner', function () { + return u; + }); + var r = document.currentScript; + function o() { + var t = '/our-policies/cookies-policy/'; + return r + ? (r.getAttribute('data-policy-url') && (t = r.getAttribute('data-policy-url')), t) + : t; + } + function i(t) { + var n = document.createElement('a'); + return (n.href = t), n.href; + } + function u() { + if (!r) return !1; + var t = r.getAttribute('data-nobanner'); + return 'true' === t || '' === t; + } + }, + function (t, n, e) { + var r = e(23); + t.exports = Object('z').propertyIsEnumerable(0) + ? Object + : function (t) { + return 'String' == r(t) ? t.split('') : Object(t); + }; + }, + function (t, n) { + n.f = {}.propertyIsEnumerable; + }, + function (t, n, e) { + var r = e(23), + o = e(5)('toStringTag'), + i = + 'Arguments' == + r( + (function () { + return arguments; + })(), + ); + t.exports = function (t) { + var n, e, u; + return void 0 === t + ? 'Undefined' + : null === t + ? 'Null' + : 'string' == + typeof (e = (function (t, n) { + try { + return t[n]; + } catch (t) {} + })((n = Object(t)), o)) + ? e + : i + ? r(n) + : 'Object' == (u = r(n)) && 'function' == typeof n.callee + ? 'Arguments' + : u; + }; + }, + function (t, n, e) { + var r = e(3), + o = e(18), + i = e(5)('species'); + t.exports = function (t, n) { + var e, + u = r(t).constructor; + return void 0 === u || null == (e = r(u)[i]) ? n : o(e); + }; + }, + function (t, n, e) { + var r = e(7), + o = e(1), + i = o['__core-js_shared__'] || (o['__core-js_shared__'] = {}); + (t.exports = function (t, n) { + return i[t] || (i[t] = void 0 !== n ? n : {}); + })('versions', []).push({ + version: r.version, + mode: e(30) ? 'pure' : 'global', + copyright: '© 2019 Denis Pushkarev (zloirock.ru)', + }); + }, + function (t, n, e) { + var r = e(15), + o = e(6), + i = e(32); + t.exports = function (t) { + return function (n, e, u) { + var c, + a = r(n), + s = o(a.length), + f = i(u, s); + if (t && e != e) { + for (; s > f; ) if ((c = a[f++]) != c) return !0; + } else for (; s > f; f++) if ((t || f in a) && a[f] === e) return t || f || 0; + return !t && -1; + }; + }; + }, + function (t, n) { + n.f = Object.getOwnPropertySymbols; + }, + function (t, n, e) { + var r = e(23); + t.exports = + Array.isArray || + function (t) { + return 'Array' == r(t); + }; + }, + function (t, n, e) { + var r = e(5)('iterator'), + o = !1; + try { + var i = [7][r](); + (i.return = function () { + o = !0; + }), + Array.from(i, function () { + throw 2; + }); + } catch (t) {} + t.exports = function (t, n) { + if (!n && !o) return !1; + var e = !1; + try { + var i = [7], + u = i[r](); + (u.next = function () { + return { done: (e = !0) }; + }), + (i[r] = function () { + return u; + }), + t(i); + } catch (t) {} + return e; + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(3); + t.exports = function () { + var t = r(this), + n = ''; + return ( + t.global && (n += 'g'), + t.ignoreCase && (n += 'i'), + t.multiline && (n += 'm'), + t.unicode && (n += 'u'), + t.sticky && (n += 'y'), + n + ); + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(47), + o = RegExp.prototype.exec; + t.exports = function (t, n) { + var e = t.exec; + if ('function' == typeof e) { + var i = e.call(t, n); + if ('object' != typeof i) + throw new TypeError( + 'RegExp exec method returned something other than an Object or null', + ); + return i; + } + if ('RegExp' !== r(t)) + throw new TypeError('RegExp#exec called on incompatible receiver'); + return o.call(t, n); + }; + }, + function (t, n, e) { + 'use strict'; + e(109); + var r = e(11), + o = e(14), + i = e(2), + u = e(24), + c = e(5), + a = e(82), + s = c('species'), + f = !i(function () { + var t = /./; + return ( + (t.exec = function () { + var t = []; + return (t.groups = { a: '7' }), t; + }), + '7' !== ''.replace(t, '$') + ); + }), + l = (function () { + var t = /(?:)/, + n = t.exec; + t.exec = function () { + return n.apply(this, arguments); + }; + var e = 'ab'.split(t); + return 2 === e.length && 'a' === e[0] && 'b' === e[1]; + })(); + t.exports = function (t, n, e) { + var h = c(t), + p = !i(function () { + var n = {}; + return ( + (n[h] = function () { + return 7; + }), + 7 != ''[t](n) + ); + }), + v = p + ? !i(function () { + var n = !1, + e = /a/; + return ( + (e.exec = function () { + return (n = !0), null; + }), + 'split' === t && + ((e.constructor = {}), + (e.constructor[s] = function () { + return e; + })), + e[h](''), + !n + ); + }) + : void 0; + if (!p || !v || ('replace' === t && !f) || ('split' === t && !l)) { + var d = /./[h], + g = e(u, h, ''[t], function (t, n, e, r, o) { + return n.exec === a + ? p && !o + ? { done: !0, value: d.call(n, e, r) } + : { done: !0, value: t.call(e, n, r) } + : { done: !1 }; + }), + b = g[0], + y = g[1]; + r(String.prototype, t, b), + o( + RegExp.prototype, + h, + 2 == n + ? function (t, n) { + return y.call(t, this, n); + } + : function (t) { + return y.call(t, this); + }, + ); + } + }; + }, + function (t, n, e) { + var r = e(17), + o = e(104), + i = e(77), + u = e(3), + c = e(6), + a = e(79), + s = {}, + f = {}; + ((n = t.exports = + function (t, n, e, l, h) { + var p, + v, + d, + g, + b = h + ? function () { + return t; + } + : a(t), + y = r(e, l, n ? 2 : 1), + m = 0; + if ('function' != typeof b) throw TypeError(t + ' is not iterable!'); + if (i(b)) { + for (p = c(t.length); p > m; m++) + if ((g = n ? y(u((v = t[m]))[0], v[1]) : y(t[m])) === s || g === f) + return g; + } else + for (d = b.call(t); !(v = d.next()).done; ) + if ((g = o(d, y, v.value, n)) === s || g === f) return g; + }).BREAK = s), + (n.RETURN = f); + }, + function (t, n, e) { + var r = e(1).navigator; + t.exports = (r && r.userAgent) || ''; + }, + function (t, n, e) { + 'use strict'; + var r = e(1), + o = e(0), + i = e(11), + u = e(43), + c = e(27), + a = e(57), + s = e(42), + f = e(4), + l = e(2), + h = e(53), + p = e(38), + v = e(68); + t.exports = function (t, n, e, d, g, b) { + var y = r[t], + m = y, + k = g ? 'set' : 'add', + x = m && m.prototype, + w = {}, + S = function (t) { + var n = x[t]; + i( + x, + t, + 'delete' == t + ? function (t) { + return !(b && !f(t)) && n.call(this, 0 === t ? 0 : t); + } + : 'has' == t + ? function (t) { + return !(b && !f(t)) && n.call(this, 0 === t ? 0 : t); + } + : 'get' == t + ? function (t) { + return b && !f(t) ? void 0 : n.call(this, 0 === t ? 0 : t); + } + : 'add' == t + ? function (t) { + return n.call(this, 0 === t ? 0 : t), this; + } + : function (t, e) { + return n.call(this, 0 === t ? 0 : t, e), this; + }, + ); + }; + if ( + 'function' == typeof m && + (b || + (x.forEach && + !l(function () { + new m().entries().next(); + }))) + ) { + var _ = new m(), + E = _[k](b ? {} : -0, 1) != _, + O = l(function () { + _.has(1); + }), + P = h(function (t) { + new m(t); + }), + F = + !b && + l(function () { + for (var t = new m(), n = 5; n--; ) t[k](n, n); + return !t.has(-0); + }); + P || + (((m = n(function (n, e) { + s(n, m, t); + var r = v(new y(), n, m); + return null != e && a(e, g, r[k], r), r; + })).prototype = x), + (x.constructor = m)), + (O || F) && (S('delete'), S('has'), g && S('get')), + (F || E) && S(k), + b && x.clear && delete x.clear; + } else (m = d.getConstructor(n, t, g, k)), u(m.prototype, e), (c.NEED = !0); + return ( + p(m, t), (w[t] = m), o(o.G + o.W + o.F * (m != y), w), b || d.setStrong(m, t, g), m + ); + }; + }, + function (t, n, e) { + for ( + var r, + o = e(1), + i = e(14), + u = e(29), + c = u('typed_array'), + a = u('view'), + s = !(!o.ArrayBuffer || !o.DataView), + f = s, + l = 0, + h = + 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'.split( + ',', + ); + l < 9; + + ) + (r = o[h[l++]]) ? (i(r.prototype, c, !0), i(r.prototype, a, !0)) : (f = !1); + t.exports = { ABV: s, CONSTR: f, TYPED: c, VIEW: a }; + }, + function (t, n, e) { + var r = e(4), + o = e(1).document, + i = r(o) && r(o.createElement); + t.exports = function (t) { + return i ? o.createElement(t) : {}; + }; + }, + function (t, n, e) { + n.f = e(5); + }, + function (t, n, e) { + var r = e(49)('keys'), + o = e(29); + t.exports = function (t) { + return r[t] || (r[t] = o(t)); + }; + }, + function (t, n) { + t.exports = + 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split( + ',', + ); + }, + function (t, n, e) { + var r = e(1).document; + t.exports = r && r.documentElement; + }, + function (t, n, e) { + var r = e(4), + o = e(3), + i = function (t, n) { + if ((o(t), !r(n) && null !== n)) throw TypeError(n + ": can't set as prototype!"); + }; + t.exports = { + set: + Object.setPrototypeOf || + ('__proto__' in {} + ? (function (t, n, r) { + try { + (r = e(17)( + Function.call, + e(20).f(Object.prototype, '__proto__').set, + 2, + ))(t, []), + (n = !(t instanceof Array)); + } catch (t) { + n = !0; + } + return function (t, e) { + return i(t, e), n ? (t.__proto__ = e) : r(t, e), t; + }; + })({}, !1) + : void 0), + check: i, + }; + }, + function (t, n) { + t.exports = '\t\n\v\f\r   ᠎              \u2028\u2029\ufeff'; + }, + function (t, n, e) { + var r = e(4), + o = e(66).set; + t.exports = function (t, n, e) { + var i, + u = n.constructor; + return ( + u !== e && + 'function' == typeof u && + (i = u.prototype) !== e.prototype && + r(i) && + o && + o(t, i), + t + ); + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(19), + o = e(24); + t.exports = function (t) { + var n = String(o(this)), + e = '', + i = r(t); + if (i < 0 || i == 1 / 0) throw RangeError("Count can't be negative"); + for (; i > 0; (i >>>= 1) && (n += n)) 1 & i && (e += n); + return e; + }; + }, + function (t, n) { + t.exports = + Math.sign || + function (t) { + return 0 == (t = +t) || t != t ? t : t < 0 ? -1 : 1; + }; + }, + function (t, n) { + var e = Math.expm1; + t.exports = + !e || e(10) > 22025.465794806718 || e(10) < 22025.465794806718 || -2e-17 != e(-2e-17) + ? function (t) { + return 0 == (t = +t) + ? t + : t > -1e-6 && t < 1e-6 + ? t + (t * t) / 2 + : Math.exp(t) - 1; + } + : e; + }, + function (t, n, e) { + var r = e(19), + o = e(24); + t.exports = function (t) { + return function (n, e) { + var i, + u, + c = String(o(n)), + a = r(e), + s = c.length; + return a < 0 || a >= s + ? t + ? '' + : void 0 + : (i = c.charCodeAt(a)) < 55296 || + i > 56319 || + a + 1 === s || + (u = c.charCodeAt(a + 1)) < 56320 || + u > 57343 + ? t + ? c.charAt(a) + : i + : t + ? c.slice(a, a + 2) + : u - 56320 + ((i - 55296) << 10) + 65536; + }; + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(30), + o = e(0), + i = e(11), + u = e(14), + c = e(40), + a = e(103), + s = e(38), + f = e(35), + l = e(5)('iterator'), + h = !([].keys && 'next' in [].keys()), + p = function () { + return this; + }; + t.exports = function (t, n, e, v, d, g, b) { + a(e, n, v); + var y, + m, + k, + x = function (t) { + if (!h && t in E) return E[t]; + switch (t) { + case 'keys': + case 'values': + return function () { + return new e(this, t); + }; + } + return function () { + return new e(this, t); + }; + }, + w = n + ' Iterator', + S = 'values' == d, + _ = !1, + E = t.prototype, + O = E[l] || E['@@iterator'] || (d && E[d]), + P = O || x(d), + F = d ? (S ? x('entries') : P) : void 0, + A = ('Array' == n && E.entries) || O; + if ( + (A && + (k = f(A.call(new t()))) !== Object.prototype && + k.next && + (s(k, w, !0), r || 'function' == typeof k[l] || u(k, l, p)), + S && + O && + 'values' !== O.name && + ((_ = !0), + (P = function () { + return O.call(this); + })), + (r && !b) || (!h && !_ && E[l]) || u(E, l, P), + (c[n] = P), + (c[w] = p), + d) + ) + if (((y = { values: S ? P : x('values'), keys: g ? P : x('keys'), entries: F }), b)) + for (m in y) m in E || i(E, m, y[m]); + else o(o.P + o.F * (h || _), n, y); + return y; + }; + }, + function (t, n, e) { + var r = e(75), + o = e(24); + t.exports = function (t, n, e) { + if (r(n)) throw TypeError('String#' + e + " doesn't accept regex!"); + return String(o(t)); + }; + }, + function (t, n, e) { + var r = e(4), + o = e(23), + i = e(5)('match'); + t.exports = function (t) { + var n; + return r(t) && (void 0 !== (n = t[i]) ? !!n : 'RegExp' == o(t)); + }; + }, + function (t, n, e) { + var r = e(5)('match'); + t.exports = function (t) { + var n = /./; + try { + '/./'[t](n); + } catch (e) { + try { + return (n[r] = !1), !'/./'[t](n); + } catch (t) {} + } + return !0; + }; + }, + function (t, n, e) { + var r = e(40), + o = e(5)('iterator'), + i = Array.prototype; + t.exports = function (t) { + return void 0 !== t && (r.Array === t || i[o] === t); + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(9), + o = e(28); + t.exports = function (t, n, e) { + n in t ? r.f(t, n, o(0, e)) : (t[n] = e); + }; + }, + function (t, n, e) { + var r = e(47), + o = e(5)('iterator'), + i = e(40); + t.exports = e(7).getIteratorMethod = function (t) { + if (null != t) return t[o] || t['@@iterator'] || i[r(t)]; + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(10), + o = e(32), + i = e(6); + t.exports = function (t) { + for ( + var n = r(this), + e = i(n.length), + u = arguments.length, + c = o(u > 1 ? arguments[1] : void 0, e), + a = u > 2 ? arguments[2] : void 0, + s = void 0 === a ? e : o(a, e); + s > c; + + ) + n[c++] = t; + return n; + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(36), + o = e(108), + i = e(40), + u = e(15); + (t.exports = e(73)( + Array, + 'Array', + function (t, n) { + (this._t = u(t)), (this._i = 0), (this._k = n); + }, + function () { + var t = this._t, + n = this._k, + e = this._i++; + return !t || e >= t.length + ? ((this._t = void 0), o(1)) + : o(0, 'keys' == n ? e : 'values' == n ? t[e] : [e, t[e]]); + }, + 'values', + )), + (i.Arguments = i.Array), + r('keys'), + r('values'), + r('entries'); + }, + function (t, n, e) { + 'use strict'; + var r, + o, + i = e(54), + u = RegExp.prototype.exec, + c = String.prototype.replace, + a = u, + s = + ((r = /a/), + (o = /b*/g), + u.call(r, 'a'), + u.call(o, 'a'), + 0 !== r.lastIndex || 0 !== o.lastIndex), + f = void 0 !== /()??/.exec('')[1]; + (s || f) && + (a = function (t) { + var n, + e, + r, + o, + a = this; + return ( + f && (e = new RegExp('^' + a.source + '$(?!\\s)', i.call(a))), + s && (n = a.lastIndex), + (r = u.call(a, t)), + s && r && (a.lastIndex = a.global ? r.index + r[0].length : n), + f && + r && + r.length > 1 && + c.call(r[0], e, function () { + for (o = 1; o < arguments.length - 2; o++) + void 0 === arguments[o] && (r[o] = void 0); + }), + r + ); + }), + (t.exports = a); + }, + function (t, n, e) { + 'use strict'; + var r = e(72)(!0); + t.exports = function (t, n, e) { + return n + (e ? r(t, n).length : 1); + }; + }, + function (t, n, e) { + var r, + o, + i, + u = e(17), + c = e(97), + a = e(65), + s = e(61), + f = e(1), + l = f.process, + h = f.setImmediate, + p = f.clearImmediate, + v = f.MessageChannel, + d = f.Dispatch, + g = 0, + b = {}, + y = function () { + var t = +this; + if (b.hasOwnProperty(t)) { + var n = b[t]; + delete b[t], n(); + } + }, + m = function (t) { + y.call(t.data); + }; + (h && p) || + ((h = function (t) { + for (var n = [], e = 1; arguments.length > e; ) n.push(arguments[e++]); + return ( + (b[++g] = function () { + c('function' == typeof t ? t : Function(t), n); + }), + r(g), + g + ); + }), + (p = function (t) { + delete b[t]; + }), + 'process' == e(23)(l) + ? (r = function (t) { + l.nextTick(u(y, t, 1)); + }) + : d && d.now + ? (r = function (t) { + d.now(u(y, t, 1)); + }) + : v + ? ((i = (o = new v()).port2), (o.port1.onmessage = m), (r = u(i.postMessage, i, 1))) + : f.addEventListener && 'function' == typeof postMessage && !f.importScripts + ? ((r = function (t) { + f.postMessage(t + '', '*'); + }), + f.addEventListener('message', m, !1)) + : (r = + 'onreadystatechange' in s('script') + ? function (t) { + a.appendChild(s('script')).onreadystatechange = function () { + a.removeChild(this), y.call(t); + }; + } + : function (t) { + setTimeout(u(y, t, 1), 0); + })), + (t.exports = { set: h, clear: p }); + }, + function (t, n, e) { + 'use strict'; + var r = e(1), + o = e(8), + i = e(30), + u = e(60), + c = e(14), + a = e(43), + s = e(2), + f = e(42), + l = e(19), + h = e(6), + p = e(116), + v = e(34).f, + d = e(9).f, + g = e(80), + b = e(38), + y = 'prototype', + m = 'Wrong index!', + k = r.ArrayBuffer, + x = r.DataView, + w = r.Math, + S = r.RangeError, + _ = r.Infinity, + E = k, + O = w.abs, + P = w.pow, + F = w.floor, + A = w.log, + M = w.LN2, + j = o ? '_b' : 'buffer', + I = o ? '_l' : 'byteLength', + N = o ? '_o' : 'byteOffset'; + function L(t, n, e) { + var r, + o, + i, + u = new Array(e), + c = 8 * e - n - 1, + a = (1 << c) - 1, + s = a >> 1, + f = 23 === n ? P(2, -24) - P(2, -77) : 0, + l = 0, + h = t < 0 || (0 === t && 1 / t < 0) ? 1 : 0; + for ( + (t = O(t)) != t || t === _ + ? ((o = t != t ? 1 : 0), (r = a)) + : ((r = F(A(t) / M)), + t * (i = P(2, -r)) < 1 && (r--, (i *= 2)), + (t += r + s >= 1 ? f / i : f * P(2, 1 - s)) * i >= 2 && (r++, (i /= 2)), + r + s >= a + ? ((o = 0), (r = a)) + : r + s >= 1 + ? ((o = (t * i - 1) * P(2, n)), (r += s)) + : ((o = t * P(2, s - 1) * P(2, n)), (r = 0))); + n >= 8; + u[l++] = 255 & o, o /= 256, n -= 8 + ); + for (r = (r << n) | o, c += n; c > 0; u[l++] = 255 & r, r /= 256, c -= 8); + return (u[--l] |= 128 * h), u; + } + function T(t, n, e) { + var r, + o = 8 * e - n - 1, + i = (1 << o) - 1, + u = i >> 1, + c = o - 7, + a = e - 1, + s = t[a--], + f = 127 & s; + for (s >>= 7; c > 0; f = 256 * f + t[a], a--, c -= 8); + for (r = f & ((1 << -c) - 1), f >>= -c, c += n; c > 0; r = 256 * r + t[a], a--, c -= 8); + if (0 === f) f = 1 - u; + else { + if (f === i) return r ? NaN : s ? -_ : _; + (r += P(2, n)), (f -= u); + } + return (s ? -1 : 1) * r * P(2, f - n); + } + function R(t) { + return (t[3] << 24) | (t[2] << 16) | (t[1] << 8) | t[0]; + } + function C(t) { + return [255 & t]; + } + function W(t) { + return [255 & t, (t >> 8) & 255]; + } + function D(t) { + return [255 & t, (t >> 8) & 255, (t >> 16) & 255, (t >> 24) & 255]; + } + function B(t) { + return L(t, 52, 8); + } + function U(t) { + return L(t, 23, 4); + } + function G(t, n, e) { + d(t[y], n, { + get: function () { + return this[e]; + }, + }); + } + function V(t, n, e, r) { + var o = p(+e); + if (o + n > t[I]) throw S(m); + var i = t[j]._b, + u = o + t[N], + c = i.slice(u, u + n); + return r ? c : c.reverse(); + } + function z(t, n, e, r, o, i) { + var u = p(+e); + if (u + n > t[I]) throw S(m); + for (var c = t[j]._b, a = u + t[N], s = r(+o), f = 0; f < n; f++) + c[a + f] = s[i ? f : n - f - 1]; + } + if (u.ABV) { + if ( + !s(function () { + k(1); + }) || + !s(function () { + new k(-1); + }) || + s(function () { + return new k(), new k(1.5), new k(NaN), 'ArrayBuffer' != k.name; + }) + ) { + for ( + var Y, + q = ((k = function (t) { + return f(this, k), new E(p(t)); + })[y] = E[y]), + J = v(E), + H = 0; + J.length > H; + + ) + (Y = J[H++]) in k || c(k, Y, E[Y]); + i || (q.constructor = k); + } + var K = new x(new k(2)), + $ = x[y].setInt8; + K.setInt8(0, 2147483648), + K.setInt8(1, 2147483649), + (!K.getInt8(0) && K.getInt8(1)) || + a( + x[y], + { + setInt8: function (t, n) { + $.call(this, t, (n << 24) >> 24); + }, + setUint8: function (t, n) { + $.call(this, t, (n << 24) >> 24); + }, + }, + !0, + ); + } else + (k = function (t) { + f(this, k, 'ArrayBuffer'); + var n = p(t); + (this._b = g.call(new Array(n), 0)), (this[I] = n); + }), + (x = function (t, n, e) { + f(this, x, 'DataView'), f(t, k, 'DataView'); + var r = t[I], + o = l(n); + if (o < 0 || o > r) throw S('Wrong offset!'); + if (o + (e = void 0 === e ? r - o : h(e)) > r) throw S('Wrong length!'); + (this[j] = t), (this[N] = o), (this[I] = e); + }), + o && + (G(k, 'byteLength', '_l'), + G(x, 'buffer', '_b'), + G(x, 'byteLength', '_l'), + G(x, 'byteOffset', '_o')), + a(x[y], { + getInt8: function (t) { + return (V(this, 1, t)[0] << 24) >> 24; + }, + getUint8: function (t) { + return V(this, 1, t)[0]; + }, + getInt16: function (t) { + var n = V(this, 2, t, arguments[1]); + return (((n[1] << 8) | n[0]) << 16) >> 16; + }, + getUint16: function (t) { + var n = V(this, 2, t, arguments[1]); + return (n[1] << 8) | n[0]; + }, + getInt32: function (t) { + return R(V(this, 4, t, arguments[1])); + }, + getUint32: function (t) { + return R(V(this, 4, t, arguments[1])) >>> 0; + }, + getFloat32: function (t) { + return T(V(this, 4, t, arguments[1]), 23, 4); + }, + getFloat64: function (t) { + return T(V(this, 8, t, arguments[1]), 52, 8); + }, + setInt8: function (t, n) { + z(this, 1, t, C, n); + }, + setUint8: function (t, n) { + z(this, 1, t, C, n); + }, + setInt16: function (t, n) { + z(this, 2, t, W, n, arguments[2]); + }, + setUint16: function (t, n) { + z(this, 2, t, W, n, arguments[2]); + }, + setInt32: function (t, n) { + z(this, 4, t, D, n, arguments[2]); + }, + setUint32: function (t, n) { + z(this, 4, t, D, n, arguments[2]); + }, + setFloat32: function (t, n) { + z(this, 4, t, U, n, arguments[2]); + }, + setFloat64: function (t, n) { + z(this, 8, t, B, n, arguments[2]); + }, + }); + b(k, 'ArrayBuffer'), + b(x, 'DataView'), + c(x[y], u.VIEW, !0), + (n.ArrayBuffer = k), + (n.DataView = x); + }, + function (t, n) { + var e = (t.exports = + 'undefined' != typeof window && window.Math == Math + ? window + : 'undefined' != typeof self && self.Math == Math + ? self + : Function('return this')()); + 'number' == typeof __g && (__g = e); + }, + function (t, n) { + t.exports = function (t) { + return 'object' == typeof t ? null !== t : 'function' == typeof t; + }; + }, + function (t, n, e) { + t.exports = !e(121)(function () { + return ( + 7 != + Object.defineProperty({}, 'a', { + get: function () { + return 7; + }, + }).a + ); + }); + }, + function (t, n, e) { + t.exports = + !e(8) && + !e(2)(function () { + return ( + 7 != + Object.defineProperty(e(61)('div'), 'a', { + get: function () { + return 7; + }, + }).a + ); + }); + }, + function (t, n, e) { + var r = e(1), + o = e(7), + i = e(30), + u = e(62), + c = e(9).f; + t.exports = function (t) { + var n = o.Symbol || (o.Symbol = i ? {} : r.Symbol || {}); + '_' == t.charAt(0) || t in n || c(n, t, { value: u.f(t) }); + }; + }, + function (t, n, e) { + var r = e(13), + o = e(15), + i = e(50)(!1), + u = e(63)('IE_PROTO'); + t.exports = function (t, n) { + var e, + c = o(t), + a = 0, + s = []; + for (e in c) e != u && r(c, e) && s.push(e); + for (; n.length > a; ) r(c, (e = n[a++])) && (~i(s, e) || s.push(e)); + return s; + }; + }, + function (t, n, e) { + var r = e(9), + o = e(3), + i = e(31); + t.exports = e(8) + ? Object.defineProperties + : function (t, n) { + o(t); + for (var e, u = i(n), c = u.length, a = 0; c > a; ) r.f(t, (e = u[a++]), n[e]); + return t; + }; + }, + function (t, n, e) { + var r = e(15), + o = e(34).f, + i = {}.toString, + u = + 'object' == typeof window && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) + : []; + t.exports.f = function (t) { + return u && '[object Window]' == i.call(t) + ? (function (t) { + try { + return o(t); + } catch (t) { + return u.slice(); + } + })(t) + : o(r(t)); + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(8), + o = e(31), + i = e(51), + u = e(46), + c = e(10), + a = e(45), + s = Object.assign; + t.exports = + !s || + e(2)(function () { + var t = {}, + n = {}, + e = Symbol(), + r = 'abcdefghijklmnopqrst'; + return ( + (t[e] = 7), + r.split('').forEach(function (t) { + n[t] = t; + }), + 7 != s({}, t)[e] || Object.keys(s({}, n)).join('') != r + ); + }) + ? function (t, n) { + for (var e = c(t), s = arguments.length, f = 1, l = i.f, h = u.f; s > f; ) + for ( + var p, + v = a(arguments[f++]), + d = l ? o(v).concat(l(v)) : o(v), + g = d.length, + b = 0; + g > b; + + ) + (p = d[b++]), (r && !h.call(v, p)) || (e[p] = v[p]); + return e; + } + : s; + }, + function (t, n) { + t.exports = + Object.is || + function (t, n) { + return t === n ? 0 !== t || 1 / t == 1 / n : t != t && n != n; + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(18), + o = e(4), + i = e(97), + u = [].slice, + c = {}, + a = function (t, n, e) { + if (!(n in c)) { + for (var r = [], o = 0; o < n; o++) r[o] = 'a[' + o + ']'; + c[n] = Function('F,a', 'return new F(' + r.join(',') + ')'); + } + return c[n](t, e); + }; + t.exports = + Function.bind || + function (t) { + var n = r(this), + e = u.call(arguments, 1), + c = function () { + var r = e.concat(u.call(arguments)); + return this instanceof c ? a(n, r.length, r) : i(n, r, t); + }; + return o(n.prototype) && (c.prototype = n.prototype), c; + }; + }, + function (t, n) { + t.exports = function (t, n, e) { + var r = void 0 === e; + switch (n.length) { + case 0: + return r ? t() : t.call(e); + case 1: + return r ? t(n[0]) : t.call(e, n[0]); + case 2: + return r ? t(n[0], n[1]) : t.call(e, n[0], n[1]); + case 3: + return r ? t(n[0], n[1], n[2]) : t.call(e, n[0], n[1], n[2]); + case 4: + return r ? t(n[0], n[1], n[2], n[3]) : t.call(e, n[0], n[1], n[2], n[3]); + } + return t.apply(e, n); + }; + }, + function (t, n, e) { + var r = e(1).parseInt, + o = e(39).trim, + i = e(67), + u = /^[-+]?0[xX]/; + t.exports = + 8 !== r(i + '08') || 22 !== r(i + '0x16') + ? function (t, n) { + var e = o(String(t), 3); + return r(e, n >>> 0 || (u.test(e) ? 16 : 10)); + } + : r; + }, + function (t, n, e) { + var r = e(1).parseFloat, + o = e(39).trim; + t.exports = + 1 / r(e(67) + '-0') != -1 / 0 + ? function (t) { + var n = o(String(t), 3), + e = r(n); + return 0 === e && '-' == n.charAt(0) ? -0 : e; + } + : r; + }, + function (t, n, e) { + var r = e(23); + t.exports = function (t, n) { + if ('number' != typeof t && 'Number' != r(t)) throw TypeError(n); + return +t; + }; + }, + function (t, n, e) { + var r = e(4), + o = Math.floor; + t.exports = function (t) { + return !r(t) && isFinite(t) && o(t) === t; + }; + }, + function (t, n) { + t.exports = + Math.log1p || + function (t) { + return (t = +t) > -1e-8 && t < 1e-8 ? t - (t * t) / 2 : Math.log(1 + t); + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(33), + o = e(28), + i = e(38), + u = {}; + e(14)(u, e(5)('iterator'), function () { + return this; + }), + (t.exports = function (t, n, e) { + (t.prototype = r(u, { next: o(1, e) })), i(t, n + ' Iterator'); + }); + }, + function (t, n, e) { + var r = e(3); + t.exports = function (t, n, e, o) { + try { + return o ? n(r(e)[0], e[1]) : n(e); + } catch (n) { + var i = t.return; + throw (void 0 !== i && r(i.call(t)), n); + } + }; + }, + function (t, n, e) { + var r = e(220); + t.exports = function (t, n) { + return new (r(t))(n); + }; + }, + function (t, n, e) { + var r = e(18), + o = e(10), + i = e(45), + u = e(6); + t.exports = function (t, n, e, c, a) { + r(n); + var s = o(t), + f = i(s), + l = u(s.length), + h = a ? l - 1 : 0, + p = a ? -1 : 1; + if (e < 2) + for (;;) { + if (h in f) { + (c = f[h]), (h += p); + break; + } + if (((h += p), a ? h < 0 : l <= h)) + throw TypeError('Reduce of empty array with no initial value'); + } + for (; a ? h >= 0 : l > h; h += p) h in f && (c = n(c, f[h], h, s)); + return c; + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(10), + o = e(32), + i = e(6); + t.exports = + [].copyWithin || + function (t, n) { + var e = r(this), + u = i(e.length), + c = o(t, u), + a = o(n, u), + s = arguments.length > 2 ? arguments[2] : void 0, + f = Math.min((void 0 === s ? u : o(s, u)) - a, u - c), + l = 1; + for (a < c && c < a + f && ((l = -1), (a += f - 1), (c += f - 1)); f-- > 0; ) + a in e ? (e[c] = e[a]) : delete e[c], (c += l), (a += l); + return e; + }; + }, + function (t, n) { + t.exports = function (t, n) { + return { value: n, done: !!t }; + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(82); + e(0)({ target: 'RegExp', proto: !0, forced: r !== /./.exec }, { exec: r }); + }, + function (t, n, e) { + e(8) && + 'g' != /./g.flags && + e(9).f(RegExp.prototype, 'flags', { configurable: !0, get: e(54) }); + }, + function (t, n, e) { + 'use strict'; + var r, + o, + i, + u, + c = e(30), + a = e(1), + s = e(17), + f = e(47), + l = e(0), + h = e(4), + p = e(18), + v = e(42), + d = e(57), + g = e(48), + b = e(84).set, + y = e(240)(), + m = e(112), + k = e(241), + x = e(58), + w = e(113), + S = a.TypeError, + _ = a.process, + E = _ && _.versions, + O = (E && E.v8) || '', + P = a.Promise, + F = 'process' == f(_), + A = function () {}, + M = (o = m.f), + j = !!(function () { + try { + var t = P.resolve(1), + n = ((t.constructor = {})[e(5)('species')] = function (t) { + t(A, A); + }); + return ( + (F || 'function' == typeof PromiseRejectionEvent) && + t.then(A) instanceof n && + 0 !== O.indexOf('6.6') && + -1 === x.indexOf('Chrome/66') + ); + } catch (t) {} + })(), + I = function (t) { + var n; + return !(!h(t) || 'function' != typeof (n = t.then)) && n; + }, + N = function (t, n) { + if (!t._n) { + t._n = !0; + var e = t._c; + y(function () { + for ( + var r = t._v, + o = 1 == t._s, + i = 0, + u = function (n) { + var e, + i, + u, + c = o ? n.ok : n.fail, + a = n.resolve, + s = n.reject, + f = n.domain; + try { + c + ? (o || (2 == t._h && R(t), (t._h = 1)), + !0 === c + ? (e = r) + : (f && f.enter(), + (e = c(r)), + f && (f.exit(), (u = !0))), + e === n.promise + ? s(S('Promise-chain cycle')) + : (i = I(e)) + ? i.call(e, a, s) + : a(e)) + : s(r); + } catch (t) { + f && !u && f.exit(), s(t); + } + }; + e.length > i; + + ) + u(e[i++]); + (t._c = []), (t._n = !1), n && !t._h && L(t); + }); + } + }, + L = function (t) { + b.call(a, function () { + var n, + e, + r, + o = t._v, + i = T(t); + if ( + (i && + ((n = k(function () { + F + ? _.emit('unhandledRejection', o, t) + : (e = a.onunhandledrejection) + ? e({ promise: t, reason: o }) + : (r = a.console) && + r.error && + r.error('Unhandled promise rejection', o); + })), + (t._h = F || T(t) ? 2 : 1)), + (t._a = void 0), + i && n.e) + ) + throw n.v; + }); + }, + T = function (t) { + return 1 !== t._h && 0 === (t._a || t._c).length; + }, + R = function (t) { + b.call(a, function () { + var n; + F + ? _.emit('rejectionHandled', t) + : (n = a.onrejectionhandled) && n({ promise: t, reason: t._v }); + }); + }, + C = function (t) { + var n = this; + n._d || + ((n._d = !0), + ((n = n._w || n)._v = t), + (n._s = 2), + n._a || (n._a = n._c.slice()), + N(n, !0)); + }, + W = function (t) { + var n, + e = this; + if (!e._d) { + (e._d = !0), (e = e._w || e); + try { + if (e === t) throw S("Promise can't be resolved itself"); + (n = I(t)) + ? y(function () { + var r = { _w: e, _d: !1 }; + try { + n.call(t, s(W, r, 1), s(C, r, 1)); + } catch (t) { + C.call(r, t); + } + }) + : ((e._v = t), (e._s = 1), N(e, !1)); + } catch (t) { + C.call({ _w: e, _d: !1 }, t); + } + } + }; + j || + ((P = function (t) { + v(this, P, 'Promise', '_h'), p(t), r.call(this); + try { + t(s(W, this, 1), s(C, this, 1)); + } catch (t) { + C.call(this, t); + } + }), + ((r = function (t) { + (this._c = []), + (this._a = void 0), + (this._s = 0), + (this._d = !1), + (this._v = void 0), + (this._h = 0), + (this._n = !1); + }).prototype = e(43)(P.prototype, { + then: function (t, n) { + var e = M(g(this, P)); + return ( + (e.ok = 'function' != typeof t || t), + (e.fail = 'function' == typeof n && n), + (e.domain = F ? _.domain : void 0), + this._c.push(e), + this._a && this._a.push(e), + this._s && N(this, !1), + e.promise + ); + }, + catch: function (t) { + return this.then(void 0, t); + }, + })), + (i = function () { + var t = new r(); + (this.promise = t), (this.resolve = s(W, t, 1)), (this.reject = s(C, t, 1)); + }), + (m.f = M = + function (t) { + return t === P || t === u ? new i(t) : o(t); + })), + l(l.G + l.W + l.F * !j, { Promise: P }), + e(38)(P, 'Promise'), + e(41)('Promise'), + (u = e(7).Promise), + l(l.S + l.F * !j, 'Promise', { + reject: function (t) { + var n = M(this); + return (0, n.reject)(t), n.promise; + }, + }), + l(l.S + l.F * (c || !j), 'Promise', { + resolve: function (t) { + return w(c && this === u ? P : this, t); + }, + }), + l( + l.S + + l.F * + !( + j && + e(53)(function (t) { + P.all(t).catch(A); + }) + ), + 'Promise', + { + all: function (t) { + var n = this, + e = M(n), + r = e.resolve, + o = e.reject, + i = k(function () { + var e = [], + i = 0, + u = 1; + d(t, !1, function (t) { + var c = i++, + a = !1; + e.push(void 0), + u++, + n.resolve(t).then(function (t) { + a || ((a = !0), (e[c] = t), --u || r(e)); + }, o); + }), + --u || r(e); + }); + return i.e && o(i.v), e.promise; + }, + race: function (t) { + var n = this, + e = M(n), + r = e.reject, + o = k(function () { + d(t, !1, function (t) { + n.resolve(t).then(e.resolve, r); + }); + }); + return o.e && r(o.v), e.promise; + }, + }, + ); + }, + function (t, n, e) { + 'use strict'; + var r = e(18); + function o(t) { + var n, e; + (this.promise = new t(function (t, r) { + if (void 0 !== n || void 0 !== e) throw TypeError('Bad Promise constructor'); + (n = t), (e = r); + })), + (this.resolve = r(n)), + (this.reject = r(e)); + } + t.exports.f = function (t) { + return new o(t); + }; + }, + function (t, n, e) { + var r = e(3), + o = e(4), + i = e(112); + t.exports = function (t, n) { + if ((r(t), o(n) && n.constructor === t)) return n; + var e = i.f(t); + return (0, e.resolve)(n), e.promise; + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(9).f, + o = e(33), + i = e(43), + u = e(17), + c = e(42), + a = e(57), + s = e(73), + f = e(108), + l = e(41), + h = e(8), + p = e(27).fastKey, + v = e(37), + d = h ? '_s' : 'size', + g = function (t, n) { + var e, + r = p(n); + if ('F' !== r) return t._i[r]; + for (e = t._f; e; e = e.n) if (e.k == n) return e; + }; + t.exports = { + getConstructor: function (t, n, e, s) { + var f = t(function (t, r) { + c(t, f, n, '_i'), + (t._t = n), + (t._i = o(null)), + (t._f = void 0), + (t._l = void 0), + (t[d] = 0), + null != r && a(r, e, t[s], t); + }); + return ( + i(f.prototype, { + clear: function () { + for (var t = v(this, n), e = t._i, r = t._f; r; r = r.n) + (r.r = !0), r.p && (r.p = r.p.n = void 0), delete e[r.i]; + (t._f = t._l = void 0), (t[d] = 0); + }, + delete: function (t) { + var e = v(this, n), + r = g(e, t); + if (r) { + var o = r.n, + i = r.p; + delete e._i[r.i], + (r.r = !0), + i && (i.n = o), + o && (o.p = i), + e._f == r && (e._f = o), + e._l == r && (e._l = i), + e[d]--; + } + return !!r; + }, + forEach: function (t) { + v(this, n); + for ( + var e, r = u(t, arguments.length > 1 ? arguments[1] : void 0, 3); + (e = e ? e.n : this._f); + + ) + for (r(e.v, e.k, this); e && e.r; ) e = e.p; + }, + has: function (t) { + return !!g(v(this, n), t); + }, + }), + h && + r(f.prototype, 'size', { + get: function () { + return v(this, n)[d]; + }, + }), + f + ); + }, + def: function (t, n, e) { + var r, + o, + i = g(t, n); + return ( + i + ? (i.v = e) + : ((t._l = i = + { i: (o = p(n, !0)), k: n, v: e, p: (r = t._l), n: void 0, r: !1 }), + t._f || (t._f = i), + r && (r.n = i), + t[d]++, + 'F' !== o && (t._i[o] = i)), + t + ); + }, + getEntry: g, + setStrong: function (t, n, e) { + s( + t, + n, + function (t, e) { + (this._t = v(t, n)), (this._k = e), (this._l = void 0); + }, + function () { + for (var t = this._k, n = this._l; n && n.r; ) n = n.p; + return this._t && (this._l = n = n ? n.n : this._t._f) + ? f(0, 'keys' == t ? n.k : 'values' == t ? n.v : [n.k, n.v]) + : ((this._t = void 0), f(1)); + }, + e ? 'entries' : 'values', + !e, + !0, + ), + l(n); + }, + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(43), + o = e(27).getWeak, + i = e(3), + u = e(4), + c = e(42), + a = e(57), + s = e(22), + f = e(13), + l = e(37), + h = s(5), + p = s(6), + v = 0, + d = function (t) { + return t._l || (t._l = new g()); + }, + g = function () { + this.a = []; + }, + b = function (t, n) { + return h(t.a, function (t) { + return t[0] === n; + }); + }; + (g.prototype = { + get: function (t) { + var n = b(this, t); + if (n) return n[1]; + }, + has: function (t) { + return !!b(this, t); + }, + set: function (t, n) { + var e = b(this, t); + e ? (e[1] = n) : this.a.push([t, n]); + }, + delete: function (t) { + var n = p(this.a, function (n) { + return n[0] === t; + }); + return ~n && this.a.splice(n, 1), !!~n; + }, + }), + (t.exports = { + getConstructor: function (t, n, e, i) { + var s = t(function (t, r) { + c(t, s, n, '_i'), + (t._t = n), + (t._i = v++), + (t._l = void 0), + null != r && a(r, e, t[i], t); + }); + return ( + r(s.prototype, { + delete: function (t) { + if (!u(t)) return !1; + var e = o(t); + return !0 === e + ? d(l(this, n)).delete(t) + : e && f(e, this._i) && delete e[this._i]; + }, + has: function (t) { + if (!u(t)) return !1; + var e = o(t); + return !0 === e ? d(l(this, n)).has(t) : e && f(e, this._i); + }, + }), + s + ); + }, + def: function (t, n, e) { + var r = o(i(n), !0); + return !0 === r ? d(t).set(n, e) : (r[t._i] = e), t; + }, + ufstore: d, + }); + }, + function (t, n, e) { + var r = e(19), + o = e(6); + t.exports = function (t) { + if (void 0 === t) return 0; + var n = r(t), + e = o(n); + if (n !== e) throw RangeError('Wrong length!'); + return e; + }; + }, + function (t, n, e) { + var r = e(34), + o = e(51), + i = e(3), + u = e(1).Reflect; + t.exports = + (u && u.ownKeys) || + function (t) { + var n = r.f(i(t)), + e = o.f; + return e ? n.concat(e(t)) : n; + }; + }, + function (t, n, e) { + var r = e(6), + o = e(69), + i = e(24); + t.exports = function (t, n, e, u) { + var c = String(i(t)), + a = c.length, + s = void 0 === e ? ' ' : String(e), + f = r(n); + if (f <= a || '' == s) return c; + var l = f - a, + h = o.call(s, Math.ceil(l / s.length)); + return h.length > l && (h = h.slice(0, l)), u ? h + c : c + h; + }; + }, + function (t, n, e) { + var r = e(8), + o = e(31), + i = e(15), + u = e(46).f; + t.exports = function (t) { + return function (n) { + for (var e, c = i(n), a = o(c), s = a.length, f = 0, l = []; s > f; ) + (e = a[f++]), (r && !u.call(c, e)) || l.push(t ? [e, c[e]] : c[e]); + return l; + }; + }; + }, + function (t, n) { + var e = (t.exports = { version: '2.6.10' }); + 'number' == typeof __e && (__e = e); + }, + function (t, n) { + t.exports = function (t) { + try { + return !!t(); + } catch (t) { + return !0; + } + }; + }, + function (t, n, e) { + t.exports = + '\n'; + }, + function (t, n, e) { + (t.exports = e(312)(!1)).push([ + t.i, + '@font-face{font-family:\'Frutiger W01\';font-display:swap;font-style:normal;font-weight:400;src:url("https://assets.nhs.uk/fonts/FrutigerLTW01-55Roman.eot?#iefix");src:url("https://assets.nhs.uk/fonts/FrutigerLTW01-55Roman.eot?#iefix") format("eot"),url("https://assets.nhs.uk/fonts/FrutigerLTW01-55Roman.woff2") format("woff2"),url("https://assets.nhs.uk/fonts/FrutigerLTW01-55Roman.woff") format("woff"),url("https://assets.nhs.uk/fonts/FrutigerLTW01-55Roman.ttf") format("truetype"),url("https://assets.nhs.uk/fonts/FrutigerLTW01-55Roman.svg#7def0e34-f28d-434f-b2ec-472bde847115") format("svg")}@font-face{font-family:\'Frutiger W01\';font-display:swap;font-style:normal;font-weight:600;src:url("https://assets.nhs.uk/fonts/FrutigerLTW01-65Bold.eot?#iefix");src:url("https://assets.nhs.uk/fonts/FrutigerLTW01-65Bold.eot?#iefix") format("eot"),url("https://assets.nhs.uk/fonts/FrutigerLTW01-65Bold.woff2") format("woff2"),url("https://assets.nhs.uk/fonts/FrutigerLTW01-65Bold.woff") format("woff"),url("https://assets.nhs.uk/fonts/FrutigerLTW01-65Bold.ttf") format("truetype"),url("https://assets.nhs.uk/fonts/FrutigerLTW01-65Bold.svg#eae74276-dd78-47e4-9b27-dac81c3411ca") format("svg")}#nhsuk-cookie-banner{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Frutiger W01,Arial,Sans-serif;color:#212b32}#nhsuk-cookie-banner a{color:#005eb8}#nhsuk-cookie-banner a:visited{color:#330072}#nhsuk-cookie-banner a:hover{color:#7C2855;text-decoration:none}#nhsuk-cookie-banner a:focus{background-color:#ffeb3b;box-shadow:0 -2px #ffeb3b,0 4px #212b32;color:#212b32;outline:4px solid transparent;text-decoration:none}#nhsuk-cookie-banner a:focus:hover{text-decoration:none}#nhsuk-cookie-banner a:focus:visited{color:#212b32}#nhsuk-cookie-banner a:focus .nhsuk-icon{fill:#212b32}#nhsuk-cookie-banner a:active{color:#002f5c}@media print{#nhsuk-cookie-banner a:after{color:#212b32;content:" (Link: " attr(href) ")";font-size:14pt}}#nhsuk-cookie-banner .ie8 a:focus{outline:1px dotted #212b32}#nhsuk-cookie-banner .nhsuk-width-container{margin:0 16px;max-width:1100px}@media (min-width: 48.0625em){#nhsuk-cookie-banner .nhsuk-width-container{margin:0 32px}}@media (min-width: 1024px){#nhsuk-cookie-banner .nhsuk-width-container{margin:0 auto}}#nhsuk-cookie-banner .nhsuk-width-container-fluid{margin:0 16px;max-width:100%}@media (min-width: 48.0625em){#nhsuk-cookie-banner .nhsuk-width-container-fluid{margin:0 32px}}#nhsuk-cookie-banner .nhsuk-button{font-weight:400;font-size:16px;font-size:1rem;line-height:1.5;margin-bottom:28px;-webkit-appearance:none;background-color:#007f3b;border:2px solid transparent;border-radius:4px;box-shadow:0 4px 0 #00401e;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-weight:600;margin-top:0;padding:12px 16px;position:relative;text-align:center;vertical-align:top;width:auto}@media (min-width: 40.0625em){#nhsuk-cookie-banner .nhsuk-button{font-size:19px;font-size:1.1875rem;line-height:1.47368}}@media print{#nhsuk-cookie-banner .nhsuk-button{font-size:14pt;line-height:1.15}}@media (min-width: 40.0625em){#nhsuk-cookie-banner .nhsuk-button{margin-bottom:36px}}@media (max-width: 40.0525em){#nhsuk-cookie-banner .nhsuk-button{padding:8px 16px}}#nhsuk-cookie-banner .nhsuk-button:link,#nhsuk-cookie-banner .nhsuk-button:visited,#nhsuk-cookie-banner .nhsuk-button:active,#nhsuk-cookie-banner .nhsuk-button:hover{color:#fff;text-decoration:none}#nhsuk-cookie-banner .nhsuk-button::-moz-focus-inner{border:0;padding:0}#nhsuk-cookie-banner .nhsuk-button:hover{background-color:#00662f}#nhsuk-cookie-banner .nhsuk-button:focus{background:#ffeb3b;box-shadow:0 4px 0 #212b32;color:#212b32;outline:4px solid transparent}#nhsuk-cookie-banner .nhsuk-button:active{background:#00401e;box-shadow:none;color:#fff;top:4px}#nhsuk-cookie-banner .nhsuk-button::before{background:transparent;bottom:-6px;content:\'\';display:block;left:-2px;position:absolute;right:-2px;top:-2px}#nhsuk-cookie-banner .nhsuk-button:active::before{top:-6px}#nhsuk-cookie-banner .nhsuk-button--secondary{background-color:#4c6272;box-shadow:0 4px 0 #263139}#nhsuk-cookie-banner .nhsuk-button--secondary:hover{background-color:#384853}#nhsuk-cookie-banner .nhsuk-button--secondary:focus{background:#ffeb3b;box-shadow:0 4px 0 #212b32;color:#212b32;outline:4px solid transparent}#nhsuk-cookie-banner .nhsuk-button--secondary:active{background:#263139;box-shadow:none;color:#fff;top:4px}#nhsuk-cookie-banner .nhsuk-button--secondary.nhsuk-button--disabled{background-color:#4c6272}#nhsuk-cookie-banner .nhsuk-button--reverse{background-color:#fff;box-shadow:0 4px 0 #212b32;color:#212b32}#nhsuk-cookie-banner .nhsuk-button--reverse:hover{background-color:#f2f2f2;color:#212b32}#nhsuk-cookie-banner .nhsuk-button--reverse:focus{background:#ffeb3b;box-shadow:0 4px 0 #212b32;color:#212b32;outline:4px solid transparent}#nhsuk-cookie-banner .nhsuk-button--reverse:active{background:#212b32;box-shadow:none;color:#fff;top:4px}#nhsuk-cookie-banner .nhsuk-button--reverse:link{color:#212b32}#nhsuk-cookie-banner .nhsuk-button--reverse.nhsuk-button--disabled{background-color:#fff}#nhsuk-cookie-banner .nhsuk-button--reverse.nhsuk-button--disabled:focus{background-color:#fff}#nhsuk-cookie-banner .nhsuk-button--disabled,#nhsuk-cookie-banner .nhsuk-button[disabled="disabled"],#nhsuk-cookie-banner .nhsuk-button[disabled]{background-color:#007f3b;opacity:0.5;pointer-events:none}#nhsuk-cookie-banner .nhsuk-button--disabled:hover,#nhsuk-cookie-banner .nhsuk-button[disabled="disabled"]:hover,#nhsuk-cookie-banner .nhsuk-button[disabled]:hover{background-color:#007f3b;cursor:default}#nhsuk-cookie-banner .nhsuk-button--disabled:focus,#nhsuk-cookie-banner .nhsuk-button[disabled="disabled"]:focus,#nhsuk-cookie-banner .nhsuk-button[disabled]:focus{background-color:#007f3b;outline:none}#nhsuk-cookie-banner .nhsuk-button--disabled:active,#nhsuk-cookie-banner .nhsuk-button[disabled="disabled"]:active,#nhsuk-cookie-banner .nhsuk-button[disabled]:active{box-shadow:0 4px 0 #00401e;top:0}#nhsuk-cookie-banner .nhsuk-button--secondary[disabled="disabled"],#nhsuk-cookie-banner .nhsuk-button--secondary[disabled]{background-color:#4c6272;opacity:0.5}#nhsuk-cookie-banner .nhsuk-button--secondary[disabled="disabled"]:hover,#nhsuk-cookie-banner .nhsuk-button--secondary[disabled]:hover{background-color:#4c6272;cursor:default}#nhsuk-cookie-banner .nhsuk-button--secondary[disabled="disabled"]:focus,#nhsuk-cookie-banner .nhsuk-button--secondary[disabled]:focus{outline:none}#nhsuk-cookie-banner .nhsuk-button--secondary[disabled="disabled"]:active,#nhsuk-cookie-banner .nhsuk-button--secondary[disabled]:active{box-shadow:0 4px 0 #263139;top:0}#nhsuk-cookie-banner .nhsuk-button--reverse[disabled="disabled"],#nhsuk-cookie-banner .nhsuk-button--reverse[disabled]{background-color:#fff;opacity:0.5}#nhsuk-cookie-banner .nhsuk-button--reverse[disabled="disabled"]:hover,#nhsuk-cookie-banner .nhsuk-button--reverse[disabled]:hover{background-color:#fff;cursor:default}#nhsuk-cookie-banner .nhsuk-button--reverse[disabled="disabled"]:focus,#nhsuk-cookie-banner .nhsuk-button--reverse[disabled]:focus{outline:none}#nhsuk-cookie-banner .nhsuk-button--reverse[disabled="disabled"]:active,#nhsuk-cookie-banner .nhsuk-button--reverse[disabled]:active{box-shadow:0 4px 0 #212b32;top:0}#nhsuk-cookie-banner .ie8 .nhsuk-button:focus{outline:1px dotted #212b32}#nhsuk-cookie-banner .nhsuk-cookie-banner{background:white;position:relative;box-shadow:0 0 4px 0 #212b32;padding:24px 0 19px;width:100%;z-index:1}#nhsuk-cookie-banner h2{margin-bottom:16px;display:block;font-weight:600;color:#212b32;margin-top:0;font-size:18px;line-height:1.125}@media (min-width: 40.0625em){#nhsuk-cookie-banner h2{margin-bottom:24px}}@media (min-width: 40.0625em){#nhsuk-cookie-banner h2{font-size:22px;line-height:1.375}}#nhsuk-cookie-banner p{margin-bottom:16px;display:block;margin-top:0;font-size:16px;line-height:1.5}@media (min-width: 40.0625em){#nhsuk-cookie-banner p{margin-bottom:24px}}@media (min-width: 40.0625em){#nhsuk-cookie-banner p{font-size:19px;line-height:1.47368}}#nhsuk-cookie-banner a{font-weight:normal}#nhsuk-cookie-banner .nhsuk-button{margin-bottom:12px;display:inline-block;vertical-align:top;font-family:inherit;font-size:16px;line-height:1.5}@media (min-width: 40.0625em){#nhsuk-cookie-banner .nhsuk-button{margin-bottom:12px}}@media (min-width: 40.0625em){#nhsuk-cookie-banner .nhsuk-button{font-size:19px;line-height:1.47368}}#nhsuk-cookie-banner ul,#nhsuk-cookie-banner li{list-style:none;padding:0;margin:0}@media (min-width: 48.0625em){#nhsuk-cookie-banner li{display:inline;margin-right:20px}}#nhsuk-cookie-banner .nhsuk-success-banner{background-color:#007f3b;color:#fff;padding:8px 0 8px 0;position:relative}#nhsuk-cookie-banner .nhsuk-success-banner p{margin:0}#nhsuk-cookie-banner .nhsuk-success-banner a,#nhsuk-cookie-banner .nhsuk-success-banner a:visited{color:#fff}#nhsuk-cookie-banner .nhsuk-success-banner a:hover,#nhsuk-cookie-banner .nhsuk-success-banner a:focus{color:#212b32}#nhsuk-cookie-banner p{padding:0px;font-size:16px}@media (min-width: 40.0625em){#nhsuk-cookie-banner p{font-size:19px}}#nhsuk-cookie-banner a{text-decoration:underline;font-size:16px}@media (min-width: 40.0625em){#nhsuk-cookie-banner a{font-size:19px}}#nhsuk-cookie-banner a:hover{text-decoration:none}\n', + '', + ]); + }, + function (t) { + t.exports = JSON.parse('{"a":"0.5.2"}'); + }, + function (t, n, e) { + e(126), (t.exports = e(313)); + }, + function (t, n, e) { + 'use strict'; + e(127); + var r, + o = (r = e(299)) && r.__esModule ? r : { default: r }; + o.default._babelPolyfill && + 'undefined' != typeof console && + console.warn && + console.warn( + '@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended and may have consequences if different versions of the polyfills are applied sequentially. If you do need to load the polyfill more than once, use @babel/polyfill/noConflict instead to bypass the warning.', + ), + (o.default._babelPolyfill = !0); + }, + function (t, n, e) { + 'use strict'; + e(128), + e(271), + e(273), + e(276), + e(278), + e(280), + e(282), + e(284), + e(286), + e(288), + e(290), + e(292), + e(294), + e(298); + }, + function (t, n, e) { + e(129), + e(132), + e(133), + e(134), + e(135), + e(136), + e(137), + e(138), + e(139), + e(140), + e(141), + e(142), + e(143), + e(144), + e(145), + e(146), + e(147), + e(148), + e(149), + e(150), + e(151), + e(152), + e(153), + e(154), + e(155), + e(156), + e(157), + e(158), + e(159), + e(160), + e(161), + e(162), + e(163), + e(164), + e(165), + e(166), + e(167), + e(168), + e(169), + e(170), + e(171), + e(172), + e(173), + e(175), + e(176), + e(177), + e(178), + e(179), + e(180), + e(181), + e(182), + e(183), + e(184), + e(185), + e(186), + e(187), + e(188), + e(189), + e(190), + e(191), + e(192), + e(193), + e(194), + e(195), + e(196), + e(197), + e(198), + e(199), + e(200), + e(201), + e(202), + e(203), + e(204), + e(205), + e(206), + e(207), + e(208), + e(210), + e(211), + e(213), + e(214), + e(215), + e(216), + e(217), + e(218), + e(219), + e(221), + e(222), + e(223), + e(224), + e(225), + e(226), + e(227), + e(228), + e(229), + e(230), + e(231), + e(232), + e(233), + e(81), + e(234), + e(109), + e(235), + e(110), + e(236), + e(237), + e(238), + e(239), + e(111), + e(242), + e(243), + e(244), + e(245), + e(246), + e(247), + e(248), + e(249), + e(250), + e(251), + e(252), + e(253), + e(254), + e(255), + e(256), + e(257), + e(258), + e(259), + e(260), + e(261), + e(262), + e(263), + e(264), + e(265), + e(266), + e(267), + e(268), + e(269), + e(270), + (t.exports = e(7)); + }, + function (t, n, e) { + 'use strict'; + var r = e(1), + o = e(13), + i = e(8), + u = e(0), + c = e(11), + a = e(27).KEY, + s = e(2), + f = e(49), + l = e(38), + h = e(29), + p = e(5), + v = e(62), + d = e(90), + g = e(131), + b = e(52), + y = e(3), + m = e(4), + k = e(10), + x = e(15), + w = e(26), + S = e(28), + _ = e(33), + E = e(93), + O = e(20), + P = e(51), + F = e(9), + A = e(31), + M = O.f, + j = F.f, + I = E.f, + N = r.Symbol, + L = r.JSON, + T = L && L.stringify, + R = p('_hidden'), + C = p('toPrimitive'), + W = {}.propertyIsEnumerable, + D = f('symbol-registry'), + B = f('symbols'), + U = f('op-symbols'), + G = Object.prototype, + V = 'function' == typeof N && !!P.f, + z = r.QObject, + Y = !z || !z.prototype || !z.prototype.findChild, + q = + i && + s(function () { + return ( + 7 != + _( + j({}, 'a', { + get: function () { + return j(this, 'a', { value: 7 }).a; + }, + }), + ).a + ); + }) + ? function (t, n, e) { + var r = M(G, n); + r && delete G[n], j(t, n, e), r && t !== G && j(G, n, r); + } + : j, + J = function (t) { + var n = (B[t] = _(N.prototype)); + return (n._k = t), n; + }, + H = + V && 'symbol' == typeof N.iterator + ? function (t) { + return 'symbol' == typeof t; + } + : function (t) { + return t instanceof N; + }, + K = function (t, n, e) { + return ( + t === G && K(U, n, e), + y(t), + (n = w(n, !0)), + y(e), + o(B, n) + ? (e.enumerable + ? (o(t, R) && t[R][n] && (t[R][n] = !1), + (e = _(e, { enumerable: S(0, !1) }))) + : (o(t, R) || j(t, R, S(1, {})), (t[R][n] = !0)), + q(t, n, e)) + : j(t, n, e) + ); + }, + $ = function (t, n) { + y(t); + for (var e, r = g((n = x(n))), o = 0, i = r.length; i > o; ) + K(t, (e = r[o++]), n[e]); + return t; + }, + X = function (t) { + var n = W.call(this, (t = w(t, !0))); + return ( + !(this === G && o(B, t) && !o(U, t)) && + (!(n || !o(this, t) || !o(B, t) || (o(this, R) && this[R][t])) || n) + ); + }, + Z = function (t, n) { + if (((t = x(t)), (n = w(n, !0)), t !== G || !o(B, n) || o(U, n))) { + var e = M(t, n); + return !e || !o(B, n) || (o(t, R) && t[R][n]) || (e.enumerable = !0), e; + } + }, + Q = function (t) { + for (var n, e = I(x(t)), r = [], i = 0; e.length > i; ) + o(B, (n = e[i++])) || n == R || n == a || r.push(n); + return r; + }, + tt = function (t) { + for (var n, e = t === G, r = I(e ? U : x(t)), i = [], u = 0; r.length > u; ) + !o(B, (n = r[u++])) || (e && !o(G, n)) || i.push(B[n]); + return i; + }; + V || + (c( + (N = function () { + if (this instanceof N) throw TypeError('Symbol is not a constructor!'); + var t = h(arguments.length > 0 ? arguments[0] : void 0), + n = function (e) { + this === G && n.call(U, e), + o(this, R) && o(this[R], t) && (this[R][t] = !1), + q(this, t, S(1, e)); + }; + return i && Y && q(G, t, { configurable: !0, set: n }), J(t); + }).prototype, + 'toString', + function () { + return this._k; + }, + ), + (O.f = Z), + (F.f = K), + (e(34).f = E.f = Q), + (e(46).f = X), + (P.f = tt), + i && !e(30) && c(G, 'propertyIsEnumerable', X, !0), + (v.f = function (t) { + return J(p(t)); + })), + u(u.G + u.W + u.F * !V, { Symbol: N }); + for ( + var nt = + 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split( + ',', + ), + et = 0; + nt.length > et; + + ) + p(nt[et++]); + for (var rt = A(p.store), ot = 0; rt.length > ot; ) d(rt[ot++]); + u(u.S + u.F * !V, 'Symbol', { + for: function (t) { + return o(D, (t += '')) ? D[t] : (D[t] = N(t)); + }, + keyFor: function (t) { + if (!H(t)) throw TypeError(t + ' is not a symbol!'); + for (var n in D) if (D[n] === t) return n; + }, + useSetter: function () { + Y = !0; + }, + useSimple: function () { + Y = !1; + }, + }), + u(u.S + u.F * !V, 'Object', { + create: function (t, n) { + return void 0 === n ? _(t) : $(_(t), n); + }, + defineProperty: K, + defineProperties: $, + getOwnPropertyDescriptor: Z, + getOwnPropertyNames: Q, + getOwnPropertySymbols: tt, + }); + var it = s(function () { + P.f(1); + }); + u(u.S + u.F * it, 'Object', { + getOwnPropertySymbols: function (t) { + return P.f(k(t)); + }, + }), + L && + u( + u.S + + u.F * + (!V || + s(function () { + var t = N(); + return ( + '[null]' != T([t]) || + '{}' != T({ a: t }) || + '{}' != T(Object(t)) + ); + })), + 'JSON', + { + stringify: function (t) { + for (var n, e, r = [t], o = 1; arguments.length > o; ) + r.push(arguments[o++]); + if (((e = n = r[1]), (m(n) || void 0 !== t) && !H(t))) + return ( + b(n) || + (n = function (t, n) { + if ( + ('function' == typeof e && (n = e.call(this, t, n)), + !H(n)) + ) + return n; + }), + (r[1] = n), + T.apply(L, r) + ); + }, + }, + ), + N.prototype[C] || e(14)(N.prototype, C, N.prototype.valueOf), + l(N, 'Symbol'), + l(Math, 'Math', !0), + l(r.JSON, 'JSON', !0); + }, + function (t, n, e) { + t.exports = e(49)('native-function-to-string', Function.toString); + }, + function (t, n, e) { + var r = e(31), + o = e(51), + i = e(46); + t.exports = function (t) { + var n = r(t), + e = o.f; + if (e) + for (var u, c = e(t), a = i.f, s = 0; c.length > s; ) + a.call(t, (u = c[s++])) && n.push(u); + return n; + }; + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Object', { create: e(33) }); + }, + function (t, n, e) { + var r = e(0); + r(r.S + r.F * !e(8), 'Object', { defineProperty: e(9).f }); + }, + function (t, n, e) { + var r = e(0); + r(r.S + r.F * !e(8), 'Object', { defineProperties: e(92) }); + }, + function (t, n, e) { + var r = e(15), + o = e(20).f; + e(21)('getOwnPropertyDescriptor', function () { + return function (t, n) { + return o(r(t), n); + }; + }); + }, + function (t, n, e) { + var r = e(10), + o = e(35); + e(21)('getPrototypeOf', function () { + return function (t) { + return o(r(t)); + }; + }); + }, + function (t, n, e) { + var r = e(10), + o = e(31); + e(21)('keys', function () { + return function (t) { + return o(r(t)); + }; + }); + }, + function (t, n, e) { + e(21)('getOwnPropertyNames', function () { + return e(93).f; + }); + }, + function (t, n, e) { + var r = e(4), + o = e(27).onFreeze; + e(21)('freeze', function (t) { + return function (n) { + return t && r(n) ? t(o(n)) : n; + }; + }); + }, + function (t, n, e) { + var r = e(4), + o = e(27).onFreeze; + e(21)('seal', function (t) { + return function (n) { + return t && r(n) ? t(o(n)) : n; + }; + }); + }, + function (t, n, e) { + var r = e(4), + o = e(27).onFreeze; + e(21)('preventExtensions', function (t) { + return function (n) { + return t && r(n) ? t(o(n)) : n; + }; + }); + }, + function (t, n, e) { + var r = e(4); + e(21)('isFrozen', function (t) { + return function (n) { + return !r(n) || (!!t && t(n)); + }; + }); + }, + function (t, n, e) { + var r = e(4); + e(21)('isSealed', function (t) { + return function (n) { + return !r(n) || (!!t && t(n)); + }; + }); + }, + function (t, n, e) { + var r = e(4); + e(21)('isExtensible', function (t) { + return function (n) { + return !!r(n) && (!t || t(n)); + }; + }); + }, + function (t, n, e) { + var r = e(0); + r(r.S + r.F, 'Object', { assign: e(94) }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Object', { is: e(95) }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Object', { setPrototypeOf: e(66).set }); + }, + function (t, n, e) { + 'use strict'; + var r = e(47), + o = {}; + (o[e(5)('toStringTag')] = 'z'), + o + '' != '[object z]' && + e(11)( + Object.prototype, + 'toString', + function () { + return '[object ' + r(this) + ']'; + }, + !0, + ); + }, + function (t, n, e) { + var r = e(0); + r(r.P, 'Function', { bind: e(96) }); + }, + function (t, n, e) { + var r = e(9).f, + o = Function.prototype, + i = /^\s*function ([^ (]*)/; + 'name' in o || + (e(8) && + r(o, 'name', { + configurable: !0, + get: function () { + try { + return ('' + this).match(i)[1]; + } catch (t) { + return ''; + } + }, + })); + }, + function (t, n, e) { + 'use strict'; + var r = e(4), + o = e(35), + i = e(5)('hasInstance'), + u = Function.prototype; + i in u || + e(9).f(u, i, { + value: function (t) { + if ('function' != typeof this || !r(t)) return !1; + if (!r(this.prototype)) return t instanceof this; + for (; (t = o(t)); ) if (this.prototype === t) return !0; + return !1; + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = e(98); + r(r.G + r.F * (parseInt != o), { parseInt: o }); + }, + function (t, n, e) { + var r = e(0), + o = e(99); + r(r.G + r.F * (parseFloat != o), { parseFloat: o }); + }, + function (t, n, e) { + 'use strict'; + var r = e(1), + o = e(13), + i = e(23), + u = e(68), + c = e(26), + a = e(2), + s = e(34).f, + f = e(20).f, + l = e(9).f, + h = e(39).trim, + p = r.Number, + v = p, + d = p.prototype, + g = 'Number' == i(e(33)(d)), + b = 'trim' in String.prototype, + y = function (t) { + var n = c(t, !1); + if ('string' == typeof n && n.length > 2) { + var e, + r, + o, + i = (n = b ? n.trim() : h(n, 3)).charCodeAt(0); + if (43 === i || 45 === i) { + if (88 === (e = n.charCodeAt(2)) || 120 === e) return NaN; + } else if (48 === i) { + switch (n.charCodeAt(1)) { + case 66: + case 98: + (r = 2), (o = 49); + break; + case 79: + case 111: + (r = 8), (o = 55); + break; + default: + return +n; + } + for (var u, a = n.slice(2), s = 0, f = a.length; s < f; s++) + if ((u = a.charCodeAt(s)) < 48 || u > o) return NaN; + return parseInt(a, r); + } + } + return +n; + }; + if (!p(' 0o1') || !p('0b1') || p('+0x1')) { + p = function (t) { + var n = arguments.length < 1 ? 0 : t, + e = this; + return e instanceof p && + (g + ? a(function () { + d.valueOf.call(e); + }) + : 'Number' != i(e)) + ? u(new v(y(n)), e, p) + : y(n); + }; + for ( + var m, + k = e(8) + ? s(v) + : 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'.split( + ',', + ), + x = 0; + k.length > x; + x++ + ) + o(v, (m = k[x])) && !o(p, m) && l(p, m, f(v, m)); + (p.prototype = d), (d.constructor = p), e(11)(r, 'Number', p); + } + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(19), + i = e(100), + u = e(69), + c = (1).toFixed, + a = Math.floor, + s = [0, 0, 0, 0, 0, 0], + f = 'Number.toFixed: incorrect invocation!', + l = function (t, n) { + for (var e = -1, r = n; ++e < 6; ) + (r += t * s[e]), (s[e] = r % 1e7), (r = a(r / 1e7)); + }, + h = function (t) { + for (var n = 6, e = 0; --n >= 0; ) + (e += s[n]), (s[n] = a(e / t)), (e = (e % t) * 1e7); + }, + p = function () { + for (var t = 6, n = ''; --t >= 0; ) + if ('' !== n || 0 === t || 0 !== s[t]) { + var e = String(s[t]); + n = '' === n ? e : n + u.call('0', 7 - e.length) + e; + } + return n; + }, + v = function (t, n, e) { + return 0 === n ? e : n % 2 == 1 ? v(t, n - 1, e * t) : v(t * t, n / 2, e); + }; + r( + r.P + + r.F * + ((!!c && + ('0.000' !== (8e-5).toFixed(3) || + '1' !== (0.9).toFixed(0) || + '1.25' !== (1.255).toFixed(2) || + '1000000000000000128' !== (0xde0b6b3a7640080).toFixed(0))) || + !e(2)(function () { + c.call({}); + })), + 'Number', + { + toFixed: function (t) { + var n, + e, + r, + c, + a = i(this, f), + s = o(t), + d = '', + g = '0'; + if (s < 0 || s > 20) throw RangeError(f); + if (a != a) return 'NaN'; + if (a <= -1e21 || a >= 1e21) return String(a); + if ((a < 0 && ((d = '-'), (a = -a)), a > 1e-21)) + if ( + ((e = + (n = + (function (t) { + for (var n = 0, e = t; e >= 4096; ) (n += 12), (e /= 4096); + for (; e >= 2; ) (n += 1), (e /= 2); + return n; + })(a * v(2, 69, 1)) - 69) < 0 + ? a * v(2, -n, 1) + : a / v(2, n, 1)), + (e *= 4503599627370496), + (n = 52 - n) > 0) + ) { + for (l(0, e), r = s; r >= 7; ) l(1e7, 0), (r -= 7); + for (l(v(10, r, 1), 0), r = n - 1; r >= 23; ) h(1 << 23), (r -= 23); + h(1 << r), l(1, 1), h(2), (g = p()); + } else l(0, e), l(1 << -n, 0), (g = p() + u.call('0', s)); + return (g = + s > 0 + ? d + + ((c = g.length) <= s + ? '0.' + u.call('0', s - c) + g + : g.slice(0, c - s) + '.' + g.slice(c - s)) + : d + g); + }, + }, + ); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(2), + i = e(100), + u = (1).toPrecision; + r( + r.P + + r.F * + (o(function () { + return '1' !== u.call(1, void 0); + }) || + !o(function () { + u.call({}); + })), + 'Number', + { + toPrecision: function (t) { + var n = i(this, 'Number#toPrecision: incorrect invocation!'); + return void 0 === t ? u.call(n) : u.call(n, t); + }, + }, + ); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Number', { EPSILON: Math.pow(2, -52) }); + }, + function (t, n, e) { + var r = e(0), + o = e(1).isFinite; + r(r.S, 'Number', { + isFinite: function (t) { + return 'number' == typeof t && o(t); + }, + }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Number', { isInteger: e(101) }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Number', { + isNaN: function (t) { + return t != t; + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = e(101), + i = Math.abs; + r(r.S, 'Number', { + isSafeInteger: function (t) { + return o(t) && i(t) <= 9007199254740991; + }, + }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Number', { MAX_SAFE_INTEGER: 9007199254740991 }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Number', { MIN_SAFE_INTEGER: -9007199254740991 }); + }, + function (t, n, e) { + var r = e(0), + o = e(99); + r(r.S + r.F * (Number.parseFloat != o), 'Number', { parseFloat: o }); + }, + function (t, n, e) { + var r = e(0), + o = e(98); + r(r.S + r.F * (Number.parseInt != o), 'Number', { parseInt: o }); + }, + function (t, n, e) { + var r = e(0), + o = e(102), + i = Math.sqrt, + u = Math.acosh; + r(r.S + r.F * !(u && 710 == Math.floor(u(Number.MAX_VALUE)) && u(1 / 0) == 1 / 0), 'Math', { + acosh: function (t) { + return (t = +t) < 1 + ? NaN + : t > 94906265.62425156 + ? Math.log(t) + Math.LN2 + : o(t - 1 + i(t - 1) * i(t + 1)); + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = Math.asinh; + r(r.S + r.F * !(o && 1 / o(0) > 0), 'Math', { + asinh: function t(n) { + return isFinite((n = +n)) && 0 != n + ? n < 0 + ? -t(-n) + : Math.log(n + Math.sqrt(n * n + 1)) + : n; + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = Math.atanh; + r(r.S + r.F * !(o && 1 / o(-0) < 0), 'Math', { + atanh: function (t) { + return 0 == (t = +t) ? t : Math.log((1 + t) / (1 - t)) / 2; + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = e(70); + r(r.S, 'Math', { + cbrt: function (t) { + return o((t = +t)) * Math.pow(Math.abs(t), 1 / 3); + }, + }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Math', { + clz32: function (t) { + return (t >>>= 0) ? 31 - Math.floor(Math.log(t + 0.5) * Math.LOG2E) : 32; + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = Math.exp; + r(r.S, 'Math', { + cosh: function (t) { + return (o((t = +t)) + o(-t)) / 2; + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = e(71); + r(r.S + r.F * (o != Math.expm1), 'Math', { expm1: o }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Math', { fround: e(174) }); + }, + function (t, n, e) { + var r = e(70), + o = Math.pow, + i = o(2, -52), + u = o(2, -23), + c = o(2, 127) * (2 - u), + a = o(2, -126); + t.exports = + Math.fround || + function (t) { + var n, + e, + o = Math.abs(t), + s = r(t); + return o < a + ? s * (o / a / u + 1 / i - 1 / i) * a * u + : (e = (n = (1 + u / i) * o) - (n - o)) > c || e != e + ? s * (1 / 0) + : s * e; + }; + }, + function (t, n, e) { + var r = e(0), + o = Math.abs; + r(r.S, 'Math', { + hypot: function (t, n) { + for (var e, r, i = 0, u = 0, c = arguments.length, a = 0; u < c; ) + a < (e = o(arguments[u++])) + ? ((i = i * (r = a / e) * r + 1), (a = e)) + : (i += e > 0 ? (r = e / a) * r : e); + return a === 1 / 0 ? 1 / 0 : a * Math.sqrt(i); + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = Math.imul; + r( + r.S + + r.F * + e(2)(function () { + return -5 != o(4294967295, 5) || 2 != o.length; + }), + 'Math', + { + imul: function (t, n) { + var e = +t, + r = +n, + o = 65535 & e, + i = 65535 & r; + return ( + 0 | + (o * i + + ((((65535 & (e >>> 16)) * i + o * (65535 & (r >>> 16))) << 16) >>> 0)) + ); + }, + }, + ); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Math', { + log10: function (t) { + return Math.log(t) * Math.LOG10E; + }, + }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Math', { log1p: e(102) }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Math', { + log2: function (t) { + return Math.log(t) / Math.LN2; + }, + }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Math', { sign: e(70) }); + }, + function (t, n, e) { + var r = e(0), + o = e(71), + i = Math.exp; + r( + r.S + + r.F * + e(2)(function () { + return -2e-17 != !Math.sinh(-2e-17); + }), + 'Math', + { + sinh: function (t) { + return Math.abs((t = +t)) < 1 + ? (o(t) - o(-t)) / 2 + : (i(t - 1) - i(-t - 1)) * (Math.E / 2); + }, + }, + ); + }, + function (t, n, e) { + var r = e(0), + o = e(71), + i = Math.exp; + r(r.S, 'Math', { + tanh: function (t) { + var n = o((t = +t)), + e = o(-t); + return n == 1 / 0 ? 1 : e == 1 / 0 ? -1 : (n - e) / (i(t) + i(-t)); + }, + }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Math', { + trunc: function (t) { + return (t > 0 ? Math.floor : Math.ceil)(t); + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = e(32), + i = String.fromCharCode, + u = String.fromCodePoint; + r(r.S + r.F * (!!u && 1 != u.length), 'String', { + fromCodePoint: function (t) { + for (var n, e = [], r = arguments.length, u = 0; r > u; ) { + if (((n = +arguments[u++]), o(n, 1114111) !== n)) + throw RangeError(n + ' is not a valid code point'); + e.push(n < 65536 ? i(n) : i(55296 + ((n -= 65536) >> 10), (n % 1024) + 56320)); + } + return e.join(''); + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = e(15), + i = e(6); + r(r.S, 'String', { + raw: function (t) { + for ( + var n = o(t.raw), e = i(n.length), r = arguments.length, u = [], c = 0; + e > c; + + ) + u.push(String(n[c++])), c < r && u.push(String(arguments[c])); + return u.join(''); + }, + }); + }, + function (t, n, e) { + 'use strict'; + e(39)('trim', function (t) { + return function () { + return t(this, 3); + }; + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(72)(!0); + e(73)( + String, + 'String', + function (t) { + (this._t = String(t)), (this._i = 0); + }, + function () { + var t, + n = this._t, + e = this._i; + return e >= n.length + ? { value: void 0, done: !0 } + : ((t = r(n, e)), (this._i += t.length), { value: t, done: !1 }); + }, + ); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(72)(!1); + r(r.P, 'String', { + codePointAt: function (t) { + return o(this, t); + }, + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(6), + i = e(74), + u = ''.endsWith; + r(r.P + r.F * e(76)('endsWith'), 'String', { + endsWith: function (t) { + var n = i(this, t, 'endsWith'), + e = arguments.length > 1 ? arguments[1] : void 0, + r = o(n.length), + c = void 0 === e ? r : Math.min(o(e), r), + a = String(t); + return u ? u.call(n, a, c) : n.slice(c - a.length, c) === a; + }, + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(74); + r(r.P + r.F * e(76)('includes'), 'String', { + includes: function (t) { + return !!~o(this, t, 'includes').indexOf( + t, + arguments.length > 1 ? arguments[1] : void 0, + ); + }, + }); + }, + function (t, n, e) { + var r = e(0); + r(r.P, 'String', { repeat: e(69) }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(6), + i = e(74), + u = ''.startsWith; + r(r.P + r.F * e(76)('startsWith'), 'String', { + startsWith: function (t) { + var n = i(this, t, 'startsWith'), + e = o(Math.min(arguments.length > 1 ? arguments[1] : void 0, n.length)), + r = String(t); + return u ? u.call(n, r, e) : n.slice(e, e + r.length) === r; + }, + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('anchor', function (t) { + return function (n) { + return t(this, 'a', 'name', n); + }; + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('big', function (t) { + return function () { + return t(this, 'big', '', ''); + }; + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('blink', function (t) { + return function () { + return t(this, 'blink', '', ''); + }; + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('bold', function (t) { + return function () { + return t(this, 'b', '', ''); + }; + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('fixed', function (t) { + return function () { + return t(this, 'tt', '', ''); + }; + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('fontcolor', function (t) { + return function (n) { + return t(this, 'font', 'color', n); + }; + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('fontsize', function (t) { + return function (n) { + return t(this, 'font', 'size', n); + }; + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('italics', function (t) { + return function () { + return t(this, 'i', '', ''); + }; + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('link', function (t) { + return function (n) { + return t(this, 'a', 'href', n); + }; + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('small', function (t) { + return function () { + return t(this, 'small', '', ''); + }; + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('strike', function (t) { + return function () { + return t(this, 'strike', '', ''); + }; + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('sub', function (t) { + return function () { + return t(this, 'sub', '', ''); + }; + }); + }, + function (t, n, e) { + 'use strict'; + e(12)('sup', function (t) { + return function () { + return t(this, 'sup', '', ''); + }; + }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Date', { + now: function () { + return new Date().getTime(); + }, + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(10), + i = e(26); + r( + r.P + + r.F * + e(2)(function () { + return ( + null !== new Date(NaN).toJSON() || + 1 !== + Date.prototype.toJSON.call({ + toISOString: function () { + return 1; + }, + }) + ); + }), + 'Date', + { + toJSON: function (t) { + var n = o(this), + e = i(n); + return 'number' != typeof e || isFinite(e) ? n.toISOString() : null; + }, + }, + ); + }, + function (t, n, e) { + var r = e(0), + o = e(209); + r(r.P + r.F * (Date.prototype.toISOString !== o), 'Date', { toISOString: o }); + }, + function (t, n, e) { + 'use strict'; + var r = e(2), + o = Date.prototype.getTime, + i = Date.prototype.toISOString, + u = function (t) { + return t > 9 ? t : '0' + t; + }; + t.exports = + r(function () { + return '0385-07-25T07:06:39.999Z' != i.call(new Date(-5e13 - 1)); + }) || + !r(function () { + i.call(new Date(NaN)); + }) + ? function () { + if (!isFinite(o.call(this))) throw RangeError('Invalid time value'); + var t = this, + n = t.getUTCFullYear(), + e = t.getUTCMilliseconds(), + r = n < 0 ? '-' : n > 9999 ? '+' : ''; + return ( + r + + ('00000' + Math.abs(n)).slice(r ? -6 : -4) + + '-' + + u(t.getUTCMonth() + 1) + + '-' + + u(t.getUTCDate()) + + 'T' + + u(t.getUTCHours()) + + ':' + + u(t.getUTCMinutes()) + + ':' + + u(t.getUTCSeconds()) + + '.' + + (e > 99 ? e : '0' + u(e)) + + 'Z' + ); + } + : i; + }, + function (t, n, e) { + var r = Date.prototype, + o = r.toString, + i = r.getTime; + new Date(NaN) + '' != 'Invalid Date' && + e(11)(r, 'toString', function () { + var t = i.call(this); + return t == t ? o.call(this) : 'Invalid Date'; + }); + }, + function (t, n, e) { + var r = e(5)('toPrimitive'), + o = Date.prototype; + r in o || e(14)(o, r, e(212)); + }, + function (t, n, e) { + 'use strict'; + var r = e(3), + o = e(26); + t.exports = function (t) { + if ('string' !== t && 'number' !== t && 'default' !== t) + throw TypeError('Incorrect hint'); + return o(r(this), 'number' != t); + }; + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Array', { isArray: e(52) }); + }, + function (t, n, e) { + 'use strict'; + var r = e(17), + o = e(0), + i = e(10), + u = e(104), + c = e(77), + a = e(6), + s = e(78), + f = e(79); + o( + o.S + + o.F * + !e(53)(function (t) { + Array.from(t); + }), + 'Array', + { + from: function (t) { + var n, + e, + o, + l, + h = i(t), + p = 'function' == typeof this ? this : Array, + v = arguments.length, + d = v > 1 ? arguments[1] : void 0, + g = void 0 !== d, + b = 0, + y = f(h); + if ( + (g && (d = r(d, v > 2 ? arguments[2] : void 0, 2)), + null == y || (p == Array && c(y))) + ) + for (e = new p((n = a(h.length))); n > b; b++) + s(e, b, g ? d(h[b], b) : h[b]); + else + for (l = y.call(h), e = new p(); !(o = l.next()).done; b++) + s(e, b, g ? u(l, d, [o.value, b], !0) : o.value); + return (e.length = b), e; + }, + }, + ); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(78); + r( + r.S + + r.F * + e(2)(function () { + function t() {} + return !(Array.of.call(t) instanceof t); + }), + 'Array', + { + of: function () { + for ( + var t = 0, + n = arguments.length, + e = new ('function' == typeof this ? this : Array)(n); + n > t; + + ) + o(e, t, arguments[t++]); + return (e.length = n), e; + }, + }, + ); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(15), + i = [].join; + r(r.P + r.F * (e(45) != Object || !e(16)(i)), 'Array', { + join: function (t) { + return i.call(o(this), void 0 === t ? ',' : t); + }, + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(65), + i = e(23), + u = e(32), + c = e(6), + a = [].slice; + r( + r.P + + r.F * + e(2)(function () { + o && a.call(o); + }), + 'Array', + { + slice: function (t, n) { + var e = c(this.length), + r = i(this); + if (((n = void 0 === n ? e : n), 'Array' == r)) return a.call(this, t, n); + for ( + var o = u(t, e), s = u(n, e), f = c(s - o), l = new Array(f), h = 0; + h < f; + h++ + ) + l[h] = 'String' == r ? this.charAt(o + h) : this[o + h]; + return l; + }, + }, + ); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(18), + i = e(10), + u = e(2), + c = [].sort, + a = [1, 2, 3]; + r( + r.P + + r.F * + (u(function () { + a.sort(void 0); + }) || + !u(function () { + a.sort(null); + }) || + !e(16)(c)), + 'Array', + { + sort: function (t) { + return void 0 === t ? c.call(i(this)) : c.call(i(this), o(t)); + }, + }, + ); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(22)(0), + i = e(16)([].forEach, !0); + r(r.P + r.F * !i, 'Array', { + forEach: function (t) { + return o(this, t, arguments[1]); + }, + }); + }, + function (t, n, e) { + var r = e(4), + o = e(52), + i = e(5)('species'); + t.exports = function (t) { + var n; + return ( + o(t) && + ('function' != typeof (n = t.constructor) || + (n !== Array && !o(n.prototype)) || + (n = void 0), + r(n) && null === (n = n[i]) && (n = void 0)), + void 0 === n ? Array : n + ); + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(22)(1); + r(r.P + r.F * !e(16)([].map, !0), 'Array', { + map: function (t) { + return o(this, t, arguments[1]); + }, + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(22)(2); + r(r.P + r.F * !e(16)([].filter, !0), 'Array', { + filter: function (t) { + return o(this, t, arguments[1]); + }, + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(22)(3); + r(r.P + r.F * !e(16)([].some, !0), 'Array', { + some: function (t) { + return o(this, t, arguments[1]); + }, + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(22)(4); + r(r.P + r.F * !e(16)([].every, !0), 'Array', { + every: function (t) { + return o(this, t, arguments[1]); + }, + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(106); + r(r.P + r.F * !e(16)([].reduce, !0), 'Array', { + reduce: function (t) { + return o(this, t, arguments.length, arguments[1], !1); + }, + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(106); + r(r.P + r.F * !e(16)([].reduceRight, !0), 'Array', { + reduceRight: function (t) { + return o(this, t, arguments.length, arguments[1], !0); + }, + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(50)(!1), + i = [].indexOf, + u = !!i && 1 / [1].indexOf(1, -0) < 0; + r(r.P + r.F * (u || !e(16)(i)), 'Array', { + indexOf: function (t) { + return u ? i.apply(this, arguments) || 0 : o(this, t, arguments[1]); + }, + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(15), + i = e(19), + u = e(6), + c = [].lastIndexOf, + a = !!c && 1 / [1].lastIndexOf(1, -0) < 0; + r(r.P + r.F * (a || !e(16)(c)), 'Array', { + lastIndexOf: function (t) { + if (a) return c.apply(this, arguments) || 0; + var n = o(this), + e = u(n.length), + r = e - 1; + for ( + arguments.length > 1 && (r = Math.min(r, i(arguments[1]))), + r < 0 && (r = e + r); + r >= 0; + r-- + ) + if (r in n && n[r] === t) return r || 0; + return -1; + }, + }); + }, + function (t, n, e) { + var r = e(0); + r(r.P, 'Array', { copyWithin: e(107) }), e(36)('copyWithin'); + }, + function (t, n, e) { + var r = e(0); + r(r.P, 'Array', { fill: e(80) }), e(36)('fill'); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(22)(5), + i = !0; + 'find' in [] && + Array(1).find(function () { + i = !1; + }), + r(r.P + r.F * i, 'Array', { + find: function (t) { + return o(this, t, arguments.length > 1 ? arguments[1] : void 0); + }, + }), + e(36)('find'); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(22)(6), + i = 'findIndex', + u = !0; + i in [] && + Array(1)[i](function () { + u = !1; + }), + r(r.P + r.F * u, 'Array', { + findIndex: function (t) { + return o(this, t, arguments.length > 1 ? arguments[1] : void 0); + }, + }), + e(36)(i); + }, + function (t, n, e) { + e(41)('Array'); + }, + function (t, n, e) { + var r = e(1), + o = e(68), + i = e(9).f, + u = e(34).f, + c = e(75), + a = e(54), + s = r.RegExp, + f = s, + l = s.prototype, + h = /a/g, + p = /a/g, + v = new s(h) !== h; + if ( + e(8) && + (!v || + e(2)(function () { + return (p[e(5)('match')] = !1), s(h) != h || s(p) == p || '/a/i' != s(h, 'i'); + })) + ) { + s = function (t, n) { + var e = this instanceof s, + r = c(t), + i = void 0 === n; + return !e && r && t.constructor === s && i + ? t + : o( + v + ? new f(r && !i ? t.source : t, n) + : f((r = t instanceof s) ? t.source : t, r && i ? a.call(t) : n), + e ? this : l, + s, + ); + }; + for ( + var d = function (t) { + (t in s) || + i(s, t, { + configurable: !0, + get: function () { + return f[t]; + }, + set: function (n) { + f[t] = n; + }, + }); + }, + g = u(f), + b = 0; + g.length > b; + + ) + d(g[b++]); + (l.constructor = s), (s.prototype = l), e(11)(r, 'RegExp', s); + } + e(41)('RegExp'); + }, + function (t, n, e) { + 'use strict'; + e(110); + var r = e(3), + o = e(54), + i = e(8), + u = /./.toString, + c = function (t) { + e(11)(RegExp.prototype, 'toString', t, !0); + }; + e(2)(function () { + return '/a/b' != u.call({ source: 'a', flags: 'b' }); + }) + ? c(function () { + var t = r(this); + return '/'.concat( + t.source, + '/', + 'flags' in t ? t.flags : !i && t instanceof RegExp ? o.call(t) : void 0, + ); + }) + : 'toString' != u.name && + c(function () { + return u.call(this); + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(3), + o = e(6), + i = e(83), + u = e(55); + e(56)('match', 1, function (t, n, e, c) { + return [ + function (e) { + var r = t(this), + o = null == e ? void 0 : e[n]; + return void 0 !== o ? o.call(e, r) : new RegExp(e)[n](String(r)); + }, + function (t) { + var n = c(e, t, this); + if (n.done) return n.value; + var a = r(t), + s = String(this); + if (!a.global) return u(a, s); + var f = a.unicode; + a.lastIndex = 0; + for (var l, h = [], p = 0; null !== (l = u(a, s)); ) { + var v = String(l[0]); + (h[p] = v), '' === v && (a.lastIndex = i(s, o(a.lastIndex), f)), p++; + } + return 0 === p ? null : h; + }, + ]; + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(3), + o = e(10), + i = e(6), + u = e(19), + c = e(83), + a = e(55), + s = Math.max, + f = Math.min, + l = Math.floor, + h = /\$([$&`']|\d\d?|<[^>]*>)/g, + p = /\$([$&`']|\d\d?)/g; + e(56)('replace', 2, function (t, n, e, v) { + return [ + function (r, o) { + var i = t(this), + u = null == r ? void 0 : r[n]; + return void 0 !== u ? u.call(r, i, o) : e.call(String(i), r, o); + }, + function (t, n) { + var o = v(e, t, this, n); + if (o.done) return o.value; + var l = r(t), + h = String(this), + p = 'function' == typeof n; + p || (n = String(n)); + var g = l.global; + if (g) { + var b = l.unicode; + l.lastIndex = 0; + } + for (var y = []; ; ) { + var m = a(l, h); + if (null === m) break; + if ((y.push(m), !g)) break; + '' === String(m[0]) && (l.lastIndex = c(h, i(l.lastIndex), b)); + } + for (var k, x = '', w = 0, S = 0; S < y.length; S++) { + m = y[S]; + for ( + var _ = String(m[0]), E = s(f(u(m.index), h.length), 0), O = [], P = 1; + P < m.length; + P++ + ) + O.push(void 0 === (k = m[P]) ? k : String(k)); + var F = m.groups; + if (p) { + var A = [_].concat(O, E, h); + void 0 !== F && A.push(F); + var M = String(n.apply(void 0, A)); + } else M = d(_, h, E, O, F, n); + E >= w && ((x += h.slice(w, E) + M), (w = E + _.length)); + } + return x + h.slice(w); + }, + ]; + function d(t, n, r, i, u, c) { + var a = r + t.length, + s = i.length, + f = p; + return ( + void 0 !== u && ((u = o(u)), (f = h)), + e.call(c, f, function (e, o) { + var c; + switch (o.charAt(0)) { + case '$': + return '$'; + case '&': + return t; + case '`': + return n.slice(0, r); + case "'": + return n.slice(a); + case '<': + c = u[o.slice(1, -1)]; + break; + default: + var f = +o; + if (0 === f) return e; + if (f > s) { + var h = l(f / 10); + return 0 === h + ? e + : h <= s + ? void 0 === i[h - 1] + ? o.charAt(1) + : i[h - 1] + o.charAt(1) + : e; + } + c = i[f - 1]; + } + return void 0 === c ? '' : c; + }) + ); + } + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(3), + o = e(95), + i = e(55); + e(56)('search', 1, function (t, n, e, u) { + return [ + function (e) { + var r = t(this), + o = null == e ? void 0 : e[n]; + return void 0 !== o ? o.call(e, r) : new RegExp(e)[n](String(r)); + }, + function (t) { + var n = u(e, t, this); + if (n.done) return n.value; + var c = r(t), + a = String(this), + s = c.lastIndex; + o(s, 0) || (c.lastIndex = 0); + var f = i(c, a); + return o(c.lastIndex, s) || (c.lastIndex = s), null === f ? -1 : f.index; + }, + ]; + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(75), + o = e(3), + i = e(48), + u = e(83), + c = e(6), + a = e(55), + s = e(82), + f = e(2), + l = Math.min, + h = [].push, + p = !f(function () { + RegExp(4294967295, 'y'); + }); + e(56)('split', 2, function (t, n, e, f) { + var v; + return ( + (v = + 'c' == 'abbc'.split(/(b)*/)[1] || + 4 != 'test'.split(/(?:)/, -1).length || + 2 != 'ab'.split(/(?:ab)*/).length || + 4 != '.'.split(/(.?)(.?)/).length || + '.'.split(/()()/).length > 1 || + ''.split(/.?/).length + ? function (t, n) { + var o = String(this); + if (void 0 === t && 0 === n) return []; + if (!r(t)) return e.call(o, t, n); + for ( + var i, + u, + c, + a = [], + f = + (t.ignoreCase ? 'i' : '') + + (t.multiline ? 'm' : '') + + (t.unicode ? 'u' : '') + + (t.sticky ? 'y' : ''), + l = 0, + p = void 0 === n ? 4294967295 : n >>> 0, + v = new RegExp(t.source, f + 'g'); + (i = s.call(v, o)) && + !( + (u = v.lastIndex) > l && + (a.push(o.slice(l, i.index)), + i.length > 1 && i.index < o.length && h.apply(a, i.slice(1)), + (c = i[0].length), + (l = u), + a.length >= p) + ); + + ) + v.lastIndex === i.index && v.lastIndex++; + return ( + l === o.length + ? (!c && v.test('')) || a.push('') + : a.push(o.slice(l)), + a.length > p ? a.slice(0, p) : a + ); + } + : '0'.split(void 0, 0).length + ? function (t, n) { + return void 0 === t && 0 === n ? [] : e.call(this, t, n); + } + : e), + [ + function (e, r) { + var o = t(this), + i = null == e ? void 0 : e[n]; + return void 0 !== i ? i.call(e, o, r) : v.call(String(o), e, r); + }, + function (t, n) { + var r = f(v, t, this, n, v !== e); + if (r.done) return r.value; + var s = o(t), + h = String(this), + d = i(s, RegExp), + g = s.unicode, + b = + (s.ignoreCase ? 'i' : '') + + (s.multiline ? 'm' : '') + + (s.unicode ? 'u' : '') + + (p ? 'y' : 'g'), + y = new d(p ? s : '^(?:' + s.source + ')', b), + m = void 0 === n ? 4294967295 : n >>> 0; + if (0 === m) return []; + if (0 === h.length) return null === a(y, h) ? [h] : []; + for (var k = 0, x = 0, w = []; x < h.length; ) { + y.lastIndex = p ? x : 0; + var S, + _ = a(y, p ? h : h.slice(x)); + if (null === _ || (S = l(c(y.lastIndex + (p ? 0 : x)), h.length)) === k) + x = u(h, x, g); + else { + if ((w.push(h.slice(k, x)), w.length === m)) return w; + for (var E = 1; E <= _.length - 1; E++) + if ((w.push(_[E]), w.length === m)) return w; + x = k = S; + } + } + return w.push(h.slice(k)), w; + }, + ] + ); + }); + }, + function (t, n, e) { + var r = e(1), + o = e(84).set, + i = r.MutationObserver || r.WebKitMutationObserver, + u = r.process, + c = r.Promise, + a = 'process' == e(23)(u); + t.exports = function () { + var t, + n, + e, + s = function () { + var r, o; + for (a && (r = u.domain) && r.exit(); t; ) { + (o = t.fn), (t = t.next); + try { + o(); + } catch (r) { + throw (t ? e() : (n = void 0), r); + } + } + (n = void 0), r && r.enter(); + }; + if (a) + e = function () { + u.nextTick(s); + }; + else if (!i || (r.navigator && r.navigator.standalone)) + if (c && c.resolve) { + var f = c.resolve(void 0); + e = function () { + f.then(s); + }; + } else + e = function () { + o.call(r, s); + }; + else { + var l = !0, + h = document.createTextNode(''); + new i(s).observe(h, { characterData: !0 }), + (e = function () { + h.data = l = !l; + }); + } + return function (r) { + var o = { fn: r, next: void 0 }; + n && (n.next = o), t || ((t = o), e()), (n = o); + }; + }; + }, + function (t, n) { + t.exports = function (t) { + try { + return { e: !1, v: t() }; + } catch (t) { + return { e: !0, v: t }; + } + }; + }, + function (t, n, e) { + 'use strict'; + var r = e(114), + o = e(37); + t.exports = e(59)( + 'Map', + function (t) { + return function () { + return t(this, arguments.length > 0 ? arguments[0] : void 0); + }; + }, + { + get: function (t) { + var n = r.getEntry(o(this, 'Map'), t); + return n && n.v; + }, + set: function (t, n) { + return r.def(o(this, 'Map'), 0 === t ? 0 : t, n); + }, + }, + r, + !0, + ); + }, + function (t, n, e) { + 'use strict'; + var r = e(114), + o = e(37); + t.exports = e(59)( + 'Set', + function (t) { + return function () { + return t(this, arguments.length > 0 ? arguments[0] : void 0); + }; + }, + { + add: function (t) { + return r.def(o(this, 'Set'), (t = 0 === t ? 0 : t), t); + }, + }, + r, + ); + }, + function (t, n, e) { + 'use strict'; + var r, + o = e(1), + i = e(22)(0), + u = e(11), + c = e(27), + a = e(94), + s = e(115), + f = e(4), + l = e(37), + h = e(37), + p = !o.ActiveXObject && 'ActiveXObject' in o, + v = c.getWeak, + d = Object.isExtensible, + g = s.ufstore, + b = function (t) { + return function () { + return t(this, arguments.length > 0 ? arguments[0] : void 0); + }; + }, + y = { + get: function (t) { + if (f(t)) { + var n = v(t); + return !0 === n ? g(l(this, 'WeakMap')).get(t) : n ? n[this._i] : void 0; + } + }, + set: function (t, n) { + return s.def(l(this, 'WeakMap'), t, n); + }, + }, + m = (t.exports = e(59)('WeakMap', b, y, s, !0, !0)); + h && + p && + (a((r = s.getConstructor(b, 'WeakMap')).prototype, y), + (c.NEED = !0), + i(['delete', 'has', 'get', 'set'], function (t) { + var n = m.prototype, + e = n[t]; + u(n, t, function (n, o) { + if (f(n) && !d(n)) { + this._f || (this._f = new r()); + var i = this._f[t](n, o); + return 'set' == t ? this : i; + } + return e.call(this, n, o); + }); + })); + }, + function (t, n, e) { + 'use strict'; + var r = e(115), + o = e(37); + e(59)( + 'WeakSet', + function (t) { + return function () { + return t(this, arguments.length > 0 ? arguments[0] : void 0); + }; + }, + { + add: function (t) { + return r.def(o(this, 'WeakSet'), t, !0); + }, + }, + r, + !1, + !0, + ); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(60), + i = e(85), + u = e(3), + c = e(32), + a = e(6), + s = e(4), + f = e(1).ArrayBuffer, + l = e(48), + h = i.ArrayBuffer, + p = i.DataView, + v = o.ABV && f.isView, + d = h.prototype.slice, + g = o.VIEW; + r(r.G + r.W + r.F * (f !== h), { ArrayBuffer: h }), + r(r.S + r.F * !o.CONSTR, 'ArrayBuffer', { + isView: function (t) { + return (v && v(t)) || (s(t) && g in t); + }, + }), + r( + r.P + + r.U + + r.F * + e(2)(function () { + return !new h(2).slice(1, void 0).byteLength; + }), + 'ArrayBuffer', + { + slice: function (t, n) { + if (void 0 !== d && void 0 === n) return d.call(u(this), t); + for ( + var e = u(this).byteLength, + r = c(t, e), + o = c(void 0 === n ? e : n, e), + i = new (l(this, h))(a(o - r)), + s = new p(this), + f = new p(i), + v = 0; + r < o; + + ) + f.setUint8(v++, s.getUint8(r++)); + return i; + }, + }, + ), + e(41)('ArrayBuffer'); + }, + function (t, n, e) { + var r = e(0); + r(r.G + r.W + r.F * !e(60).ABV, { DataView: e(85).DataView }); + }, + function (t, n, e) { + e(25)('Int8', 1, function (t) { + return function (n, e, r) { + return t(this, n, e, r); + }; + }); + }, + function (t, n, e) { + e(25)('Uint8', 1, function (t) { + return function (n, e, r) { + return t(this, n, e, r); + }; + }); + }, + function (t, n, e) { + e(25)( + 'Uint8', + 1, + function (t) { + return function (n, e, r) { + return t(this, n, e, r); + }; + }, + !0, + ); + }, + function (t, n, e) { + e(25)('Int16', 2, function (t) { + return function (n, e, r) { + return t(this, n, e, r); + }; + }); + }, + function (t, n, e) { + e(25)('Uint16', 2, function (t) { + return function (n, e, r) { + return t(this, n, e, r); + }; + }); + }, + function (t, n, e) { + e(25)('Int32', 4, function (t) { + return function (n, e, r) { + return t(this, n, e, r); + }; + }); + }, + function (t, n, e) { + e(25)('Uint32', 4, function (t) { + return function (n, e, r) { + return t(this, n, e, r); + }; + }); + }, + function (t, n, e) { + e(25)('Float32', 4, function (t) { + return function (n, e, r) { + return t(this, n, e, r); + }; + }); + }, + function (t, n, e) { + e(25)('Float64', 8, function (t) { + return function (n, e, r) { + return t(this, n, e, r); + }; + }); + }, + function (t, n, e) { + var r = e(0), + o = e(18), + i = e(3), + u = (e(1).Reflect || {}).apply, + c = Function.apply; + r( + r.S + + r.F * + !e(2)(function () { + u(function () {}); + }), + 'Reflect', + { + apply: function (t, n, e) { + var r = o(t), + a = i(e); + return u ? u(r, n, a) : c.call(r, n, a); + }, + }, + ); + }, + function (t, n, e) { + var r = e(0), + o = e(33), + i = e(18), + u = e(3), + c = e(4), + a = e(2), + s = e(96), + f = (e(1).Reflect || {}).construct, + l = a(function () { + function t() {} + return !(f(function () {}, [], t) instanceof t); + }), + h = !a(function () { + f(function () {}); + }); + r(r.S + r.F * (l || h), 'Reflect', { + construct: function (t, n) { + i(t), u(n); + var e = arguments.length < 3 ? t : i(arguments[2]); + if (h && !l) return f(t, n, e); + if (t == e) { + switch (n.length) { + case 0: + return new t(); + case 1: + return new t(n[0]); + case 2: + return new t(n[0], n[1]); + case 3: + return new t(n[0], n[1], n[2]); + case 4: + return new t(n[0], n[1], n[2], n[3]); + } + var r = [null]; + return r.push.apply(r, n), new (s.apply(t, r))(); + } + var a = e.prototype, + p = o(c(a) ? a : Object.prototype), + v = Function.apply.call(t, p, n); + return c(v) ? v : p; + }, + }); + }, + function (t, n, e) { + var r = e(9), + o = e(0), + i = e(3), + u = e(26); + o( + o.S + + o.F * + e(2)(function () { + Reflect.defineProperty(r.f({}, 1, { value: 1 }), 1, { value: 2 }); + }), + 'Reflect', + { + defineProperty: function (t, n, e) { + i(t), (n = u(n, !0)), i(e); + try { + return r.f(t, n, e), !0; + } catch (t) { + return !1; + } + }, + }, + ); + }, + function (t, n, e) { + var r = e(0), + o = e(20).f, + i = e(3); + r(r.S, 'Reflect', { + deleteProperty: function (t, n) { + var e = o(i(t), n); + return !(e && !e.configurable) && delete t[n]; + }, + }); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(3), + i = function (t) { + (this._t = o(t)), (this._i = 0); + var n, + e = (this._k = []); + for (n in t) e.push(n); + }; + e(103)(i, 'Object', function () { + var t, + n = this._k; + do { + if (this._i >= n.length) return { value: void 0, done: !0 }; + } while (!((t = n[this._i++]) in this._t)); + return { value: t, done: !1 }; + }), + r(r.S, 'Reflect', { + enumerate: function (t) { + return new i(t); + }, + }); + }, + function (t, n, e) { + var r = e(20), + o = e(35), + i = e(13), + u = e(0), + c = e(4), + a = e(3); + u(u.S, 'Reflect', { + get: function t(n, e) { + var u, + s, + f = arguments.length < 3 ? n : arguments[2]; + return a(n) === f + ? n[e] + : (u = r.f(n, e)) + ? i(u, 'value') + ? u.value + : void 0 !== u.get + ? u.get.call(f) + : void 0 + : c((s = o(n))) + ? t(s, e, f) + : void 0; + }, + }); + }, + function (t, n, e) { + var r = e(20), + o = e(0), + i = e(3); + o(o.S, 'Reflect', { + getOwnPropertyDescriptor: function (t, n) { + return r.f(i(t), n); + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = e(35), + i = e(3); + r(r.S, 'Reflect', { + getPrototypeOf: function (t) { + return o(i(t)); + }, + }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Reflect', { + has: function (t, n) { + return n in t; + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = e(3), + i = Object.isExtensible; + r(r.S, 'Reflect', { + isExtensible: function (t) { + return o(t), !i || i(t); + }, + }); + }, + function (t, n, e) { + var r = e(0); + r(r.S, 'Reflect', { ownKeys: e(117) }); + }, + function (t, n, e) { + var r = e(0), + o = e(3), + i = Object.preventExtensions; + r(r.S, 'Reflect', { + preventExtensions: function (t) { + o(t); + try { + return i && i(t), !0; + } catch (t) { + return !1; + } + }, + }); + }, + function (t, n, e) { + var r = e(9), + o = e(20), + i = e(35), + u = e(13), + c = e(0), + a = e(28), + s = e(3), + f = e(4); + c(c.S, 'Reflect', { + set: function t(n, e, c) { + var l, + h, + p = arguments.length < 4 ? n : arguments[3], + v = o.f(s(n), e); + if (!v) { + if (f((h = i(n)))) return t(h, e, c, p); + v = a(0); + } + if (u(v, 'value')) { + if (!1 === v.writable || !f(p)) return !1; + if ((l = o.f(p, e))) { + if (l.get || l.set || !1 === l.writable) return !1; + (l.value = c), r.f(p, e, l); + } else r.f(p, e, a(0, c)); + return !0; + } + return void 0 !== v.set && (v.set.call(p, c), !0); + }, + }); + }, + function (t, n, e) { + var r = e(0), + o = e(66); + o && + r(r.S, 'Reflect', { + setPrototypeOf: function (t, n) { + o.check(t, n); + try { + return o.set(t, n), !0; + } catch (t) { + return !1; + } + }, + }); + }, + function (t, n, e) { + e(272), (t.exports = e(7).Array.includes); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(50)(!0); + r(r.P, 'Array', { + includes: function (t) { + return o(this, t, arguments.length > 1 ? arguments[1] : void 0); + }, + }), + e(36)('includes'); + }, + function (t, n, e) { + e(274), (t.exports = e(7).Array.flatMap); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(275), + i = e(10), + u = e(6), + c = e(18), + a = e(105); + r(r.P, 'Array', { + flatMap: function (t) { + var n, + e, + r = i(this); + return ( + c(t), (n = u(r.length)), (e = a(r, 0)), o(e, r, r, n, 0, 1, t, arguments[1]), e + ); + }, + }), + e(36)('flatMap'); + }, + function (t, n, e) { + 'use strict'; + var r = e(52), + o = e(4), + i = e(6), + u = e(17), + c = e(5)('isConcatSpreadable'); + t.exports = function t(n, e, a, s, f, l, h, p) { + for (var v, d, g = f, b = 0, y = !!h && u(h, p, 3); b < s; ) { + if (b in a) { + if ( + ((v = y ? y(a[b], b, e) : a[b]), + (d = !1), + o(v) && (d = void 0 !== (d = v[c]) ? !!d : r(v)), + d && l > 0) + ) + g = t(n, e, v, i(v.length), g, l - 1) - 1; + else { + if (g >= 9007199254740991) throw TypeError(); + n[g] = v; + } + g++; + } + b++; + } + return g; + }; + }, + function (t, n, e) { + e(277), (t.exports = e(7).String.padStart); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(118), + i = e(58), + u = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(i); + r(r.P + r.F * u, 'String', { + padStart: function (t) { + return o(this, t, arguments.length > 1 ? arguments[1] : void 0, !0); + }, + }); + }, + function (t, n, e) { + e(279), (t.exports = e(7).String.padEnd); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(118), + i = e(58), + u = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(i); + r(r.P + r.F * u, 'String', { + padEnd: function (t) { + return o(this, t, arguments.length > 1 ? arguments[1] : void 0, !1); + }, + }); + }, + function (t, n, e) { + e(281), (t.exports = e(7).String.trimLeft); + }, + function (t, n, e) { + 'use strict'; + e(39)( + 'trimLeft', + function (t) { + return function () { + return t(this, 1); + }; + }, + 'trimStart', + ); + }, + function (t, n, e) { + e(283), (t.exports = e(7).String.trimRight); + }, + function (t, n, e) { + 'use strict'; + e(39)( + 'trimRight', + function (t) { + return function () { + return t(this, 2); + }; + }, + 'trimEnd', + ); + }, + function (t, n, e) { + e(285), (t.exports = e(62).f('asyncIterator')); + }, + function (t, n, e) { + e(90)('asyncIterator'); + }, + function (t, n, e) { + e(287), (t.exports = e(7).Object.getOwnPropertyDescriptors); + }, + function (t, n, e) { + var r = e(0), + o = e(117), + i = e(15), + u = e(20), + c = e(78); + r(r.S, 'Object', { + getOwnPropertyDescriptors: function (t) { + for (var n, e, r = i(t), a = u.f, s = o(r), f = {}, l = 0; s.length > l; ) + void 0 !== (e = a(r, (n = s[l++]))) && c(f, n, e); + return f; + }, + }); + }, + function (t, n, e) { + e(289), (t.exports = e(7).Object.values); + }, + function (t, n, e) { + var r = e(0), + o = e(119)(!1); + r(r.S, 'Object', { + values: function (t) { + return o(t); + }, + }); + }, + function (t, n, e) { + e(291), (t.exports = e(7).Object.entries); + }, + function (t, n, e) { + var r = e(0), + o = e(119)(!0); + r(r.S, 'Object', { + entries: function (t) { + return o(t); + }, + }); + }, + function (t, n, e) { + 'use strict'; + e(111), e(293), (t.exports = e(7).Promise.finally); + }, + function (t, n, e) { + 'use strict'; + var r = e(0), + o = e(7), + i = e(1), + u = e(48), + c = e(113); + r(r.P + r.R, 'Promise', { + finally: function (t) { + var n = u(this, o.Promise || i.Promise), + e = 'function' == typeof t; + return this.then( + e + ? function (e) { + return c(n, t()).then(function () { + return e; + }); + } + : t, + e + ? function (e) { + return c(n, t()).then(function () { + throw e; + }); + } + : t, + ); + }, + }); + }, + function (t, n, e) { + e(295), e(296), e(297), (t.exports = e(7)); + }, + function (t, n, e) { + var r = e(1), + o = e(0), + i = e(58), + u = [].slice, + c = /MSIE .\./.test(i), + a = function (t) { + return function (n, e) { + var r = arguments.length > 2, + o = !!r && u.call(arguments, 2); + return t( + r + ? function () { + ('function' == typeof n ? n : Function(n)).apply(this, o); + } + : n, + e, + ); + }; + }; + o(o.G + o.B + o.F * c, { setTimeout: a(r.setTimeout), setInterval: a(r.setInterval) }); + }, + function (t, n, e) { + var r = e(0), + o = e(84); + r(r.G + r.B, { setImmediate: o.set, clearImmediate: o.clear }); + }, + function (t, n, e) { + for ( + var r = e(81), + o = e(31), + i = e(11), + u = e(1), + c = e(14), + a = e(40), + s = e(5), + f = s('iterator'), + l = s('toStringTag'), + h = a.Array, + p = { + CSSRuleList: !0, + CSSStyleDeclaration: !1, + CSSValueList: !1, + ClientRectList: !1, + DOMRectList: !1, + DOMStringList: !1, + DOMTokenList: !0, + DataTransferItemList: !1, + FileList: !1, + HTMLAllCollection: !1, + HTMLCollection: !1, + HTMLFormElement: !1, + HTMLSelectElement: !1, + MediaList: !0, + MimeTypeArray: !1, + NamedNodeMap: !1, + NodeList: !0, + PaintRequestList: !1, + Plugin: !1, + PluginArray: !1, + SVGLengthList: !1, + SVGNumberList: !1, + SVGPathSegList: !1, + SVGPointList: !1, + SVGStringList: !1, + SVGTransformList: !1, + SourceBufferList: !1, + StyleSheetList: !0, + TextTrackCueList: !1, + TextTrackList: !1, + TouchList: !1, + }, + v = o(p), + d = 0; + d < v.length; + d++ + ) { + var g, + b = v[d], + y = p[b], + m = u[b], + k = m && m.prototype; + if (k && (k[f] || c(k, f, h), k[l] || c(k, l, b), (a[b] = h), y)) + for (g in r) k[g] || i(k, g, r[g], !0); + } + }, + function (t, n, e) { + var r = (function (t) { + 'use strict'; + var n, + e = Object.prototype, + r = e.hasOwnProperty, + o = 'function' == typeof Symbol ? Symbol : {}, + i = o.iterator || '@@iterator', + u = o.asyncIterator || '@@asyncIterator', + c = o.toStringTag || '@@toStringTag'; + function a(t, n, e, r) { + var o = n && n.prototype instanceof d ? n : d, + i = Object.create(o.prototype), + u = new P(r || []); + return ( + (i._invoke = (function (t, n, e) { + var r = f; + return function (o, i) { + if (r === h) throw new Error('Generator is already running'); + if (r === p) { + if ('throw' === o) throw i; + return A(); + } + for (e.method = o, e.arg = i; ; ) { + var u = e.delegate; + if (u) { + var c = _(u, e); + if (c) { + if (c === v) continue; + return c; + } + } + if ('next' === e.method) e.sent = e._sent = e.arg; + else if ('throw' === e.method) { + if (r === f) throw ((r = p), e.arg); + e.dispatchException(e.arg); + } else 'return' === e.method && e.abrupt('return', e.arg); + r = h; + var a = s(t, n, e); + if ('normal' === a.type) { + if (((r = e.done ? p : l), a.arg === v)) continue; + return { value: a.arg, done: e.done }; + } + 'throw' === a.type && + ((r = p), (e.method = 'throw'), (e.arg = a.arg)); + } + }; + })(t, e, u)), + i + ); + } + function s(t, n, e) { + try { + return { type: 'normal', arg: t.call(n, e) }; + } catch (t) { + return { type: 'throw', arg: t }; + } + } + t.wrap = a; + var f = 'suspendedStart', + l = 'suspendedYield', + h = 'executing', + p = 'completed', + v = {}; + function d() {} + function g() {} + function b() {} + var y = {}; + y[i] = function () { + return this; + }; + var m = Object.getPrototypeOf, + k = m && m(m(F([]))); + k && k !== e && r.call(k, i) && (y = k); + var x = (b.prototype = d.prototype = Object.create(y)); + function w(t) { + ['next', 'throw', 'return'].forEach(function (n) { + t[n] = function (t) { + return this._invoke(n, t); + }; + }); + } + function S(t) { + var n; + this._invoke = function (e, o) { + function i() { + return new Promise(function (n, i) { + !(function n(e, o, i, u) { + var c = s(t[e], t, o); + if ('throw' !== c.type) { + var a = c.arg, + f = a.value; + return f && 'object' == typeof f && r.call(f, '__await') + ? Promise.resolve(f.__await).then( + function (t) { + n('next', t, i, u); + }, + function (t) { + n('throw', t, i, u); + }, + ) + : Promise.resolve(f).then( + function (t) { + (a.value = t), i(a); + }, + function (t) { + return n('throw', t, i, u); + }, + ); + } + u(c.arg); + })(e, o, n, i); + }); + } + return (n = n ? n.then(i, i) : i()); + }; + } + function _(t, e) { + var r = t.iterator[e.method]; + if (r === n) { + if (((e.delegate = null), 'throw' === e.method)) { + if ( + t.iterator.return && + ((e.method = 'return'), (e.arg = n), _(t, e), 'throw' === e.method) + ) + return v; + (e.method = 'throw'), + (e.arg = new TypeError( + "The iterator does not provide a 'throw' method", + )); + } + return v; + } + var o = s(r, t.iterator, e.arg); + if ('throw' === o.type) + return (e.method = 'throw'), (e.arg = o.arg), (e.delegate = null), v; + var i = o.arg; + return i + ? i.done + ? ((e[t.resultName] = i.value), + (e.next = t.nextLoc), + 'return' !== e.method && ((e.method = 'next'), (e.arg = n)), + (e.delegate = null), + v) + : i + : ((e.method = 'throw'), + (e.arg = new TypeError('iterator result is not an object')), + (e.delegate = null), + v); + } + function E(t) { + var n = { tryLoc: t[0] }; + 1 in t && (n.catchLoc = t[1]), + 2 in t && ((n.finallyLoc = t[2]), (n.afterLoc = t[3])), + this.tryEntries.push(n); + } + function O(t) { + var n = t.completion || {}; + (n.type = 'normal'), delete n.arg, (t.completion = n); + } + function P(t) { + (this.tryEntries = [{ tryLoc: 'root' }]), t.forEach(E, this), this.reset(!0); + } + function F(t) { + if (t) { + var e = t[i]; + if (e) return e.call(t); + if ('function' == typeof t.next) return t; + if (!isNaN(t.length)) { + var o = -1, + u = function e() { + for (; ++o < t.length; ) + if (r.call(t, o)) return (e.value = t[o]), (e.done = !1), e; + return (e.value = n), (e.done = !0), e; + }; + return (u.next = u); + } + } + return { next: A }; + } + function A() { + return { value: n, done: !0 }; + } + return ( + (g.prototype = x.constructor = b), + (b.constructor = g), + (b[c] = g.displayName = 'GeneratorFunction'), + (t.isGeneratorFunction = function (t) { + var n = 'function' == typeof t && t.constructor; + return !!n && (n === g || 'GeneratorFunction' === (n.displayName || n.name)); + }), + (t.mark = function (t) { + return ( + Object.setPrototypeOf + ? Object.setPrototypeOf(t, b) + : ((t.__proto__ = b), c in t || (t[c] = 'GeneratorFunction')), + (t.prototype = Object.create(x)), + t + ); + }), + (t.awrap = function (t) { + return { __await: t }; + }), + w(S.prototype), + (S.prototype[u] = function () { + return this; + }), + (t.AsyncIterator = S), + (t.async = function (n, e, r, o) { + var i = new S(a(n, e, r, o)); + return t.isGeneratorFunction(e) + ? i + : i.next().then(function (t) { + return t.done ? t.value : i.next(); + }); + }), + w(x), + (x[c] = 'Generator'), + (x[i] = function () { + return this; + }), + (x.toString = function () { + return '[object Generator]'; + }), + (t.keys = function (t) { + var n = []; + for (var e in t) n.push(e); + return ( + n.reverse(), + function e() { + for (; n.length; ) { + var r = n.pop(); + if (r in t) return (e.value = r), (e.done = !1), e; + } + return (e.done = !0), e; + } + ); + }), + (t.values = F), + (P.prototype = { + constructor: P, + reset: function (t) { + if ( + ((this.prev = 0), + (this.next = 0), + (this.sent = this._sent = n), + (this.done = !1), + (this.delegate = null), + (this.method = 'next'), + (this.arg = n), + this.tryEntries.forEach(O), + !t) + ) + for (var e in this) + 't' === e.charAt(0) && + r.call(this, e) && + !isNaN(+e.slice(1)) && + (this[e] = n); + }, + stop: function () { + this.done = !0; + var t = this.tryEntries[0].completion; + if ('throw' === t.type) throw t.arg; + return this.rval; + }, + dispatchException: function (t) { + if (this.done) throw t; + var e = this; + function o(r, o) { + return ( + (c.type = 'throw'), + (c.arg = t), + (e.next = r), + o && ((e.method = 'next'), (e.arg = n)), + !!o + ); + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var u = this.tryEntries[i], + c = u.completion; + if ('root' === u.tryLoc) return o('end'); + if (u.tryLoc <= this.prev) { + var a = r.call(u, 'catchLoc'), + s = r.call(u, 'finallyLoc'); + if (a && s) { + if (this.prev < u.catchLoc) return o(u.catchLoc, !0); + if (this.prev < u.finallyLoc) return o(u.finallyLoc); + } else if (a) { + if (this.prev < u.catchLoc) return o(u.catchLoc, !0); + } else { + if (!s) + throw new Error('try statement without catch or finally'); + if (this.prev < u.finallyLoc) return o(u.finallyLoc); + } + } + } + }, + abrupt: function (t, n) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var o = this.tryEntries[e]; + if ( + o.tryLoc <= this.prev && + r.call(o, 'finallyLoc') && + this.prev < o.finallyLoc + ) { + var i = o; + break; + } + } + i && + ('break' === t || 'continue' === t) && + i.tryLoc <= n && + n <= i.finallyLoc && + (i = null); + var u = i ? i.completion : {}; + return ( + (u.type = t), + (u.arg = n), + i + ? ((this.method = 'next'), (this.next = i.finallyLoc), v) + : this.complete(u) + ); + }, + complete: function (t, n) { + if ('throw' === t.type) throw t.arg; + return ( + 'break' === t.type || 'continue' === t.type + ? (this.next = t.arg) + : 'return' === t.type + ? ((this.rval = this.arg = t.arg), + (this.method = 'return'), + (this.next = 'end')) + : 'normal' === t.type && n && (this.next = n), + v + ); + }, + finish: function (t) { + for (var n = this.tryEntries.length - 1; n >= 0; --n) { + var e = this.tryEntries[n]; + if (e.finallyLoc === t) + return this.complete(e.completion, e.afterLoc), O(e), v; + } + }, + catch: function (t) { + for (var n = this.tryEntries.length - 1; n >= 0; --n) { + var e = this.tryEntries[n]; + if (e.tryLoc === t) { + var r = e.completion; + if ('throw' === r.type) { + var o = r.arg; + O(e); + } + return o; + } + } + throw new Error('illegal catch attempt'); + }, + delegateYield: function (t, e, r) { + return ( + (this.delegate = { iterator: F(t), resultName: e, nextLoc: r }), + 'next' === this.method && (this.arg = n), + v + ); + }, + }), + t + ); + })(t.exports); + try { + regeneratorRuntime = r; + } catch (t) { + Function('r', 'regeneratorRuntime = r')(r); + } + }, + function (t, n, e) { + e(300), (t.exports = e(120).global); + }, + function (t, n, e) { + var r = e(301); + r(r.G, { global: e(86) }); + }, + function (t, n, e) { + var r = e(86), + o = e(120), + i = e(302), + u = e(304), + c = e(311), + a = function (t, n, e) { + var s, + f, + l, + h = t & a.F, + p = t & a.G, + v = t & a.S, + d = t & a.P, + g = t & a.B, + b = t & a.W, + y = p ? o : o[n] || (o[n] = {}), + m = y.prototype, + k = p ? r : v ? r[n] : (r[n] || {}).prototype; + for (s in (p && (e = n), e)) + ((f = !h && k && void 0 !== k[s]) && c(y, s)) || + ((l = f ? k[s] : e[s]), + (y[s] = + p && 'function' != typeof k[s] + ? e[s] + : g && f + ? i(l, r) + : b && k[s] == l + ? (function (t) { + var n = function (n, e, r) { + if (this instanceof t) { + switch (arguments.length) { + case 0: + return new t(); + case 1: + return new t(n); + case 2: + return new t(n, e); + } + return new t(n, e, r); + } + return t.apply(this, arguments); + }; + return (n.prototype = t.prototype), n; + })(l) + : d && 'function' == typeof l + ? i(Function.call, l) + : l), + d && + (((y.virtual || (y.virtual = {}))[s] = l), + t & a.R && m && !m[s] && u(m, s, l))); + }; + (a.F = 1), + (a.G = 2), + (a.S = 4), + (a.P = 8), + (a.B = 16), + (a.W = 32), + (a.U = 64), + (a.R = 128), + (t.exports = a); + }, + function (t, n, e) { + var r = e(303); + t.exports = function (t, n, e) { + if ((r(t), void 0 === n)) return t; + switch (e) { + case 1: + return function (e) { + return t.call(n, e); + }; + case 2: + return function (e, r) { + return t.call(n, e, r); + }; + case 3: + return function (e, r, o) { + return t.call(n, e, r, o); + }; + } + return function () { + return t.apply(n, arguments); + }; + }; + }, + function (t, n) { + t.exports = function (t) { + if ('function' != typeof t) throw TypeError(t + ' is not a function!'); + return t; + }; + }, + function (t, n, e) { + var r = e(305), + o = e(310); + t.exports = e(88) + ? function (t, n, e) { + return r.f(t, n, o(1, e)); + } + : function (t, n, e) { + return (t[n] = e), t; + }; + }, + function (t, n, e) { + var r = e(306), + o = e(307), + i = e(309), + u = Object.defineProperty; + n.f = e(88) + ? Object.defineProperty + : function (t, n, e) { + if ((r(t), (n = i(n, !0)), r(e), o)) + try { + return u(t, n, e); + } catch (t) {} + if ('get' in e || 'set' in e) throw TypeError('Accessors not supported!'); + return 'value' in e && (t[n] = e.value), t; + }; + }, + function (t, n, e) { + var r = e(87); + t.exports = function (t) { + if (!r(t)) throw TypeError(t + ' is not an object!'); + return t; + }; + }, + function (t, n, e) { + t.exports = + !e(88) && + !e(121)(function () { + return ( + 7 != + Object.defineProperty(e(308)('div'), 'a', { + get: function () { + return 7; + }, + }).a + ); + }); + }, + function (t, n, e) { + var r = e(87), + o = e(86).document, + i = r(o) && r(o.createElement); + t.exports = function (t) { + return i ? o.createElement(t) : {}; + }; + }, + function (t, n, e) { + var r = e(87); + t.exports = function (t, n) { + if (!r(t)) return t; + var e, o; + if (n && 'function' == typeof (e = t.toString) && !r((o = e.call(t)))) return o; + if ('function' == typeof (e = t.valueOf) && !r((o = e.call(t)))) return o; + if (!n && 'function' == typeof (e = t.toString) && !r((o = e.call(t)))) return o; + throw TypeError("Can't convert object to primitive value"); + }; + }, + function (t, n) { + t.exports = function (t, n) { + return { enumerable: !(1 & t), configurable: !(2 & t), writable: !(4 & t), value: n }; + }; + }, + function (t, n) { + var e = {}.hasOwnProperty; + t.exports = function (t, n) { + return e.call(t, n); + }; + }, + function (t, n, e) { + 'use strict'; + t.exports = function (t) { + var n = []; + return ( + (n.toString = function () { + return this.map(function (n) { + var e = (function (t, n) { + var e = t[1] || '', + r = t[3]; + if (!r) return e; + if (n && 'function' == typeof btoa) { + var o = + ((u = r), + '/*# sourceMappingURL=data:application/json;charset=utf-8;base64,' + + btoa(unescape(encodeURIComponent(JSON.stringify(u)))) + + ' */'), + i = r.sources.map(function (t) { + return '/*# sourceURL=' + r.sourceRoot + t + ' */'; + }); + return [e].concat(i).concat([o]).join('\n'); + } + var u; + return [e].join('\n'); + })(n, t); + return n[2] ? '@media ' + n[2] + '{' + e + '}' : e; + }).join(''); + }), + (n.i = function (t, e) { + 'string' == typeof t && (t = [[null, t, '']]); + for (var r = {}, o = 0; o < this.length; o++) { + var i = this[o][0]; + null != i && (r[i] = !0); + } + for (o = 0; o < t.length; o++) { + var u = t[o]; + (null != u[0] && r[u[0]]) || + (e && !u[2] + ? (u[2] = e) + : e && (u[2] = '(' + u[2] + ') and (' + e + ')'), + n.push(u)); + } + }), + n + ); + }; + }, + function (t, n, e) { + 'use strict'; + function r(t, n) { + return ( + (function (t) { + if (Array.isArray(t)) return t; + })(t) || + (function (t, n) { + if ( + !( + Symbol.iterator in Object(t) || + '[object Arguments]' === Object.prototype.toString.call(t) + ) + ) + return; + var e = [], + r = !0, + o = !1, + i = void 0; + try { + for ( + var u, c = t[Symbol.iterator](); + !(r = (u = c.next()).done) && (e.push(u.value), !n || e.length !== n); + r = !0 + ); + } catch (t) { + (o = !0), (i = t); + } finally { + try { + r || null == c.return || c.return(); + } finally { + if (o) throw i; + } + } + return e; + })(t, n) || + (function () { + throw new TypeError('Invalid attempt to destructure non-iterable instance'); + })() + ); + } + function o(t, n, e, r, o, i) { + var u; + if (e) { + var c = new Date(); + c.setTime(c.getTime() + 24 * e * 60 * 60 * 1e3), (u = c.toUTCString()); + } else u = ''; + var a = ''.concat(t, '=').concat(escape(n)); + u && (a += ';expires=' + u), + r && (a += ';path=' + escape(r)), + o && -1 !== o.indexOf('.') && (a += ';domain=' + escape(o)), + i && (a += ';secure'), + (a += ';'), + (document.cookie = a); + } + function i() { + return ( + (document.cookie || '') + .split(';') + .filter(function (t) { + return '' !== t; + }) + .map(function (t) { + return t.trim(); + }) + .reduce(function (t, n) { + var e = r(n.split('='), 2), + o = e[0], + i = e[1], + u = decodeURIComponent(i); + return (t[o] = u), t; + }, {}) || {} + ); + } + function u() { + var t = i(), + n = Object.keys(t).filter(function (t) { + return 'nhsuk-cookie-consent' !== t; + }), + e = window.location.hostname.split('.'), + r = e.map(function (t, n) { + return e.slice(n).join('.'); + }), + u = window.location.pathname.replace(/\/$/, '').split('/'), + c = u.map(function (t, n) { + return u.slice(0, n + 1).join('/') || '/'; + }); + n.forEach(function (t) { + c.forEach(function (n) { + r.forEach(function (e) { + o(t, '', -1, n, e); + }); + }); + }); + } + e.r(n); + var c = e(122), + a = e.n(c), + s = e(123), + f = e.n(s); + function l(t) { + var n; + (document.getElementById('cookiebanner').style.display = 'none'), + t(), + (document.getElementById('nhsuk-cookie-confirmation-banner').style.display = + 'block'), + (n = document.getElementById('nhsuk-success-banner__message')).setAttribute( + 'tabIndex', + '-1', + ), + n.focus(), + (function () { + var t = document.getElementById('nhsuk-success-banner__message'); + t.addEventListener('blur', function () { + t.removeAttribute('tabIndex'); + }); + })(); + } + function h(t) { + var n = document.createElement('script'); + n.text = t.text; + var e = t.parentElement; + n.setAttribute('type', 'text/javascript'); + var r = t.getAttribute('src'); + r && n.setAttribute('src', r), e.insertBefore(n, t), e.removeChild(t); + } + function p(t, n) { + for (var e = n.split(','), r = 0; r < e.length; r++) + if (-1 === t.indexOf(e[r])) return !1; + return !0; + } + var v = e(44); + function d(t, n) { + var e = Object.keys(t); + if (Object.getOwnPropertySymbols) { + var r = Object.getOwnPropertySymbols(t); + n && + (r = r.filter(function (n) { + return Object.getOwnPropertyDescriptor(t, n).enumerable; + })), + e.push.apply(e, r); + } + return e; + } + function g(t) { + for (var n = 1; n < arguments.length; n++) { + var e = null != arguments[n] ? arguments[n] : {}; + n % 2 + ? d(e, !0).forEach(function (n) { + b(t, n, e[n]); + }) + : Object.getOwnPropertyDescriptors + ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(e)) + : d(e).forEach(function (n) { + Object.defineProperty(t, n, Object.getOwnPropertyDescriptor(e, n)); + }); + } + return t; + } + function b(t, n, e) { + return ( + n in t + ? Object.defineProperty(t, n, { + value: e, + enumerable: !0, + configurable: !0, + writable: !0, + }) + : (t[n] = e), + t + ); + } + var y = 3, + m = 'nhsuk-cookie-consent', + k = { LONG: 'long', SESSION: 'session' }, + x = !1, + w = { necessary: !0, preferences: !1, statistics: !1, marketing: !1, consented: !1 }; + function S() { + var t, + n = ((t = m), i()[t] || null); + return JSON.parse(n); + } + function _() { + var t = S(); + return t ? (delete t.version, t) : {}; + } + function E(t) { + var n, + e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : k.LONG; + if (e === k.LONG) n = 90; + else { + if (e !== k.SESSION && e) + throw new Error('Cookie mode '.concat(e, ' not recognised')); + n = null; + } + !(function (t, n, e, r, i) { + var u = JSON.stringify(t); + o(m, u, n, e, r, i); + })(g({}, _(), {}, t, { version: y }), n, '/'); + } + function O() { + var t, + n = null === (t = S()) ? null : t.version; + return null === n ? null : n >= y; + } + function P(t) { + return !!_()[t]; + } + function F(t, n) { + n || u(), E(b({}, t, !!n)); + } + function A() { + var t = ['preferences', 'statistics', 'marketing'].filter(function (t) { + return !0 === P(t); + }); + !(function (t) { + for ( + var n = document.querySelectorAll('script[data-cookieconsent]'), e = 0; + e < n.length; + e++ + ) { + p(t, n[e].getAttribute('data-cookieconsent')) && h(n[e]); + } + })(t), + (function (t) { + for ( + var n, + e, + r = document.querySelectorAll('iframe[data-cookieconsent]'), + o = 0; + o < r.length; + o++ + ) { + p(t, r[o].getAttribute('data-cookieconsent')) && + ((n = r[o]), + (e = void 0), + (e = n.getAttribute('data-src')), + n.setAttribute('src', e)); + } + })(t); + } + function M() { + E(g({}, w, { consented: !0 })); + } + function j() { + E({ statistics: !0, consented: !0 }), A(); + } + var I = e(124); + e.d(n, 'VERSION', function () { + return N; + }), + e.d(n, 'getPreferences', function () { + return L; + }), + e.d(n, 'getStatistics', function () { + return T; + }), + e.d(n, 'getMarketing', function () { + return R; + }), + e.d(n, 'getConsented', function () { + return C; + }), + e.d(n, 'setPreferences', function () { + return W; + }), + e.d(n, 'setStatistics', function () { + return D; + }), + e.d(n, 'setMarketing', function () { + return B; + }), + e.d(n, 'setConsented', function () { + return U; + }); + var N = I.a; + function L() { + return P('preferences'); + } + function T() { + return P('statistics'); + } + function R() { + return P('marketing'); + } + function C() { + return P('consented'); + } + function W(t) { + F('preferences', t); + } + function D(t) { + F('statistics', t); + } + function B(t) { + F('marketing', t); + } + function U(t) { + F('consented', t); + } + (window.NHSCookieConsent = { + VERSION: N, + getPreferences: L, + getStatistics: T, + getMarketing: R, + getConsented: C, + setPreferences: W, + setStatistics: D, + setMarketing: B, + setConsented: U, + }), + window.addEventListener('DOMContentLoaded', function () { + var t, n, e; + Object(v.getNoBanner)() || + document.location.href === + Object(v.makeUrlAbsolute)(Object(v.getPolicyUrl)()) || + (null !== S() && O() && !1 !== P('consented')) || + (x + ? E( + { + necessary: !0, + preferences: !0, + statistics: !0, + marketing: !0, + consented: !1, + }, + k.LONG, + ) + : ((t = M), + (n = j), + ((e = document.createElement('div')).innerHTML = a.a), + (e.innerHTML += '')), + document.body.insertBefore(e, document.body.firstChild), + document + .getElementById('nhsuk-cookie-banner__link_accept') + .addEventListener('click', function (n) { + n.preventDefault(), l(t); + }), + document + .getElementById('nhsuk-cookie-banner__link_accept_analytics') + .addEventListener('click', function (t) { + t.preventDefault(), l(n); + }))), + !1 === O() && u(), + !0 !== O() && E(w, k.SESSION), + A(); + }); + }, +]); diff --git a/app/src/App.tsx b/app/src/App.tsx index 5aa1c25900..f29b90706d 100644 --- a/app/src/App.tsx +++ b/app/src/App.tsx @@ -3,71 +3,21 @@ import PatientDetailsProvider from './providers/patientProvider/PatientProvider' import SessionProvider from './providers/sessionProvider/SessionProvider'; import AppRouter from './router/AppRouter'; import ConfigProvider from './providers/configProvider/ConfigProvider'; -import { AwsRum, AwsRumConfig } from 'aws-rum-web'; -import { NdrTokenData } from './types/generic/ndrTokenData'; -import { decodeJwtToken } from './helpers/utils/jwtDecoder'; import PatientAccessAuditProvider from './providers/patientAccessAuditProvider/PatientAccessAuditProvider'; +import AnalyticsProvider from './providers/analyticsProvider/AnalyticsProvider'; import { JSX } from 'react'; -const cypress = - import.meta.env.VITE_MONITOR_ACCOUNT_ID === 'not provided yet' && - import.meta.env.VITE_RUM_IDENTITY_POOL_ID === 'not provided yet'; - -if (import.meta.env.VITE_ENVIRONMENT === 'development' && !cypress) { - try { - const config: AwsRumConfig = { - sessionSampleRate: 1, - identityPoolId: import.meta.env.VITE_RUM_IDENTITY_POOL_ID || '', - endpoint: `https://dataplane.rum.eu-west-2.amazonaws.com`, - telemetries: ['http', 'errors', 'performance'], - allowCookies: true, - enableXRay: false, - }; - const session = sessionStorage.getItem('UserSession'); - const APPLICATION_ID: string = import.meta.env.VITE_MONITOR_ACCOUNT_ID || ''; - const APPLICATION_VERSION: string = '1.0.0'; - const APPLICATION_REGION: string = import.meta.env.VITE_AWS_REGION || 'eu-west-2'; - - const awsRum: AwsRum = new AwsRum( // eslint-disable-line - APPLICATION_ID, - APPLICATION_VERSION, - APPLICATION_REGION, - config, - ); - - if (session) { - const data = JSON.parse(session); - if (data.auth.authorisation_token && data.auth.role && awsRum) { - const token_data = decodeJwtToken(data.auth.authorisation_token); - - if (token_data) { - awsRum.addSessionAttributes({ - ndrUserRole: data.auth.role, - ndrOdsName: token_data.selected_organisation.name, - ndrOdsCode: token_data.selected_organisation.org_ods_code, - ndrRoleCode: token_data.selected_organisation.role_code, - ndrIcbOdsCode: token_data.selected_organisation.icb_ods_code, - ndrSmartCardRole: token_data.smart_card_role, - ndrSessionId: token_data.ndr_session_id, - ndrNHSUserId: token_data.nhs_user_id, - }); - } - } - } - } catch (error) { - console.log(error); // eslint-disable-line - } -} - const App = (): JSX.Element => { return ( - - - - - + + + + + + + ); diff --git a/app/src/components/blocks/_admin/reviewDetailsFileSelectStage/ReviewDetailsFileSelectStage.test.tsx b/app/src/components/blocks/_admin/reviewDetailsFileSelectStage/ReviewDetailsFileSelectStage.test.tsx index 527931aa61..a66bf40169 100644 --- a/app/src/components/blocks/_admin/reviewDetailsFileSelectStage/ReviewDetailsFileSelectStage.test.tsx +++ b/app/src/components/blocks/_admin/reviewDetailsFileSelectStage/ReviewDetailsFileSelectStage.test.tsx @@ -17,6 +17,12 @@ vi.mock('../../../../helpers/utils/documentType'); vi.mock('../../../../helpers/hooks/useTitle', () => ({ default: vi.fn(), })); +vi.mock('../../../../providers/analyticsProvider/AnalyticsProvider', () => ({ + useAnalyticsContext: vi.fn(() => ([ + null, + vi.fn(), + ])), +})); const mockNavigate = vi.fn(); const mockSetPatientDetails = vi.fn(); diff --git a/app/src/components/blocks/_cookiesPolicy/cookiesPolicy/CookiesPolicy.test.tsx b/app/src/components/blocks/_cookiesPolicy/cookiesPolicy/CookiesPolicy.test.tsx new file mode 100644 index 0000000000..697af4ef49 --- /dev/null +++ b/app/src/components/blocks/_cookiesPolicy/cookiesPolicy/CookiesPolicy.test.tsx @@ -0,0 +1,117 @@ +import { render, screen, waitFor } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { describe, it, expect, vi, beforeEach, Mock } from 'vitest'; +import { MemoryRouter } from 'react-router'; +import CookiePolicy from './CookiesPolicy'; +import { routeChildren } from '../../../../types/generic/routes'; +import { useAnalyticsContext } from '../../../../providers/analyticsProvider/AnalyticsProvider'; +import { AwsRum } from 'aws-rum-web'; + +const mockNavigate = vi.fn(); +const mockUseAnalyticsContext = useAnalyticsContext as Mock; + +vi.mock('../../../../providers/analyticsProvider/AnalyticsProvider'); +vi.mock('react-router-dom', async () => { + const actual = await vi.importActual('react-router-dom'); + return { + ...actual, + useNavigate: () => mockNavigate, + }; +}); + +describe('CookiePolicy', () => { + const mockNHSCookieConsent = { + getStatistics: vi.fn(), + setStatistics: vi.fn(), + getConsented: vi.fn(), + setConsented: vi.fn(), + }; + const mockedAwsRum = { + disable: vi.fn(), + }; + + beforeEach(() => { + vi.clearAllMocks(); + window.NHSCookieConsent = mockNHSCookieConsent; + vi.mocked(useAnalyticsContext).mockReturnValue([ + mockedAwsRum as any, + vi.fn() + ]); + }); + + const renderComponent = () => { + return render( + + + , + ); + }; + + it('renders', () => { + renderComponent(); + + expect(screen.getByRole('heading', { name: 'Cookies policy', level: 1 })).toBeInTheDocument(); + expect(screen.getByRole('heading', { name: 'What are cookies?' })).toBeInTheDocument(); + expect(screen.getByRole('heading', { name: 'How we use cookies' })).toBeInTheDocument(); + expect(screen.getByRole('heading', { name: 'Cookies that make our website work' })).toBeInTheDocument(); + expect(screen.getByRole('heading', { name: 'Cookies that measure website use' })).toBeInTheDocument(); + + expect(screen.getByTestId('yes-radio-button')).toBeInTheDocument(); + expect(screen.getByTestId('no-radio-button')).toBeInTheDocument(); + expect(screen.getByRole('button', { name: 'Save my cookie settings' })).toBeInTheDocument(); + }); + + it('sets the yes radio button as checked when statistics consent is true', async () => { + mockNHSCookieConsent.getStatistics.mockReturnValue(true); + renderComponent(); + + await waitFor(() => { + expect(screen.getByTestId('yes-radio-button')).toBeChecked(); + }); + }); + + it('sets the no radio button as checked when statistics consent is false', async () => { + mockNHSCookieConsent.getStatistics.mockReturnValue(false); + renderComponent(); + + await waitFor(() => { + expect(screen.getByTestId('no-radio-button')).toBeChecked(); + }); + }); + + it('submits the form with yes consent and navigates to updated page', async () => { + mockNHSCookieConsent.getStatistics.mockReturnValue(false); + renderComponent(); + + const yesRadio = screen.getByTestId('yes-radio-button'); + await userEvent.click(yesRadio); + + const submitButton = screen.getByRole('button', { name: 'Save my cookie settings' }); + await userEvent.click(submitButton); + + await waitFor(() => { + expect(mockedAwsRum.disable).not.toHaveBeenCalled(); + expect(mockNHSCookieConsent.setStatistics).toHaveBeenCalledWith(true); + expect(mockNHSCookieConsent.setConsented).toHaveBeenCalledWith(true); + expect(mockNavigate).toHaveBeenCalledWith(routeChildren.COOKIES_POLICY_UPDATED); + }); + }); + + it('submits the form with no consent and navigates to updated page', async () => { + mockNHSCookieConsent.getStatistics.mockReturnValue(true); + renderComponent(); + + const noRadio = screen.getByTestId('no-radio-button'); + await userEvent.click(noRadio); + + const submitButton = screen.getByRole('button', { name: 'Save my cookie settings' }); + await userEvent.click(submitButton); + + await waitFor(() => { + expect(mockedAwsRum.disable).toHaveBeenCalled(); + expect(mockNHSCookieConsent.setStatistics).toHaveBeenCalledWith(false); + expect(mockNHSCookieConsent.setConsented).toHaveBeenCalledWith(true); + expect(mockNavigate).toHaveBeenCalledWith(routeChildren.COOKIES_POLICY_UPDATED); + }); + }); +}); \ No newline at end of file diff --git a/app/src/components/blocks/_cookiesPolicy/cookiesPolicy/CookiesPolicy.tsx b/app/src/components/blocks/_cookiesPolicy/cookiesPolicy/CookiesPolicy.tsx new file mode 100644 index 0000000000..c22c185f86 --- /dev/null +++ b/app/src/components/blocks/_cookiesPolicy/cookiesPolicy/CookiesPolicy.tsx @@ -0,0 +1,185 @@ +import { Button, Details, Fieldset, Radios, Table } from 'nhsuk-react-components'; +import useTitle from '../../../../helpers/hooks/useTitle'; +import { SubmitHandler, useForm } from 'react-hook-form'; +import { useNavigate } from 'react-router-dom'; +import { routeChildren } from '../../../../types/generic/routes'; +import { InputRef } from '../../../../types/generic/inputRef'; +import React, { useEffect } from 'react'; +import { useAnalyticsContext } from '../../../../providers/analyticsProvider/AnalyticsProvider'; + +enum Fields { + analyticsConsent = 'analyticsConsent', +} + +enum ConsentOptions { + YES = 'yes', + NO = 'no', +} + +type FormData = { + [Fields.analyticsConsent]: string; +}; + +const CookiePolicy = (): React.JSX.Element => { + const { register, handleSubmit, setValue } = useForm(); + const { ref: consentRef, ...radioProps } = register(Fields.analyticsConsent); + + const navigate = useNavigate(); + const [awsRum] = useAnalyticsContext(); + + const updatePreferences: SubmitHandler = async (formData) => { + const isConsentGiven = formData.analyticsConsent === ConsentOptions.YES; + window.NHSCookieConsent.setStatistics(isConsentGiven); + + // Disable RUM if user opts out of analytics cookies + if (!isConsentGiven && awsRum) { + awsRum.disable(); + sessionStorage.setItem('analytics-started', "no"); + } + + // this hides the banner so it won't appear on next visit + window.NHSCookieConsent.setConsented(true); + navigate(routeChildren.COOKIES_POLICY_UPDATED); + }; + + const pageTitle = 'Cookies policy'; + useTitle({ pageTitle }); + + useEffect(() => { + const consent = window.NHSCookieConsent.getStatistics() + ? ConsentOptions.YES + : ConsentOptions.NO; + setValue(Fields.analyticsConsent, consent); + }, []); + + return ( + <> +

{pageTitle}

+ +

What are cookies?

+

+ Cookies are files saved on your phone, tablet or computer when you visit a website. +

+

+ They store information about how you use the website, such as the pages you visit. +

+

+ Cookies are not viruses or computer programs. They are very small so do not take up + much space. +

+ +

How we use cookies

+

We only use cookies to:

+
    +
  • make our website work
  • +
  • + measure how you use our website, such as which links you click on (analytics + cookies), if you give us permission +
  • +
+

+ We do not use any other cookies, for example, cookies that remember your settings or + cookies that help with health campaigns. +

+

+ We sometimes use tools on other organisations' websites to collect data or to ask + for feedback. These tools set their own cookies. +

+ +

Cookies that make our website work

+

We use cookies to keep our website secure and fast.

+
+ List of cookies that make our website work + + + + + Cookie name + Purpose + Expiry + + + + + nhsuk-cookie-consent + + Remembers if you used our cookies consent banner + + + When you close the browser (if you do not use the + banner) or 1 year (if you use the banner) + + + +
+
+
+ +

Cookies that measure website use

+

+ We also like to use analytics cookies. These cookies store anonymous information + about how you use our website, such as which pages you visit or what you click on. +

+
+ List of cookies that measure website use + + + + + Cookie name + Expiry + + + + + cwr_s + + When you close the browser, or after 30 minutes of inactivity. + + + + cwr_u + + When you close the browser, or 30 days after you logged in. + + + +
+
+
+

+ We'll only use these cookies if you say it's OK. We'll use a cookie to save your + settings. +

+ +

Tell us if we can use analytics cookies

+
+
+ + + Use cookies to measure my website use + + + Do not use cookies to measure my website use + + +
+ +
+ + ); +}; + +export default CookiePolicy; diff --git a/app/src/components/blocks/_cookiesPolicy/cookiesPolicyUpdated/CookiesPolicyUpdatedStage.tsx b/app/src/components/blocks/_cookiesPolicy/cookiesPolicyUpdated/CookiesPolicyUpdatedStage.tsx new file mode 100644 index 0000000000..a0cd60cd42 --- /dev/null +++ b/app/src/components/blocks/_cookiesPolicy/cookiesPolicyUpdated/CookiesPolicyUpdatedStage.tsx @@ -0,0 +1,36 @@ +import useTitle from '../../../../helpers/hooks/useTitle'; +import { routes } from '../../../../types/generic/routes'; + +const CookiesPolicyUpdatedStage = () => { + const pageTitle = 'Your cookie settings have been saved'; + useTitle({ pageTitle }); + + return ( + <> +

{pageTitle}

+ +

We'll save your settings for a year.

+

We'll ask you if you're still OK with us using cookies when either:

+
    +
  • + it's been a year since you last saved your settings +
  • +
  • + we add any new cookies +
  • +
  • + we change the cookies we use +
  • +
+

+ You can also change your settings at any time using our{' '} + + cookies page + + . +

+ + ); +}; + +export default CookiesPolicyUpdatedStage; diff --git a/app/src/components/blocks/_documentUpload/documentUploadLloydGeorgePreview/DocumentUploadLloydGeorgePreview.test.tsx b/app/src/components/blocks/_documentUpload/documentUploadLloydGeorgePreview/DocumentUploadLloydGeorgePreview.test.tsx index e42913045e..aaa09ce6bd 100644 --- a/app/src/components/blocks/_documentUpload/documentUploadLloydGeorgePreview/DocumentUploadLloydGeorgePreview.test.tsx +++ b/app/src/components/blocks/_documentUpload/documentUploadLloydGeorgePreview/DocumentUploadLloydGeorgePreview.test.tsx @@ -15,6 +15,12 @@ vi.mock('../../../../helpers/utils/pdfMerger'); vi.mock('react-router-dom', () => ({ useNavigate: () => mockNavigate, })); +vi.mock('../../../../providers/analyticsProvider/AnalyticsProvider', () => ({ + useAnalyticsContext: vi.fn(() => ([ + null, + vi.fn(), + ])), +})); URL.createObjectURL = () => 'https://example.com'; diff --git a/app/src/components/blocks/_lloydGeorge/lloydGeorgeViewRecordStage/LloydGeorgeViewRecordStage.test.tsx b/app/src/components/blocks/_lloydGeorge/lloydGeorgeViewRecordStage/LloydGeorgeViewRecordStage.test.tsx index bbf8c0b4a3..5ceabc0003 100644 --- a/app/src/components/blocks/_lloydGeorge/lloydGeorgeViewRecordStage/LloydGeorgeViewRecordStage.test.tsx +++ b/app/src/components/blocks/_lloydGeorge/lloydGeorgeViewRecordStage/LloydGeorgeViewRecordStage.test.tsx @@ -34,6 +34,12 @@ vi.mock('../../../../helpers/hooks/useConfig'); vi.mock('../../../../helpers/hooks/useBaseAPIUrl'); vi.mock('../../../../helpers/hooks/useBaseAPIHeaders'); vi.mock('../../../../helpers/requests/getDocumentSearchResults'); +vi.mock('../../../../providers/analyticsProvider/AnalyticsProvider', () => ({ + useAnalyticsContext: vi.fn(() => ([ + null, + vi.fn(), + ])), +})); vi.mock('react-router-dom', async () => { const actual = await vi.importActual('react-router-dom'); diff --git a/app/src/components/blocks/_patientDocuments/documentView/DocumentView.test.tsx b/app/src/components/blocks/_patientDocuments/documentView/DocumentView.test.tsx index f89b88d45b..74c9e2d820 100644 --- a/app/src/components/blocks/_patientDocuments/documentView/DocumentView.test.tsx +++ b/app/src/components/blocks/_patientDocuments/documentView/DocumentView.test.tsx @@ -32,6 +32,12 @@ vi.mock('../../../../helpers/utils/documentType', async () => { getConfigForDocType: vi.fn(), }; }); +vi.mock('../../../../providers/analyticsProvider/AnalyticsProvider', () => ({ + useAnalyticsContext: vi.fn(() => ([ + null, + vi.fn(), + ])), +})); vi.mock('react-router-dom', async () => { const actual = await vi.importActual('react-router-dom'); return { diff --git a/app/src/components/generic/pdfViewer/PdfViewer.test.tsx b/app/src/components/generic/pdfViewer/PdfViewer.test.tsx index 40c7ea9d68..1fab7c2ec5 100644 --- a/app/src/components/generic/pdfViewer/PdfViewer.test.tsx +++ b/app/src/components/generic/pdfViewer/PdfViewer.test.tsx @@ -1,8 +1,24 @@ -import { render, screen } from '@testing-library/react'; +import { render, screen, act } from '@testing-library/react'; import PdfViewer from './PdfViewer'; -import { describe, expect, it } from 'vitest'; +import { describe, expect, it, vi, beforeEach, afterEach, Mock } from 'vitest'; +import { useAnalyticsContext } from '../../../providers/analyticsProvider/AnalyticsProvider'; + +const mockRecordEvent = vi.fn(); +const mockedUseAnalyticsContext = useAnalyticsContext as Mock; + +vi.mock('../../../providers/analyticsProvider/AnalyticsProvider'); describe('PdfViewer', () => { + beforeEach(() => { + vi.clearAllMocks(); + vi.useFakeTimers(); + vi.mocked(useAnalyticsContext).mockReturnValue([null, vi.fn()]); + }); + + afterEach(() => { + vi.useRealTimers(); + }); + it('renders an iframe element', () => { const fileUrl = 'https://test'; @@ -12,4 +28,76 @@ describe('PdfViewer', () => { expect(pdfjsViewer).toBeInTheDocument(); }); + + it('records custom event when print button is clicked and awsRum is available', async () => { + vi.mocked(useAnalyticsContext).mockReturnValue([ + { + recordEvent: mockRecordEvent, + } as any, + vi.fn(), + ]); + + const fileUrl = 'https://test'; + render(); + + const mockPrintButton = document.createElement('button'); + mockPrintButton.id = 'printButton'; + + const mockIframeDocument = { + getElementById: vi.fn().mockReturnValue(mockPrintButton), + }; + + const mockPdfViewerElement = document.getElementById('pdf-viewer'); + if (mockPdfViewerElement) { + (mockPdfViewerElement as any).iframe = { + contentWindow: { + document: mockIframeDocument, + }, + }; + } + + await act(async () => { + vi.advanceTimersByTime(200); + }); + + mockPrintButton.click(); + + expect(mockRecordEvent).toHaveBeenCalledWith('print_pdf_button_clicked', { + timestamp: expect.any(String), + }); + }); + + it('does not record event when print button is clicked but awsRum is null', async () => { + vi.mocked(useAnalyticsContext).mockReturnValue([ + null, + vi.fn(), + ]); + + const fileUrl = 'https://test'; + render(); + + const mockPrintButton = document.createElement('button'); + mockPrintButton.id = 'printButton'; + + const mockIframeDocument = { + getElementById: vi.fn().mockReturnValue(mockPrintButton), + }; + + const mockPdfViewerElement = document.getElementById('pdf-viewer'); + if (mockPdfViewerElement) { + (mockPdfViewerElement as any).iframe = { + contentWindow: { + document: mockIframeDocument, + }, + }; + } + + await act(async () => { + vi.advanceTimersByTime(200); + }); + + mockPrintButton.click(); + + expect(mockRecordEvent).not.toHaveBeenCalled(); + }); }); diff --git a/app/src/components/generic/pdfViewer/PdfViewer.tsx b/app/src/components/generic/pdfViewer/PdfViewer.tsx index f2a06cf6ba..3ef90bfbd8 100644 --- a/app/src/components/generic/pdfViewer/PdfViewer.tsx +++ b/app/src/components/generic/pdfViewer/PdfViewer.tsx @@ -1,3 +1,7 @@ +import { useEffect, useRef } from 'react'; +import PdfjsViewerElement from 'pdfjs-viewer-element'; +import { useAnalyticsContext } from '../../../providers/analyticsProvider/AnalyticsProvider'; + type Props = { fileUrl: string; customClasses?: string[]; @@ -5,8 +9,36 @@ type Props = { }; const PdfViewer = ({ fileUrl, customClasses, customStyleSheet }: Props): React.JSX.Element => { + const intervalRef = useRef(null); + const pdfViewerRef = useRef(null); + const [awsRum] = useAnalyticsContext(); + + useEffect(() => { + if (intervalRef.current) return; + + intervalRef.current = window.setInterval(() => { + if (pdfViewerRef.current) { + const printButton = pdfViewerRef.current.iframe?.contentWindow?.document?.getElementById("printButton"); + if (printButton) { + window.clearInterval(intervalRef.current!); + + printButton.addEventListener("click", sendPrintEvent.bind(this)); + } + } + }, 200); + }, []); + + const sendPrintEvent = (): void => { + if (awsRum) { + awsRum.recordEvent('print_pdf_button_clicked', { + timestamp: new Date().toISOString(), + }); + } + }; + return ( ({ + useAnalyticsContext: vi.fn(() => ([ + null, + vi.fn(), + ])), +})); vi.mock('axios'); vi.mock('react-router-dom', () => ({ useNavigate: (): typeof mockedUseNavigate => mockedUseNavigate, diff --git a/app/src/components/layout/Layout.test.tsx b/app/src/components/layout/Layout.test.tsx index d1d197e8b5..499c02e8b7 100644 --- a/app/src/components/layout/Layout.test.tsx +++ b/app/src/components/layout/Layout.test.tsx @@ -8,8 +8,22 @@ import { buildUserAuth } from '../../helpers/test/testBuilders'; import { runAxeTestForLayout } from '../../helpers/test/axeTestHelper'; import { beforeEach, describe, expect, it } from 'vitest'; +vi.mock('../../providers/analyticsProvider/AnalyticsProvider', () => { + return { + useAnalyticsContext: () => { + return [null, () => {}]; + }, + }; +}); + describe('Layout', () => { beforeEach(() => { + Object.defineProperty(window, 'NHSCookieConsent', { + writable: true, + value: { + getStatistics: () => true, + }, + }); window.sessionStorage.clear(); document.documentElement.scrollTo = vi.fn(); }); diff --git a/app/src/components/layout/Layout.tsx b/app/src/components/layout/Layout.tsx index 2008095012..96ce467d91 100644 --- a/app/src/components/layout/Layout.tsx +++ b/app/src/components/layout/Layout.tsx @@ -7,6 +7,7 @@ import { SkipLink } from 'nhsuk-react-components'; import { useLocation } from 'react-router-dom'; import { focusElement } from '../../helpers/utils/manageFocus'; import { useSessionContext } from '../../providers/sessionProvider/SessionProvider'; +import { useAnalyticsContext } from '../../providers/analyticsProvider/AnalyticsProvider'; type Props = { children: ReactNode; @@ -17,6 +18,7 @@ const Layout = ({ children }: Props): React.JSX.Element => { const mainRef = useRef(null); const location = useLocation(); const [session] = useSessionContext(); + const [awsRum, startAnalytics] = useAnalyticsContext(); // re-focus the layout on route change, so that skip link become the next focusable element useEffect(() => { @@ -28,8 +30,17 @@ const Layout = ({ children }: Props): React.JSX.Element => { }, [location]); useLayoutEffect(() => { - document.documentElement.scrollTo(0, 0); - }, [location.pathname]); + setTimeout(() => { + document.documentElement.scrollTo(0, 0); + }, 5); + + if (window && (!awsRum || sessionStorage.getItem('analytics-started') === "no")) { + if (window.NHSCookieConsent.getStatistics()) { + startAnalytics(); + } + } + + }, [location.pathname, awsRum, startAnalytics]); const focusMainContent = (e: MouseEvent): void => { /** diff --git a/app/src/components/layout/footer/Footer.test.tsx b/app/src/components/layout/footer/Footer.test.tsx index f1cce399d6..07607c93e3 100644 --- a/app/src/components/layout/footer/Footer.test.tsx +++ b/app/src/components/layout/footer/Footer.test.tsx @@ -1,6 +1,16 @@ import { render, screen } from '@testing-library/react'; import Footer from './Footer'; -import { describe, expect, it } from 'vitest'; +import { describe, expect, it, Mock } from 'vitest'; +import { routes } from '../../../types/generic/routes'; + +vi.mock('react-router-dom', () => { + const actual = vi.importActual('react-router-dom'); + return { + ...actual, + useNavigate: (): Mock => mockUseNavigate, + } +}); +const mockUseNavigate = vi.fn(); describe('Footer', () => { describe('Rendering', () => { @@ -17,4 +27,11 @@ describe('Footer', () => { expect(screen.getByTestId('help-and-guidance-link')).toBeInTheDocument(); }); }); + + it('should navigate to cookie policy on link click', () => { + render(