2064 lines
82 KiB
HTML
2064 lines
82 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Deep Diagram</title>
|
|
<style>
|
|
.loader {
|
|
position: fixed;
|
|
left: 0px;
|
|
top: 0px;
|
|
width: 100%;
|
|
height: 100%;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-content: center;
|
|
flex-direction: column;
|
|
z-index: -1;
|
|
background: url("/spinner.gif");
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
text-align: center;
|
|
|
|
}
|
|
|
|
</style>
|
|
<script type="text/javascript">
|
|
;window.NREUM || (NREUM = {});
|
|
NREUM.init = {
|
|
distributed_tracing: {enabled: true},
|
|
privacy: {cookies_enabled: true},
|
|
ajax: {deny_list: ["bam.nr-data.net"]}
|
|
};
|
|
|
|
;NREUM.loader_config = {
|
|
accountID: "622279",
|
|
trustKey: "622279",
|
|
agentID: "772314927",
|
|
licenseKey: "2584b8385e",
|
|
applicationID: "772314927"
|
|
};
|
|
;NREUM.info = {
|
|
beacon: "bam.nr-data.net",
|
|
errorBeacon: "bam.nr-data.net",
|
|
licenseKey: "2584b8385e",
|
|
applicationID: "772314927",
|
|
sa: 1
|
|
};
|
|
;/*! For license information please see nr-loader-spa-1.237.1.min.js.LICENSE.txt */
|
|
(() => {
|
|
"use strict";
|
|
var e, t, r = {
|
|
5763: (e, t, r) => {
|
|
r.d(t, {
|
|
P_: () => f,
|
|
Mt: () => g,
|
|
C5: () => s,
|
|
DL: () => v,
|
|
OP: () => T,
|
|
lF: () => j,
|
|
Yu: () => y,
|
|
Dg: () => h,
|
|
CX: () => c,
|
|
GE: () => b,
|
|
sU: () => _
|
|
});
|
|
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")
|
|
}
|
|
|
|
var d = r(7056);
|
|
const u = () => {
|
|
const e = {blockSelector: "[data-nr-block]", maskInputOptions: {password: !0}};
|
|
return {
|
|
allow_bfcache: !0,
|
|
privacy: {cookies_enabled: !0},
|
|
ajax: {deny_list: void 0, block_internal: !0, enabled: !0, harvestTimeSeconds: 10},
|
|
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},
|
|
metrics: {enabled: !0},
|
|
page_action: {enabled: !0, harvestTimeSeconds: 30},
|
|
page_view_event: {enabled: !0},
|
|
page_view_timing: {enabled: !0, harvestTimeSeconds: 30, long_task: !1},
|
|
session_trace: {enabled: !0, harvestTimeSeconds: 10},
|
|
harvest: {tooManyRequestsDelay: 60},
|
|
session_replay: {
|
|
enabled: !1,
|
|
harvestTimeSeconds: 60,
|
|
sampleRate: .1,
|
|
errorSampleRate: .1,
|
|
maskTextSelector: "*",
|
|
maskAllInputs: !0,
|
|
get blockClass() {
|
|
return "nr-block"
|
|
},
|
|
get ignoreClass() {
|
|
return "nr-ignore"
|
|
},
|
|
get maskTextClass() {
|
|
return "nr-mask"
|
|
},
|
|
get blockSelector() {
|
|
return e.blockSelector
|
|
},
|
|
set blockSelector(t) {
|
|
e.blockSelector += ",".concat(t)
|
|
},
|
|
get maskInputOptions() {
|
|
return e.maskInputOptions
|
|
},
|
|
set maskInputOptions(t) {
|
|
e.maskInputOptions = {...t, password: !0}
|
|
}
|
|
},
|
|
spa: {enabled: !0, harvestTimeSeconds: 10}
|
|
}
|
|
}, l = {};
|
|
|
|
function f(e) {
|
|
if (!e) throw new Error("All configuration objects require an agent identifier!");
|
|
if (!l[e]) throw new Error("Configuration for ".concat(e, " was never set"));
|
|
return l[e]
|
|
}
|
|
|
|
function h(e, t) {
|
|
if (!e) throw new Error("All configuration objects require an agent identifier!");
|
|
l[e] = (0, i.D)(t, u()), (0, n.Qy)(e, l[e], "config")
|
|
}
|
|
|
|
function g(e, t) {
|
|
if (!e) throw new Error("All configuration objects require an agent identifier!");
|
|
var r = f(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 p = {
|
|
accountID: void 0,
|
|
trustKey: void 0,
|
|
agentID: void 0,
|
|
licenseKey: void 0,
|
|
applicationID: void 0,
|
|
xpid: void 0
|
|
}, m = {};
|
|
|
|
function v(e) {
|
|
if (!e) throw new Error("All loader-config objects require an agent identifier!");
|
|
if (!m[e]) throw new Error("LoaderConfig for ".concat(e, " was never set"));
|
|
return m[e]
|
|
}
|
|
|
|
function b(e, t) {
|
|
if (!e) throw new Error("All loader-config objects require an agent identifier!");
|
|
m[e] = (0, i.D)(t, p), (0, n.Qy)(e, m[e], "loader_config")
|
|
}
|
|
|
|
const y = (0, n.mF)().o;
|
|
var w = r(385), x = r(6818);
|
|
const A = {
|
|
buildEnv: x.Re,
|
|
bytesSent: {},
|
|
queryBytesSent: {},
|
|
customTransaction: void 0,
|
|
disabled: !1,
|
|
distMethod: x.gF,
|
|
isolatedBacklog: !1,
|
|
loaderType: void 0,
|
|
maxBytes: 3e4,
|
|
offset: Math.floor(w._A?.performance?.timeOrigin || w._A?.performance?.timing?.navigationStart || Date.now()),
|
|
onerror: void 0,
|
|
origin: "" + w._A.location,
|
|
ptid: void 0,
|
|
releaseIds: {},
|
|
session: void 0,
|
|
xhrWrappable: "function" == typeof w._A.XMLHttpRequest?.prototype?.addEventListener,
|
|
version: x.q4,
|
|
denyList: void 0
|
|
}, E = {};
|
|
|
|
function T(e) {
|
|
if (!e) throw new Error("All runtime objects require an agent identifier!");
|
|
if (!E[e]) throw new Error("Runtime for ".concat(e, " was never set"));
|
|
return E[e]
|
|
}
|
|
|
|
function _(e, t) {
|
|
if (!e) throw new Error("All runtime objects require an agent identifier!");
|
|
E[e] = (0, i.D)(t, A), (0, n.Qy)(e, E[e], "runtime")
|
|
}
|
|
|
|
function j(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 {
|
|
"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, q4: () => n});
|
|
const n = "1.237.1", i = "PROD", o = "CDN"
|
|
}, 385: (e, t, r) => {
|
|
r.d(t, {
|
|
FN: () => a,
|
|
IF: () => d,
|
|
Nk: () => l,
|
|
Tt: () => s,
|
|
_A: () => o,
|
|
il: () => n,
|
|
pL: () => c,
|
|
v6: () => i,
|
|
w1: () => u
|
|
});
|
|
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 = "" + o?.location, s = /iPad|iPhone|iPod/.test(navigator.userAgent),
|
|
c = s && "undefined" == typeof SharedWorker, d = (() => {
|
|
const e = navigator.userAgent.match(/Firefox[/\s](\d+\.\d+)/);
|
|
return Array.isArray(e) && e.length >= 2 ? +e[1] : 0
|
|
})(), u = Boolean(n && window.document.documentMode), l = !!navigator.sendBeacon
|
|
}, 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: () => u, R: () => c});
|
|
var n = r(2177), i = r(1284), o = r(4322), a = r(3325);
|
|
const s = {};
|
|
|
|
function c(e, t) {
|
|
const r = {staged: !1, priority: a.p[t] || 0};
|
|
d(e), s[e].get(t) || s[e].set(t, r)
|
|
}
|
|
|
|
function d(e) {
|
|
e && (s[e] || (s[e] = new Map))
|
|
}
|
|
|
|
function u() {
|
|
let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "",
|
|
t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "feature";
|
|
if (d(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 d = 0; s && d < s.length; ++d) l(s[d], 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((e => {
|
|
let [t] = e;
|
|
a(t)
|
|
})))
|
|
}
|
|
|
|
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)
|
|
}
|
|
}))
|
|
}
|
|
}, 2177: (e, t, r) => {
|
|
r.d(t, {c: () => l, ee: () => d});
|
|
var n = r(8632), i = r(2210), o = r(1284), a = r(5763), s = "nr@context";
|
|
let c = (0, n.fP)();
|
|
var d;
|
|
|
|
function u() {
|
|
}
|
|
|
|
function l(e) {
|
|
return (0, i.X)(e, s, f)
|
|
}
|
|
|
|
function f() {
|
|
return new u
|
|
}
|
|
|
|
function h() {
|
|
d.aborted = !0, d.backlog = {}
|
|
}
|
|
|
|
c.ee ? d = c.ee : (d = function e(t, r) {
|
|
var n = {}, c = {}, l = {}, g = !1;
|
|
try {
|
|
g = 16 === r.length && (0, a.OP)(r).isolatedBacklog
|
|
} catch (e) {
|
|
}
|
|
var p = {
|
|
on: b,
|
|
addEventListener: b,
|
|
removeEventListener: y,
|
|
emit: v,
|
|
get: x,
|
|
listeners: w,
|
|
context: m,
|
|
buffer: A,
|
|
abort: h,
|
|
aborted: !1,
|
|
isBuffering: E,
|
|
debugId: r,
|
|
backlog: g ? {} : t && "object" == typeof t.backlog ? t.backlog : {}
|
|
};
|
|
return p;
|
|
|
|
function m(e) {
|
|
return e && e instanceof u ? e : e ? (0, i.X)(e, s, f) : f()
|
|
}
|
|
|
|
function v(e, r, n, i, o) {
|
|
if (!1 !== o && (o = !0), !d.aborted || i) {
|
|
t && o && t.emit(e, r, n);
|
|
for (var a = m(n), s = w(e), u = s.length, l = 0; l < u; l++) s[l].apply(a, r);
|
|
var f = T()[c[e]];
|
|
return f && f.push([p, e, r, a]), a
|
|
}
|
|
}
|
|
|
|
function b(e, t) {
|
|
n[e] = w(e).concat(t)
|
|
}
|
|
|
|
function y(e, t) {
|
|
var r = n[e];
|
|
if (r) for (var i = 0; i < r.length; i++) r[i] === t && r.splice(i, 1)
|
|
}
|
|
|
|
function w(e) {
|
|
return n[e] || []
|
|
}
|
|
|
|
function x(t) {
|
|
return l[t] = l[t] || e(p, t)
|
|
}
|
|
|
|
function A(e, t) {
|
|
var r = T();
|
|
p.aborted || (0, o.D)(e, (function (e, n) {
|
|
t = t || "feature", c[n] = t, t in r || (r[t] = [])
|
|
}))
|
|
}
|
|
|
|
function E(e) {
|
|
return !!T()[c[e]]
|
|
}
|
|
|
|
function T() {
|
|
return p.backlog
|
|
}
|
|
}(void 0, "globalEE"), c.ee = d)
|
|
}, 5546: (e, t, r) => {
|
|
r.d(t, {E: () => n, p: () => i});
|
|
var n = r(2177).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))
|
|
}
|
|
}, 4402: (e, t, r) => {
|
|
r.d(t, {Ht: () => d, 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 d() {
|
|
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: () => o});
|
|
var n = r(385), i = {};
|
|
|
|
function o(e) {
|
|
if (e in i) return i[e];
|
|
if (0 === (e || "").indexOf("data:")) return {protocol: "data"};
|
|
let t;
|
|
var r = n._A?.location, o = {};
|
|
if (n.il) t = document.createElement("a"), t.href = e; else try {
|
|
t = new URL(e, r.href)
|
|
} catch (e) {
|
|
return o
|
|
}
|
|
o.port = t.port;
|
|
var a = t.href.split("://");
|
|
!o.port && a[1] && (o.port = a[1].split("/")[0].split("@").pop().split(":")[1]), o.port && "0" !== o.port || (o.port = "https" === a[0] ? "443" : "80"), o.hostname = t.hostname || r.hostname, o.pathname = t.pathname, o.protocol = a[0], "/" !== o.pathname.charAt(0) && (o.pathname = "/" + o.pathname);
|
|
var s = !t.protocol || ":" === t.protocol || t.protocol === r.protocol,
|
|
c = t.hostname === r.hostname && t.port === r.port;
|
|
return o.sameOrigin = s && (!t.hostname || c), "/" === o.pathname && (i[e] = o), o
|
|
}
|
|
}, 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: () => d});
|
|
var n = r(2177), i = r(5546), o = r(8e3), a = r(3325);
|
|
const s = {
|
|
stn: [a.D.sessionTrace],
|
|
err: [a.D.jserrors, a.D.metrics],
|
|
ins: [a.D.pageAction],
|
|
spa: [a.D.spa],
|
|
sr: [a.D.sessionReplay, a.D.sessionTrace]
|
|
};
|
|
|
|
function c(e, t) {
|
|
const r = n.ee.get(t);
|
|
e && "object" == typeof e && (Object.entries(e).forEach((e => {
|
|
let [t, n] = e;
|
|
void 0 === d[t] && (s[t] ? s[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), d[t] = Boolean(n))
|
|
})), Object.keys(s).forEach((e => {
|
|
void 0 === d[e] && (s[e]?.forEach((t => (0, i.p)("rumresp-" + e, [!1], void 0, t, r))), d[e] = !1)
|
|
})), (0, o.L)(t, a.D.pageViewEvent))
|
|
}
|
|
|
|
const d = {}
|
|
}, 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(2177);
|
|
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: () => d, Qy: () => c, ce: () => o, fP: () => a, gG: () => u, 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 d(e, t) {
|
|
a()[e] = t
|
|
}
|
|
|
|
function u() {
|
|
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;
|
|
return void (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: () => v,
|
|
u5: () => D,
|
|
QU: () => S,
|
|
_L: () => I,
|
|
Gm: () => z,
|
|
Lg: () => M,
|
|
BV: () => X,
|
|
Kf: () => K
|
|
});
|
|
var n = r(2177);
|
|
const i = "nr@original";
|
|
var o = Object.prototype.hasOwnProperty, a = !1;
|
|
|
|
function s(e, t) {
|
|
return e || (e = n.ee), r.inPlace = function (e, t, n, i, o) {
|
|
n || (n = "");
|
|
var a, s, c, d = "-" === n.charAt(0);
|
|
for (c = 0; c < t.length; c++) u(a = e[s = t[c]]) || (e[s] = r(a, d ? s + n : n, i, s, o))
|
|
}, r.flag = i, r;
|
|
|
|
function r(t, r, n, a, s) {
|
|
return u(t) ? t : (r || (r = ""), nrWrapper[i] = t, d(t, nrWrapper, e), nrWrapper);
|
|
|
|
function nrWrapper() {
|
|
var i, d, u, l;
|
|
try {
|
|
d = this, i = [...arguments], u = "function" == typeof n ? n(i, d) : n || {}
|
|
} catch (t) {
|
|
c([t, "", [i, d, a], u], e)
|
|
}
|
|
o(r + "start", [i, d, a], u, s);
|
|
try {
|
|
return l = t.apply(d, i)
|
|
} catch (e) {
|
|
throw o(r + "err", [i, d, e], u, s), e
|
|
} finally {
|
|
o(r + "end", [i, d, l], u, s)
|
|
}
|
|
}
|
|
}
|
|
|
|
function o(r, n, i, o) {
|
|
if (!a || t) {
|
|
var s = a;
|
|
a = !0;
|
|
try {
|
|
e.emit(r, n, i, t, o)
|
|
} catch (t) {
|
|
c([t, r, n, i], e)
|
|
}
|
|
a = s
|
|
}
|
|
}
|
|
}
|
|
|
|
function c(e, t) {
|
|
t || (t = n.ee);
|
|
try {
|
|
t.emit("internal-error", e)
|
|
} catch (e) {
|
|
}
|
|
}
|
|
|
|
function d(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) {
|
|
c([e], r)
|
|
}
|
|
for (var n in e) o.call(e, n) && (t[n] = e[n]);
|
|
return t
|
|
}
|
|
|
|
function u(e) {
|
|
return !(e && e instanceof Function && e.apply && !e[i])
|
|
}
|
|
|
|
var l = r(2210), f = r(385);
|
|
const h = {}, g = XMLHttpRequest, p = "addEventListener", m = "removeEventListener";
|
|
|
|
function v(e) {
|
|
var t = function (e) {
|
|
return (e || n.ee).get("events")
|
|
}(e);
|
|
if (h[t.debugId]++) return t;
|
|
h[t.debugId] = 1;
|
|
var r = s(t, !0);
|
|
|
|
function i(e) {
|
|
r.inPlace(e, [p, m], "-", o)
|
|
}
|
|
|
|
function o(e, t) {
|
|
return e[1]
|
|
}
|
|
|
|
return "getPrototypeOf" in Object && (f.il && b(document, i), b(f._A, i), b(g.prototype, i)), t.on(p + "-start", (function (e, t) {
|
|
var n = e[1];
|
|
if (null !== n && ("function" == typeof n || "object" == typeof n)) {
|
|
var i = (0, l.X)(n, "nr@wrapped", (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 b(e, t) {
|
|
let r = e;
|
|
for (; "object" == typeof r && !Object.prototype.hasOwnProperty.call(r, p);) 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 y = "fetch-", w = y + "body-", x = ["arrayBuffer", "blob", "json", "text", "formData"], A = f._A.Request,
|
|
E = f._A.Response, T = "prototype", _ = "nr@context";
|
|
const j = {};
|
|
|
|
function D(e) {
|
|
const t = function (e) {
|
|
return (e || n.ee).get("fetch")
|
|
}(e);
|
|
if (!(A && E && f._A.fetch)) return t;
|
|
if (j[t.debugId]++) return t;
|
|
|
|
function r(e, r, n) {
|
|
var i = e[r];
|
|
"function" == typeof i && (e[r] = function () {
|
|
var e, r = [...arguments], o = {};
|
|
t.emit(n + "before-start", [r], o), o[_] && o[_].dt && (e = o[_].dt);
|
|
var a = i.apply(this, r);
|
|
return t.emit(n + "start", [r, e], a), a.then((function (e) {
|
|
return t.emit(n + "end", [null, e], a), e
|
|
}), (function (e) {
|
|
throw t.emit(n + "end", [e], a), e
|
|
}))
|
|
})
|
|
}
|
|
|
|
return j[t.debugId] = 1, x.forEach((e => {
|
|
r(A[T], e, w), r(E[T], e, w)
|
|
})), r(f._A, "fetch", y), t.on(y + "end", (function (e, r) {
|
|
var n = this;
|
|
if (r) {
|
|
var i = r.headers.get("content-length");
|
|
null !== i && (n.rxSize = i), t.emit(y + "done", [null, r], n)
|
|
} else t.emit(y + "done", [e], n)
|
|
})), t
|
|
}
|
|
|
|
const C = {}, N = ["pushState", "replaceState"];
|
|
|
|
function S(e) {
|
|
const t = function (e) {
|
|
return (e || n.ee).get("history")
|
|
}(e);
|
|
return !f.il || C[t.debugId]++ || (C[t.debugId] = 1, s(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 = s(t), i = /[?&](?:callback|cb)=([^&#]+)/, o = /(.*)\.([^.]+)/, a = /^(\w+)(\.|$)(.*)$/;
|
|
|
|
function c(e, t) {
|
|
if (!e) return t;
|
|
const r = e.match(a), n = r[1];
|
|
return c(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, s = a.match(i), s ? s[1] : null);
|
|
var a, s;
|
|
if (!n) return;
|
|
var d = function (e) {
|
|
var t = e.match(o);
|
|
if (t && t.length >= 3) return {key: t[2], parent: c(t[1], window)};
|
|
return {key: e, parent: window}
|
|
}(n);
|
|
if ("function" != typeof d.parent[d.key]) return;
|
|
var u = {};
|
|
|
|
function l() {
|
|
t.emit("jsonp-end", [], u), e.removeEventListener("load", l, (0, O.m$)(!1)), e.removeEventListener("error", f, (0, O.m$)(!1))
|
|
}
|
|
|
|
function f() {
|
|
t.emit("jsonp-error", [], u), t.emit("jsonp-end", [], u), e.removeEventListener("load", l, (0, O.m$)(!1)), e.removeEventListener("error", f, (0, O.m$)(!1))
|
|
}
|
|
|
|
r.inPlace(d.parent, [d.key], "cb-", u), e.addEventListener("load", l, (0, O.m$)(!1)), e.addEventListener("error", f, (0, O.m$)(!1)), t.emit("new-jsonp", [e.src], u)
|
|
}(e[0])
|
|
})), t
|
|
}
|
|
|
|
var k = r(5763);
|
|
const H = {};
|
|
|
|
function z(e) {
|
|
const t = function (e) {
|
|
return (e || n.ee).get("mutation")
|
|
}(e);
|
|
if (!f.il || H[t.debugId]) return t;
|
|
H[t.debugId] = !0;
|
|
var r = s(t), i = k.Yu.MO;
|
|
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 L = {};
|
|
|
|
function M(e) {
|
|
const t = function (e) {
|
|
return (e || n.ee).get("promise")
|
|
}(e);
|
|
if (L[t.debugId]) return t;
|
|
L[t.debugId] = !0;
|
|
var r = n.c, o = s(t), a = k.Yu.PR;
|
|
return a && function () {
|
|
function e(r) {
|
|
var n = t.context(), i = o(r, "executor-", n, null, !1);
|
|
const s = Reflect.construct(a, [i], 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, i = r(e);
|
|
i.promise = e;
|
|
for (var a = arguments.length, s = new Array(a), c = 0; c < a; c++) s[c] = arguments[c];
|
|
s[0] = o(s[0], "cb-", i, null, !1), s[1] = o(s[1], "cb-", i, null, !1);
|
|
const d = n.apply(this, s);
|
|
return i.nextPromise = d, t.emit("propagate", [e, !0], d, !1, !1), d
|
|
}, a.prototype.then[i] = n, t.on("executor-start", (function (e) {
|
|
e[0] = o(e[0], "resolve-", this, null, !1), e[1] = o(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 B = {}, F = "setTimeout", U = "setInterval", q = "clearTimeout", Z = "-start", G = "-",
|
|
V = [F, "setImmediate", U, q, "clearImmediate"];
|
|
|
|
function X(e) {
|
|
const t = function (e) {
|
|
return (e || n.ee).get("timer")
|
|
}(e);
|
|
if (B[t.debugId]++) return t;
|
|
B[t.debugId] = 1;
|
|
var r = s(t);
|
|
return r.inPlace(f._A, V.slice(0, 2), F + G), r.inPlace(f._A, V.slice(2, 3), U + G), r.inPlace(f._A, V.slice(3), q + G), t.on(U + 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 Y = {}, Q = ["open", "send"];
|
|
|
|
function K(e) {
|
|
var t = e || n.ee;
|
|
const r = function (e) {
|
|
return (e || n.ee).get("xhr")
|
|
}(t);
|
|
if (Y[r.debugId]++) return r;
|
|
Y[r.debugId] = 1, v(t);
|
|
var i = s(r), o = k.Yu.XHR, a = k.Yu.MO, c = k.Yu.PR, d = k.Yu.SI, u = "readystatechange",
|
|
l = ["onload", "onerror", "onabort", "onloadstart", "onloadend", "onprogress", "ontimeout"], h = [],
|
|
g = f._A.XMLHttpRequest.listeners, p = f._A.XMLHttpRequest = function (e) {
|
|
var t = new o(e);
|
|
|
|
function n() {
|
|
try {
|
|
r.emit("new-xhr", [t], t), t.addEventListener(u, b, (0, O.m$)(!1))
|
|
} catch (e) {
|
|
(0, W.Z)("An error occured while intercepting XHR", e);
|
|
try {
|
|
r.emit("internal-error", [e])
|
|
} catch (e) {
|
|
}
|
|
}
|
|
}
|
|
|
|
return this.listeners = g ? [...g, n] : [n], this.listeners.forEach((e => e())), t
|
|
};
|
|
|
|
function m(e, t) {
|
|
i.inPlace(t, ["onreadystatechange"], "fn-", E)
|
|
}
|
|
|
|
function b() {
|
|
var e = this, t = r.context(e);
|
|
e.readyState > 3 && !t.resolved && (t.resolved = !0, r.emit("xhr-resolved", [], e)), i.inPlace(e, l, "fn-", E)
|
|
}
|
|
|
|
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-", E), r.on("send-xhr-start", (function (e, t) {
|
|
m(e, t), function (e) {
|
|
h.push(e), a && (y ? y.then(A) : d ? d(A) : (w = -w, x.data = w))
|
|
}(t)
|
|
})), r.on("open-xhr-start", m), a) {
|
|
var y = c && c.resolve();
|
|
if (!d && !c) {
|
|
var w = 1, x = document.createTextNode(w);
|
|
new a(A).observe(x, {characterData: !0})
|
|
}
|
|
} else t.on("fn-end", (function (e) {
|
|
e[0] && e[0].type === u || A()
|
|
}));
|
|
|
|
function A() {
|
|
for (var e = 0; e < h.length; e++) m(0, h[e]);
|
|
h.length && (h = [])
|
|
}
|
|
|
|
function E(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, {Dz: () => i, OJ: () => a, qw: () => o, t9: () => n});
|
|
const n = r(3325).D.pageViewEvent, i = "firstbyte", o = "domcontent", a = "windowload"
|
|
}, 9251: (e, t, r) => {
|
|
r.d(t, {t: () => n});
|
|
const n = r(3325).D.pageViewTiming
|
|
}, 3614: (e, t, r) => {
|
|
r.d(t, {
|
|
BST_RESOURCE: () => i,
|
|
END: () => s,
|
|
FEATURE_NAME: () => n,
|
|
FN_END: () => d,
|
|
FN_START: () => c,
|
|
PUSH_STATE: () => u,
|
|
RESOURCE: () => o,
|
|
START: () => a
|
|
});
|
|
const n = r(3325).D.sessionTrace, i = "bstResource", o = "resource", a = "-start", s = "-end", c = "fn" + a,
|
|
d = "fn" + s, u = "pushState"
|
|
}, 7836: (e, t, r) => {
|
|
r.d(t, {
|
|
BODY: () => A,
|
|
CB_END: () => E,
|
|
CB_START: () => d,
|
|
END: () => x,
|
|
FEATURE_NAME: () => i,
|
|
FETCH: () => _,
|
|
FETCH_BODY: () => v,
|
|
FETCH_DONE: () => m,
|
|
FETCH_START: () => p,
|
|
FN_END: () => c,
|
|
FN_START: () => s,
|
|
INTERACTION: () => f,
|
|
INTERACTION_API: () => u,
|
|
INTERACTION_EVENTS: () => o,
|
|
JSONP_END: () => b,
|
|
JSONP_NODE: () => g,
|
|
JS_TIME: () => T,
|
|
MAX_TIMER_BUDGET: () => a,
|
|
REMAINING: () => l,
|
|
SPA_NODE: () => h,
|
|
START: () => w,
|
|
originalSetTimeout: () => y
|
|
});
|
|
var n = r(5763);
|
|
const i = r(3325).D.spa, o = ["click", "submit", "keypress", "keydown", "keyup", "change"], a = 999,
|
|
s = "fn-start", c = "fn-end", d = "cb-start", u = "api-ixn-", l = "remaining", f = "interaction",
|
|
h = "spaNode", g = "jsonpNode", p = "fetch-start", m = "fetch-done", v = "fetch-body-",
|
|
b = "jsonp-end", y = n.Yu.ST, w = "-start", x = "-end", A = "-body", E = "cb" + x, T = "jsTime",
|
|
_ = "fetch"
|
|
}, 5938: (e, t, r) => {
|
|
r.d(t, {W: () => o});
|
|
var n = r(5763), i = r(2177);
|
|
|
|
class o {
|
|
constructor(e, t, r) {
|
|
this.agentIdentifier = e, this.aggregator = t, this.ee = i.ee.get(e, (0, n.OP)(this.agentIdentifier).isolatedBacklog), this.featureName = r, this.blocked = !1
|
|
}
|
|
}
|
|
}, 9144: (e, t, r) => {
|
|
r.d(t, {j: () => m});
|
|
var n = r(3325), i = r(5763), o = r(5546), a = r(2177), s = r(7894), c = r(8e3), d = r(3960), u = r(385),
|
|
l = r(50), f = r(3081), h = r(8632);
|
|
|
|
function g() {
|
|
const e = (0, h.gG)();
|
|
["setErrorHandler", "finished", "addToTrace", "inlineHit", "addRelease", "addPageAction", "setCurrentRouteName", "setPageViewName", "setCustomAttribute", "interaction", "noticeError", "setUserId"].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 p = r(2587);
|
|
|
|
function m(e) {
|
|
let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
|
|
m = arguments.length > 2 ? arguments[2] : void 0,
|
|
v = arguments.length > 3 ? arguments[3] : void 0, {
|
|
init: b,
|
|
info: y,
|
|
loader_config: w,
|
|
runtime: x = {loaderType: m},
|
|
exposed: A = !0
|
|
} = t;
|
|
const E = (0, h.gG)();
|
|
y || (b = E.init, y = E.info, w = E.loader_config), (0, i.Dg)(e, b || {}), (0, i.GE)(e, w || {}), y.jsAttributes ??= {}, u.v6 && (y.jsAttributes.isWorker = !0), (0, i.CX)(e, y);
|
|
const T = (0, i.P_)(e);
|
|
x.denyList = [...T.ajax?.deny_list || [], ...T.ajax?.block_internal ? [y.beacon, y.errorBeacon] : []], (0, i.sU)(e, x), g();
|
|
const _ = function (e, t) {
|
|
t || (0, c.R)(e, "api");
|
|
const h = {};
|
|
var g = a.ee.get(e), p = g.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}
|
|
}), x(m, n, !0, o || null === r ? "session" : void 0)(t, r)
|
|
}
|
|
|
|
function y() {
|
|
}
|
|
|
|
["setErrorHandler", "finished", "addToTrace", "inlineHit", "addRelease"].forEach((e => h[e] = x(m, e, !0, "api"))), h.addPageAction = x(m, "addPageAction", !0, n.D.pageAction), h.setCurrentRouteName = x(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, x(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"].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 or number 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.interaction = function () {
|
|
return (new y).get()
|
|
};
|
|
var w = 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, g), function () {
|
|
if (p.emit((a ? "" : "no-") + "fn-start", [(0, s.z)(), i, a], r), a) try {
|
|
return t.apply(this, arguments)
|
|
} catch (e) {
|
|
throw p.emit("fn-err", [arguments, this, e], r), e
|
|
} finally {
|
|
p.emit("fn-end", [(0, s.z)()], r)
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
function x(e, t, r, i) {
|
|
return function () {
|
|
return (0, o.p)(f.xS, ["API/" + t + "/called"], void 0, n.D.metrics, g), i && (0, o.p)(e + t, [(0, s.z)(), ...arguments], r ? null : this, i, g), r ? void 0 : this
|
|
}
|
|
}
|
|
|
|
function A() {
|
|
r.e(439).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 => {
|
|
w[e] = x(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, g), (0, o.p)("err", [e, (0, s.z)(), !1, t], void 0, n.D.jserrors, g)
|
|
}, u.il ? (0, d.b)((() => A()), !0) : A(), h
|
|
}(e, v);
|
|
return (0, h.Qy)(e, _, "api"), (0, h.Qy)(e, A, "exposed"), (0, h.EZ)("activatedFeatures", p.T), _
|
|
}
|
|
}, 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 => (({
|
|
78: "page_action-aggregate",
|
|
147: "metrics-aggregate",
|
|
193: "session_trace-aggregate",
|
|
242: "session-manager",
|
|
317: "jserrors-aggregate",
|
|
348: "page_view_timing-aggregate",
|
|
412: "lazy-feature-loader",
|
|
439: "async-api",
|
|
538: "recorder",
|
|
590: "session_replay-aggregate",
|
|
675: "compressor",
|
|
786: "page_view_event-aggregate",
|
|
873: "spa-aggregate",
|
|
898: "ajax-aggregate"
|
|
}[e] || e) + "." + {
|
|
78: "467f8594",
|
|
147: "b86cefcf",
|
|
193: "ac30a1f3",
|
|
242: "d080e4cc",
|
|
317: "319b8300",
|
|
348: "7b2a53ee",
|
|
412: "c1052c27",
|
|
439: "e9f77430",
|
|
538: "9c5c1546",
|
|
590: "8b420469",
|
|
646: "9e7a6b8d",
|
|
675: "9614fd62",
|
|
786: "4988d952",
|
|
860: "95a91211",
|
|
873: "550eec7b",
|
|
898: "d95c640e"
|
|
}[e] + "-1.237.1.min.js"), i.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t), e = {}, t = "NRBA:", i.l = (r, n, o, a) => {
|
|
if (e[r]) e[r].push(n); else {
|
|
var s, c;
|
|
if (void 0 !== o) for (var d = document.getElementsByTagName("script"), u = 0; u < d.length; u++) {
|
|
var l = d[u];
|
|
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.j = 635, i.p = "https://js-agent.newrelic.com/", (() => {
|
|
var e = {635: 0, 249: 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, d = 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); d < a.length; d++) o = a[d], i.o(e, o) && e[o] && e[o][0](), e[o] = 0
|
|
}, r = window.webpackChunkNRBA = window.webpackChunkNRBA || [];
|
|
r.forEach(t.bind(null, 0)), r.push = t.bind(null, r.push.bind(r))
|
|
})();
|
|
var o = {};
|
|
(() => {
|
|
i.r(o);
|
|
var e = i(50);
|
|
|
|
class t {
|
|
addPageAction(t, r) {
|
|
(0, e.Z)("Call to agent api addPageAction failed. The session trace 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.")
|
|
}
|
|
|
|
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 agent is not currently initialized.")
|
|
}
|
|
}
|
|
|
|
var r = i(3325), n = i(5763);
|
|
const a = Object.values(r.D);
|
|
|
|
function s(e) {
|
|
const t = {};
|
|
return a.forEach((r => {
|
|
t[r] = function (e, t) {
|
|
return !1 !== (0, n.Mt)(t, "".concat(e, ".enabled"))
|
|
}(r, e)
|
|
})), t
|
|
}
|
|
|
|
var c = i(9144);
|
|
var d = i(5546), u = i(385), l = i(8e3), f = i(5938), h = i(3960);
|
|
|
|
class g extends f.W {
|
|
constructor(e, t, r) {
|
|
let n = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3];
|
|
super(e, t, r), this.auto = n, this.abortHandler, this.featAggregate, this.onAggregateImported, n && (0, l.R)(e, r)
|
|
}
|
|
|
|
importAggregator() {
|
|
let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
|
if (this.featAggregate || !this.auto) return;
|
|
const r = u.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 Promise.all([i.e(860), i.e(242)]).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, l.L)(this.agentIdentifier, this.featureName), void o(!1);
|
|
const {lazyFeatureLoader: e} = await i.e(412).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?.(), o(!1)
|
|
}
|
|
};
|
|
u.il ? (0, h.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.sessionReplay))
|
|
}
|
|
}
|
|
|
|
var p = i(7633), m = i(7894);
|
|
|
|
class v extends g {
|
|
static featureName = p.t9;
|
|
|
|
constructor(e, t) {
|
|
let i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
|
|
if (super(e, t, p.t9, i), ("undefined" == typeof PerformanceNavigationTiming || u.Tt) && "undefined" != typeof PerformanceTiming) {
|
|
const t = (0, n.OP)(e);
|
|
t[p.Dz] = Math.max(Date.now() - t.offset, 0), (0, h.K)((() => t[p.qw] = Math.max((0, m.z)() - t[p.Dz], 0))), (0, h.b)((() => {
|
|
const e = (0, m.z)();
|
|
t[p.OJ] = Math.max(e - t[p.Dz], 0), (0, d.p)("timing", ["load", e], void 0, r.D.pageViewTiming, this.ee)
|
|
}))
|
|
}
|
|
this.importAggregator()
|
|
}
|
|
}
|
|
|
|
var b = i(1117), y = i(1284);
|
|
|
|
class w extends b.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, y.D)(e, (function (e, r) {
|
|
t[e] = x(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, y.D)(r, (function (e, t) {
|
|
if ("count" !== e) {
|
|
var n = a[e], i = r[e];
|
|
i && !i.c ? a[e] = x(i.t, n) : a[e] = function (e, t) {
|
|
if (!t) return e;
|
|
t.c || (t = A(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 = x(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]] = E(this.aggregatedData[r]), t[r].length && (n = !0), delete this.aggregatedData[r];
|
|
return n ? t : null
|
|
}
|
|
}
|
|
|
|
function x(e, t) {
|
|
return null == e ? function (e) {
|
|
e ? e.c++ : e = {c: 1};
|
|
return e
|
|
}(t) : t ? (t.c || (t = A(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 A(e) {
|
|
return {t: e, min: e, max: e, sos: e * e, c: 1}
|
|
}
|
|
|
|
function E(e) {
|
|
return "object" != typeof e ? [] : (0, y.D)(e, T)
|
|
}
|
|
|
|
function T(e, t) {
|
|
return t
|
|
}
|
|
|
|
var _ = i(8632), j = i(4402), D = i(4351);
|
|
var C = i(7956), N = i(3239), S = i(9251);
|
|
|
|
class O extends g {
|
|
static featureName = S.t;
|
|
|
|
constructor(e, t) {
|
|
let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
|
|
super(e, t, S.t, r), u.il && ((0, n.OP)(e).initHidden = Boolean("hidden" === document.visibilityState), (0, C.N)((() => (0, d.p)("docHidden", [(0, m.z)()], void 0, S.t, this.ee)), !0), (0, N.bP)("pagehide", (() => (0, d.p)("winPagehide", [(0, m.z)()], void 0, S.t, this.ee))), this.importAggregator())
|
|
}
|
|
}
|
|
|
|
var P = i(3081);
|
|
|
|
class R extends g {
|
|
static featureName = P.t9;
|
|
|
|
constructor(e, t) {
|
|
let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
|
|
super(e, t, P.t9, r), this.importAggregator()
|
|
}
|
|
}
|
|
|
|
var I = i(6660);
|
|
|
|
class k {
|
|
constructor(e, t, r, n) {
|
|
this.name = "UncaughtError", this.message = e, this.sourceURL = t, this.line = r, this.column = n
|
|
}
|
|
}
|
|
|
|
class H extends g {
|
|
static featureName = I.t;
|
|
#e = new Set;
|
|
|
|
constructor(e, t) {
|
|
let n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
|
|
super(e, t, I.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, d.p)("err", [this.#t(n), (0, m.z)()], void 0, r.D.jserrors, this.ee))
|
|
})), this.ee.on("internal-error", (e => {
|
|
this.abortHandler && (0, d.p)("ierr", [this.#t(e), (0, m.z)(), !0], void 0, r.D.jserrors, this.ee)
|
|
})), u._A.addEventListener("unhandledrejection", (e => {
|
|
this.abortHandler && (0, d.p)("err", [this.#r(e), (0, m.z)(), !1, {unhandledPromiseRejection: 1}], void 0, r.D.jserrors, this.ee)
|
|
}), (0, N.m$)(!1, this.removeOnAbort?.signal)), u._A.addEventListener("error", (e => {
|
|
this.abortHandler && (this.#e.has(e.error) ? this.#e.delete(e.error) : (0, d.p)("err", [this.#n(e), (0, m.z)()], void 0, r.D.jserrors, this.ee))
|
|
}), (0, N.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 k(e.message, e.filename || e.sourceURL, e.lineno || e.line, e.colno || e.col) : new k("string" == typeof e ? e : (0, D.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 k(t);
|
|
const r = this.#t(e.reason);
|
|
return r.message = t + r.message, r
|
|
}
|
|
|
|
#n(e) {
|
|
return e.error instanceof Error ? e.error : new k(e.message, e.filename, e.lineno, e.colno)
|
|
}
|
|
}
|
|
|
|
var z = i(2210);
|
|
let L = 1;
|
|
const M = "nr@id";
|
|
|
|
function B(e) {
|
|
const t = typeof e;
|
|
return !e || "object" !== t && "function" !== t ? -1 : e === u._A ? 0 : (0, z.X)(e, M, (function () {
|
|
return L++
|
|
}))
|
|
}
|
|
|
|
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, D.P)(e).length
|
|
} catch (e) {
|
|
return
|
|
}
|
|
}
|
|
}
|
|
|
|
var U = i(1214), q = i(7243);
|
|
|
|
class Z {
|
|
constructor(e) {
|
|
this.agentIdentifier = e, this.generateTracePayload = this.generateTracePayload.bind(this), this.shouldGenerateTrace = this.shouldGenerateTrace.bind(this)
|
|
}
|
|
|
|
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, j.M)(), s = (0, j.Ht)(), c = Date.now(), d = {spanId: a, traceId: s, timestamp: c};
|
|
return (e.sameOrigin || this.isAllowedOrigin(e) && this.useTraceContextHeadersForCors()) && (d.traceContextParentHeader = this.generateTraceContextParentHeader(a, s), d.traceContextStateHeader = this.generateTraceContextStateHeader(a, c, r, i, o)), (e.sameOrigin && !this.excludeNewrelicHeader() || !e.sameOrigin && this.isAllowedOrigin(e) && this.useNewrelicHeaderForCors()) && (d.newrelicHeader = this.generateTraceHeader(a, s, c, r, i, o)), d
|
|
}
|
|
|
|
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 u._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, D.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, q.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 G = i(7825), V = ["load", "error", "abort", "timeout"], X = V.length, W = n.Yu.REQ, Y = u._A.XMLHttpRequest;
|
|
|
|
class Q extends g {
|
|
static featureName = G.t;
|
|
|
|
constructor(e, t) {
|
|
let i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
|
|
super(e, t, G.t, i), (0, n.OP)(e).xhrWrappable && (this.dt = new Z(e), this.handler = (e, t, r, n) => (0, d.p)(e, t, r, n, this.ee), (0, U.u5)(this.ee), (0, U.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 = E, t.ended = !1, t.xhrGuids = {}, t.lastSize = null, t.loadCaptureCalled = !1, t.params = this.params || {}, t.metrics = this.metrics || {}, e.addEventListener("load", (function (r) {
|
|
_(t, e)
|
|
}), (0, N.m$)(!1)), u.IF || e.addEventListener("progress", (function (e) {
|
|
t.lastSize = e.loaded
|
|
}), (0, N.m$)(!1))
|
|
}
|
|
|
|
function s(e) {
|
|
this.params = {method: e[0]}, T(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 d(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, m.z)(), 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 < X; s++) r.addEventListener(V[s], this.listener, (0, N.m$)(!1))
|
|
}
|
|
|
|
function l(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 = "" + B(e) + !!t;
|
|
this.xhrGuids && !this.xhrGuids[r] && (this.xhrGuids[r] = !0, this.totalCbs += 1)
|
|
}
|
|
|
|
function h(e, t) {
|
|
var r = "" + B(e) + !!t;
|
|
this.xhrGuids && this.xhrGuids[r] && (delete this.xhrGuids[r], this.totalCbs -= 1)
|
|
}
|
|
|
|
function g() {
|
|
this.endTime = (0, m.z)()
|
|
}
|
|
|
|
function p(e, r) {
|
|
r instanceof Y && "load" === e[0] && t.emit("xhr-load-added", [e[1], e[2]], r)
|
|
}
|
|
|
|
function v(e, r) {
|
|
r instanceof Y && "load" === e[0] && t.emit("xhr-load-removed", [e[1], e[2]], r)
|
|
}
|
|
|
|
function b(e, t, r) {
|
|
t instanceof Y && ("onload" === r && (this.onload = !0), ("load" === (e[0] && e[0].type) || this.onload) && (this.xhrCbStart = (0, m.z)()))
|
|
}
|
|
|
|
function y(e, r) {
|
|
this.xhrCbStart && t.emit("xhr-cb-time", [(0, m.z)() - this.xhrCbStart, this.onload, r], r)
|
|
}
|
|
|
|
function w(e) {
|
|
var t, r = e[1] || {};
|
|
"string" == typeof e[0] ? t = e[0] : e[0] && e[0].url ? t = e[0].url : u._A?.URL && e[0] && e[0] instanceof URL && (t = e[0].href), t && (this.parsedOrigin = (0, q.e)(t), this.sameOrigin = this.parsedOrigin.sameOrigin);
|
|
var n = o.generateTracePayload(this.parsedOrigin);
|
|
if (n && (n.newrelicHeader || n.traceContextParentHeader)) if ("string" == typeof e[0] || u._A?.URL && e[0] && e[0] instanceof URL) {
|
|
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)
|
|
} else e[0] && e[0].headers && s(e[0].headers, n) && (this.dt = n);
|
|
|
|
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 x(e, t) {
|
|
this.params = {}, this.metrics = {}, this.startTime = (0, m.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 : u._A?.URL && "object" == typeof i && i instanceof URL && (r = i.href), T(this, r);
|
|
var o = ("" + (i && i instanceof W && i.method || n.method || "GET")).toUpperCase();
|
|
this.params.method = o, this.txSize = F(n.body) || 0
|
|
}
|
|
|
|
function A(e, t) {
|
|
var n;
|
|
this.endTime = (0, m.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, m.z)() - this.startTime};
|
|
i("xhr", [this.params, o, this.startTime, this.endTime, "fetch"], this, r.D.ajax)
|
|
}
|
|
|
|
function E(e) {
|
|
var t = this.params, n = this.metrics;
|
|
if (!this.ended) {
|
|
this.ended = !0;
|
|
for (var o = 0; o < X; o++) e.removeEventListener(V[o], this.listener, !1);
|
|
t.aborted || (n.duration = (0, m.z)() - this.startTime, this.loadCaptureCalled || 4 !== e.readyState ? null == t.status && (t.status = 0) : _(this, e), n.cbTime = this.cbTime, i("xhr", [t, n, this.startTime, this.endTime, "xhr"], this, r.D.ajax))
|
|
}
|
|
}
|
|
|
|
function T(e, t) {
|
|
var r = (0, q.e)(t), n = e.params;
|
|
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
|
|
}
|
|
|
|
function _(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", d), t.on("xhr-cb-time", l), t.on("xhr-load-added", f), t.on("xhr-load-removed", h), t.on("xhr-resolved", g), t.on("addEventListener-end", p), t.on("removeEventListener-end", v), t.on("fn-end", y), t.on("fetch-before-start", w), t.on("fetch-start", x), t.on("fn-start", b), t.on("fetch-done", A)
|
|
}(e, this.ee, this.handler, this.dt), this.importAggregator())
|
|
}
|
|
}
|
|
|
|
var K = i(3614);
|
|
const {
|
|
BST_RESOURCE: J,
|
|
RESOURCE: ee,
|
|
START: te,
|
|
END: re,
|
|
FEATURE_NAME: ne,
|
|
FN_END: ie,
|
|
FN_START: oe,
|
|
PUSH_STATE: ae
|
|
} = K;
|
|
var se = i(7836);
|
|
const {
|
|
FEATURE_NAME: ce,
|
|
START: de,
|
|
END: ue,
|
|
BODY: le,
|
|
CB_END: fe,
|
|
JS_TIME: he,
|
|
FETCH: ge,
|
|
FN_START: pe,
|
|
CB_START: me,
|
|
FN_END: ve
|
|
} = se;
|
|
var be = i(4649);
|
|
|
|
class ye extends g {
|
|
static featureName = be.t;
|
|
|
|
constructor(e, t) {
|
|
let r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
|
|
super(e, t, be.t, r), this.importAggregator()
|
|
}
|
|
}
|
|
|
|
new class extends t {
|
|
constructor(t) {
|
|
let r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : (0, j.ky)(16);
|
|
super(), u._A ? (this.agentIdentifier = r, this.sharedAggregator = new w({agentIdentifier: this.agentIdentifier}), this.features = {}, this.desiredFeatures = new Set(t.features || []), this.desiredFeatures.add(v), Object.assign(this, (0, c.j)(this.agentIdentifier, t, t.loaderType || "agent")), this.start()) : (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)
|
|
}
|
|
}
|
|
|
|
start() {
|
|
const t = "features";
|
|
try {
|
|
const n = s(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, D.P)(i), "). This may cause unintended consequences or missing data...")), this.features[t.featureName] = new t(this.agentIdentifier, this.sharedAggregator)
|
|
}
|
|
})), (0, _.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, _.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 page action 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, v, O, class extends g {
|
|
static featureName = ne;
|
|
|
|
constructor(e, t) {
|
|
if (super(e, t, ne, !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]), !u.il) return;
|
|
const n = this.ee;
|
|
let i;
|
|
(0, U.QU)(n), this.eventsEE = (0, U.em)(n), this.eventsEE.on(oe, (function (e, t) {
|
|
this.bstStart = (0, m.z)()
|
|
})), this.eventsEE.on(ie, (function (e, t) {
|
|
(0, d.p)("bst", [e[0], t, this.bstStart, (0, m.z)()], void 0, r.D.sessionTrace, n)
|
|
})), n.on(ae + te, (function (e) {
|
|
this.time = (0, m.z)(), this.startPath = location.pathname + location.hash
|
|
})), n.on(ae + re, (function (e) {
|
|
(0, d.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, d.p)(J, [t], void 0, r.D.sessionTrace, n)
|
|
})), i.observe({type: ee, buffered: !0})
|
|
} catch (e) {
|
|
}
|
|
this.importAggregator({resourceObserver: i})
|
|
}
|
|
}, R, ye, H, class extends g {
|
|
static featureName = ce;
|
|
|
|
constructor(e, t) {
|
|
if (super(e, t, ce, !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]), !u.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, U._L)(this.ee), s = (0, U.Lg)(this.ee), c = (0, U.BV)(this.ee),
|
|
d = (0, U.Kf)(this.ee), l = this.ee.get("events"), f = (0, U.u5)(this.ee), h = (0, U.QU)(this.ee),
|
|
g = (0, U.Gm)(this.ee);
|
|
|
|
function p(e, t) {
|
|
h.emit("newURL", ["" + window.location, t])
|
|
}
|
|
|
|
function v() {
|
|
i++, r = window.location.hash, this[pe] = (0, m.z)()
|
|
}
|
|
|
|
function b() {
|
|
i--, window.location.hash !== r && p(0, !0);
|
|
var e = (0, m.z)();
|
|
this[he] = ~~this[he] + e - this[pe], this[ve] = e
|
|
}
|
|
|
|
function y(e, t) {
|
|
e.on(t, (function () {
|
|
this[t] = (0, m.z)()
|
|
}))
|
|
}
|
|
|
|
this.ee.on(pe, v), s.on(me, v), a.on(me, v), this.ee.on(ve, b), s.on(fe, b), a.on(fe, b), this.ee.buffer([pe, ve, "xhr-resolved"], this.featureName), l.buffer([pe], this.featureName), c.buffer(["setTimeout" + ue, "clearTimeout" + de, pe], this.featureName), d.buffer([pe, "new-xhr", "send-xhr" + de], this.featureName), f.buffer([ge + de, ge + "-done", ge + le + de, ge + le + ue], this.featureName), h.buffer(["newURL"], this.featureName), g.buffer([pe], this.featureName), s.buffer(["propagate", me, fe, "executor-err", "resolve" + de], this.featureName), o.buffer([pe, "no-" + pe], this.featureName), a.buffer(["new-jsonp", "cb-start", "jsonp-error", "jsonp-end"], this.featureName), y(f, ge + de), y(f, ge + "-done"), y(a, "new-jsonp"), y(a, "jsonp-end"), y(a, "cb-start"), h.on("pushState-end", p), h.on("replaceState-end", p), window.addEventListener("hashchange", p, (0, N.m$)(!0, this.removeOnAbort?.signal)), window.addEventListener("load", p, (0, N.m$)(!0, this.removeOnAbort?.signal)), window.addEventListener("popstate", (function () {
|
|
p(0, i > 1)
|
|
}), (0, N.m$)(!0, this.removeOnAbort?.signal)), this.abortHandler = this.#i, this.importAggregator()
|
|
}
|
|
|
|
#i() {
|
|
this.removeOnAbort?.abort(), this.abortHandler = void 0
|
|
}
|
|
}], loaderType: "spa"
|
|
})
|
|
})(), window.NRBA = o
|
|
})();
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div class="loader" id="loader">Loading...</div>
|
|
<div id="graphContainer"></div>
|
|
<script type="module" src="./src/app.ts"></script>
|
|
</body>
|
|
</html>
|