CINXE.COM

Cookies policy

<!DOCTYPE HTML> <html lang="en-CA" class="no-js"> <head> <meta charset="UTF-8"/> <meta name="template" content="global-store-en-ca-template"/> <link href="https://www.pearson.com/pcp-hed/css/pcp-hed.css" rel='stylesheet'/> <title>Cookies policy</title> <meta name="viewport" content="width=device-width, initial-scale=1"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="description" content="Cookies policy"/> <meta property="og:title" content="Cookies policy"/> <meta property="og:description" content="Cookies policy"/> <meta name="twitter:title" content="Cookies policy"/> <meta property="og:url" content="https://www.pearson.com/en-ca/legal-information/cookie-policy.html"/> <meta name="twitter:description" content="Cookies policy"/> <meta name="article:modified_time" content="2024-06-14T11:16:11.212Z"/> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/page/page-properties-dialog.min.ACSHASH1de7355ba14c780dbdf61ff69fb685cf.css" type="text/css"> <link rel="shortcut icon" media="(prefers-color-scheme: dark)" href="/conf/pearson/settings/wcm/templates/global-store-en-ca-template/favicon-on-dark.ico"/> <link rel="shortcut icon" media="(prefers-color-scheme: light)" href="/conf/pearson/settings/wcm/templates/global-store-en-ca-template/favicon-on-light.ico"/> <script src="/etc/clientlibs/platform/aem-core/libraries/jquery-3-6-0.min.ACSHASHf7f88c154f8dde28b5bcdd9e1c79f655.js"></script> <script src="/etc/clientlibs/platform/aem-core/libraries/jquery-ui-1-13-2.min.ACSHASH1e2047978946a1d271356d0b557a84a3.js"></script> <script src="/etc/clientlibs/platform/aem-core/libraries/picturefill.min.ACSHASHe22d1de6aa249e6152023448a4a570bf.js"></script> <script src="/etc/clientlibs/platform/aem-core/form-validator.min.ACSHASH7b3cd57f54d01d7bcdd068d43424f131.js"></script> <script src="/etc.clientlibs/clientlibs/granite/lodash/modern.min.ACSHASH33a4fd73add344eacab89d99c11dcf3a.js"></script> <script src="/etc.clientlibs/cq/personalization/clientlib/underscore.min.ACSHASHbb50e8989e1105edfefd521e5fc3662c.js"></script> <script src="/etc.clientlibs/clientlibs/granite/backbone.min.ACSHASHe590febe6539b40e39ec9c983d8e96c0.js"></script> <script src="/etc/clientlibs/platform/aem-core/libraries/template-settings.min.ACSHASH6e38b7e6a576e04396c34830c83f30fc.js"></script> <script src="/etc/clientlibs/platform/aem-core/components.min.ACSHASH5354bee8d264e371dc96ce368e69f55a.js"></script> <script src="/etc/clientlibs/platform/aem-core/libraries/bootstrap-4-3-1.min.ACSHASHcb8bf3d1be0523e7c0bd6ce9a1c7a388.js"></script> <script src="/etc/clientlibs/platform/aem-core/libraries/parsley-2-8.min.ACSHASH556fd9ab479352b3d4b9e80b17f0b476.js"></script> <script src="/etc/clientlibs/one-dot-com/one-dot-com/highered-reimagined.min.ACSHASH8484c9b42a7d840d13f47526d5f50435.js"></script> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/libraries/bootstrap-4-3-1.min.ACSHASHcf4d74070a73cdb86117b5ecea837a56.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/libraries/font-awesome-4-2.min.ACSHASHbd12c3d96f5473480f04fb430338d21c.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/libraries/parsley-2-8.min.ACSHASHca334e633e206e73cb76e8ce5f18875f.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/static-collection.min.ACSHASHd8d236ca379e8a2f4fda3e67ba9e1224.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/video-common.min.ACSHASHb41659e9aebfc61648ef1e6283e6e6ef.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/column-control.min.ACSHASH6371e8f53bc80147ef09e70201ed9df7.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/column-nav.min.ACSHASH72c9c50403bd963fcb6e0e49268c9504.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/youtube-video.min.ACSHASHb4f8a1709ea5e6bebb8f47c1a7a30078.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/modal-window-pop-up.min.ACSHASH9e8a7baff9560796c704601fa9097501.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/events/events-calendar.min.ACSHASH0887ef49815a1b7c07691cecf69b0b86.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/static-collection.min.ACSHASH4d4a2616c5ebe9372c4f8a686430979d.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/highered-reimagined.min.ACSHASHf91cea1c4b4db1498187a97173294de1.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/global-message.min.ACSHASHf9caedf14ceff1d7ebee18b5b70365b8.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/column-control-collapse.min.ACSHASHce2e9e8aa192f718db55e5af9287386c.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/hed-navigation/nav-footer.min.ACSHASH89f6f96afc9ac21d2559b3e9250643ec.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/hed-navigation/nav-aem-header.min.ACSHASHeeef99282da9bd62c9cde0b17b4e23b3.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/one-dot-com/one-dot-com/he-marketing-block.min.ACSHASH2665c417098669f6210a955d67dcdb18.css" type="text/css"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/rte-styles-for-ordered-list.min.ACSHASH5f44c4b223bc4ea49340790d743bacd4.css" type="text/css"> <script id="digital-data-layer" type="text/javascript"> dataLayer = [{ "version" : "1.0", "site" : { "siteId" : "pearson.com | CA", "siteLabel" : "global", "domain" : "pearson.com", "siteSection" : "legal-information", "language" : "en" }, "pageInfo" : { "pageTitle" : "Cookies policy", "pageURL" : "/en-ca/legal-information/cookie-policy.html", "pageTemplate" : "/conf/pearson/settings/wcm/templates/global-store-en-ca-template", "dateCreated" : "2024-06-14T11:16:28.173Z", "lastUpdated" : "2024-06-14T11:16:11.212Z", "pageCategory" : "Static", "isBypassEnabled" : false, "loginPageLink" : "/store/login", "breadcrumb" : [ "Home (CA)", "Legal information", "Cookies policy" ], "pageLayout" : "/conf/pearson/settings/wcm/templates/initial-content-offering-page-editable-template", "redirectIfAuthenticatedByIES" : false } }]; </script> <!-- NR Script Start for www.pearson.com --> <script> window.NREUM || (NREUM = {}); NREUM.init = { distributed_tracing: { enabled: true }, privacy: { cookies_enabled: true }, ajax: { deny_list: ['bam.nr-data.net'] }, }; NREUM.loader_config = { accountID: '1765996', trustKey: '691807', agentID: '1120248489', licenseKey: '068b3faa02', applicationID: '1120248489', }; NREUM.info = { beacon: 'bam.nr-data.net', errorBeacon: 'bam.nr-data.net', licenseKey: '068b3faa02', applicationID: '1120248489', sa: 1, }; /*! For license information please see nr-loader-spa-1.246.1.min.js.LICENSE.txt */ (() => { 'use strict'; var e, t, r = { 234: (e, t, r) => { r.d(t, { P_: () => g, Mt: () => v, C5: () => s, DL: () => A, OP: () => D, lF: () => N, Yu: () => x, Dg: () => m, CX: () => c, GE: () => w, sU: () => j, }); var n = r(8632), i = r(9567); const o = { beacon: n.ce.beacon, errorBeacon: n.ce.errorBeacon, licenseKey: void 0, applicationID: void 0, sa: void 0, queueTime: void 0, applicationTime: void 0, ttGuid: void 0, user: void 0, account: void 0, product: void 0, extra: void 0, jsAttributes: {}, userAttributes: void 0, atts: void 0, transactionName: void 0, tNamePlain: void 0, }, a = {}; function s(e) { if (!e) throw new Error('All info objects require an agent identifier!'); if (!a[e]) throw new Error('Info for '.concat(e, ' was never set')); return a[e]; } function c(e, t) { if (!e) throw new Error('All info objects require an agent identifier!'); (a[e] = (0, i.D)(t, o)), (0, n.Qy)(e, a[e], 'info'); } const u = e => { if (!e || 'string' != typeof e) return !1; try { document.createDocumentFragment().querySelector(e); } catch { return !1; } return !0; }; var d = r(7056), l = r(50); const f = () => { const e = { mask_selector: '*', block_selector: '[data-nr-block]', mask_input_options: { color: !1, date: !1, 'datetime-local': !1, email: !1, month: !1, number: !1, range: !1, search: !1, tel: !1, text: !1, time: !1, url: !1, week: !1, textarea: !1, select: !1, password: !0, }, }; return { feature_flags: [], proxy: { assets: void 0, beacon: void 0 }, privacy: { cookies_enabled: !0 }, ajax: { deny_list: void 0, block_internal: !0, enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, distributed_tracing: { enabled: void 0, exclude_newrelic_header: void 0, cors_use_newrelic_header: void 0, cors_use_tracecontext_headers: void 0, allowed_origins: void 0, }, session: { domain: void 0, expiresMs: d.oD, inactiveMs: d.Hb }, ssl: void 0, obfuscate: void 0, jserrors: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, metrics: { enabled: !0, autoStart: !0 }, page_action: { enabled: !0, harvestTimeSeconds: 30, autoStart: !0 }, page_view_event: { enabled: !0, autoStart: !0 }, page_view_timing: { enabled: !0, harvestTimeSeconds: 30, long_task: !1, autoStart: !0 }, session_trace: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, harvest: { tooManyRequestsDelay: 60 }, session_replay: { autoStart: !0, enabled: !1, harvestTimeSeconds: 60, sampling_rate: 50, error_sampling_rate: 50, collect_fonts: !1, inline_images: !1, inline_stylesheet: !0, mask_all_inputs: !0, get mask_text_selector() { return e.mask_selector; }, set mask_text_selector(t) { u(t) ? (e.mask_selector = t + ',[data-nr-mask]') : null === t ? (e.mask_selector = t) : (0, l.Z)('An invalid session_replay.mask_selector was provided and will not be used', t); }, get block_class() { return 'nr-block'; }, get ignore_class() { return 'nr-ignore'; }, get mask_text_class() { return 'nr-mask'; }, get block_selector() { return e.block_selector; }, set block_selector(t) { u(t) ? (e.block_selector += ','.concat(t)) : '' !== t && (0, l.Z)('An invalid session_replay.block_selector was provided and will not be used', t); }, get mask_input_options() { return e.mask_input_options; }, set mask_input_options(t) { t && 'object' == typeof t ? (e.mask_input_options = { ...t, password: !0 }) : (0, l.Z)('An invalid session_replay.mask_input_option was provided and will not be used', t); }, }, spa: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, }; }, h = {}, p = 'All configuration objects require an agent identifier!'; function g(e) { if (!e) throw new Error(p); if (!h[e]) throw new Error('Configuration for '.concat(e, ' was never set')); return h[e]; } function m(e, t) { if (!e) throw new Error(p); (h[e] = (0, i.D)(t, f())), (0, n.Qy)(e, h[e], 'config'); } function v(e, t) { if (!e) throw new Error(p); var r = g(e); if (r) { for (var n = t.split('.'), i = 0; i < n.length - 1; i++) if ('object' != typeof (r = r[n[i]])) return; r = r[n[n.length - 1]]; } return r; } const b = { accountID: void 0, trustKey: void 0, agentID: void 0, licenseKey: void 0, applicationID: void 0, xpid: void 0, }, y = {}; function A(e) { if (!e) throw new Error('All loader-config objects require an agent identifier!'); if (!y[e]) throw new Error('LoaderConfig for '.concat(e, ' was never set')); return y[e]; } function w(e, t) { if (!e) throw new Error('All loader-config objects require an agent identifier!'); (y[e] = (0, i.D)(t, b)), (0, n.Qy)(e, y[e], 'loader_config'); } const x = (0, n.mF)().o; var E = r(385), _ = r(6818); const T = { buildEnv: _.Re, customTransaction: void 0, disabled: !1, distMethod: _.gF, isolatedBacklog: !1, loaderType: void 0, maxBytes: 3e4, offset: Math.floor( E._A?.performance?.timeOrigin || E._A?.performance?.timing?.navigationStart || Date.now(), ), onerror: void 0, origin: '' + E._A.location, ptid: void 0, releaseIds: {}, session: void 0, xhrWrappable: 'function' == typeof E._A.XMLHttpRequest?.prototype?.addEventListener, version: _.q4, denyList: void 0, }, S = {}; function D(e) { if (!e) throw new Error('All runtime objects require an agent identifier!'); if (!S[e]) throw new Error('Runtime for '.concat(e, ' was never set')); return S[e]; } function j(e, t) { if (!e) throw new Error('All runtime objects require an agent identifier!'); (S[e] = (0, i.D)(t, T)), (0, n.Qy)(e, S[e], 'runtime'); } function N(e) { return (function (e) { try { const t = s(e); return !!t.licenseKey && !!t.errorBeacon && !!t.applicationID; } catch (e) { return !1; } })(e); } }, 9567: (e, t, r) => { r.d(t, { D: () => i }); var n = r(50); function i(e, t) { try { if (!e || 'object' != typeof e) return (0, n.Z)('Setting a Configurable requires an object as input'); if (!t || 'object' != typeof t) return (0, n.Z)('Setting a Configurable requires a model to set its initial properties'); const r = Object.create(Object.getPrototypeOf(t), Object.getOwnPropertyDescriptors(t)), o = 0 === Object.keys(r).length ? e : r; for (let a in o) if (void 0 !== e[a]) try { Array.isArray(e[a]) && Array.isArray(t[a]) ? (r[a] = Array.from(new Set([...e[a], ...t[a]]))) : 'object' == typeof e[a] && 'object' == typeof t[a] ? (r[a] = i(e[a], t[a])) : (r[a] = e[a]); } catch (e) { (0, n.Z)('An error occurred while setting a property of a Configurable', e); } return r; } catch (e) { (0, n.Z)('An error occured while setting a Configurable', e); } } }, 6818: (e, t, r) => { r.d(t, { Re: () => i, gF: () => o, lF: () => a, q4: () => n }); const n = '1.246.1', i = 'PROD', o = 'CDN', a = '2.0.0-alpha.11'; }, 385: (e, t, r) => { r.d(t, { FN: () => s, IF: () => d, Nk: () => f, Tt: () => c, _A: () => o, cv: () => h, iS: () => a, il: () => n, ux: () => u, v6: () => i, w1: () => l, }); const n = 'undefined' != typeof window && !!window.document, i = 'undefined' != typeof WorkerGlobalScope && (('undefined' != typeof self && self instanceof WorkerGlobalScope && self.navigator instanceof WorkerNavigator) || ('undefined' != typeof globalThis && globalThis instanceof WorkerGlobalScope && globalThis.navigator instanceof WorkerNavigator)), o = n ? window : 'undefined' != typeof WorkerGlobalScope && (('undefined' != typeof self && self instanceof WorkerGlobalScope && self) || ('undefined' != typeof globalThis && globalThis instanceof WorkerGlobalScope && globalThis)), a = Boolean('hidden' === o?.document?.visibilityState), s = '' + o?.location, c = /iPad|iPhone|iPod/.test(o.navigator?.userAgent), u = c && 'undefined' == typeof SharedWorker, d = (() => { const e = o.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/); return Array.isArray(e) && e.length >= 2 ? +e[1] : 0; })(), l = Boolean(n && window.document.documentMode), f = !!o.navigator?.sendBeacon, h = Math.floor(o?.performance?.timeOrigin || o?.performance?.timing?.navigationStart || Date.now()); }, 1117: (e, t, r) => { r.d(t, { w: () => o }); var n = r(50); const i = { agentIdentifier: '', ee: void 0 }; class o { constructor(e) { try { if ('object' != typeof e) return (0, n.Z)('shared context requires an object as input'); (this.sharedContext = {}), Object.assign(this.sharedContext, i), Object.entries(e).forEach(e => { let [t, r] = e; Object.keys(i).includes(t) && (this.sharedContext[t] = r); }); } catch (e) { (0, n.Z)('An error occured while setting SharedContext', e); } } } }, 8e3: (e, t, r) => { r.d(t, { L: () => d, R: () => c }); var n = r(8325), i = r(1284), o = r(4322), a = r(3325); const s = {}; function c(e, t) { const r = { staged: !1, priority: a.p[t] || 0 }; u(e), s[e].get(t) || s[e].set(t, r); } function u(e) { e && (s[e] || (s[e] = new Map())); } function d() { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : '', t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 'feature'; if ((u(e), !e || !s[e].get(t))) return a(t); s[e].get(t).staged = !0; const r = [...s[e]]; function a(t) { const r = e ? n.ee.get(e) : n.ee, a = o.X.handlers; if (r.backlog && a) { var s = r.backlog[t], c = a[t]; if (c) { for (var u = 0; s && u < s.length; ++u) l(s[u], c); (0, i.D)(c, function (e, t) { (0, i.D)(t, function (t, r) { r[0].on(e, r[1]); }); }); } delete a[t], (r.backlog[t] = null), r.emit('drain-' + t, []); } } r.every(e => { let [t, r] = e; return r.staged; }) && (r.sort((e, t) => e[1].priority - t[1].priority), r.forEach(t => { let [r] = t; s[e].delete(r), a(r); })); } function l(e, t) { var r = e[1]; (0, i.D)(t[r], function (t, r) { var n = e[0]; if (r[0] === n) { var i = r[1], o = e[3], a = e[2]; i.apply(o, a); } }); } }, 8325: (e, t, r) => { r.d(t, { A: () => c, ee: () => u }); var n = r(8632), i = r(2210), o = r(234); class a { constructor(e) { this.contextId = e; } } var s = r(3117); const c = 'nr@context:'.concat(s.a), u = (function e(t, r) { var n = {}, s = {}, d = {}, f = !1; try { f = 16 === r.length && (0, o.OP)(r).isolatedBacklog; } catch (e) {} var h = { on: g, addEventListener: g, removeEventListener: function (e, t) { var r = n[e]; if (!r) return; for (var i = 0; i < r.length; i++) r[i] === t && r.splice(i, 1); }, emit: function (e, r, n, i, o) { !1 !== o && (o = !0); if (u.aborted && !i) return; t && o && t.emit(e, r, n); for (var a = p(n), c = m(e), d = c.length, l = 0; l < d; l++) c[l].apply(a, r); var f = b()[s[e]]; f && f.push([h, e, r, a]); return a; }, get: v, listeners: m, context: p, buffer: function (e, t) { const r = b(); if (((t = t || 'feature'), h.aborted)) return; Object.entries(e || {}).forEach(e => { let [n, i] = e; (s[i] = t), t in r || (r[t] = []); }); }, abort: l, aborted: !1, isBuffering: function (e) { return !!b()[s[e]]; }, debugId: r, backlog: f ? {} : t && 'object' == typeof t.backlog ? t.backlog : {}, }; return h; function p(e) { return e && e instanceof a ? e : e ? (0, i.X)(e, c, () => new a(c)) : new a(c); } function g(e, t) { n[e] = m(e).concat(t); } function m(e) { return n[e] || []; } function v(t) { return (d[t] = d[t] || e(h, t)); } function b() { return h.backlog; } })(void 0, 'globalEE'), d = (0, n.fP)(); function l() { (u.aborted = !0), (u.backlog = {}); } d.ee || (d.ee = u); }, 5546: (e, t, r) => { r.d(t, { E: () => n, p: () => i }); var n = r(8325).ee.get('handle'); function i(e, t, r, i, o) { o ? (o.buffer([e], i), o.emit(e, t, r)) : (n.buffer([e], i), n.emit(e, t, r)); } }, 4322: (e, t, r) => { r.d(t, { X: () => o }); var n = r(5546); o.on = a; var i = (o.handlers = {}); function o(e, t, r, o) { a(o || n.E, i, e, t, r); } function a(e, t, r, i, o) { o || (o = 'feature'), e || (e = n.E); var a = (t[o] = t[o] || {}); (a[r] = a[r] || []).push([e, i]); } }, 3239: (e, t, r) => { r.d(t, { bP: () => s, iz: () => c, m$: () => a }); var n = r(385); let i = !1, o = !1; try { const e = { get passive() { return (i = !0), !1; }, get signal() { return (o = !0), !1; }, }; n._A.addEventListener('test', null, e), n._A.removeEventListener('test', null, e); } catch (e) {} function a(e, t) { return i || o ? { capture: !!e, passive: i, signal: t } : !!e; } function s(e, t) { let r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], n = arguments.length > 3 ? arguments[3] : void 0; window.addEventListener(e, t, a(r, n)); } function c(e, t) { let r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], n = arguments.length > 3 ? arguments[3] : void 0; document.addEventListener(e, t, a(r, n)); } }, 3117: (e, t, r) => { r.d(t, { a: () => n }); const n = (0, r(4402).Rl)(); }, 4402: (e, t, r) => { r.d(t, { Ht: () => u, M: () => c, Rl: () => a, ky: () => s }); var n = r(385); const i = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'; function o(e, t) { return e ? 15 & e[t] : (16 * Math.random()) | 0; } function a() { const e = n._A?.crypto || n._A?.msCrypto; let t, r = 0; return ( e && e.getRandomValues && (t = e.getRandomValues(new Uint8Array(31))), i .split('') .map(e => ('x' === e ? o(t, ++r).toString(16) : 'y' === e ? ((3 & o()) | 8).toString(16) : e)) .join('') ); } function s(e) { const t = n._A?.crypto || n._A?.msCrypto; let r, i = 0; t && t.getRandomValues && (r = t.getRandomValues(new Uint8Array(31))); const a = []; for (var s = 0; s < e; s++) a.push(o(r, ++i).toString(16)); return a.join(''); } function c() { return s(16); } function u() { return s(32); } }, 7056: (e, t, r) => { r.d(t, { Bq: () => n, Hb: () => o, oD: () => i }); const n = 'NRBA', i = 144e5, o = 18e5; }, 7894: (e, t, r) => { function n() { return Math.round(performance.now()); } r.d(t, { z: () => n }); }, 7243: (e, t, r) => { r.d(t, { e: () => i }); var n = r(385); function i(e) { if (0 === (e || '').indexOf('data:')) return { protocol: 'data' }; try { const t = new URL(e, location.href), r = { port: t.port, hostname: t.hostname, pathname: t.pathname, search: t.search, protocol: t.protocol.slice(0, t.protocol.indexOf(':')), sameOrigin: t.protocol === n._A?.location?.protocol && t.host === n._A?.location?.host, }; return ( (r.port && '' !== r.port) || ('http:' === t.protocol && (r.port = '80'), 'https:' === t.protocol && (r.port = '443')), r.pathname && '' !== r.pathname ? r.pathname.startsWith('/') || (r.pathname = '/'.concat(r.pathname)) : (r.pathname = '/'), r ); } catch (e) { return {}; } } }, 50: (e, t, r) => { function n(e, t) { 'function' == typeof console.warn && (console.warn('New Relic: '.concat(e)), t && console.warn(t)); } r.d(t, { Z: () => n }); }, 2587: (e, t, r) => { r.d(t, { N: () => c, T: () => u }); var n = r(8325), i = r(5546), o = r(3325); const a = { stn: [o.D.sessionTrace], err: [o.D.jserrors, o.D.metrics], ins: [o.D.pageAction], spa: [o.D.spa], sr: [o.D.sessionReplay, o.D.sessionTrace], }, s = new Set(); function c(e, t) { const r = n.ee.get(t); e && 'object' == typeof e && (s.has(t) || Object.entries(e).forEach(e => { let [t, n] = e; a[t] ? a[t].forEach(e => { n ? (0, i.p)('feat-' + t, [], void 0, e, r) : (0, i.p)('block-' + t, [], void 0, e, r), (0, i.p)('rumresp-' + t, [Boolean(n)], void 0, e, r); }) : n && (0, i.p)('feat-' + t, [], void 0, void 0, r), (u[t] = Boolean(n)); }), Object.keys(a).forEach(e => { void 0 === u[e] && (a[e]?.forEach(t => (0, i.p)('rumresp-' + e, [!1], void 0, t, r)), (u[e] = !1)); }), s.add(t)); } const u = {}; }, 2210: (e, t, r) => { r.d(t, { X: () => i }); var n = Object.prototype.hasOwnProperty; function i(e, t, r) { if (n.call(e, t)) return e[t]; var i = r(); if (Object.defineProperty && Object.keys) try { return Object.defineProperty(e, t, { value: i, writable: !0, enumerable: !1 }), i; } catch (e) {} return (e[t] = i), i; } }, 1284: (e, t, r) => { r.d(t, { D: () => n }); const n = (e, t) => Object.entries(e || {}).map(e => { let [r, n] = e; return t(r, n); }); }, 4351: (e, t, r) => { r.d(t, { P: () => o }); var n = r(8325); const i = () => { const e = new WeakSet(); return (t, r) => { if ('object' == typeof r && null !== r) { if (e.has(r)) return; e.add(r); } return r; }; }; function o(e) { try { return JSON.stringify(e, i()); } catch (e) { try { n.ee.emit('internal-error', [e]); } catch (e) {} } } }, 3960: (e, t, r) => { r.d(t, { K: () => a, b: () => o }); var n = r(3239); function i() { return 'undefined' == typeof document || 'complete' === document.readyState; } function o(e, t) { if (i()) return e(); (0, n.bP)('load', e, t); } function a(e) { if (i()) return e(); (0, n.iz)('DOMContentLoaded', e); } }, 8632: (e, t, r) => { r.d(t, { EZ: () => u, Qy: () => c, ce: () => o, fP: () => a, gG: () => d, mF: () => s }); var n = r(7894), i = r(385); const o = { beacon: 'bam.nr-data.net', errorBeacon: 'bam.nr-data.net' }; function a() { return i._A.NREUM || (i._A.NREUM = {}), void 0 === i._A.newrelic && (i._A.newrelic = i._A.NREUM), i._A.NREUM; } function s() { let e = a(); return ( e.o || (e.o = { ST: i._A.setTimeout, SI: i._A.setImmediate, CT: i._A.clearTimeout, XHR: i._A.XMLHttpRequest, REQ: i._A.Request, EV: i._A.Event, PR: i._A.Promise, MO: i._A.MutationObserver, FETCH: i._A.fetch, }), e ); } function c(e, t, r) { let i = a(); const o = i.initializedAgents || {}, s = o[e] || {}; return ( Object.keys(s).length || (s.initializedAt = { ms: (0, n.z)(), date: new Date() }), (i.initializedAgents = { ...o, [e]: { ...s, [r]: t } }), i ); } function u(e, t) { a()[e] = t; } function d() { return ( (function () { let e = a(); const t = e.info || {}; e.info = { beacon: o.beacon, errorBeacon: o.errorBeacon, ...t }; })(), (function () { let e = a(); const t = e.init || {}; e.init = { ...t }; })(), s(), (function () { let e = a(); const t = e.loader_config || {}; e.loader_config = { ...t }; })(), a() ); } }, 7956: (e, t, r) => { r.d(t, { N: () => i }); var n = r(3239); function i(e) { let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], r = arguments.length > 2 ? arguments[2] : void 0, i = arguments.length > 3 ? arguments[3] : void 0; (0, n.iz)( 'visibilitychange', function () { if (t) return void ('hidden' === document.visibilityState && e()); e(document.visibilityState); }, r, i, ); } }, 1214: (e, t, r) => { r.d(t, { em: () => b, u5: () => D, QU: () => C, _L: () => I, Gm: () => H, Lg: () => L, BV: () => G, Kf: () => K, }); var n = r(8325), i = r(3117); const o = 'nr@original:'.concat(i.a); var a = Object.prototype.hasOwnProperty, s = !1; function c(e, t) { return ( e || (e = n.ee), (r.inPlace = function (e, t, n, i, o) { n || (n = ''); const a = '-' === n.charAt(0); for (let s = 0; s < t.length; s++) { const c = t[s], u = e[c]; d(u) || (e[c] = r(u, a ? c + n : n, i, c, o)); } }), (r.flag = o), r ); function r(t, r, n, s, c) { return d(t) ? t : (r || (r = ''), (nrWrapper[o] = t), (function (e, t, r) { if (Object.defineProperty && Object.keys) try { return ( Object.keys(e).forEach(function (r) { Object.defineProperty(t, r, { get: function () { return e[r]; }, set: function (t) { return (e[r] = t), t; }, }); }), t ); } catch (e) { u([e], r); } for (var n in e) a.call(e, n) && (t[n] = e[n]); })(t, nrWrapper, e), nrWrapper); function nrWrapper() { var o, a, d, l; try { (a = this), (o = [...arguments]), (d = 'function' == typeof n ? n(o, a) : n || {}); } catch (t) { u([t, '', [o, a, s], d], e); } i(r + 'start', [o, a, s], d, c); try { return (l = t.apply(a, o)); } catch (e) { throw (i(r + 'err', [o, a, e], d, c), e); } finally { i(r + 'end', [o, a, l], d, c); } } } function i(r, n, i, o) { if (!s || t) { var a = s; s = !0; try { e.emit(r, n, i, t, o); } catch (t) { u([t, r, n, i], e); } s = a; } } } function u(e, t) { t || (t = n.ee); try { t.emit('internal-error', e); } catch (e) {} } function d(e) { return !(e && 'function' == typeof e && e.apply && !e[o]); } var l = r(2210), f = r(385); const h = {}, p = f._A.XMLHttpRequest, g = 'addEventListener', m = 'removeEventListener', v = 'nr@wrapped:'.concat(n.A); function b(e) { var t = (function (e) { return (e || n.ee).get('events'); })(e); if (h[t.debugId]++) return t; h[t.debugId] = 1; var r = c(t, !0); function i(e) { r.inPlace(e, [g, m], '-', o); } function o(e, t) { return e[1]; } return ( 'getPrototypeOf' in Object && (f.il && y(document, i), y(f._A, i), y(p.prototype, i)), t.on(g + '-start', function (e, t) { var n = e[1]; if (null !== n && ('function' == typeof n || 'object' == typeof n)) { var i = (0, l.X)(n, v, function () { var e = { object: function () { if ('function' != typeof n.handleEvent) return; return n.handleEvent.apply(n, arguments); }, function: n, }[typeof n]; return e ? r(e, 'fn-', null, e.name || 'anonymous') : n; }); this.wrapped = e[1] = i; } }), t.on(m + '-start', function (e) { e[1] = this.wrapped || e[1]; }), t ); } function y(e, t) { let r = e; for (; 'object' == typeof r && !Object.prototype.hasOwnProperty.call(r, g); ) r = Object.getPrototypeOf(r); for (var n = arguments.length, i = new Array(n > 2 ? n - 2 : 0), o = 2; o < n; o++) i[o - 2] = arguments[o]; r && t(r, ...i); } var A = 'fetch-', w = A + 'body-', x = ['arrayBuffer', 'blob', 'json', 'text', 'formData'], E = f._A.Request, _ = f._A.Response, T = 'prototype'; const S = {}; function D(e) { const t = (function (e) { return (e || n.ee).get('fetch'); })(e); if (!(E && _ && f._A.fetch)) return t; if (S[t.debugId]++) return t; function r(e, r, i) { var o = e[r]; 'function' == typeof o && (e[r] = function () { var e, r = [...arguments], a = {}; t.emit(i + 'before-start', [r], a), a[n.A] && a[n.A].dt && (e = a[n.A].dt); var s = o.apply(this, r); return ( t.emit(i + 'start', [r, e], s), s.then( function (e) { return t.emit(i + 'end', [null, e], s), e; }, function (e) { throw (t.emit(i + 'end', [e], s), e); }, ) ); }); } return ( (S[t.debugId] = 1), x.forEach(e => { r(E[T], e, w), r(_[T], e, w); }), r(f._A, 'fetch', A), t.on(A + 'end', function (e, r) { var n = this; if (r) { var i = r.headers.get('content-length'); null !== i && (n.rxSize = i), t.emit(A + 'done', [null, r], n); } else t.emit(A + 'done', [e], n); }), t ); } const j = {}, N = ['pushState', 'replaceState']; function C(e) { const t = (function (e) { return (e || n.ee).get('history'); })(e); return !f.il || j[t.debugId]++ || ((j[t.debugId] = 1), c(t).inPlace(window.history, N, '-')), t; } var O = r(3239); const P = {}, R = ['appendChild', 'insertBefore', 'replaceChild']; function I(e) { const t = (function (e) { return (e || n.ee).get('jsonp'); })(e); if (!f.il || P[t.debugId]) return t; P[t.debugId] = !0; var r = c(t), i = /[?&](?:callback|cb)=([^&#]+)/, o = /(.*)\.([^.]+)/, a = /^(\w+)(\.|$)(.*)$/; function s(e, t) { if (!e) return t; const r = e.match(a), n = r[1]; return s(r[3], t[n]); } return ( r.inPlace(Node.prototype, R, 'dom-'), t.on('dom-start', function (e) { !(function (e) { if (!e || 'string' != typeof e.nodeName || 'script' !== e.nodeName.toLowerCase()) return; if ('function' != typeof e.addEventListener) return; var n = ((a = e.src), (c = a.match(i)), c ? c[1] : null); var a, c; if (!n) return; var u = (function (e) { var t = e.match(o); if (t && t.length >= 3) return { key: t[2], parent: s(t[1], window) }; return { key: e, parent: window }; })(n); if ('function' != typeof u.parent[u.key]) return; var d = {}; function l() { t.emit('jsonp-end', [], d), e.removeEventListener('load', l, (0, O.m$)(!1)), e.removeEventListener('error', f, (0, O.m$)(!1)); } function f() { t.emit('jsonp-error', [], d), t.emit('jsonp-end', [], d), e.removeEventListener('load', l, (0, O.m$)(!1)), e.removeEventListener('error', f, (0, O.m$)(!1)); } r.inPlace(u.parent, [u.key], 'cb-', d), e.addEventListener('load', l, (0, O.m$)(!1)), e.addEventListener('error', f, (0, O.m$)(!1)), t.emit('new-jsonp', [e.src], d); })(e[0]); }), t ); } const k = {}; function H(e) { const t = (function (e) { return (e || n.ee).get('mutation'); })(e); if (!f.il || k[t.debugId]) return t; k[t.debugId] = !0; var r = c(t), i = f._A.MutationObserver; return ( i && ((window.MutationObserver = function (e) { return this instanceof i ? new i(r(e, 'fn-')) : i.apply(this, arguments); }), (MutationObserver.prototype = i.prototype)), t ); } const z = {}; function L(e) { const t = (function (e) { return (e || n.ee).get('promise'); })(e); if (z[t.debugId]) return t; z[t.debugId] = !0; var r = t.context, i = c(t), a = f._A.Promise; return ( a && (function () { function e(r) { var n = t.context(), o = i(r, 'executor-', n, null, !1); const s = Reflect.construct(a, [o], e); return ( (t.context(s).getCtx = function () { return n; }), s ); } (f._A.Promise = e), Object.defineProperty(e, 'name', { value: 'Promise' }), (e.toString = function () { return a.toString(); }), Object.setPrototypeOf(e, a), ['all', 'race'].forEach(function (r) { const n = a[r]; e[r] = function (e) { let i = !1; [...(e || [])].forEach(e => { this.resolve(e).then(a('all' === r), a(!1)); }); const o = n.apply(this, arguments); return o; function a(e) { return function () { t.emit('propagate', [null, !i], o, !1, !1), (i = i || !e); }; } }; }), ['resolve', 'reject'].forEach(function (r) { const n = a[r]; e[r] = function (e) { const r = n.apply(this, arguments); return e !== r && t.emit('propagate', [e, !0], r, !1, !1), r; }; }), (e.prototype = a.prototype); const n = a.prototype.then; (a.prototype.then = function () { var e = this, o = r(e); o.promise = e; for (var a = arguments.length, s = new Array(a), c = 0; c < a; c++) s[c] = arguments[c]; (s[0] = i(s[0], 'cb-', o, null, !1)), (s[1] = i(s[1], 'cb-', o, null, !1)); const u = n.apply(this, s); return (o.nextPromise = u), t.emit('propagate', [e, !0], u, !1, !1), u; }), (a.prototype.then[o] = n), t.on('executor-start', function (e) { (e[0] = i(e[0], 'resolve-', this, null, !1)), (e[1] = i(e[1], 'resolve-', this, null, !1)); }), t.on('executor-err', function (e, t, r) { e[1](r); }), t.on('cb-end', function (e, r, n) { t.emit('propagate', [n, !0], this.nextPromise, !1, !1); }), t.on('propagate', function (e, r, n) { (this.getCtx && !r) || (this.getCtx = function () { if (e instanceof Promise) var r = t.context(e); return r && r.getCtx ? r.getCtx() : this; }); }); })(), t ); } const M = {}, F = 'setTimeout', B = 'setInterval', U = 'clearTimeout', Z = '-start', V = '-', q = [F, 'setImmediate', B, U, 'clearImmediate']; function G(e) { const t = (function (e) { return (e || n.ee).get('timer'); })(e); if (M[t.debugId]++) return t; M[t.debugId] = 1; var r = c(t); return ( r.inPlace(f._A, q.slice(0, 2), F + V), r.inPlace(f._A, q.slice(2, 3), B + V), r.inPlace(f._A, q.slice(3), U + V), t.on(B + Z, function (e, t, n) { e[0] = r(e[0], 'fn-', null, n); }), t.on(F + Z, function (e, t, n) { (this.method = n), (this.timerDuration = isNaN(e[1]) ? 0 : +e[1]), (e[0] = r(e[0], 'fn-', this, n)); }), t ); } var W = r(50); const X = {}, Q = ['open', 'send']; function K(e) { var t = e || n.ee; const r = (function (e) { return (e || n.ee).get('xhr'); })(t); if (X[r.debugId]++) return r; (X[r.debugId] = 1), b(t); var i = c(r), o = f._A.XMLHttpRequest, a = f._A.MutationObserver, s = f._A.Promise, u = f._A.setInterval, d = 'readystatechange', l = ['onload', 'onerror', 'onabort', 'onloadstart', 'onloadend', 'onprogress', 'ontimeout'], h = [], p = (f._A.XMLHttpRequest = function (e) { const t = new o(e), n = r.context(t); try { r.emit('new-xhr', [t], n), t.addEventListener( d, ((a = n), function () { var e = this; e.readyState > 3 && !a.resolved && ((a.resolved = !0), r.emit('xhr-resolved', [], e)), i.inPlace(e, l, 'fn-', w); }), (0, O.m$)(!1), ); } catch (e) { (0, W.Z)('An error occurred while intercepting XHR', e); try { r.emit('internal-error', [e]); } catch (e) {} } var a; return t; }); function g(e, t) { i.inPlace(t, ['onreadystatechange'], 'fn-', w); } if ( ((function (e, t) { for (var r in e) t[r] = e[r]; })(o, p), (p.prototype = o.prototype), i.inPlace(p.prototype, Q, '-xhr-', w), r.on('send-xhr-start', function (e, t) { g(e, t), (function (e) { h.push(e), a && (m ? m.then(A) : u ? u(A) : ((v = -v), (y.data = v))); })(t); }), r.on('open-xhr-start', g), a) ) { var m = s && s.resolve(); if (!u && !s) { var v = 1, y = document.createTextNode(v); new a(A).observe(y, { characterData: !0 }); } } else t.on('fn-end', function (e) { (e[0] && e[0].type === d) || A(); }); function A() { for (var e = 0; e < h.length; e++) g(0, h[e]); h.length && (h = []); } function w(e, t) { return t; } return r; } }, 7825: (e, t, r) => { r.d(t, { t: () => n }); const n = r(3325).D.ajax; }, 6660: (e, t, r) => { r.d(t, { t: () => n }); const n = r(3325).D.jserrors; }, 3081: (e, t, r) => { r.d(t, { gF: () => o, mY: () => i, t9: () => n, vz: () => s, xS: () => a }); const n = r(3325).D.metrics, i = 'sm', o = 'cm', a = 'storeSupportabilityMetrics', s = 'storeEventMetrics'; }, 4649: (e, t, r) => { r.d(t, { t: () => n }); const n = r(3325).D.pageAction; }, 7633: (e, t, r) => { r.d(t, { t: () => n }); const n = r(3325).D.pageViewEvent; }, 9251: (e, t, r) => { r.d(t, { t: () => n }); const n = r(3325).D.pageViewTiming; }, 7144: (e, t, r) => { r.d(t, { t: () => n }); const n = r(3325).D.sessionReplay; }, 3614: (e, t, r) => { r.d(t, { BST_RESOURCE: () => i, END: () => s, FEATURE_NAME: () => n, FN_END: () => u, FN_START: () => c, PUSH_STATE: () => d, RESOURCE: () => o, START: () => a, }); const n = r(3325).D.sessionTrace, i = 'bstResource', o = 'resource', a = '-start', s = '-end', c = 'fn' + a, u = 'fn' + s, d = 'pushState'; }, 7836: (e, t, r) => { r.d(t, { BODY: () => x, CB_END: () => E, CB_START: () => u, END: () => w, FEATURE_NAME: () => i, FETCH: () => T, FETCH_BODY: () => v, FETCH_DONE: () => m, FETCH_START: () => g, FN_END: () => c, FN_START: () => s, INTERACTION: () => f, INTERACTION_API: () => d, INTERACTION_EVENTS: () => o, JSONP_END: () => b, JSONP_NODE: () => p, JS_TIME: () => _, MAX_TIMER_BUDGET: () => a, REMAINING: () => l, SPA_NODE: () => h, START: () => A, originalSetTimeout: () => y, }); var n = r(234); const i = r(3325).D.spa, o = ['click', 'submit', 'keypress', 'keydown', 'keyup', 'change'], a = 999, s = 'fn-start', c = 'fn-end', u = 'cb-start', d = 'api-ixn-', l = 'remaining', f = 'interaction', h = 'spaNode', p = 'jsonpNode', g = 'fetch-start', m = 'fetch-done', v = 'fetch-body-', b = 'jsonp-end', y = n.Yu.ST, A = '-start', w = '-end', x = '-body', E = 'cb' + w, _ = 'jsTime', T = 'fetch'; }, 5938: (e, t, r) => { r.d(t, { W: () => i }); var n = r(8325); class i { constructor(e, t, r) { (this.agentIdentifier = e), (this.aggregator = t), (this.ee = n.ee.get(e)), (this.featureName = r), (this.blocked = !1); } } }, 7530: (e, t, r) => { r.d(t, { j: () => b }); var n = r(3325), i = r(234), o = r(5546), a = r(8325), s = r(7894), c = r(8e3), u = r(3960), d = r(385), l = r(50), f = r(3081), h = r(8632); function p() { const e = (0, h.gG)(); [ 'setErrorHandler', 'finished', 'addToTrace', 'addRelease', 'addPageAction', 'setCurrentRouteName', 'setPageViewName', 'setCustomAttribute', 'interaction', 'noticeError', 'setUserId', 'setApplicationVersion', 'start', ].forEach(t => { e[t] = function () { for (var r = arguments.length, n = new Array(r), i = 0; i < r; i++) n[i] = arguments[i]; return (function (t) { for (var r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), i = 1; i < r; i++) n[i - 1] = arguments[i]; let o = []; return ( Object.values(e.initializedAgents).forEach(e => { e.exposed && e.api[t] && o.push(e.api[t](...n)); }), o.length > 1 ? o : o[0] ); })(t, ...n); }; }); } var g = r(2587); const m = e => { const t = e.startsWith('http'); (e += '/'), (r.p = t ? e : 'https://' + e); }; let v = !1; function b(e) { let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, b = arguments.length > 2 ? arguments[2] : void 0, y = arguments.length > 3 ? arguments[3] : void 0, { init: A, info: w, loader_config: x, runtime: E = { loaderType: b }, exposed: _ = !0 } = t; const T = (0, h.gG)(); w || ((A = T.init), (w = T.info), (x = T.loader_config)), (0, i.Dg)(e, A || {}), (0, i.GE)(e, x || {}), (w.jsAttributes ??= {}), d.v6 && (w.jsAttributes.isWorker = !0), (0, i.CX)(e, w); const S = (0, i.P_)(e), D = [w.beacon, w.errorBeacon]; v || ((v = !0), S.proxy.assets && (m(S.proxy.assets), D.push(S.proxy.assets)), S.proxy.beacon && D.push(S.proxy.beacon)), (E.denyList = [...(S.ajax.deny_list || []), ...(S.ajax.block_internal ? D : [])]), (0, i.sU)(e, E), p(); const j = (function (e, t) { t || (0, c.R)(e, 'api'); const h = {}; var p = a.ee.get(e), g = p.get('tracer'), m = 'api-', v = m + 'ixn-'; function b(t, r, n, o) { const a = (0, i.C5)(e); return ( null === r ? delete a.jsAttributes[t] : (0, i.CX)(e, { ...a, jsAttributes: { ...a.jsAttributes, [t]: r } }), w(m, n, !0, o || null === r ? 'session' : void 0)(t, r) ); } function y() {} ['setErrorHandler', 'finished', 'addToTrace', 'addRelease'].forEach(e => { h[e] = w(m, e, !0, 'api'); }), (h.addPageAction = w(m, 'addPageAction', !0, n.D.pageAction)), (h.setCurrentRouteName = w(m, 'routeName', !0, n.D.spa)), (h.setPageViewName = function (t, r) { if ('string' == typeof t) return ( '/' !== t.charAt(0) && (t = '/' + t), ((0, i.OP)(e).customTransaction = (r || 'http://custom.transaction') + t), w(m, 'setPageViewName', !0)() ); }), (h.setCustomAttribute = function (e, t) { let r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; if ('string' == typeof e) { if (['string', 'number', 'boolean'].includes(typeof t) || null === t) return b(e, t, 'setCustomAttribute', r); (0, l.Z)( 'Failed to execute setCustomAttribute.\nNon-null value must be a string, number or boolean type, but a type of <'.concat( typeof t, '> was provided.', ), ); } else (0, l.Z)( 'Failed to execute setCustomAttribute.\nName must be a string type, but a type of <'.concat( typeof e, '> was provided.', ), ); }), (h.setUserId = function (e) { if ('string' == typeof e || null === e) return b('enduser.id', e, 'setUserId', !0); (0, l.Z)( 'Failed to execute setUserId.\nNon-null value must be a string type, but a type of <'.concat( typeof e, '> was provided.', ), ); }), (h.setApplicationVersion = function (e) { if ('string' == typeof e || null === e) return b('application.version', e, 'setApplicationVersion', !1); (0, l.Z)( 'Failed to execute setApplicationVersion. Expected <String | null>, but got <'.concat(typeof e, '>.'), ); }), (h.start = e => { try { const t = e ? 'defined' : 'undefined'; (0, o.p)(f.xS, ['API/start/'.concat(t, '/called')], void 0, n.D.metrics, p); const r = Object.values(n.D); if (void 0 === e) e = r; else { if ((e = Array.isArray(e) && e.length ? e : [e]).some(e => !r.includes(e))) return (0, l.Z)('Invalid feature name supplied. Acceptable feature names are: '.concat(r)); e.includes(n.D.pageViewEvent) || e.push(n.D.pageViewEvent); } e.forEach(e => { p.emit(''.concat(e, '-opt-in')); }); } catch (e) { (0, l.Z)('An unexpected issue occurred', e); } }), (h.interaction = function () { return new y().get(); }); var A = (y.prototype = { createTracer: function (e, t) { var r = {}, i = this, a = 'function' == typeof t; return ( (0, o.p)(v + 'tracer', [(0, s.z)(), e, r], i, n.D.spa, p), function () { if ((g.emit((a ? '' : 'no-') + 'fn-start', [(0, s.z)(), i, a], r), a)) try { return t.apply(this, arguments); } catch (e) { throw (g.emit('fn-err', [arguments, this, e], r), e); } finally { g.emit('fn-end', [(0, s.z)()], r); } } ); }, }); function w(e, t, r, i) { return function () { return ( (0, o.p)(f.xS, ['API/' + t + '/called'], void 0, n.D.metrics, p), i && (0, o.p)(e + t, [(0, s.z)(), ...arguments], r ? null : this, i, p), r ? void 0 : this ); }; } function x() { r.e(111) .then(r.bind(r, 7438)) .then(t => { let { setAPI: r } = t; r(e), (0, c.L)(e, 'api'); }) .catch(() => (0, l.Z)('Downloading runtime APIs failed...')); } return ( ['actionText', 'setName', 'setAttribute', 'save', 'ignore', 'onEnd', 'getContext', 'end', 'get'].forEach( e => { A[e] = w(v, e, void 0, n.D.spa); }, ), (h.noticeError = function (e, t) { 'string' == typeof e && (e = new Error(e)), (0, o.p)(f.xS, ['API/noticeError/called'], void 0, n.D.metrics, p), (0, o.p)('err', [e, (0, s.z)(), !1, t], void 0, n.D.jserrors, p); }), d.il ? (0, u.b)(() => x(), !0) : x(), h ); })(e, y); return (0, h.Qy)(e, j, 'api'), (0, h.Qy)(e, _, 'exposed'), (0, h.EZ)('activatedFeatures', g.T), j; } }, 3325: (e, t, r) => { r.d(t, { D: () => n, p: () => i }); const n = { ajax: 'ajax', jserrors: 'jserrors', metrics: 'metrics', pageAction: 'page_action', pageViewEvent: 'page_view_event', pageViewTiming: 'page_view_timing', sessionReplay: 'session_replay', sessionTrace: 'session_trace', spa: 'spa', }, i = { [n.pageViewEvent]: 1, [n.pageViewTiming]: 2, [n.metrics]: 3, [n.jserrors]: 4, [n.ajax]: 5, [n.sessionTrace]: 6, [n.pageAction]: 7, [n.spa]: 8, [n.sessionReplay]: 9, }; }, }, n = {}; function i(e) { var t = n[e]; if (void 0 !== t) return t.exports; var o = (n[e] = { exports: {} }); return r[e](o, o.exports, i), o.exports; } (i.m = r), (i.d = (e, t) => { for (var r in t) i.o(t, r) && !i.o(e, r) && Object.defineProperty(e, r, { enumerable: !0, get: t[r] }); }), (i.f = {}), (i.e = e => Promise.all(Object.keys(i.f).reduce((t, r) => (i.f[r](e, t), t), []))), (i.u = e => ({ 111: 'nr-spa', 164: 'nr-spa-compressor', 433: 'nr-spa-recorder' }[e] + '-1.246.1.min.js')), (i.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)), (e = {}), (t = 'NRBA-1.246.1.PROD:'), (i.l = (r, n, o, a) => { if (e[r]) e[r].push(n); else { var s, c; if (void 0 !== o) for (var u = document.getElementsByTagName('script'), d = 0; d < u.length; d++) { var l = u[d]; if (l.getAttribute('src') == r || l.getAttribute('data-webpack') == t + o) { s = l; break; } } s || ((c = !0), ((s = document.createElement('script')).charset = 'utf-8'), (s.timeout = 120), i.nc && s.setAttribute('nonce', i.nc), s.setAttribute('data-webpack', t + o), (s.src = r)), (e[r] = [n]); var f = (t, n) => { (s.onerror = s.onload = null), clearTimeout(h); var i = e[r]; if ((delete e[r], s.parentNode && s.parentNode.removeChild(s), i && i.forEach(e => e(n)), t)) return t(n); }, h = setTimeout(f.bind(null, void 0, { type: 'timeout', target: s }), 12e4); (s.onerror = f.bind(null, s.onerror)), (s.onload = f.bind(null, s.onload)), c && document.head.appendChild(s); } }), (i.r = e => { 'undefined' != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }), Object.defineProperty(e, '__esModule', { value: !0 }); }), (i.p = 'https://js-agent.newrelic.com/'), (() => { var e = { 801: 0, 92: 0 }; i.f.j = (t, r) => { var n = i.o(e, t) ? e[t] : void 0; if (0 !== n) if (n) r.push(n[2]); else { var o = new Promise((r, i) => (n = e[t] = [r, i])); r.push((n[2] = o)); var a = i.p + i.u(t), s = new Error(); i.l( a, r => { if (i.o(e, t) && (0 !== (n = e[t]) && (e[t] = void 0), n)) { var o = r && ('load' === r.type ? 'missing' : r.type), a = r && r.target && r.target.src; (s.message = 'Loading chunk ' + t + ' failed.\n(' + o + ': ' + a + ')'), (s.name = 'ChunkLoadError'), (s.type = o), (s.request = a), n[1](s); } }, 'chunk-' + t, t, ); } }; var t = (t, r) => { var n, o, [a, s, c] = r, u = 0; if (a.some(t => 0 !== e[t])) { for (n in s) i.o(s, n) && (i.m[n] = s[n]); if (c) c(i); } for (t && t(r); u < a.length; u++) (o = a[u]), i.o(e, o) && e[o] && e[o][0](), (e[o] = 0); }, r = (self['webpackChunk:NRBA-1.246.1.PROD'] = self['webpackChunk:NRBA-1.246.1.PROD'] || []); r.forEach(t.bind(null, 0)), (r.push = t.bind(null, r.push.bind(r))); })(), (() => { var e = i(50); class t { addPageAction(t, r) { (0, e.Z)('Call to agent api addPageAction failed. The page action feature is not currently initialized.'); } setPageViewName(t, r) { (0, e.Z)('Call to agent api setPageViewName failed. The page view feature is not currently initialized.'); } setCustomAttribute(t, r, n) { (0, e.Z)('Call to agent api setCustomAttribute failed. The js errors feature is not currently initialized.'); } noticeError(t, r) { (0, e.Z)('Call to agent api noticeError failed. The js errors feature is not currently initialized.'); } setUserId(t) { (0, e.Z)('Call to agent api setUserId failed. The js errors feature is not currently initialized.'); } setApplicationVersion(t) { (0, e.Z)('Call to agent api setApplicationVersion failed. The agent is not currently initialized.'); } setErrorHandler(t) { (0, e.Z)('Call to agent api setErrorHandler failed. The js errors feature is not currently initialized.'); } finished(t) { (0, e.Z)('Call to agent api finished failed. The page action feature is not currently initialized.'); } addRelease(t, r) { (0, e.Z)('Call to agent api addRelease failed. The js errors feature is not currently initialized.'); } start(t) { (0, e.Z)('Call to agent api addRelease failed. The agent is not currently initialized.'); } } var r = i(3325), n = i(234); const o = Object.values(r.D); function a(e) { const t = {}; return ( o.forEach(r => { t[r] = (function (e, t) { return !1 !== (0, n.Mt)(t, ''.concat(e, '.enabled')); })(r, e); }), t ); } var s = i(7530); var c = i(8e3), u = i(5938), d = i(3960), l = i(385); class f extends u.W { constructor(e, t, r) { let i = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3]; super(e, t, r), (this.auto = i), (this.abortHandler = void 0), (this.featAggregate = void 0), (this.onAggregateImported = void 0), !1 === (0, n.Mt)(this.agentIdentifier, ''.concat(this.featureName, '.autoStart')) && (this.auto = !1), this.auto && (0, c.R)(e, r); } importAggregator() { let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; if (this.featAggregate) return; if (!this.auto) return void this.ee.on(''.concat(this.featureName, '-opt-in'), () => { (0, c.R)(this.agentIdentifier, this.featureName), (this.auto = !0), this.importAggregator(); }); const r = l.il && !0 === (0, n.Mt)(this.agentIdentifier, 'privacy.cookies_enabled'); let o; this.onAggregateImported = new Promise(e => { o = e; }); const a = async () => { let n; try { if (r) { const { setupAgentSession: e } = await i.e(111).then(i.bind(i, 3228)); n = e(this.agentIdentifier); } } catch (t) { (0, e.Z)( 'A problem occurred when starting up session manager. This page will not start or extend any session.', t, ); } try { if (!this.shouldImportAgg(this.featureName, n)) return (0, c.L)(this.agentIdentifier, this.featureName), void o(!1); const { lazyFeatureLoader: e } = await i.e(111).then(i.bind(i, 8582)), { Aggregate: r } = await e(this.featureName, 'aggregate'); (this.featAggregate = new r(this.agentIdentifier, this.aggregator, t)), o(!0); } catch (t) { (0, e.Z)('Downloading and initializing '.concat(this.featureName, ' failed...'), t), this.abortHandler?.(), (0, c.L)(this.agentIdentifier, this.featureName), o(!1); } }; l.il ? (0, d.b)(() => a(), !0) : a(); } shouldImportAgg(e, t) { return ( e !== r.D.sessionReplay || (!!n.Yu.MO && !1 !== (0, n.Mt)(this.agentIdentifier, 'session_trace.enabled') && (!!t?.isNew || !!t?.state.sessionReplayMode)) ); } } var h = i(7633); class p extends f { static featureName = h.t; constructor(e, t) { let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, h.t, r), this.importAggregator(); } } var g = i(1117), m = i(1284); class v extends g.w { constructor(e) { super(e), (this.aggregatedData = {}); } store(e, t, r, n, i) { var o = this.getBucket(e, t, r, i); return ( (o.metrics = (function (e, t) { t || (t = { count: 0 }); return ( (t.count += 1), (0, m.D)(e, function (e, r) { t[e] = b(r, t[e]); }), t ); })(n, o.metrics)), o ); } merge(e, t, r, n, i) { var o = this.getBucket(e, t, n, i); if (o.metrics) { var a = o.metrics; (a.count += r.count), (0, m.D)(r, function (e, t) { if ('count' !== e) { var n = a[e], i = r[e]; i && !i.c ? (a[e] = b(i.t, n)) : (a[e] = (function (e, t) { if (!t) return e; t.c || (t = y(t.t)); return ( (t.min = Math.min(e.min, t.min)), (t.max = Math.max(e.max, t.max)), (t.t += e.t), (t.sos += e.sos), (t.c += e.c), t ); })(i, a[e])); } }); } else o.metrics = r; } storeMetric(e, t, r, n) { var i = this.getBucket(e, t, r); return (i.stats = b(n, i.stats)), i; } getBucket(e, t, r, n) { this.aggregatedData[e] || (this.aggregatedData[e] = {}); var i = this.aggregatedData[e][t]; return i || ((i = this.aggregatedData[e][t] = { params: r || {} }), n && (i.custom = n)), i; } get(e, t) { return t ? this.aggregatedData[e] && this.aggregatedData[e][t] : this.aggregatedData[e]; } take(e) { for (var t = {}, r = '', n = !1, i = 0; i < e.length; i++) (t[(r = e[i])] = A(this.aggregatedData[r])), t[r].length && (n = !0), delete this.aggregatedData[r]; return n ? t : null; } } function b(e, t) { return null == e ? (function (e) { e ? e.c++ : (e = { c: 1 }); return e; })(t) : t ? (t.c || (t = y(t.t)), (t.c += 1), (t.t += e), (t.sos += e * e), e > t.max && (t.max = e), e < t.min && (t.min = e), t) : { t: e }; } function y(e) { return { t: e, min: e, max: e, sos: e * e, c: 1 }; } function A(e) { return 'object' != typeof e ? [] : (0, m.D)(e, w); } function w(e, t) { return t; } var x = i(8632), E = i(4402), _ = i(4351); var T = i(5546), S = i(7956), D = i(3239), j = i(7894), N = i(9251); class C extends f { static featureName = N.t; constructor(e, t) { let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, N.t, r), l.il && ((0, S.N)(() => (0, T.p)('docHidden', [(0, j.z)()], void 0, N.t, this.ee), !0), (0, D.bP)('pagehide', () => (0, T.p)('winPagehide', [(0, j.z)()], void 0, N.t, this.ee)), this.importAggregator()); } } var O = i(3081); class P extends f { static featureName = O.t9; constructor(e, t) { let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, O.t9, r), this.importAggregator(); } } var R = i(6660); class I { constructor(e, t, r, n) { (this.name = 'UncaughtError'), (this.message = e), (this.sourceURL = t), (this.line = r), (this.column = n); } } class k extends f { static featureName = R.t; #e = new Set(); constructor(e, t) { let n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, R.t, n); try { this.removeOnAbort = new AbortController(); } catch (e) {} this.ee.on('fn-err', (e, t, n) => { this.abortHandler && !this.#e.has(n) && (this.#e.add(n), (0, T.p)('err', [this.#t(n), (0, j.z)()], void 0, r.D.jserrors, this.ee)); }), this.ee.on('internal-error', e => { this.abortHandler && (0, T.p)('ierr', [this.#t(e), (0, j.z)(), !0], void 0, r.D.jserrors, this.ee); }), l._A.addEventListener( 'unhandledrejection', e => { this.abortHandler && (0, T.p)( 'err', [this.#r(e), (0, j.z)(), !1, { unhandledPromiseRejection: 1 }], void 0, r.D.jserrors, this.ee, ); }, (0, D.m$)(!1, this.removeOnAbort?.signal), ), l._A.addEventListener( 'error', e => { this.abortHandler && (this.#e.has(e.error) ? this.#e.delete(e.error) : (0, T.p)('err', [this.#n(e), (0, j.z)()], void 0, r.D.jserrors, this.ee)); }, (0, D.m$)(!1, this.removeOnAbort?.signal), ), (this.abortHandler = this.#i), this.importAggregator(); } #i() { this.removeOnAbort?.abort(), this.#e.clear(), (this.abortHandler = void 0); } #t(e) { return e instanceof Error ? e : void 0 !== e?.message ? new I(e.message, e.filename || e.sourceURL, e.lineno || e.line, e.colno || e.col) : new I('string' == typeof e ? e : (0, _.P)(e)); } #r(e) { let t = 'Unhandled Promise Rejection: '; if (e?.reason instanceof Error) try { return (e.reason.message = t + e.reason.message), e.reason; } catch (t) { return e.reason; } if (void 0 === e.reason) return new I(t); const r = this.#t(e.reason); return (r.message = t + r.message), r; } #n(e) { return e.error instanceof Error ? e.error : new I(e.message, e.filename, e.lineno, e.colno); } } var H = i(2210); let z = 1; const L = 'nr@id'; function M(e) { const t = typeof e; return !e || ('object' !== t && 'function' !== t) ? -1 : e === l._A ? 0 : (0, H.X)(e, L, function () { return z++; }); } function F(e) { if ('string' == typeof e && e.length) return e.length; if ('object' == typeof e) { if ('undefined' != typeof ArrayBuffer && e instanceof ArrayBuffer && e.byteLength) return e.byteLength; if ('undefined' != typeof Blob && e instanceof Blob && e.size) return e.size; if (!('undefined' != typeof FormData && e instanceof FormData)) try { return (0, _.P)(e).length; } catch (e) { return; } } } var B = i(1214), U = i(7243); class Z { constructor(e) { this.agentIdentifier = e; } generateTracePayload(e) { if (!this.shouldGenerateTrace(e)) return null; var t = (0, n.DL)(this.agentIdentifier); if (!t) return null; var r = (t.accountID || '').toString() || null, i = (t.agentID || '').toString() || null, o = (t.trustKey || '').toString() || null; if (!r || !i) return null; var a = (0, E.M)(), s = (0, E.Ht)(), c = Date.now(), u = { spanId: a, traceId: s, timestamp: c }; return ( (e.sameOrigin || (this.isAllowedOrigin(e) && this.useTraceContextHeadersForCors())) && ((u.traceContextParentHeader = this.generateTraceContextParentHeader(a, s)), (u.traceContextStateHeader = this.generateTraceContextStateHeader(a, c, r, i, o))), ((e.sameOrigin && !this.excludeNewrelicHeader()) || (!e.sameOrigin && this.isAllowedOrigin(e) && this.useNewrelicHeaderForCors())) && (u.newrelicHeader = this.generateTraceHeader(a, s, c, r, i, o)), u ); } generateTraceContextParentHeader(e, t) { return '00-' + t + '-' + e + '-01'; } generateTraceContextStateHeader(e, t, r, n, i) { return i + '@nr=0-1-' + r + '-' + n + '-' + e + '----' + t; } generateTraceHeader(e, t, r, n, i, o) { if (!('function' == typeof l._A?.btoa)) return null; var a = { v: [0, 1], d: { ty: 'Browser', ac: n, ap: i, id: e, tr: t, ti: r } }; return o && n !== o && (a.d.tk = o), btoa((0, _.P)(a)); } shouldGenerateTrace(e) { return this.isDtEnabled() && this.isAllowedOrigin(e); } isAllowedOrigin(e) { var t = !1, r = {}; if ( ((0, n.Mt)(this.agentIdentifier, 'distributed_tracing') && (r = (0, n.P_)(this.agentIdentifier).distributed_tracing), e.sameOrigin) ) t = !0; else if (r.allowed_origins instanceof Array) for (var i = 0; i < r.allowed_origins.length; i++) { var o = (0, U.e)(r.allowed_origins[i]); if (e.hostname === o.hostname && e.protocol === o.protocol && e.port === o.port) { t = !0; break; } } return t; } isDtEnabled() { var e = (0, n.Mt)(this.agentIdentifier, 'distributed_tracing'); return !!e && !!e.enabled; } excludeNewrelicHeader() { var e = (0, n.Mt)(this.agentIdentifier, 'distributed_tracing'); return !!e && !!e.exclude_newrelic_header; } useNewrelicHeaderForCors() { var e = (0, n.Mt)(this.agentIdentifier, 'distributed_tracing'); return !!e && !1 !== e.cors_use_newrelic_header; } useTraceContextHeadersForCors() { var e = (0, n.Mt)(this.agentIdentifier, 'distributed_tracing'); return !!e && !!e.cors_use_tracecontext_headers; } } var V = i(7825), q = ['load', 'error', 'abort', 'timeout'], G = q.length, W = n.Yu.REQ, X = n.Yu.XHR; class Q extends f { static featureName = V.t; constructor(e, t) { let i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; if ((super(e, t, V.t, i), (0, n.OP)(e).xhrWrappable)) { (this.dt = new Z(e)), (this.handler = (e, t, r, n) => (0, T.p)(e, t, r, n, this.ee)); try { const e = { xmlhttprequest: 'xhr', fetch: 'fetch', beacon: 'beacon' }; l._A?.performance?.getEntriesByType('resource').forEach(t => { if (t.initiatorType in e && 0 !== t.responseStatus) { const n = { status: t.responseStatus }, i = { rxSize: t.transferSize, duration: Math.floor(t.duration), cbTime: 0 }; K(n, t.name), this.handler('xhr', [n, i, t.startTime, t.responseEnd, e[t.initiatorType]], void 0, r.D.ajax); } }); } catch (e) {} (0, B.u5)(this.ee), (0, B.Kf)(this.ee), (function (e, t, i, o) { function a(e) { var t = this; (t.totalCbs = 0), (t.called = 0), (t.cbTime = 0), (t.end = x), (t.ended = !1), (t.xhrGuids = {}), (t.lastSize = null), (t.loadCaptureCalled = !1), (t.params = this.params || {}), (t.metrics = this.metrics || {}), e.addEventListener( 'load', function (r) { E(t, e); }, (0, D.m$)(!1), ), l.IF || e.addEventListener( 'progress', function (e) { t.lastSize = e.loaded; }, (0, D.m$)(!1), ); } function s(e) { (this.params = { method: e[0] }), K(this, e[1]), (this.metrics = {}); } function c(t, r) { var i = (0, n.DL)(e); i.xpid && this.sameOrigin && r.setRequestHeader('X-NewRelic-ID', i.xpid); var a = o.generateTracePayload(this.parsedOrigin); if (a) { var s = !1; a.newrelicHeader && (r.setRequestHeader('newrelic', a.newrelicHeader), (s = !0)), a.traceContextParentHeader && (r.setRequestHeader('traceparent', a.traceContextParentHeader), a.traceContextStateHeader && r.setRequestHeader('tracestate', a.traceContextStateHeader), (s = !0)), s && (this.dt = a); } } function u(e, r) { var n = this.metrics, i = e[0], o = this; if (n && i) { var a = F(i); a && (n.txSize = a); } (this.startTime = (0, j.z)()), (this.body = i), (this.listener = function (e) { try { 'abort' !== e.type || o.loadCaptureCalled || (o.params.aborted = !0), ('load' !== e.type || (o.called === o.totalCbs && (o.onloadCalled || 'function' != typeof r.onload) && 'function' == typeof o.end)) && o.end(r); } catch (e) { try { t.emit('internal-error', [e]); } catch (e) {} } }); for (var s = 0; s < G; s++) r.addEventListener(q[s], this.listener, (0, D.m$)(!1)); } function d(e, t, r) { (this.cbTime += e), t ? (this.onloadCalled = !0) : (this.called += 1), this.called !== this.totalCbs || (!this.onloadCalled && 'function' == typeof r.onload) || 'function' != typeof this.end || this.end(r); } function f(e, t) { var r = '' + M(e) + !!t; this.xhrGuids && !this.xhrGuids[r] && ((this.xhrGuids[r] = !0), (this.totalCbs += 1)); } function h(e, t) { var r = '' + M(e) + !!t; this.xhrGuids && this.xhrGuids[r] && (delete this.xhrGuids[r], (this.totalCbs -= 1)); } function p() { this.endTime = (0, j.z)(); } function g(e, r) { r instanceof X && 'load' === e[0] && t.emit('xhr-load-added', [e[1], e[2]], r); } function m(e, r) { r instanceof X && 'load' === e[0] && t.emit('xhr-load-removed', [e[1], e[2]], r); } function v(e, t, r) { t instanceof X && ('onload' === r && (this.onload = !0), ('load' === (e[0] && e[0].type) || this.onload) && (this.xhrCbStart = (0, j.z)())); } function b(e, r) { this.xhrCbStart && t.emit('xhr-cb-time', [(0, j.z)() - this.xhrCbStart, this.onload, r], r); } function y(e) { var t, r = e[1] || {}; if ( ('string' == typeof e[0] ? 0 === (t = e[0]).length && l.il && (t = '' + l._A.location.href) : e[0] && e[0].url ? (t = e[0].url) : l._A?.URL && e[0] && e[0] instanceof URL ? (t = e[0].href) : 'function' == typeof e[0].toString && (t = e[0].toString()), 'string' == typeof t && 0 !== t.length) ) { t && ((this.parsedOrigin = (0, U.e)(t)), (this.sameOrigin = this.parsedOrigin.sameOrigin)); var n = o.generateTracePayload(this.parsedOrigin); if (n && (n.newrelicHeader || n.traceContextParentHeader)) if (e[0] && e[0].headers) s(e[0].headers, n) && (this.dt = n); else { var i = {}; for (var a in r) i[a] = r[a]; (i.headers = new Headers(r.headers || {})), s(i.headers, n) && (this.dt = n), e.length > 1 ? (e[1] = i) : e.push(i); } } function s(e, t) { var r = !1; return ( t.newrelicHeader && (e.set('newrelic', t.newrelicHeader), (r = !0)), t.traceContextParentHeader && (e.set('traceparent', t.traceContextParentHeader), t.traceContextStateHeader && e.set('tracestate', t.traceContextStateHeader), (r = !0)), r ); } } function A(e, t) { (this.params = {}), (this.metrics = {}), (this.startTime = (0, j.z)()), (this.dt = t), e.length >= 1 && (this.target = e[0]), e.length >= 2 && (this.opts = e[1]); var r, n = this.opts || {}, i = this.target; 'string' == typeof i ? (r = i) : 'object' == typeof i && i instanceof W ? (r = i.url) : l._A?.URL && 'object' == typeof i && i instanceof URL && (r = i.href), K(this, r); var o = ('' + ((i && i instanceof W && i.method) || n.method || 'GET')).toUpperCase(); (this.params.method = o), (this.body = n.body), (this.txSize = F(n.body) || 0); } function w(e, t) { var n; (this.endTime = (0, j.z)()), this.params || (this.params = {}), (this.params.status = t ? t.status : 0), 'string' == typeof this.rxSize && this.rxSize.length > 0 && (n = +this.rxSize); var o = { txSize: this.txSize, rxSize: n, duration: (0, j.z)() - this.startTime }; i('xhr', [this.params, o, this.startTime, this.endTime, 'fetch'], this, r.D.ajax); } function x(e) { var t = this.params, n = this.metrics; if (!this.ended) { this.ended = !0; for (var o = 0; o < G; o++) e.removeEventListener(q[o], this.listener, !1); t.aborted || ((n.duration = (0, j.z)() - this.startTime), this.loadCaptureCalled || 4 !== e.readyState ? null == t.status && (t.status = 0) : E(this, e), (n.cbTime = this.cbTime), i('xhr', [t, n, this.startTime, this.endTime, 'xhr'], this, r.D.ajax)); } } function E(e, t) { e.params.status = t.status; var r = (function (e, t) { var r = e.responseType; return 'json' === r && null !== t ? t : 'arraybuffer' === r || 'blob' === r || 'json' === r ? F(e.response) : 'text' === r || '' === r || void 0 === r ? F(e.responseText) : void 0; })(t, e.lastSize); if ((r && (e.metrics.rxSize = r), e.sameOrigin)) { var n = t.getResponseHeader('X-NewRelic-App-Data'); n && (e.params.cat = n.split(', ').pop()); } e.loadCaptureCalled = !0; } t.on('new-xhr', a), t.on('open-xhr-start', s), t.on('open-xhr-end', c), t.on('send-xhr-start', u), t.on('xhr-cb-time', d), t.on('xhr-load-added', f), t.on('xhr-load-removed', h), t.on('xhr-resolved', p), t.on('addEventListener-end', g), t.on('removeEventListener-end', m), t.on('fn-end', b), t.on('fetch-before-start', y), t.on('fetch-start', A), t.on('fn-start', v), t.on('fetch-done', w); })(e, this.ee, this.handler, this.dt), this.importAggregator(); } } } function K(e, t) { var r = (0, U.e)(t), n = e.params || e; (n.hostname = r.hostname), (n.port = r.port), (n.protocol = r.protocol), (n.host = r.hostname + ':' + r.port), (n.pathname = r.pathname), (e.parsedOrigin = r), (e.sameOrigin = r.sameOrigin); } var Y = i(3614); const { BST_RESOURCE: J, RESOURCE: ee, START: te, END: re, FEATURE_NAME: ne, FN_END: ie, FN_START: oe, PUSH_STATE: ae, } = Y; var se = i(7144); class ce extends f { static featureName = se.t; constructor(e, t) { let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, se.t, r), this.importAggregator(); } } var ue = i(7836); const { FEATURE_NAME: de, START: le, END: fe, BODY: he, CB_END: pe, JS_TIME: ge, FETCH: me, FN_START: ve, CB_START: be, FN_END: ye, } = ue; var Ae = i(4649); class we extends f { static featureName = Ae.t; constructor(e, t) { let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, Ae.t, r), this.importAggregator(); } } new (class extends t { constructor(t) { let r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : (0, E.ky)(16); super(), l._A ? ((this.agentIdentifier = r), (this.sharedAggregator = new v({ agentIdentifier: this.agentIdentifier })), (this.features = {}), (this.desiredFeatures = new Set(t.features || [])), this.desiredFeatures.add(p), Object.assign(this, (0, s.j)(this.agentIdentifier, t, t.loaderType || 'agent')), this.run()) : (0, e.Z)('Failed to initial the agent. Could not determine the runtime environment.'); } get config() { return { info: (0, n.C5)(this.agentIdentifier), init: (0, n.P_)(this.agentIdentifier), loader_config: (0, n.DL)(this.agentIdentifier), runtime: (0, n.OP)(this.agentIdentifier), }; } run() { const t = 'features'; try { const n = a(this.agentIdentifier), i = [...this.desiredFeatures]; i.sort((e, t) => r.p[e.featureName] - r.p[t.featureName]), i.forEach(t => { if (n[t.featureName] || t.featureName === r.D.pageViewEvent) { const i = (function (e) { switch (e) { case r.D.ajax: return [r.D.jserrors]; case r.D.sessionTrace: return [r.D.ajax, r.D.pageViewEvent]; case r.D.sessionReplay: return [r.D.sessionTrace]; case r.D.pageViewTiming: return [r.D.pageViewEvent]; default: return []; } })(t.featureName); i.every(e => n[e]) || (0, e.Z)( '' .concat(t.featureName, ' is enabled but one or more dependent features has been disabled (') .concat((0, _.P)(i), '). This may cause unintended consequences or missing data...'), ), (this.features[t.featureName] = new t(this.agentIdentifier, this.sharedAggregator)); } }), (0, x.Qy)(this.agentIdentifier, this.features, t); } catch (r) { (0, e.Z)('Failed to initialize all enabled instrument classes (agent aborted) -', r); for (const e in this.features) this.features[e].abortHandler?.(); const n = (0, x.fP)(); return ( delete n.initializedAgents[this.agentIdentifier]?.api, delete n.initializedAgents[this.agentIdentifier]?.[t], delete this.sharedAggregator, n.ee?.abort(), delete n.ee?.get(this.agentIdentifier), !1 ); } } addToTrace(t) { (0, e.Z)('Call to agent api addToTrace failed. The session trace feature is not currently initialized.'); } setCurrentRouteName(t) { (0, e.Z)('Call to agent api setCurrentRouteName failed. The spa feature is not currently initialized.'); } interaction() { (0, e.Z)('Call to agent api interaction failed. The spa feature is not currently initialized.'); } })({ features: [ Q, p, C, class extends f { static featureName = ne; constructor(e, t) { if ((super(e, t, ne, !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]), !l.il)) return; const n = this.ee; let i; (0, B.QU)(n), (this.eventsEE = (0, B.em)(n)), this.eventsEE.on(oe, function (e, t) { this.bstStart = (0, j.z)(); }), this.eventsEE.on(ie, function (e, t) { (0, T.p)('bst', [e[0], t, this.bstStart, (0, j.z)()], void 0, r.D.sessionTrace, n); }), n.on(ae + te, function (e) { (this.time = (0, j.z)()), (this.startPath = location.pathname + location.hash); }), n.on(ae + re, function (e) { (0, T.p)('bstHist', [location.pathname + location.hash, this.startPath, this.time], void 0, r.D.sessionTrace, n); }); try { (i = new PerformanceObserver(e => { const t = e.getEntries(); (0, T.p)(J, [t], void 0, r.D.sessionTrace, n); })), i.observe({ type: ee, buffered: !0 }); } catch (e) {} this.importAggregator({ resourceObserver: i }); } }, ce, P, we, k, class extends f { static featureName = de; constructor(e, t) { if ((super(e, t, de, !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]), !l.il)) return; if (!(0, n.OP)(e).xhrWrappable) return; try { this.removeOnAbort = new AbortController(); } catch (e) {} let r, i = 0; const o = this.ee.get('tracer'), a = (0, B._L)(this.ee), s = (0, B.Lg)(this.ee), c = (0, B.BV)(this.ee), u = (0, B.Kf)(this.ee), d = this.ee.get('events'), f = (0, B.u5)(this.ee), h = (0, B.QU)(this.ee), p = (0, B.Gm)(this.ee); function g(e, t) { h.emit('newURL', ['' + window.location, t]); } function m() { i++, (r = window.location.hash), (this[ve] = (0, j.z)()); } function v() { i--, window.location.hash !== r && g(0, !0); var e = (0, j.z)(); (this[ge] = ~~this[ge] + e - this[ve]), (this[ye] = e); } function b(e, t) { e.on(t, function () { this[t] = (0, j.z)(); }); } this.ee.on(ve, m), s.on(be, m), a.on(be, m), this.ee.on(ye, v), s.on(pe, v), a.on(pe, v), this.ee.buffer([ve, ye, 'xhr-resolved'], this.featureName), d.buffer([ve], this.featureName), c.buffer(['setTimeout' + fe, 'clearTimeout' + le, ve], this.featureName), u.buffer([ve, 'new-xhr', 'send-xhr' + le], this.featureName), f.buffer([me + le, me + '-done', me + he + le, me + he + fe], this.featureName), h.buffer(['newURL'], this.featureName), p.buffer([ve], this.featureName), s.buffer(['propagate', be, pe, 'executor-err', 'resolve' + le], this.featureName), o.buffer([ve, 'no-' + ve], this.featureName), a.buffer(['new-jsonp', 'cb-start', 'jsonp-error', 'jsonp-end'], this.featureName), b(f, me + le), b(f, me + '-done'), b(a, 'new-jsonp'), b(a, 'jsonp-end'), b(a, 'cb-start'), h.on('pushState-end', g), h.on('replaceState-end', g), window.addEventListener('hashchange', g, (0, D.m$)(!0, this.removeOnAbort?.signal)), window.addEventListener('load', g, (0, D.m$)(!0, this.removeOnAbort?.signal)), window.addEventListener( 'popstate', function () { g(0, i > 1); }, (0, D.m$)(!0, this.removeOnAbort?.signal), ), (this.abortHandler = this.#i), this.importAggregator(); } #i() { this.removeOnAbort?.abort(), (this.abortHandler = void 0); } }, ], loaderType: 'spa', }); })(); })(); </script> <!-- NR Script End for www.pearson.com --> <!-- OneTrust Cookies Consent Notice start for www.pearson.com --> <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-document-language="true" type="text/javascript" charset="UTF-8" data-domain-script="0d545d30-0e52-4bd4-bbe4-db2d55525649"></script> <script type="text/javascript"> function OptanonWrapper() { var profile = blueConicClient.profile.getProfile(); if(!OnetrustActiveGroups.includes("C0004")){ profile.permission.setLevel(blueConicClient.permission.level.DO_NOT_TRACK); blueConicClient.profile.updateProfile(); } else { profile.permission.setLevel(blueConicClient.permission.level.PERSONAL); blueConicClient.profile.updateProfile(); } } </script> <!-- OneTrust Cookies Consent Notice end for www.pearson.com --> <!-- Start VWO Async SmartCode --> <script> window._vwo_code = window._vwo_code || (function () { var account_id = 725134, version = 1.5, settings_tolerance = 2000, library_tolerance = 2500, use_existing_jquery = false, is_spa = 1, hide_element = "", hide_element_style = "opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important", /* DO NOT EDIT BELOW THIS LINE */ f = false, d = document, vwoCodeEl = d.querySelector("#vwoCode"), filterToleranceTimer, code = { use_existing_jquery: function () { return use_existing_jquery; }, library_tolerance: function () { return library_tolerance; }, hide_element_style: function () { return "{" + hide_element_style + "}"; }, finish: function () { if (!f) { f = true; var a = d.getElementById("_vis_opt_path_hides"); if (a) a.parentNode.removeChild(a); } }, finished: function () { return f; }, load: function (a) { var b = d.createElement("script"); b.src = a; b.type = "text/javascript"; b.innerText; b.onerror = function () { _vwo_code.finish(); }; d.getElementsByTagName("head")[0].appendChild(b); }, getVersion: function () { return version; }, getMatchedCookies: function (matchPattern) { var matchedCookies = []; if (document.cookie) { matchedCookies = document.cookie.match(matchPattern) || []; } return matchedCookies; }, getCombinationCookie: function () { var matchedCookies = code.getMatchedCookies( /(?:^|;)\s?(_vis_opt_exp_\d+_combi=[^;$]*)/gi ); matchedCookies = matchedCookies.map(function (cookie) { try { var decodedCookie = decodeURIComponent(cookie); if ( !/_vis_opt_exp_\d+_combi=(?:\d+,?)+\s*$/.test(decodedCookie) ) { return ""; } return decodedCookie; } catch (e) { return ""; } }); var combinations = []; matchedCookies.forEach(function (each) { var cookiePair = each.match(/([\d,]+)/g); cookiePair && combinations.push(cookiePair.join("-")); }); return combinations.join("|"); }, init: function () { if (d.URL.indexOf("__vwo_disable__") > -1) return; window.settings_timer = setTimeout(function () { _vwo_code.finish(); _vwo_code.removeLoaderAndOverlay(); }, settings_tolerance); var filterConfig = this.filterConfig; if (!filterConfig || filterConfig.filterTime === "balanced") { var a = d.createElement("style"), b = hide_element ? hide_element + "{" + hide_element_style + "}" : "", h = d.getElementsByTagName("head")[0]; a.setAttribute("id", "_vis_opt_path_hides"); vwoCodeEl && a.setAttribute("nonce", vwoCodeEl.nonce); a.setAttribute("type", "text/css"); if (a.styleSheet) a.styleSheet.cssText = b; else a.appendChild(d.createTextNode(b)); h.appendChild(a); } if (filterConfig && filterConfig.filterTime === "early") { this.removeLoaderAndOverlay(); } var c = this.getCombinationCookie(); this.load( "https://dev.visualwebsiteoptimizer.com/j.php?a=" + account_id + "&u=" + encodeURIComponent(d.URL) + "&f=" + +is_spa + "&vn=" + version + (c ? "&c=" + c : "") ); return settings_timer; }, setFilterConfigAndApplyFilter: function (config) { if (!config) { return; } var state = this.isNonLiveMode(account_id) || config.isConsentGiven(); if (state === "1") { hide_element = "body"; window._vwo_settings_timer = _vwo_code.init(); return; } else if (state === "2") { return; } function clearIntervals(timerIds) { for (var i = 0; i < timerIds.length; i++) { clearInterval(timerIds[i]); } } this.filterConfig = config; var popupTimer = setInterval(function () { if (_vwo_code.applyFilters(config)) { clearInterval(popupTimer); } }, 100); var timer = setInterval(function () { var state = config.isConsentGiven(); var shouldClearAllIntervals; if (state === "1") { _vwo_code.showLoader(); window._vwo_settings_timer = _vwo_code.init(); shouldClearAllIntervals = true; } else if (state === "2") { _vwo_code.filterConfig = undefined; _vwo_code.removeLoaderAndOverlay(); shouldClearAllIntervals = true; } if (shouldClearAllIntervals) { clearIntervals([timer, popupTimer]); clearInterval(filterToleranceTimer); } }, 100); if (config.filterTolerance) { filterToleranceTimer = setTimeout(function () { _vwo_code.removeLoaderAndOverlay(); clearIntervals([timer, popupTimer]); }, config.filterTolerance); } }, showLoader: function () { var vwoOverlay = d.getElementsByClassName("vwo-overlay")[0]; if (!vwoOverlay) return; var vwoContentLoader = d.createElement("div"); vwoContentLoader.classList.add("vwo-content-loader"); vwoOverlay.parentNode.insertBefore( vwoContentLoader, vwoOverlay.nextSibling ); }, applyFilters: function (config) { var popup = d.querySelector(config.popupSelector); var popupZIndex; if (!popup && d.getElementById("_vis_opt_overlay")) { return; } var maxZIndex = 2147483647; if (popup) { var popupStyle = window.getComputedStyle(popup); popupZIndex = popupStyle.getPropertyValue("z-index"); if (!popupZIndex || popupZIndex === "auto") { popupZIndex = maxZIndex; } popup.style.zIndex = popupZIndex; } popupZIndex = popupZIndex || maxZIndex; var vwoFilter = "position: fixed; top: 0; left: 0; right: 0; bottom: 0; height: 100%; width: 100%; -webkit-filter: blur(5px); filter: blur(5px); backdrop-filter: saturate(180%) blur(3px); -webkit-backdrop-filter: saturate(180%) blur(3px); z-index:" + (popupZIndex - 1) + ";", vwoLoaderCss = " .vwo-content-loader{ border: 16px solid #f3f3f3; border-top: 16px solid #3498db; border-radius: 50%; width: 90px; height: 90px; position: fixed; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); animation: vwo-spin 2s linear infinite; z-index:" + (popupZIndex - 1) + "; }" + "@keyframes vwo-spin { 0% { -webkit-transform: translate(-50%, -50%) rotate(0deg); transform: translate(-50%, -50%) rotate(0deg); } 100% { -webkit-transform: translate(-50%, -50%) rotate(360deg); transform: translate(-50%, -50%) rotate(360deg); } }"; /** * This below written code should not be tweaked * */ var overlayStyleTag = d.getElementById("_vis_opt_overlay"), overlayCSS = ".vwo-overlay{" + vwoFilter + "}" + vwoLoaderCss; if (overlayStyleTag) { if (overlayStyleTag.styleSheet) { overlayStyleTag.styleSheet.cssText = overlayCSS; } else { var _vwo_textNode = d.createTextNode(overlayCSS); overlayStyleTag.appendChild(_vwo_textNode); overlayStyleTag.removeChild(overlayStyleTag.childNodes[0]); } } else { var a = d.createElement("style"), h = d.getElementsByTagName("head")[0], body = d.getElementsByTagName("body")[0]; var vwoOverlay = d.createElement("div"); vwoOverlay.classList.add("vwo-overlay"); body.prepend(vwoOverlay); a.setAttribute("id", "_vis_opt_overlay"); a.setAttribute("type", "text/css"); if (a.styleSheet) a.styleSheet.cssText = overlayCSS; else a.appendChild(d.createTextNode(overlayCSS)); h.appendChild(a); } return !!popup; }, removeLoaderAndOverlay: function () { var overlay = d.getElementsByClassName("vwo-overlay"); var loader = d.getElementsByClassName("vwo-content-loader"); var overlayStyleTag = d.getElementById("_vis_opt_overlay"); overlay && (overlay = overlay[0]) && overlay.parentElement.removeChild(overlay); loader && (loader = loader[0]) && loader.parentElement.removeChild(loader); overlayStyleTag && overlayStyleTag.parentElement.removeChild(overlayStyleTag); }, isNonLiveMode: function (accountId) { var wName = window.name; if (!wName) { return; } return ( (wName.indexOf("_vis_editor") > -1 || wName.indexOf("_vis_preview_" + accountId) > -1 || wName.indexOf("_vis_heatmap_" + accountId) > -1) && "1" ); }, }; return code; })(); _vwo_code.setFilterConfigAndApplyFilter({ popupSelector: "SELECTOR_PATH_OF_POPUP", filterTime: "FILTER_TIME_AS_PER_YOUR_PREFERENCE", isConsentGiven: function () { var consented =document.cookie.indexOf("C0004%3A1"); if(consented >-1) { return '1'; } else if (consented === -1) { return '2'; } else { return '3'; } }, filterTolerance: "HARD_TIMER_FOR_REMOVING_OVERLAY_AND_POPUP", }); </script> <!-- End VWO Async SmartCode --> <!-- BlueConic script start --> <script type="text/javascript" class="optanon-category-C0004" src="https://k244.pearson.com/script.js"></script> <!-- BlueConic script end --> <!-- Algolia---> <script src="https://cdn.jsdelivr.net/npm/algoliasearch@4.8.6/dist/algoliasearch-lite.umd.js" integrity="sha384-IOZI4NOHnjNUgjFM1ve1lHru3vDjs3NpgfwSuy2l5Lpn8IpoTh9GXwxITUL4ipUm" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/algoliasearch@4.8.6/dist/algoliasearch-lite.umd.js" integrity="sha384-luo2c12TZjgETdO3DWL+3/2foUYU8hIdTImzr3x3E+K1DSzBLUvO0CCqAEcc3XZK" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/autocomplete.js/0/autocomplete.min.js"></script> <!-- End of Algolia --> <!-- Algolia start --> <script type="text/javascript"> var algoliaConfigPath = "/etc/clientlibs/global-store/algolia-search/algolia-configs/live/global-store/sites/en-ca/highered-educators/algolia-config.2.json"; </script> <!-- Algolia end --> <!-- Google Tag Manager New --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MVH69VF');</script> <!-- End Google Tag Manager --> <script src='https://login.pearson.com/v1/piapi/login/js/v2/session.js'></script> <!-- This is the path to script for the current cloud service --> <script src="/etc/cloudservices/geolocation/global-store/_jcr_content/geolocation-context.js" charset="iso-8859-1"></script> <script src="/etc/cloudservices/geolocation/global-store/_jcr_content/geolocation-context.initScript.js"></script> <script type="text/javascript"> var globalProperties = {"siteId":"global-store","homePageLevel":3,"sitemapLevel":4,"sitemapIndexLevel":3,"msmSitesLevel":0,"selfReferencingCanonical":false,"extensionRemovalEnabled":false,"sitemapAlternativeLinksEnabled":false,"firstLevelNavEnabled":true,"secondLevelNavEnabled":true,"navContentEnabled":true,"footerFilteringEnabled":true,"useHomePageLevelInBreadcrumbs":true,"automaticMSMCanonicalTagEnabled":false,"columnControlConfigPath":"/etc/config/platform/aem-core/components/content/column-control-v3/columns","excludedContentPathsForSelfReferencingCanonicalTag":[],"navColumnControlConfigPath":"/etc/config/platform/aem-core/components/content/column-control-v3/columns","embedPageConfigPath":"/etc/config/platform/aem-core/components/page/embed-page/column-width-v2","megaNavContentBSVersion":4,"seoBreadcrumbEnabled":false,"seoHtmlMarkupEnabled":false,"enablePageLevelBreadcrumb":true,"blogPostConfig":false,"displayViewAllTagsForBlogs":true,"displayViewAllTagsForEvents":true,"rtlPage":false,"displayPastDatesForEvents":true,"walletAddEditEnabled":true,"walletAttemptsLimitationLogic":false,"cartMergeEnabled":true,"cartToHybrisEnabled":false,"manageSubscriptionEnabled":true,"showAutorenew":true,"updateProfileEnabled":true,"seoToolEnabled":true,"masterNodeDisabledForPreviewServer":false,"altTextGenerationEnabled":true,"recaptchValidationEnabled":false,"recaptchaV3Enabled":false,"multicoloredFaviconEnabled":true,"includeHiddenPagesInSitemap":false,"disableChatbotForInternalUsers":false,"contentSelectorExportJsonEnabled":false,"customDropdownEnabled":false,"contentTileNonSemanticMarkupEnabled":true,"tabPanelAccessibleMarkupEnabled":false,"localeSelectionAccessibleMarkupEnabled":true,"youTubeLazyLoadingEnabled":false,"heroSlideVideoBackgroundEnabled":false,"eventHeadingStyle":"h2","globalProperties":[{"errorPage":"/content/global-store/sites/en-ca/error.html"},{"ies-server-root":"https://login.pearson.com/v1/piapi"},{"cart-data-host":"https://api-pgi.pearson.com/headless/ecommerce/v2"},{"sign-up-educator-redirect":"/en-ca/instructor-verification"},{"download-limit-highrisk":"8"},{"download-limit-lowrisk":"50"},{"ies-ispmc":"true"},{"ies-terms-of-use-url":"/en-ca/legal-information/terms-of-use.html"},{"ies-privacy-policy-url":"/en-ca/legal-information/privacy-policy.html"},{"global-property-upsert-url":"https://api-gip-01.pgi.pearsonprd.tech/educator-account-upsert-papi/v1/account_upsert"},{"sift-api-url":"https://apigw-us-gip.pearson.com/sift/api/v205/events"},{"sift-beacon-key":"25bd44c182"},{"sift-api-key":"a39b3061b675f905"},{"sift-script-url":"https://cdn.siftscience.com/s.js"},{"user-restricted-redirect":"/{locale}.html"},{"pagesToRedirectFromAfterLogout":"/store/{locale}/checkout,/store/{locale}/my-account,/{locale}/my-learning"},{"terms-and-conditions-platforms-url":"/content/dam/global-store/global/educator/resources/aivmap.json"},{"brand_name":"pearson"},{"product-not-found-page-url":"/en-ca/legal-information/platforms-terms-and-conditions/product-not-found.html"},{"hybris-logout-url":"/store/en-ca/logout?autoLogoutFlag=true"},{"ies-server-login-path":"/iesui/signin"},{"ies-server-reset-password-path":"/iesui/forgot-unpw"},{"pmc-services-server-root":"https://service.pearson.com/pmc-services/user-profile-state"},{"progressive-profile-second-step-url":"https://www.pearson.com/en-ca/user/profiling"},{"launchdarkly-client-id":"65314c1b6faa991281047bf6"},{"allowed-return-hosts":"mypearson.com,pearson.com"},{"ies-client-id":"xO0f5VKQSrVWW3vH48j0Kx80ti51QXhU"}],"translations":{},"productMetatagNames":[],"navLibsCategories":["global.store.algolia-search.educator","one-dot-com.one-dot-com.he-js-base","dmcp.globalmessage","one-dot-com.one-dot-com.hed-navigation.nav-aem-header","one-dot-com.one-dot-com.hed-navigation.nav-footer"],"localesInfo":[{"en-us":"https://www.pearson.com/en-us.html"},{"en-gb":"https://www.pearson.com/en-gb.html"},{"en-au":"https://www.pearson.com/en-au.html"},{"en-nz":"https://www.pearson.com/en-nz.html"}],"suppressedExcludedLibsCategories":[],"standaloneLibsCategories":[]}; </script> <link rel="alternate" hreflang="en-CA" href="https://www.pearson.com/en-ca/legal-information/cookie-policy.html"/> <link rel="alternate" hreflang="en-US" href="https://www.pearson.com/en-us/legal-information/cookie-policy.html"/> <link rel="alternate" hreflang="en-GB" href="https://www.pearson.com/en-gb/legal-information/cookie-policy.html"/> <link rel="alternate" hreflang="x-default" href="https://www.pearson.com/legal-information/cookie-policy.html"/> <script>!function(e){var n="https://s.go-mpulse.net/boomerang/";if("False"=="True")e.BOOMR_config=e.BOOMR_config||{},e.BOOMR_config.PageParams=e.BOOMR_config.PageParams||{},e.BOOMR_config.PageParams.pci=!0,n="https://s2.go-mpulse.net/boomerang/";if(window.BOOMR_API_key="XCNNJ-G8PCV-U855W-LP259-ULUSU",function(){function e(){if(!r){var e=document.createElement("script");e.id="boomr-scr-as",e.src=window.BOOMR.url,e.async=!0,o.appendChild(e),r=!0}}function t(e){r=!0;var n,t,a,i,d=document,O=window;if(window.BOOMR.snippetMethod=e?"if":"i",t=function(e,n){var t=d.createElement("script");t.id=n||"boomr-if-as",t.src=window.BOOMR.url,BOOMR_lstart=(new Date).getTime(),e=e||d.body,e.appendChild(t)},!window.addEventListener&&window.attachEvent&&navigator.userAgent.match(/MSIE [67]\./))return window.BOOMR.snippetMethod="s",void t(o,"boomr-async");a=document.createElement("IFRAME"),a.src="about:blank",a.title="",a.role="presentation",a.loading="eager",i=(a.frameElement||a).style,i.width=0,i.height=0,i.border=0,i.display="none",o.appendChild(a);try{O=a.contentWindow,d=O.document.open()}catch(_){n=document.domain,a.src="javascript:var d=document.open();d.domain='"+n+"';void 0;",O=a.contentWindow,d=O.document.open()}if(n)d._boomrl=function(){this.domain=n,t()},d.write("<bo"+"dy onload='document._boomrl();'>");else if(O._boomrl=function(){t()},O.addEventListener)O.addEventListener("load",O._boomrl,!1);else if(O.attachEvent)O.attachEvent("onload",O._boomrl);d.close()}function a(e){window.BOOMR_onload=e&&e.timeStamp||(new Date).getTime()}if(!window.BOOMR||!window.BOOMR.version&&!window.BOOMR.snippetExecuted){window.BOOMR=window.BOOMR||{},window.BOOMR.snippetStart=(new Date).getTime(),window.BOOMR.snippetExecuted=!0,window.BOOMR.snippetVersion=14,window.BOOMR.url=n+"XCNNJ-G8PCV-U855W-LP259-ULUSU";var i=document.currentScript||document.getElementsByTagName("script")[0],o=i.parentNode,r=!1,d=document.createElement("link");if(d.relList&&"function"==typeof d.relList.supports&&d.relList.supports("preload")&&"as"in d)window.BOOMR.snippetMethod="p",d.href=window.BOOMR.url,d.rel="preload",d.as="script",d.addEventListener("load",e),d.addEventListener("error",function(){t(!0)}),setTimeout(function(){if(!r)t(!0)},3e3),BOOMR_lstart=(new Date).getTime(),o.appendChild(d);else t(!1);if(window.addEventListener)window.addEventListener("load",a,!1);else if(window.attachEvent)window.attachEvent("onload",a)}}(),"".length>0)if(e&&"performance"in e&&e.performance&&"function"==typeof e.performance.setResourceTimingBufferSize)e.performance.setResourceTimingBufferSize();!function(){if(BOOMR=e.BOOMR||{},BOOMR.plugins=BOOMR.plugins||{},!BOOMR.plugins.AK){var n=""=="true"?1:0,t="",a="bdpnbevydq2gsz2csfaq-f-7bcd5ace5-clientnsv4-s.akamaihd.net",i="false"=="true"?2:1,o={"ak.v":"39","ak.cp":"797525","ak.ai":parseInt("503985",10),"ak.ol":"0","ak.cr":4,"ak.ipv":4,"ak.proto":"http/1.1","ak.rid":"21a07066","ak.r":23331,"ak.a2":n,"ak.m":"x","ak.n":"essl","ak.bpcip":"8.222.208.0","ak.cport":47054,"ak.gh":"23.50.232.140","ak.quicv":"","ak.tlsv":"tls1.2","ak.0rtt":"","ak.0rtt.ed":"","ak.csrc":"-","ak.acc":"reno","ak.t":"1732415809","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==M8/YK93xIKn7rMbHoM609KNngj+k3xHB75BtgLhlLEBDQoPNkf33rVF3DBwXcB/K1C1ew7sRzh19K2BogA2JD7fmuccICfQK4Tk5A+WGO2PA43sem+gf2FQAg5Pp+dv+nk681E0oU/+LQTfCEtylhMTZ742NM61l5H+xqGyD91aZB1gENjN6uNJ5Wttw8/SbyIeYi9fH1Nl08kZcD12yZE+8UIDVkwg6gfyWM1y/Y2NqX98+8QHtJChwX0z6GQgIiPGR5Sxs2KRH8onfbFjcyjlGMUbOppQ+9JkgCzE9OQ/GIox/uTt57UmP3r/XRFpVVrQ5B1G/wZd3sJcp0vxwFUQjKK/jYKWTKjpdnb9aCrcE1GfHhCZoa5fKSuvK0ULidE9sLRo7+/IP6dCEPCDZE9kfJjWXYwNFo2j4Mgnxfmo=","ak.pv":"153","ak.dpoabenc":"","ak.tf":i};if(""!==t)o["ak.ruds"]=t;var r={i:!1,av:function(n){var t="http.initiator";if(n&&(!n[t]||"spa_hard"===n[t]))o["ak.feo"]=void 0!==e.aFeoApplied?1:0,BOOMR.addVar(o)},rv:function(){var e=["ak.bpcip","ak.cport","ak.cr","ak.csrc","ak.gh","ak.ipv","ak.m","ak.n","ak.ol","ak.proto","ak.quicv","ak.tlsv","ak.0rtt","ak.0rtt.ed","ak.r","ak.acc","ak.t","ak.tf"];BOOMR.removeVar(e)}};BOOMR.plugins.AK={akVars:o,akDNSPreFetchDomain:a,init:function(){if(!r.i){var e=BOOMR.subscribe;e("before_beacon",r.av,null,null),e("onbeacon",r.rv,null,null),r.i=!0}return this},is_complete:function(){return!0}}}}()}(window);</script></head> <body data-breadcrumb="true" class="page basicpage" id="page-1787ef3548"> <script src="/etc/clientlibs/platform/aem-core/ies-session.min.ACSHASH70b4b3c7e053d633c2d7be7163e8646a.js"></script> <header> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <div class="iparsys parsys aem-GridColumn aem-GridColumn--default--12"><div class="section"><div class="new"></div> </div><div class="iparys_inherited"><div class="iparsys parsys"><div class="experiencefragment section"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> </div> </div> </div> </div> </div> </div> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <div class="iparsys parsys aem-GridColumn aem-GridColumn--default--12"><div class="section"><div class="new"></div> </div><div class="iparys_inherited"><div class="iparsys parsys"><div class="experiencefragment section"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control aem-GridColumn aem-GridColumn--default--12 he-navigation-topnav"> <div class="container"> <div class="row"><div class="col-sm-9 col-xs-12"><div role="navigation" class="mega-nav navbar navbar-default section"> <div class="navbar-header"> <button aria-label=" items" data-toggle="collapse" data-target="#navbar-collapse-grid" class="navbar-toggle" aria-expanded="false"><span class="fa fa-bars"></span></button> </div> <div id="navbar-collapse-grid" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/schools.html" role="link" target="_self" aria-label="for-school" class="dropdown-toggle js-opacity-0"> For School </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/higher-education.html" role="link" target="_self" aria-label="for-college" class="dropdown-toggle js-opacity-0"> For College &amp; University </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/work.html" role="link" target="_self" aria-label="for-work" class="dropdown-toggle js-opacity-0"> For Work </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/explore-pearson.html" role="link" target="_self" aria-label="all-pearson" class="dropdown-toggle js-opacity-0"> Explore Pearson </a> </li> </ul> </div> </div> </div><div class=" col-sm-3 col-xs-12"><div class="locale-selection section"> <div> <button class="locale-selection__button selected_en-CA" aria-haspopup="true" aria-label="Locale Selection. Currently selected: Canada" aria-expanded="false" aria-controls="locale-selection-dropdown"> Canada </button> <div class="locale-selection__dropdown" aria-describedby="locale-selection-description" id="locale-selection-dropdown"> <ul role="menu" aria-label="Locale Selection"> <li role="none"> <a role="menuitem" lang="en-US" hreflang="en-US" href="https://www.pearson.com/en-us.html"> United States </a> </li> <li role="none"> <a role="menuitem" lang="en-CA" hreflang="en-CA" href="https://www.pearson.com/en-ca.html" aria-selected="true"> Canada </a> </li> <li role="none"> <a role="menuitem" lang="en-GB" hreflang="en-GB" href="https://www.pearson.com/en-gb.html"> United Kingdom </a> </li> <li role="none"> <a role="menuitem" lang="en" hreflang="en" href="https://www.pearson.com/en-ca/location-selector.html"> All countries </a> </li> </ul> </div> </div> </div> </div></div> </div> </section> </div> </div> </div> </div> </div> </div> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <div class="iparsys parsys aem-GridColumn aem-GridColumn--default--12"><div class="section"><div class="new"></div> </div><div class="iparys_inherited"><div class="iparsys parsys"><div class="experiencefragment section"> <div class="xf-content-height"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control he-pr-nav__wrapper layout-default clipping-default clip-target-default default-texture default-animation default-gutters has-padding-top--none has-padding-bottom--none default-padding-horizontal default-min-height default-rule default-corner-radius default-shadow aem-GridColumn nav-content-selector aem-GridColumn--default--12 isAuthenticated"> <div class="container"> <div class="row"><div class="col-12"><div role="navigation" class="mega-nav navbar navbar-default he-header-mobile-nav he-drop-down-nav section"> <div data-aria-label-nav="Menu"></div> <div class="navbar-header"> <button aria-label="Menu items" data-toggle="collapse" data-target="#navbar-collapse-grid" class="navbar-toggle" aria-expanded="false"><span class="fa fa-bars"></span></button> </div> <div id="navbar-collapse-grid" class="navbar-collapse collapse"> <div class="mega-nav-items-container"> <ul class="nav navbar-nav"> <li class="dropdown mega-nav-full-width"> <a href="#" role="button" target="_self" aria-label="for-school" aria-controls="menu-item--forschool" class="dropdown-toggle js-opacity-0" data-toggle="dropdown"> For School <span class="caret"></span> </a> <div id="menu-item--forschool" class="dropdown-menu"> <div class="text he-nav--mobile-only mobile-nav--back section"> <p><a href="#">Back to main menu</a></p> </div> <div class="text he-nav--mobile-only section"> <h2>FOR SCHOOL</h2> </div> <div class="text explore-link-text he-nav--mobile-only section"> <p><a href="https://www.pearson.com/en-ca/schools.html">Explore for School</a></p> </div> <div role="navigation" class="mega-nav navbar navbar-default he-nav--arrow-links section"> </div> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://www.pearsoncanadaschool.com/index.cfm?locator=PS2wSm" target="_blank" class="new-window" rel="noreferrer">K-12 Education Support​ </a> </li> <li> <a href="https://support.pearson.com/usclinical/s/" target="_blank" class="new-window" rel="noreferrer">Clinical Assessment Support </a> </li> <li> <a href="https://pearsonelt.ca/get-support/" target="_blank" class="new-window" rel="noreferrer">English Language Teaching Support </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </li> <li class="dropdown mega-nav-full-width"> <a href="#" role="button" target="_self" aria-label="for-college" aria-controls="menu-item--forcollegeuniversity" class="dropdown-toggle js-opacity-0" data-toggle="dropdown"> For College &amp; University <span class="caret"></span> </a> <div id="menu-item--forcollegeuniversity" class="dropdown-menu"> <div class="text he-nav--mobile-only mobile-nav--back section"> <p><a href="#">Back to main menu</a></p> </div> <div class="text he-nav--mobile-only section"> <h2>FOR COLLEGE</h2> </div> <div class="text explore-link-text he-nav--mobile-only section"> <p><a href="https://www.pearson.com/en-ca/higher-education.html">Explore for College</a></p> </div> <div role="navigation" class="mega-nav navbar navbar-default he-nav--arrow-links section"> <div class="navbar-header"> <button aria-label=" items" data-toggle="collapse" data-target="#navbar-collapse-grid" class="navbar-toggle" aria-expanded="false"><span class="fa fa-bars"></span></button> </div> <div id="navbar-collapse-grid" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/higher-education/students.html" role="link" target="_self" aria-label="students" aria-controls="menu-item--students" class="dropdown-toggle js-opacity-0" data-toggle="dropdown"> Students <span class="caret"></span> </a> <div id="menu-item--students" class="dropdown-menu"> <div class="text he-nav--mobile-only mobile-nav--back section"> <p><a href="#">Back to For College</a></p> </div> <div class="text he-nav--mobile-only section"> <h2>STUDENTS</h2> </div> <div class="text explore-link-text he-nav--mobile-only section"> <p><a href="https://www.pearson.com/en-ca/higher-education/students.html">Explore Students</a></p> </div> <div class="embed section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-md-3 col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Shop For Your Courses</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/pearsonplus.html">eTextbooks </a> </li> <li> <a href="https://www.mondly.com/" target="_blank" class="new-window" rel="noreferrer">Mondly by Pearson (TM) </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/students.html">All Student Resources </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-md-3 col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="718452942-1" aria-expanded="false"> <span>Sign into Digital Learning Platform</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="718452942-1"> <div class="link-list section c-footer__link-list"> <div> <ul id="mn-root--488284454"> <li> <a href="https://login.pearson.com/v1/piapi/iesui/signin?client_id=ejQ30eVDKpw6inZeCXwIaBAcLikqQT2a&login_success_url=https%3A%2F%2Fwww.pearson.com%2Fen-us%2Fpearsonplus%2Fuser%2Fprofiling%3FnextPage%3Dhttps%253A%252F%252Fwww.pearson.com%252Fen-us%252Fpearsonplus.html%26attrCheck%3DeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyRGF0YVRvQ2hlY2siOlsxMCwyMCwzMCw0MCw1MCw1MSw1Ml19.wdrDMMqGiZasDVrUL8TMv55XuQkSb4nEby3XmkV2g0s" target="_blank" class="new-window" rel="noreferrer">eTextbooks </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/mastering.html" target="_blank" class="new-window" rel="noreferrer">Mastering </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/mylab.html" target="_blank" class="new-window" rel="noreferrer">MyLab </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/revel.html">Revel </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-md-3 col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="900265415-1" aria-expanded="false"> <span>Get Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="900265415-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-402861665"> <li> <a href="https://login.pearson.com/v1/piapi/login/saml/generateResponse?sessionType=fr&targetUrl=https://support.pearson.com/getsupport/s/learners" target="_blank" class="new-window" rel="noreferrer">Student Support </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-md-3 col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="100367895-1" aria-expanded="false"> <span>Resources</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="100367895-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root--1017926991"> <li> <a href="https://www.pearson.com/en-ca/higher-education/students/student-programs/pearson-campus-ambassador.html">Be a Pearson Campus Ambassador </a> </li> <li> <a href="https://www.pearson.com/en-ca/diversity-inclusion/truth-and-reconciliation.html" target="_blank" class="new-window" rel="noreferrer">Truth &amp; Reconciliation </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> <div class="text he-nav--mobile-only cart-link-text section"> <p><a href="/store/en-ca/cart" title="Cart" class="cart-link">Cart</a></p> </div> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://support.pearson.com/getsupport/s/educators" target="_blank" class="new-window" rel="noreferrer">Educator Support </a> </li> <li> <a href="https://support.pearson.com/getsupport/s/learners" target="_blank" class="new-window" rel="noreferrer">Student Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support.html">All College Support </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/higher-education/educators.html" role="link" target="_self" aria-label="educators" aria-controls="menu-item--educators" class="dropdown-toggle js-opacity-0" data-toggle="dropdown"> Educators <span class="caret"></span> </a> <div id="menu-item--educators" class="dropdown-menu"> <div class="text he-nav--mobile-only mobile-nav--back section"> <p><a href="#">Back to For College</a></p> </div> <div class="text he-nav--mobile-only section"> <h2>EDUCATORS</h2> </div> <div class="text explore-link-text he-nav--mobile-only section"> <p><a href="https://www.pearson.com/en-ca/higher-education/educators.html">Explore Educators</a></p> </div> <div class="embed section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-md-3 col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Find Products &amp; Services</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://www.pearson.com/en-ca/higher-education/educators/digital-learning-environments.html">Digital Learning Platforms </a> </li> <li> <a href="https://www.pearson.com/en-ca/search.html">Browse the Catalogue </a> </li> </ul> </div> </div> </div> </section> </div> <div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="477563589-1" aria-expanded="false"> <span>Featured Products</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="477563589-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-1619015391"> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/pearsonplus.html">eTextbooks on Pearson+ </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/mastering.html">Mastering </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/mylab.html">MyLab </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/products-services/revel.html">Revel </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-md-3 col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="718452942-1" aria-expanded="false"> <span>Explore Resources for Your Discipline</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="718452942-1"> <div class="link-list section c-footer__link-list"> <div> <ul id="mn-root--488284454"> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/accounting.html">Accounting </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/business-economics.html">Business &amp; Economics </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/engineering.html">Engineering &amp; Computer Science </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/english.html">English </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/humanities-social-sciences.html">Humanities &amp; Social Science </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/math-statistics.html">Math &amp; Statistics </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/psychology.html">Psychology </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/sciences.html">Sciences </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline/information-technology-mis.html">Information Technology &amp; MIS </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/resources-by-discipline.html">All Discipline Resources </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-md-3 col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="900265415-1" aria-expanded="false"> <span>Get Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="900265415-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-402861665"> <li> <a href="https://login.pearson.com/v1/piapi/login/saml/generateResponse?sessionType=fr&targetUrl=https://support.pearson.com/getsupport/s/educators" target="_blank" class="new-window" rel="noreferrer">Educator Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support/pearson-dot-com-educator-account-faqs.html">Instructor Resources &amp; Request a Copy </a> </li> <li> <a href="/en-ca/help-and-support/contact-us/find-a-rep.html">Find Your Rep </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-md-3 col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="100367895-1" aria-expanded="false"> <span>Learn &amp; Connect</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="100367895-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root--1017926991"> <li> <a href="https://www.pearson.com/en-ca/higher-education/about-us.html">Why Choose Pearson? </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/insights-and-events/webinars-events.html">Webinars &amp; Events </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/insights-and-events/higher-education-blog.html">Blogs </a> </li> <li> <a href="https://www.pearson.com/en-ca/diversity-inclusion/truth-and-reconciliation.html" target="_blank" class="new-window" rel="noreferrer">Truth &amp; Reconciliation </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> <div class="text he-nav--mobile-only cart-link-text section"> <p><a href="/store/en-ca/cart" title="Cart" class="cart-link">Cart</a></p> </div> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://support.pearson.com/getsupport/s/educators" target="_blank" class="new-window" rel="noreferrer">Educator Support </a> </li> <li> <a href="https://support.pearson.com/getsupport/s/learners" target="_blank" class="new-window" rel="noreferrer">Student Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support.html">All College Support </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/search.html" role="link" target="_self" aria-label="store" aria-controls="menu-item--browsebysubject" class="dropdown-toggle js-opacity-0" data-toggle="dropdown"> Browse by Subject <span class="caret"></span> </a> <div id="menu-item--browsebysubject" class="dropdown-menu"> <div class="text he-nav--mobile-only mobile-nav--back section"> <p><a href="#">Back to For College</a></p> </div> <div class="text he-nav--mobile-only section"> <h2>BROWSE BY SUBJECT</h2> </div> <div class="text explore-link-text he-nav--mobile-only section"> <p><a href="https://www.pearson.com/en-ca/search.html">Explore our subjects</a></p> </div> <div class="embed section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Shop for College &amp; University</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default link-list--columns-4 section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="/en-ca/search.html/Arts">Arts </a> </li> <li> <a href="/en-ca/search.html/Business+%26+Economics">Business &amp; Economics </a> </li> <li> <a href="/en-ca/search.html/Careers+%26+Trades">Careers &amp; Trades </a> </li> <li> <a href="/en-ca/search.html/Social+Sciences/Communication">Communication </a> </li> <li> <a href="/en-ca/search.html/Computer+Science">Computer Science </a> </li> <li> <a href="/en-ca/search.html/Engineering">Engineering </a> </li> <li> <a href="/en-ca/search.html/English">English </a> </li> <li> <a href="/en-ca/search.html/Health+Professions">Health Professions </a> </li> <li> <a href="/en-ca/search.html/Helping+Professions">Helping Professions </a> </li> <li> <a href="/en-ca/search.html/Humanities">Humanities </a> </li> <li> <a href="/en-ca/search.html/Information+Technology">Information Technology </a> </li> <li> <a href="/en-ca/search.html/Mathematics">Mathematics </a> </li> <li> <a href="/en-ca/search.html/Nursing">Nursing </a> </li> <li> <a href="/en-ca/search.html/Personal+%26+Professional+Development">Personal &amp; Professional Development </a> </li> <li> <a href="/en-ca/search.html/Science">Science </a> </li> <li> <a href="/en-ca/search.html/Social+Sciences">Social Sciences </a> </li> <li> <a href="/en-ca/search.html/Statistics">Statistics </a> </li> <li> <a href="/en-ca/search.html/Teacher+Education">Teacher Education </a> </li> <li> <a href="/en-ca/search.html/World+Languages">World Languages </a> </li> <li> <a href="https://www.pearson.com/en-ca/search.html">View All </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> <div class="text he-nav--mobile-only cart-link-text section"> <p><a href="/store/en-ca/cart" title="Cart" class="cart-link">Cart</a></p> </div> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://support.pearson.com/getsupport/s/educators" target="_blank" class="new-window" rel="noreferrer">Educator Support </a> </li> <li> <a href="https://support.pearson.com/getsupport/s/learners" target="_blank" class="new-window" rel="noreferrer">Student Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support.html">All College Support </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </li> </ul> </div> </div> <div class="text he-nav--mobile-only cart-link-text section"> <p> <a href="/store/en-ca/cart" title="Cart" class="cart-link">Cart</a></p> </div> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://support.pearson.com/getsupport/s/educators" target="_blank" class="new-window" rel="noreferrer">Educator Support </a> </li> <li> <a href="https://support.pearson.com/getsupport/s/learners" target="_blank" class="new-window" rel="noreferrer">Student Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support.html">All College Support </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </li> <li class="dropdown mega-nav-full-width"> <a href="#" role="button" target="_self" aria-label="for-work" aria-controls="menu-item--forwork" class="dropdown-toggle js-opacity-0" data-toggle="dropdown"> For Work <span class="caret"></span> </a> <div id="menu-item--forwork" class="dropdown-menu"> <div class="text he-nav--mobile-only mobile-nav--back section"> <p><a href="#">Back to main menu</a></p> </div> <div class="text he-nav--mobile-only section"> <h2>FOR WORK</h2> </div> <div class="text explore-link-text he-nav--mobile-only section"> <p><a href="https://www.pearson.com/en-ca/work.html">Explore for work</a></p> </div> <div role="navigation" class="mega-nav navbar navbar-default he-nav--arrow-links section"> </div> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://support.credly.com/hc/en-us" target="_blank" class="new-window" rel="noreferrer">Credly Support </a> </li> <li> <a href="https://www.talentlens.com/about/get-in-touch-for-more-details.html" target="_blank" class="new-window" rel="noreferrer">TalentLens Support </a> </li> <li> <a href="https://www.pearsonaccelerated.com/contact.html" target="_blank" class="new-window" rel="noreferrer">Accelerated Pathways Contact </a> </li> <li> <a href="https://www.pearson.com/skills-accelerator/form.html" target="_blank" class="new-window" rel="noreferrer">Skills Accelerator Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/work/support.html">All Work Support </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/explore-pearson.html" role="link" target="_self" aria-label="all-pearson" class="dropdown-toggle js-opacity-0"> Explore Pearson </a> </li> </ul> <div class="embed he-nav--mobile-only support-accordion section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control has-padding-top--none has-padding-bottom--none aem-GridColumn aem-GridColumn--default--12 c-footer__navigation"> <div class="container"> <div class="row"><div class="col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1228987119-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1228987119-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-447237513"> <li> <a href="https://www.pearsoncanadaschool.com/customer-support/help-and-support.html" target="_blank" class="new-window" rel="noreferrer">School Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support.html">College &amp; University Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/work/support.html">Work Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/legal-information/global-rights-licensing.html">Global Rights Licensing </a> </li> <li> <a href="https://www.pearson.com/en-ca/global-permission-granting.html">Global Permissions </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </div> </div> </div> <div class="logo-v2 header__logo section"> <a id="logo" href="https://www.pearson.com/en-ca.html" aria-label="Pearson Logo"> <picture> <source media="(max-width: 414px)" srcset="/content/dam/help/hedReimagined/logos/logo-hed--on-dark.svg"/> <img src="/content/dam/help/hedReimagined/logos/logo-hed--on-dark.svg" alt="Pearson"/> </picture> </a> </div> <div role="navigation" class="mega-nav navbar navbar-default section he-header-desktop-nav"> </div> <div class="function-panel section function-panel educator-nav__search c-nav__search aem-GridColumn aem-GridColumn--default--12"> <div class="facet__auto_suggest" data-fp-attributes="{&quot;productsTitle&quot;:&quot;PRODUCTS&quot;,&quot;suggestedTitle&quot;:&quot;SUGGESTED SEARCHES&quot;}" data-hide-tags="true"></div> </div> <section class="column-control layout-default clipping-default clip-target-default default-texture default-animation default-gutters has-padding-top--none has-padding-bottom--none default-padding-horizontal default-min-height default-rule default-corner-radius default-shadow he-header-icon-navigation section"> <div class="row"><div class="col-12"><div class="parsys section"><div class="text text-default default-btn-type default-btn-width default-btn-size default-links default-color has-padding-top--none has-padding-bottom--none he-header-desktop-cart section"> <a href="/store/en-ca/cart" title="Cart" class="cart-link"> </a> </div> <div role="navigation" class="mega-nav navbar navbar-default he-header-help-nav he-icon-dropdown he-drop-down-nav on-left section"> <div data-aria-label-nav="Support"></div> <div class="navbar-header"> <button aria-label="Support items" title="Support" data-toggle="collapse" data-target="#Support" class="navbar-toggle" aria-expanded="false"><span class="fa fa-bars"></span></button> </div> <div id="Support" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearsoncanadaschool.com/customer-support/help-and-support.html" role="link" target="_blank" class="dropdown-toggle js-opacity-0"> School Support </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/higher-education/support.html" role="link" target="_self" class="dropdown-toggle js-opacity-0"> College &amp; University Support </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/work/support.html" role="link" target="_self" class="dropdown-toggle js-opacity-0"> Work Support </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/legal-information/global-rights-licensing.html" role="link" target="_self" class="dropdown-toggle js-opacity-0"> Global Rights Licensing </a> </li> <li class="dropdown mega-nav-full-width"> <a href="https://www.pearson.com/en-ca/global-permission-granting.html" role="link" target="_self" class="dropdown-toggle js-opacity-0"> Global Permissions </a> </li> </ul> </div> </div> <div class="custom-header he-user-navigation section"> <div class="custom-header__container container"> <div id="custom-header" class="row" data-header-path="/store/en-us/commerce-header-v2"></div> </div> </div> </div> </div></div> </section> </div></div> </div> </section> </div> </div> </div> <nav class="breadcrumb-wrapper-nav-hide c-breadcrumb__wrapper section"> <nav class="breadcrumb c-breadcrumb__nav section" aria-label="Breadcrumb"> <ol class="c-breadcrumb__list"> <li class="c-breadcrumb__item"> <a href="https://www.pearson.com/en-ca.html">Home Page</a> <span>&gt;</span> </li> <li class="c-breadcrumb__item" aria-current="page"> <p>Cookies policy</p> </li> </ol> </nav> </nav> </div> </div> </div> </div> </header> <main role="main"><div> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control layout-default default-padding-top default-padding-bottom default-padding-horizontal default-min-height default-rule aem-GridColumn aem-GridColumn--default--12"> <div class="container"> <div class="row"><div class="col-md-8 col-12"><div class="embed section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <div class="title default-color text-align--left aem-GridColumn aem-GridColumn--default--12"> <h1 class=" "> Cookies Notice </h1></div> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <div class="content-tile behavior--none content-tile-portrait bgcolor--default default-links default-btn-type default-btn-size default-btn-width pad--default__figure pad-eq-vertical--default__caption pad-eq-horizontal--default__caption default-title-typesize default-title-typeweight default-subtitle-typesize default-subtitle-typeweight default-subtitle-color default-content-tile-text--col-count aem-GridColumn aem-GridColumn--default--12"> <div class="content-tile-container"> <div class="content-tile__figure"> <div class="content-tile__figcaption"> <div class="content-tile-text rte-container"><h4>We use cookies to make our websites more user-friendly. Find out about the main types of cookies we use, and what we use them for.</h4> <h2>What are cookies?</h2> <p>Cookies are small pieces of text which are downloaded to your device, for example, when you visit a website. Cookies are useful because they allow Pearson to understand our customers better so that we can provide a more focused user experience. Using the knowledge of your previous visits to our website, Pearson can enhance subsequent visits by tailoring our content to match your requirements. You can find more general information about cookies at: <a href="http://www.allaboutcookies.org/">www.allaboutcookies.org</a>.</p> <p><b>When we mention &quot;cookies&quot;, we also mean other technologies such as web beacons and pixels that collect information in a similar way to cookies on websites or emails. When we mention &quot;websites&quot;, we also mean mobile applications and emails.</b></p> <h2>How do we use cookies?</h2> <p>We use cookies principally because we want to make our websites and mobile applications user-friendly, and we are interested in anonymous user behavior. Generally, our cookies don't store sensitive or personally identifiable information such as your name and address or credit card details.</p> <p>In the unlikely event that our websites use cookies to store personal information about you, Pearson encrypts the personal data to prevent unauthorized use by anyone else.</p> <p>Pearson uses two main categories of cookie: (1) strictly necessary cookies; and (2) optional cookies:</p> <h3>1. Strictly Necessary Cookies</h3> <p>These cookies are essential to enable you to use the features of our services and websites, such as technically delivering content, setting your privacy preferences, logging in, making payments or filling in forms. Without these cookies, our services cannot be provided so you cannot decline them.</p> <h3>2. Optional Cookies</h3> <p>Optional cookies consist of all the other cookies we use to enhance our products and services and deliver you the best user experience. These optional cookies fall into several categories which you can read more about below.</p> <h2>Performance cookies</h2> <p>These cookies collect information about how visitors use a website, for instance which pages visitors go to most often, and they let you store items in your shopping basket between visits. They may also show us which email or web page visitors clicked through from in order to visit our website, and whether you opened an email we sent you.</p> <p>Some of these are analytics cookies, set using third party web analytics software, which allow us to monitor our website traffic. For example, we use Google Analytics and Universal Analytics cookies to help us do this. These analytics cookies may also tell us how many of our visitors are male or female, and may summarize the number of visitors who fall within certain age ranges, or certain interest categories. However, this sort of information is not linked to any individual; it just shows us what percentage of our visitors fall in particular categories.</p> <p><a href="https://policies.google.com/technologies/partner-sites">Find out more about how Google uses your data</a> or <a href="https://support.google.com/analytics/answer/181881?hl=en">opt out from having your data sent to Google</a>.</p> <p>We will not pass this data to third parties in such a way that would allow them to identify visitors personally. However, we may associate this cookie data with other personally identifiable data submitted by you (for instance when you submit a form, or partially complete a form, or leave items in your shopping basket), in order to make sure that our communications are as relevant to you as possible.</p> <p>Sometimes we may use this data to highlight Pearson products or services which we think will be of interest to you based on your use of our websites, or to contact you and offer help if you appear to be having difficulty completing an order.</p> <p>We may also use third party cookies during e-commerce transactions to help prevent fraud.</p> <h2>Functionality cookies</h2> <p>These cookies allow the website to remember choices you make (such as your user name, language or the region you are in) and provide enhanced, more personal features. For instance, these cookies can be used to remember changes you have made to text size, fonts and other parts of web pages that you can customize.</p> <p>They may also be used to provide services you have asked for such as watching a video or commenting on a blog. The information these cookies collect may be anonymized and they cannot track your browsing activity on other websites.</p> <h2>Behaviorally targeted advertising cookies</h2> <p>We use these cookies to deliver adverts more relevant to you and your interests. They are also used to limit the number of times you see an advertisement as well as to help measure the effectiveness of the advertising campaign.</p> <p>These cookies remember that you have visited our website and use this information to tailor advertising for our products and services when you visit third party websites.</p> <p>The cookies are placed by advertising networks. In line with Internet Advertising Bureau guidelines, our online advertising served via this method includes the AdChoices icon. Clicking on that icon will give more information about tracking cookies and allow you to opt out of receiving further targeted advertising. For more information, and how to opt out of these cookies, head over to <a href="https://youradchoices.com/">AdChoices</a>.</p> <h2>Third-party cookies and social networks</h2> <p>If you click on a hyperlink from Pearson's websites to any third-party websites (for example, if you 'share' content from Pearson’s websites with friends or colleagues through social networks), you may be sent cookies from these third-party websites.</p> <p>Third-party websites will have their own privacy and cookie policies which Pearson cannot control. Please check the third-party websites for more information about their cookies and how to manage them.</p> <p><b>Do we track visitors and users?</b></p> <p>Our emails may contain a “web beacon pixel” to tell us whether our emails are opened and verify any clicks through to links or advertisements within the email.</p> <p>We may use this information for purposes including determining which of our emails are more interesting to users, and to query whether users who do not open our emails wish to continue receiving them.</p> <p>The pixel will be deleted when you delete the email. If you do not wish the pixel to be downloaded to your device, you should read the email in plain text view or with images disabled.</p> <p>We use cookies from Pardot to track the browsing behavior of individual website visitors such as page view activity and impression time, in order to help us better monitor the success of our website. This information is compiled to make improvements to our website.</p> <p>Personal information is stored in Pardot/Salesforce only if our visitors complete a form, for example for registration to events, contact/request forms or for subscription to our email communications.</p> <p><a href="https://help.salesforce.com/s/articleView?language=en_US&amp;id=bundle_pardot_parent.htm">Read more about this third party cookie, including the provider’s privacy statement</a></p> <h2><a id="do-not-sell-or-share-my-data"></a>DO NOT SELL OR SHARE MY DATA (U.S. Customers)</h2> <p>When you visit Pearson sites and services, we may collect personal data related to you, your interests and/or your device. This data may be used for a variety of purposes, such as providing a more personalized experience. When this data is shared with third parties, it may be considered a “sale,” “sharing” or “targeted advertising” under various state laws. Those states typically provide their residents (or, in some cases, their authorized agents) with the right to opt out of “targeted advertising,” “selling,” or “sharing” of personal information. At Pearson, we extend this right to all our U.S. customers regardless of your state of residence. You can choose to opt out of such “sale,” “sharing” or “targeted advertising” of your personal data by turning off all non-essential cookies via our Cookie Preferences Management Tool.</p> </div> </div> </div> </div> </div> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <div class="link-list aem-GridColumn aem-GridColumn--default--12"> <div> <ul id="mn-root--1802853324"> <li> <a href="https://www.pearson.com/en-ca/legal-information/cookie-policy.html" aria-label="Cookie Settings" id="open-ot-preference-modal">Visit the Cookie Preferences Management Tool </a> </li> </ul> </div> </div> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <div class="content-tile aem-GridColumn aem-GridColumn--default--12"> <div class="content-tile-container"> <div class="content-tile__figure"> <div class="content-tile__figcaption"> <div class="content-tile-text rte-container"><h3>Managing and Blocking Cookies</h3> <p>You may also manage and/or block cookies via your browser settings. In addition, you can use opt-out tools for ad networks and firms who participate in the Network Advertising Initiative at <a href="http://optout.networkadvertising.org/">http://optout.networkadvertising.org/</a> or the Digital Advertising Alliance at <a href="http://optout.aboutads.info/">http://optout.aboutads.info/</a>.</p> <p>To effectively manage cookies via browser settings or through these ad industry opt-out tools, you must opt-out and set cookie preferences on all browsers and all devices that you use. If you clear cache or cookies, be sure to reset your preferences.</p> <p>Please note that blocking or disabling some cookies may prevent or impair functionality and use this site.</p> <p><b>Didn’t find what you were looking for? Visit the <a href="https://www.pearson.com/en-ca/privacy-center.html">Privacy Center</a> for additional information.</b></p> <p><b>Updated: February 22, 2024</b></p> </div> </div> </div> </div> </div> </div> </div> </div><div class="col-md-4 col-12"><div class="accordion section"> <section class="accordion-panel"> <h2 class="accordion-panel-header"> <button aria-controls="-1300277180-1" aria-expanded="false"> <span>Translated versions of this notice</span> <span class="pull-right fa fa-plus"></span> </button> </h2> <div class="accordion-panel-content accordion-panel-hide" id="-1300277180-1"> <div class="link-list section"> <div> <ul id="mn-root--222426538"> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-Arabic.pdf" target="_blank" class="new-window" rel="noreferrer">Arabic - عربي </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-SimplifiedChinese.pdf" target="_blank" class="new-window" rel="noreferrer">Chinese Simplified - 简体中文 </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-TraditionalChinese.pdf" target="_blank" class="new-window" rel="noreferrer">Chinese Traditional - 中國傳統的 </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-Czech.pdf" target="_blank" class="new-window" rel="noreferrer">Czech - čeština </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookie-Notice-Dutch.pdf" target="_blank" class="new-window" rel="noreferrer">Dutch - Nederlands </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-French.pdf" target="_blank" class="new-window" rel="noreferrer">French - Français </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-FrenchCanadian.pdf" target="_blank" class="new-window" rel="noreferrer">French Canadian - Français Canadien </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-German-1.pdf" target="_blank" class="new-window" rel="noreferrer">German - Deutsch </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-Hindi.pdf">Hindi - हिंदी </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookie-Notice-Indonesian.pdf" target="_blank" class="new-window" rel="noreferrer">Indonesian - bahasa Indonesia </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-Italian.pdf" target="_blank" class="new-window" rel="noreferrer">Italian - Italiano </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-Japanese.pdf" target="_blank" class="new-window" rel="noreferrer">Japanese - 日本語 </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-Korean.pdf" target="_blank" class="new-window" rel="noreferrer">Korean - 한국인 </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookie-Notice-Polish.pdf" target="_blank" class="new-window" rel="noreferrer">Polish - Polski </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-Portuguese.pdf" target="_blank" class="new-window" rel="noreferrer">Portuguese - Português </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookie-Notice-Punjabi.pdf" target="_blank" class="new-window" rel="noreferrer">Punjabi - ਪੰਜਾਬੀ </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-SerbianCyrl.pdf" target="_blank" class="new-window" rel="noreferrer">Serbian Cyrillic - српска ћирилица </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-SerbianLatin.pdf" target="_blank" class="new-window" rel="noreferrer">Serbian Latin - српска латиница </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-Spanish.pdf" target="_blank" class="new-window" rel="noreferrer">Spanish - Español </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookie-Notice-Thai.pdf" target="_blank" class="new-window" rel="noreferrer">Thai - แบบไทย </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookie-Notice-Turkish.pdf" target="_blank" class="new-window" rel="noreferrer">Turkish - Türkçe </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookie-Notice-Ukrainian.pdf" target="_blank" class="new-window" rel="noreferrer">Ukrainian - українська </a> </li> <li> <a href="/content/dam/global-store/global/legal/Pearson-Cookies-Notice-Vietnamese.pdf" target="_blank" class="new-window" rel="noreferrer">Vietnamese - Tiếng Việt </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </div> </section> </div> </div> </main> <footer><div> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <div class="iparsys parsys aem-GridColumn aem-GridColumn--default--12"><div class="section"><div class="new"></div> </div><div class="iparys_inherited"><div class="iparsys parsys"><div class="experiencefragment section"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <!-- Getting class names set from developer configurations and combining it with the one configured in the style tab --> <section class="column-control he-footer-global layout-default bgcolor--default clipping-default gradients-default default-animation default-gutters has-padding-top--none has-padding-bottom--none default-padding-horizontal default-min-height default-rule default-corner-radius default-shadow aem-GridColumn aem-GridColumn--default--12"> <div class="container"> <div class="row"><div class="col-12"><section class="column-control layout-default bgcolor--default clipping-default gradients-default default-animation default-gutters default-padding-top default-padding-bottom default-padding-horizontal default-min-height default-rule default-corner-radius default-shadow section c-footer__main"> <div class="row"><div class="col-md-3 col-12"><div class="logo-v2 section c-footer__logo"> <a id="footer__vCake-logo" href="https://www.pearson.com/en-ca.html"> <picture> <source media="(max-width: 800px)" srcset="/content/dam/help/hedReimagined/logos/logo-hed--on-dark.svg"/> <img src="/content/dam/help/hedReimagined/logos/logo-hed--on-dark.svg" alt="Pearson Home"/> </picture> </a> </div> <div class="social-links c-footer__social-links section"> <link rel="stylesheet" href="/etc/clientlibs/platform/aem-core/components/content/social-links.min.ACSHASHda4fe63359349df9709a7c55ffa945e7.css" type="text/css"> <ul class="social-links__list"> <li class="social-links__item"> <a href="https://www.facebook.com/PearsonHigherEducationCA" target="_blank" rel="noopener noreferrer" aria-label="Facebook" class="social-links--facebook"></a> </li> <li class="social-links__item"> <a href="https://twitter.com/pearson" target="_blank" rel="noopener noreferrer" aria-label="Twitter" class="social-links--twitter"></a> </li> <li class="social-links__item"> <a href="https://www.youtube.com/c/PearsonHigherEducation" target="_blank" rel="noopener noreferrer" aria-label="Youtube" class="social-links--youtube"></a> </li> <li class="social-links__item"> <a href="https://www.linkedin.com/showcase/pearson-higher-education" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" class="social-links--linkedin"></a> </li> <li class="social-links__item"> <a href="https://www.instagram.com/pearsonhighereducation" target="_blank" rel="noopener noreferrer" aria-label="Instagram" class="social-links--instagram"></a> </li> </ul> </div> <div class="parsys section"><div class="parsys section"><div class="parsys section"><div class="locale-selection he-nav--mobile-only section"> <div> <button class="locale-selection__button selected_en-CA" aria-haspopup="true" aria-label="Locale Selection. Currently selected: Canada" aria-expanded="false" aria-controls="locale-selection-dropdown"> Canada </button> <div class="locale-selection__dropdown" aria-describedby="locale-selection-description" id="locale-selection-dropdown"> <ul role="menu" aria-label="Locale Selection"> <li role="none"> <a role="menuitem" lang="en-US" hreflang="en-US" href="https://www.pearson.com/en-us.html"> United States </a> </li> <li role="none"> <a role="menuitem" lang="en-CA" hreflang="en-CA" href="https://www.pearson.com/en-ca.html" aria-selected="true"> Canada </a> </li> <li role="none"> <a role="menuitem" lang="en-GB" hreflang="en-GB" href="https://www.pearson.com/en-gb.html"> United Kingdom </a> </li> <li role="none"> <a role="menuitem" lang="en" hreflang="en" href="https://www.pearson.com/en-ca/location-selector.html"> All countries </a> </li> </ul> </div> </div> </div> </div> <div class="parsys section"><div class="parsys section"></div> </div> </div> </div> <div class="parsys section"></div> </div><div class="col-md-9 col-12"><section class="column-control layout-default bgcolor--default clipping-default gradients-default default-animation default-gutters has-padding-top--none has-padding-bottom--none default-padding-horizontal default-min-height default-rule default-corner-radius default-shadow section c-footer__navigation"> <div class="row"><div class="col-20pct col-12"><div class="accordion acord section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="-2033578333-1" aria-expanded="false"> <span>Explore</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="-2033578333-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root--842179"> <li> <a href="https://www.pearson.com/en-ca/schools.html">Schools </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education.html">College &amp; University </a> </li> <li> <a href="https://www.pearson.com/en-ca/work.html">Work </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-20pct col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1750854786-1" aria-expanded="false"> <span>Support</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1750854786-1"> <div class="link-list section c-footer__link-list"> <div> <ul id="mn-root-90893990"> <li> <a href="https://www.pearson.com/en-ca/schools/support.html">PreK-12 Schools Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/support.html">Higher Education Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/work/support.html">Work Support </a> </li> <li> <a href="https://www.pearson.com/en-ca/global-permission-granting.html">Global Permissions </a> </li> <li> <a href="https://www.pearson.com/en-ca/legal-information/global-rights-licensing.html">Global Rights Licensing </a> </li> <li> <a href="https://www.pearson.com/en-ca/report-piracy.html">Report Piracy </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-20pct col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1074786963-1" aria-expanded="false"> <span>Insights</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1074786963-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root--1159223763"> <li> <a href="https://www.pearson.com/en-ca/higher-education/insights-and-events/higher-education-blog.html">Higher Education Blog </a> </li> <li> <a href="https://www.pearson.com/en-ca/higher-education/insights-and-events/webinars-events.html">Webinars &amp; Events </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-20pct col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="1215568587-1" aria-expanded="false"> <span>Major businesses</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="1215568587-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-2097032293"> <li> <a href="https://www.pearsonclinical.ca/en.html" target="_blank" class="new-window" rel="noreferrer">Clinical Assessments </a> </li> <li> <a href="https://www.pearsoncanadaschool.com/" target="_blank" class="new-window" rel="noreferrer">PreK-12 Schools </a> </li> <li> <a href="https://pearsonelt.ca/" target="_blank" class="new-window" rel="noreferrer">Pearson ELT </a> </li> <li> <a href="https://home.pearsonvue.com/" target="_blank" class="new-window" rel="noreferrer">Pearson VUE </a> </li> <li> <a href="https://www.pearsonpte.com/destination-canada" target="_blank" class="new-window" rel="noreferrer">Pearson Test of English </a> </li> </ul> </div> </div> </div> </section> </div> </div><div class="col-20pct col-12"><div class="accordion section"> <section class="accordion-panel"> <h3 class="accordion-panel-header"> <button aria-controls="-822487702-1" aria-expanded="false"> <span>About us</span> <span class="pull-right fa fa-plus"></span> </button> </h3> <div class="accordion-panel-content accordion-panel-hide" id="-822487702-1"> <div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-426518724"> <li> <a href="https://pearson.jobs/" target="_blank" class="new-window" rel="noreferrer">Careers </a> </li> <li> <a href="https://plc.pearson.com/en-GB/investors" target="_blank" class="new-window" rel="noreferrer">Investor Relations </a> </li> <li> <a href="https://plc.pearson.com/en-GB/company" target="_blank" class="new-window" rel="noreferrer">Our Company </a> </li> <li> <a href="https://www.pearson.com/en-ca/diversity-inclusion.html">Diversity &amp; Inclusion </a> </li> <li> <a href="https://www.pearson.com/en-ca/diversity-inclusion/truth-and-reconciliation.html">Truth &amp; Reconciliation </a> </li> </ul> </div> </div> </div> </section> </div> </div></div> </section> </div></div> </section> <section class="column-control layout-default bgcolor--default clipping-default gradients-default default-animation default-gutters has-padding-top--30 has-padding-bottom--30 default-padding-horizontal default-min-height default-rule default-corner-radius default-shadow section c-footer__main c-footer__bottom"> <div class="row"><div class="col-12"><div class="link-list default section c-footer__link-list"> <div> <ul id="mn-root-2107762321"> <li> <a href="https://www.pearson.com/en-ca/legal-information/terms-of-use.html">Terms of Use </a> </li> <li> <a href="https://www.pearson.com/en-ca/privacy-center/privacy-notices.html">Privacy </a> </li> <li> <a href="https://www.pearson.com/en-ca/legal-information/cookie-policy.html" id="open-ot-preference-modal">Cookies </a> </li> <li> <a href="https://www.pearson.com/en-ca/legal-information/accessibility.html">Accessibility </a> </li> </ul> </div> </div> <div class="text section c-footer__bottom-copyright"> <p>© 1996–2024 Pearson All rights reserved.</p> </div> </div></div> </section> </div></div> </div> </section> </div> </div> </div> </div> </div> </div> </div> </footer> <script src="/etc/clientlibs/global-store/parse-data-layer.min.ACSHASHf33cc89d499e9552305582b58c89767d.js"></script> <script src="/etc/clientlibs/global-store/algolia-search/educator.min.ACSHASHc328ad43291a4d6d35d18cb33d42e751.js"></script> <script src="/etc/clientlibs/one-dot-com/one-dot-com/he-js-base.min.ACSHASH911bcaf7fe95ad924b4d5441f7b59a72.js"></script> <script src="/etc/clientlibs/one-dot-com/one-dot-com/column-control-collapse.min.ACSHASHedfe505c62d117a26f847348e9799da0.js"></script> <script src="/etc/clientlibs/one-dot-com/one-dot-com/hed-navigation/nav-footer.min.ACSHASH7dd356d31b898e675466aa6dcdb753d3.js"></script> <script src="/etc/clientlibs/one-dot-com/one-dot-com/hed-navigation/nav-aem-header.min.ACSHASHe9fe6611a4cf481434e820d55dd5325b.js"></script> <script src="/etc/clientlibs/one-dot-com/one-dot-com/he-ies-signin-modal.min.ACSHASHbbbeed361f6a3943648e4c2690317e1d.js"></script> <script src="/etc/clientlibs/platform/aem-core/components/content/in-page-navigation.min.ACSHASH044b4efac238320bdfb9dac7b66eddd0.js"></script> <div class="cloudservice pearson-data-layer"> <script src="/etc/clientlibs/platform/aem-core/data-layer/user-info.min.ACSHASH97cb021293f880a63703a06739d36b3f.js"></script> </div> <div class="cloudservice script-include-service"> </div> <div class="cloudservice gtm"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MVH69VF" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> </div> <div class="cloudservice ecommerce-service-component"> <script src="https://www.pearson.com/store/_ui/addons/b2bacceleratoraddon/responsive/common/js/acc.orderform.js"></script> <script src="https://www.pearson.com/store/_ui/addons/pmciamaddon/responsive/common/js/pmciamaddon.js"></script> </div> <div class="cloudservice geolocation-service-component"></div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10