/*! For license information please see h1-main.js.LICENSE.txt */ (() => { var e, t = { 471: (e, t, n) => { "use strict"; n.d(t, { Ay: () => h, Wt: () => p, ec: () => d }); var r = n(2317), o = n(35826), i = n(28992), a = n(67004), s = n(19550), c = n(81870), u = n(73158), l = n(3659), f = n(57946), d = (0, r.Mz)(function(e) { return o.im.selectIsCurrentPageLaunchpad()(e) }, function(e) { return s.IE.selectCurrentTopPickSavings(e) }, function(e) { return a.kF.selectVariant(c.x0)(e) }, function(e, t, n) { return !e && !!((0, u.A)(n) && t > 0 && t < 100) }), p = (0, r.Mz)(function(e) { return s.IE.selectCurrentComparisonShoppingProduct(e) }, function(e) { return s.IE.selectNumUniqueInStockStores(e) }, function(e, t) { var n = e && !!e.canonicalClusterId || !1; return t <= 1 ? null : n }); const h = (0, r.Mz)(function(e) { return o.im.selectIsCurrentPageLaunchpad()(e) }, function(e) { return f.A.selectCurrentProductPriceInsightsData(e) }, function(e) { return i.Og.selectCurrentProductOffer(e) }, function(e) { return s.IE.selectHasViewedWebComparisonForCurrentProduct(e) }, function(e) { return s.IE.selectIsCurrentProductTopPickInCluster(e) }, function(e) { return s.IE.selectNumUniqueInStockStores(e) }, function(e) { return d(e) }, function(e) { return a.kF.selectVariant(c.x0)(e) }, function(e) { return a.kF.selectVariant(l.Di)(e) }, function(e) { return p(e) }, function(e, t, n, r, o, i, a, s, c, l) { var f = t.priceInsightsVariantState, d = t.relativePriceInsights; if (e) return null; var p = "on" === c; if ((0, u.A)(s)) return a && p ? null : l ? { hasMoreThanOneStore: i > 1, isTopPick: o, hasViewedWebComparison: r } : null; var h = Object.keys(d || {}).length > 0, m = !!n, g = m && n.isActivated, y = (d || {}).numUniqueInStockStores > 1; return h ? { priceInsightsVariantState: f, hasOffer: m, offerActivated: g, hasMoreThanOneStore: y } : { priceInsightsVariantState: "none" } }) }, 1152: (e, t, n) => { "use strict"; n.d(t, { Kq: () => o }); var r = n(9666).createContext({ shadowRoot: null }), o = r.Provider }, 1879: (e, t, n) => { "use strict"; n.d(t, { A: () => s }); var r = n(32372), o = n(3659), i = n(81870), a = function(e) { return function(t) { return t && t.experiments && t.experiments.variants && t.experiments.variants[e] } }; const s = { selectVariant: a, selectCurrentTipsContainerVariant: function(e) { return a(i.x0)(e) }, selectIsUniversalSaveEnabled: function(e) { return "on" === a("droplist_universal_save")(e) }, selectIsStandaloneOffer: function(e) { var t = a(r.vE.STANDALONE_OFFERS)(e); return [r.LE.CONTROL, r.LE.STANDALONE].includes(t) }, selectFetchFallbackProductEnabled: function(e) { return "enabled" === a(o.PU)(e) }, selectProductOffersMode: function(e) { return a(r.vE.STANDALONE_OFFERS)(e) === r.LE.TIPS ? "tip" : "standalone" }, selectIsPriceComparisonVariant: function(e) { return a(i.x0)(e) === i.yz.NO_CONQUEST } } }, 2481: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, qL: () => l, zA: () => i.A }); var r = n(78655), o = n(57490), i = n(41299); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 3371: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, D$: () => i.A, Ip: () => l }); var r = n(21189), o = n(75400), i = n(46397); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 3595: (e, t, n) => { "use strict"; var r = Array.prototype.slice, o = n(35251), i = Object.keys, a = i ? function(e) { return i(e) } : n(48541), s = Object.keys; a.shim = function() { if (Object.keys) { var e = function() { var e = Object.keys(arguments); return e && e.length === arguments.length }(1, 2); e || (Object.keys = function(e) { return o(e) ? s(r.call(e)) : s(e) }) } else Object.keys = a; return Object.keys || a }, e.exports = a }, 3650: (e, t, n) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.default = void 0; var r, o = function(e, t) { if (!t && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var n = u(t); if (n && n.has(e)) return n.get(e); var r = { __proto__: null }, o = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var i in e) if ("default" !== i && Object.prototype.hasOwnProperty.call(e, i)) { var a = o ? Object.getOwnPropertyDescriptor(e, i) : null; a && (a.get || a.set) ? Object.defineProperty(r, i, a) : r[i] = e[i] } return r.default = e, n && n.set(e, r), r }(n(9666)), i = (r = n(86146)) && r.__esModule ? r : { default: r }, a = n(22662), s = n(37597), c = n(72097); function u(e) { if ("function" != typeof WeakMap) return null; var t = new WeakMap, n = new WeakMap; return (u = function(e) { return e ? n : t })(e) } const l = 500, f = 250, d = { children: i.default.node.isRequired, onClose: i.default.func.isRequired, open: i.default.bool.isRequired, id: i.default.string.isRequired, onTransitionEnd: i.default.func }, p = { overlay: { position: "absolute", bottom: 0, zIndex: 3, width: "100%", height: 0, transition: "opacity 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms", opacity: 0, backgroundColor: c.Colors.black }, container: { position: "absolute", bottom: 0, display: "flex", flexDirection: "column", transition: "max-height 500ms cubic-bezier(0.4, 0, 0.2, 1) 0ms", height: "auto", maxHeight: e => e, width: "100%", zIndex: 4, borderRadius: "5px", backgroundColor: c.Colors.white }, wrapper: { display: "flex", flexDirection: "column", overflow: "hidden", opacity: 0, transition: "opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 0ms" } }, h = (0, a.createUseStyles)(p), m = ({ children: e, open: t, onTransitionEnd: n, id: r, onClose: i }) => { const [a, c] = (0, o.useState)("0px"), u = h(a), d = (0, o.useRef)(null), p = (0, o.useRef)(null); let m; const g = e => { e.style.opacity = 0, e.style.height = "100%", e.style.transitionDelay = "0ms" }, y = e => { e.style.opacity = "0.33" }; return (0, o.useEffect)(() => { t && (g(p.current), y(p.current)) }, [p.current]), (0, o.useEffect)(() => () => { clearTimeout(m) }, []), o.default.createElement(o.Fragment, null, o.default.createElement(s.Transition, { in: t, onEnter: g, onEntering: y, onExiting: e => { e.style.transitionDelay = "250ms" }, onExited: e => { e.style.opacity = 0, m = setTimeout(() => { e.style.height = 0 }, l) }, timeout: f }, o.default.createElement("div", { ref: p, onClick: i, onTransitionEnd: n, className: u.overlay, "aria-hidden": "true" })), o.default.createElement(s.CSSTransition, { key: r, appear: !0, in: t, onEnter: e => { e.classList.contains("appear") && (e.style.height = a), e.style.maxHeight = a, e.style.transitionDelay = "0ms", d.current.style.transitionDelay = "250ms" }, onEntering: e => { e.style.height = "auto", e.style.maxHeight = "calc(100% - 56px)", d.current.style.opacity = 1 }, onEntered: e => { c(`${e.clientHeight}px`) }, onExit: e => { e.style.maxHeight = 0, e.style.transitionDelay = "125ms", d.current.style.opacity = 0, d.current.style.transitionDelay = "0ms", c(0) }, timeout: l }, o.default.createElement("div", { className: u.container }, o.default.createElement("div", { ref: d, className: u.wrapper }, e)))) }; m.propTypes = d, m.defaultProps = { onTransitionEnd: () => {} }; t.default = m }, 3659: (e, t, n) => { "use strict"; n.d(t, { $f: () => p, AX: () => i, Di: () => u, L5: () => l, PU: () => s, Q3: () => d, fB: () => r, nc: () => a, ot: () => o, s$: () => c, yG: () => f }); var r = "personalized_offers_for_unauth_users", o = "pop_all_rpc", i = "fsacc_gold_to_psb", a = "droplist_ocs_collections_popup", s = "tips_fetch_fallback_product", c = "web_shipping_in_comparisons", u = "ext_top_pick_savings_dollar", l = "ext_atlas_mismatch", f = "merging_fsacc_button_style_change", d = "ext_post_purchase_xsell_v1", p = "ext_post_purchase_xsell_lo_v2" }, 3700: e => { var t = {}.toString; e.exports = Array.isArray || function(e) { return "[object Array]" == t.call(e) } }, 5350: (e, t, n) => { "use strict"; n.d(t, { f: () => l }); var r = n(9921), o = n(46946), i = n(32698); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = function(e) { return function(t, n) { var a = c(c({}, (0, i.A)(n())), e); o.A.sendEvent("tip004034", a), r.A.debug("TIPS_BADGE:".concat(a.event), a) } } }, 6120: (e, t, n) => { "use strict"; n.d(t, { A: () => f }); var r = n(74438), o = n(28655), i = (n(10823), n(20392)); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var u = [o.A], l = function(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { c(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e }({}, i.A); const f = (0, r.U1)({ reducer: l, middleware: u, devtools: !1, enhancers: [] }) }, 6202: (e, t, n) => { "use strict"; n.d(t, { A: () => a, I: () => i }); var r = n(23649), o = n(36927), i = function() { return function(e, t) { var n = (0, o.A)(t()).id; e(r.Qq.hideFeedbackForm({ containerId: n })), e(r.Qq.resetBottomSheet({ containerId: n })) } }; const a = function() { return function(e, t) { var n = (0, o.A)(t()).id; return e(r.Qq.closeBottomSheet({ containerId: n })) } } }, 6362: (e, t, n) => { "use strict"; t.A = void 0; var r = c(n(9666)), o = n(22662), i = c(n(86146)), a = n(72097), s = c(n(15793)); function c(e) { return e && e.__esModule ? e : { default: e } } const u = { onMouseDown: i.default.func, onMouseUp: i.default.func }, l = { root: { display: "flex" }, container: { width: "27px", height: "100%", backgroundColor: a.Colors.main600, display: "flex", alignItems: "center", justifyContent: "center" } }, f = (0, o.createUseStyles)(l), d = ({ onMouseDown: e, onMouseUp: t }) => { const n = f(); return r.default.createElement("div", { className: n.root, onMouseDown: e, onMouseUp: t, role: "button", tabIndex: "0" }, r.default.createElement("div", { className: n.container }, r.default.createElement(s.default, { color: a.Colors.white }))) }; d.propTypes = u, d.defaultProps = { onMouseDown: () => {}, onMouseUp: () => {} }; t.A = d }, 6687: (e, t, n) => { "use strict"; var r = n(18201), o = n(33562), i = n(79809), a = n(1405); e.exports = function(e, t, n) { if (!e || "object" != typeof e && "function" != typeof e) throw new i("`obj` must be an object or a function`"); if ("string" != typeof t && "symbol" != typeof t) throw new i("`property` must be a string or a symbol`"); if (arguments.length > 3 && "boolean" != typeof arguments[3] && null !== arguments[3]) throw new i("`nonEnumerable`, if provided, must be a boolean or null"); if (arguments.length > 4 && "boolean" != typeof arguments[4] && null !== arguments[4]) throw new i("`nonWritable`, if provided, must be a boolean or null"); if (arguments.length > 5 && "boolean" != typeof arguments[5] && null !== arguments[5]) throw new i("`nonConfigurable`, if provided, must be a boolean or null"); if (arguments.length > 6 && "boolean" != typeof arguments[6]) throw new i("`loose`, if provided, must be a boolean"); var s = arguments.length > 3 ? arguments[3] : null, c = arguments.length > 4 ? arguments[4] : null, u = arguments.length > 5 ? arguments[5] : null, l = arguments.length > 6 && arguments[6], f = !!a && a(e, t); if (r) r(e, t, { configurable: null === u && f ? f.configurable : !u, enumerable: null === s && f ? f.enumerable : !s, value: n, writable: null === c && f ? f.writable : !c }); else { if (!l && (s || c || u)) throw new o("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable."); e[t] = n } } }, 7459: (e, t, n) => { "use strict"; n.d(t, { A: () => a }); var r = n(23649), o = n(33118), i = n(36927); const a = function() { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).resetTipsShown, t = void 0 === e || e; return function(e, n) { var a = (0, i.A)(n()).id; return e((0, o.F)({ action: "close_container", event: "action" })), e(r.Qq.setRecentlyClosedContainer({ recentlyClosedContainer: !0 })), setTimeout(function() { e(r.Qq.setRecentlyClosedContainer({ recentlyClosedContainer: !1 })) }, 100), e(r.Qq.closeContainer({ containerId: a, resetTipsShown: t })) } } }, 7837: (e, t, n) => { "use strict"; n.d(t, { A: () => f }); var r = n(44281), o = n.n(r), i = n(9666), a = n(75117), s = n(24333); function c(e, t) { var n = "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (!n) { if (Array.isArray(e) || (n = function(e, t) { if (e) { if ("string" == typeof e) return u(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? u(e, t) : void 0 } }(e)) || t && e && "number" == typeof e.length) { n && (e = n); var r = 0, o = function() {}; return { s: o, n: function() { return r >= e.length ? { done: !0 } : { done: !1, value: e[r++] } }, e: function(e) { throw e }, f: o } } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") } var i, a = !0, s = !1; return { s: function() { n = n.call(e) }, n: function() { var e = n.next(); return a = e.done, e }, e: function(e) { s = !0, i = e }, f: function() { try { a || null == n.return || n.return() } finally { if (s) throw i } } } } function u(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } function l() { return a.A.getUILanguage() } const f = { formatPrice: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = t.country, r = t.currencySymbol, i = void 0 === r ? "$" : r, a = t.precision, c = void 0 === a ? e % 1 == 0 ? 0 : 2 : a, u = t.compact, f = void 0 !== u && u; return n ? new Intl.NumberFormat(l(), { style: "currency", currency: s.A.getCountryCurrencyCode(n), minimumFractionDigits: c, notation: f ? "compact" : "standard" }).format(e) : o().formatMoney(e, i, c, ",", ".") }, getCountryCode: function() { return a.A.getCountryCode() }, getMessage: function(e) { return a.A.getMessage(e) }, getMessageAndReplace: function(e, t) { var n = [], r = {}; Object.keys(t).forEach(function(e) { r[e] = 0 }); var o, s = a.A.getMessage(e), u = 0, l = c(s.match(/(\{[A-Z]+\})/g) || []); try { for (l.s(); !(o = l.n()).done;) { var f = o.value, d = f.substr(1, f.length - 2); d in t && (n.push(s.substring(u, s.indexOf(f, u))), u = s.indexOf(f, u) + f.length, i.isValidElement(t[d]) ? (r[d] += 1, n.push(i.cloneElement(t[d], { key: "".concat(d, "-").concat(r[d]) }))) : n.push(t[d])) } } catch (e) { l.e(e) } finally { l.f() } return n.push(s.substring(u)), n }, getUILanguage: l } }, 8706: (e, t, n) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.default = void 0; var r, o = function(e, t) { if (!t && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var n = c(t); if (n && n.has(e)) return n.get(e); var r = { __proto__: null }, o = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var i in e) if ("default" !== i && Object.prototype.hasOwnProperty.call(e, i)) { var a = o ? Object.getOwnPropertyDescriptor(e, i) : null; a && (a.get || a.set) ? Object.defineProperty(r, i, a) : r[i] = e[i] } return r.default = e, n && n.set(e, r), r }(n(9666)), i = (r = n(86146)) && r.__esModule ? r : { default: r }, a = n(22662), s = n(72097); function c(e) { if ("function" != typeof WeakMap) return null; var t = new WeakMap, n = new WeakMap; return (c = function(e) { return e ? n : t })(e) } const u = { header: i.default.node.isRequired, children: i.default.any.isRequired, footer: i.default.node }, l = { footer: void 0 }, f = { contentWrapper: { overflow: "auto" }, headerShadowCover: { position: "relative", top: 0, height: "3px", background: s.Colors.white }, content: { padding: "0 24px 16px 24px" } }, d = (0, a.createUseStyles)(f), p = ({ header: e, footer: t, children: n }) => { const r = d(); return o.default.createElement(o.Fragment, null, e, o.default.createElement("div", { className: r.contentWrapper }, o.default.createElement("div", { className: r.headerShadowCover }), o.default.createElement("div", { className: r.content }, n)), t) }; p.propTypes = u, p.defaultProps = l; t.default = p }, 8845: (e, t, n) => { "use strict"; t.Ay = void 0; var r = s(n(9666)), o = s(n(86146)), i = n(22662), a = s(n(31371)); function s(e) { return e && e.__esModule ? e : { default: e } } function c() { return c = Object.assign ? Object.assign.bind() : function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]) } return e }, c.apply(this, arguments) } const u = (0, i.createUseStyles)({ root: ({ background: e, classes: t = {} }) => ({ height: "48px", display: "flex", justifyContent: "center", alignItems: "center", cursor: "pointer", border: "none", width: "100%", textAlign: "center", padding: "10px", flexDirection: "row", ...t.root || {}, background: e }), text: ({ classes: e = {} }) => ({ composes: "title1", paddingRight: 6, ...e.text || {}, verticalAlign: "middle" }) }), l = e => { const { text: t, classes: n, icon: o, children: i, ...s } = e, l = u(e); let f; f = i ? "string" == typeof i ? r.default.createElement("div", { className: l.text }, " ", i, " ") : i : "string" == typeof t ? r.default.createElement("div", { className: l.text }, " ", t, " ") : t; const d = "string" == typeof o ? r.default.createElement(a.default, { icon: o }) : o; return r.default.createElement("button", c({ tabIndex: 0, "aria-label": "honey-tips-navigation-button", className: l.root }, s), f, d) }; l.propTypes = { text: o.default.oneOfType([o.default.string, o.default.node]), icon: o.default.oneOfType([o.default.string, o.default.node]), background: o.default.string, classes: o.default.object, children: o.default.oneOfType([o.default.string, o.default.node]) }, l.defaultProps = { text: null, icon: null, background: "white", classes: {}, children: null }; t.Ay = l }, 9098: (e, t, n) => { "use strict"; n.d(t, { Kq: () => r.Kq, Ng: () => r.Ng, d4: () => r.d4, wA: () => r.wA }); var r = n(27921), o = n(82906); (0, n(37812).d)(o.r) }, 9996: (e, t, n) => { "use strict"; n.d(t, { A: () => l, C: () => u }); var r = n(9098), o = n(24010), i = n(99507), a = n(31311), s = n(5735), c = n(18802), u = { SEE_MORE_TIPS: "SEE_MORE_TIPS", SEE_DEAL_SUMMARY: "SEE_DEAL_SUMMARY", POWERED_BY: "POWERED_BY" }; const l = function() { var e = (0, r.d4)(a.A), t = ((0, r.d4)(i.A) || {}).categoryId, n = ((0, r.d4)(s.A) || []).length > 1, l = (0, r.d4)(o.A), f = (0, c.A)(); return e && n ? "Main" !== t && l ? u.SEE_DEAL_SUMMARY : u.SEE_MORE_TIPS : f ? u.POWERED_BY : null } }, 10408: e => { "use strict"; var t, n, r, o = /[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, i = { "\b": "\\b", "\t": "\\t", "\n": "\\n", "\f": "\\f", "\r": "\\r", '"': '\\"', "\\": "\\\\" }; function a(e) { return o.lastIndex = 0, o.test(e) ? '"' + e.replace(o, function(e) { var t = i[e]; return "string" == typeof t ? t : "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4) }) + '"' : '"' + e + '"' } function s(e, o) { var i, c, u, l, f, d = t, p = o[e]; switch (p && "object" == typeof p && "function" == typeof p.toJSON && (p = p.toJSON(e)), "function" == typeof r && (p = r.call(o, e, p)), typeof p) { case "string": return a(p); case "number": return isFinite(p) ? String(p) : "null"; case "boolean": case "null": return String(p); case "object": if (!p) return "null"; if (t += n, f = [], "[object Array]" === Object.prototype.toString.apply(p)) { for (l = p.length, i = 0; i < l; i += 1) f[i] = s(i, p) || "null"; return u = 0 === f.length ? "[]" : t ? "[\n" + t + f.join(",\n" + t) + "\n" + d + "]" : "[" + f.join(",") + "]", t = d, u } if (r && "object" == typeof r) for (l = r.length, i = 0; i < l; i += 1) "string" == typeof(c = r[i]) && (u = s(c, p)) && f.push(a(c) + (t ? ": " : ":") + u); else for (c in p) Object.prototype.hasOwnProperty.call(p, c) && (u = s(c, p)) && f.push(a(c) + (t ? ": " : ":") + u); return u = 0 === f.length ? "{}" : t ? "{\n" + t + f.join(",\n" + t) + "\n" + d + "}" : "{" + f.join(",") + "}", t = d, u } } e.exports = function(e, o, i) { var a; if (t = "", n = "", "number" == typeof i) for (a = 0; a < i; a += 1) n += " "; else "string" == typeof i && (n = i); if (r = o, o && "function" != typeof o && ("object" != typeof o || "number" != typeof o.length)) throw new Error("JSON.stringify"); return s("", { "": e }) } }, 11389: function(e, t, n) { var r, o; /*! @preserve * numeral.js * version : 2.0.6 * author : Adam Draper * license : MIT * http://adamwdraper.github.com/Numeral-js/ */ r = function() { var e, t, n, r, o, i = "2.0.6", a = {}, s = {}, c = { currentLocale: "en", zeroFormat: null, nullFormat: null, defaultFormat: "0,0", scalePercentBy100: !0 }, u = { currentLocale: c.currentLocale, zeroFormat: c.zeroFormat, nullFormat: c.nullFormat, defaultFormat: c.defaultFormat, scalePercentBy100: c.scalePercentBy100 }; function l(e, t) { this._input = e, this._value = t } return (e = function(n) { var r, o, i, s; if (e.isNumeral(n)) r = n.value(); else if (0 === n || void 0 === n) r = 0; else if (null === n || t.isNaN(n)) r = null; else if ("string" == typeof n) if (u.zeroFormat && n === u.zeroFormat) r = 0; else if (u.nullFormat && n === u.nullFormat || !n.replace(/[^0-9]+/g, "").length) r = null; else { for (o in a) if ((s = "function" == typeof a[o].regexps.unformat ? a[o].regexps.unformat() : a[o].regexps.unformat) && n.match(s)) { i = a[o].unformat; break } r = (i = i || e._.stringToNumber)(n) } else r = Number(n) || null; return new l(n, r) }).version = i, e.isNumeral = function(e) { return e instanceof l }, e._ = t = { numberToFormat: function(t, n, r) { var o, i, a, c, u, l, f, d = s[e.options.currentLocale], p = !1, h = !1, m = 0, g = "", y = 1e12, v = 1e9, b = 1e6, _ = 1e3, S = "", w = !1; if (t = t || 0, i = Math.abs(t), e._.includes(n, "(") ? (p = !0, n = n.replace(/[\(|\)]/g, "")) : (e._.includes(n, "+") || e._.includes(n, "-")) && (u = e._.includes(n, "+") ? n.indexOf("+") : t < 0 ? n.indexOf("-") : -1, n = n.replace(/[\+|\-]/g, "")), e._.includes(n, "a") && (o = !!(o = n.match(/a(k|m|b|t)?/)) && o[1], e._.includes(n, " a") && (g = " "), n = n.replace(new RegExp(g + "a[kmbt]?"), ""), i >= y && !o || "t" === o ? (g += d.abbreviations.trillion, t /= y) : i < y && i >= v && !o || "b" === o ? (g += d.abbreviations.billion, t /= v) : i < v && i >= b && !o || "m" === o ? (g += d.abbreviations.million, t /= b) : (i < b && i >= _ && !o || "k" === o) && (g += d.abbreviations.thousand, t /= _)), e._.includes(n, "[.]") && (h = !0, n = n.replace("[.]", ".")), a = t.toString().split(".")[0], c = n.split(".")[1], l = n.indexOf(","), m = (n.split(".")[0].split(",")[0].match(/0/g) || []).length, c ? (e._.includes(c, "[") ? (c = (c = c.replace("]", "")).split("["), S = e._.toFixed(t, c[0].length + c[1].length, r, c[1].length)) : S = e._.toFixed(t, c.length, r), a = S.split(".")[0], S = e._.includes(S, ".") ? d.delimiters.decimal + S.split(".")[1] : "", h && 0 === Number(S.slice(1)) && (S = "")) : a = e._.toFixed(t, 0, r), g && !o && Number(a) >= 1e3 && g !== d.abbreviations.trillion) switch (a = String(Number(a) / 1e3), g) { case d.abbreviations.thousand: g = d.abbreviations.million; break; case d.abbreviations.million: g = d.abbreviations.billion; break; case d.abbreviations.billion: g = d.abbreviations.trillion } if (e._.includes(a, "-") && (a = a.slice(1), w = !0), a.length < m) for (var O = m - a.length; O > 0; O--) a = "0" + a; return l > -1 && (a = a.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1" + d.delimiters.thousands)), 0 === n.indexOf(".") && (a = ""), f = a + S + (g || ""), p ? f = (p && w ? "(" : "") + f + (p && w ? ")" : "") : u >= 0 ? f = 0 === u ? (w ? "-" : "+") + f : f + (w ? "-" : "+") : w && (f = "-" + f), f }, stringToNumber: function(e) { var t, n, r, o = s[u.currentLocale], i = e, a = { thousand: 3, million: 6, billion: 9, trillion: 12 }; if (u.zeroFormat && e === u.zeroFormat) n = 0; else if (u.nullFormat && e === u.nullFormat || !e.replace(/[^0-9]+/g, "").length) n = null; else { for (t in n = 1, "." !== o.delimiters.decimal && (e = e.replace(/\./g, "").replace(o.delimiters.decimal, ".")), a) if (r = new RegExp("[^a-zA-Z]" + o.abbreviations[t] + "(?:\\)|(\\" + o.currency.symbol + ")?(?:\\))?)?$"), i.match(r)) { n *= Math.pow(10, a[t]); break } n *= (e.split("-").length + Math.min(e.split("(").length - 1, e.split(")").length - 1)) % 2 ? 1 : -1, e = e.replace(/[^0-9\.]+/g, ""), n *= Number(e) } return n }, isNaN: function(e) { return "number" == typeof e && isNaN(e) }, includes: function(e, t) { return -1 !== e.indexOf(t) }, insert: function(e, t, n) { return e.slice(0, n) + t + e.slice(n) }, reduce: function(e, t) { if (null === this) throw new TypeError("Array.prototype.reduce called on null or undefined"); if ("function" != typeof t) throw new TypeError(t + " is not a function"); var n, r = Object(e), o = r.length >>> 0, i = 0; if (3 === arguments.length) n = arguments[2]; else { for (; i < o && !(i in r);) i++; if (i >= o) throw new TypeError("Reduce of empty array with no initial value"); n = r[i++] } for (; i < o; i++) i in r && (n = t(n, r[i], i, r)); return n }, multiplier: function(e) { var t = e.toString().split("."); return t.length < 2 ? 1 : Math.pow(10, t[1].length) }, correctionFactor: function() { return Array.prototype.slice.call(arguments).reduce(function(e, n) { var r = t.multiplier(n); return e > r ? e : r }, 1) }, toFixed: function(e, t, n, r) { var o, i, a, s, c = e.toString().split("."), u = t - (r || 0); return o = 2 === c.length ? Math.min(Math.max(c[1].length, u), t) : u, a = Math.pow(10, o), s = (n(e + "e+" + o) / a).toFixed(o), r > t - o && (i = new RegExp("\\.?0{1," + (r - (t - o)) + "}$"), s = s.replace(i, "")), s } }, e.options = u, e.formats = a, e.locales = s, e.locale = function(e) { return e && (u.currentLocale = e.toLowerCase()), u.currentLocale }, e.localeData = function(e) { if (!e) return s[u.currentLocale]; if (e = e.toLowerCase(), !s[e]) throw new Error("Unknown locale : " + e); return s[e] }, e.reset = function() { for (var e in c) u[e] = c[e] }, e.zeroFormat = function(e) { u.zeroFormat = "string" == typeof e ? e : null }, e.nullFormat = function(e) { u.nullFormat = "string" == typeof e ? e : null }, e.defaultFormat = function(e) { u.defaultFormat = "string" == typeof e ? e : "0.0" }, e.register = function(e, t, n) { if (t = t.toLowerCase(), this[e + "s"][t]) throw new TypeError(t + " " + e + " already registered."); return this[e + "s"][t] = n, n }, e.validate = function(t, n) { var r, o, i, a, s, c, u, l; if ("string" != typeof t && (t += "", console.warn && console.warn("Numeral.js: Value is not string. It has been co-erced to: ", t)), (t = t.trim()).match(/^\d+$/)) return !0; if ("" === t) return !1; try { u = e.localeData(n) } catch (t) { u = e.localeData(e.locale()) } return i = u.currency.symbol, s = u.abbreviations, r = u.delimiters.decimal, o = "." === u.delimiters.thousands ? "\\." : u.delimiters.thousands, !(null !== (l = t.match(/^[^\d]+/)) && (t = t.substr(1), l[0] !== i) || null !== (l = t.match(/[^\d]+$/)) && (t = t.slice(0, -1), l[0] !== s.thousand && l[0] !== s.million && l[0] !== s.billion && l[0] !== s.trillion) || (c = new RegExp(o + "{2}"), t.match(/[^\d.,]/g) || (a = t.split(r)).length > 2 || (a.length < 2 ? !a[0].match(/^\d+.*\d$/) || a[0].match(c) : 1 === a[0].length ? !a[0].match(/^\d+$/) || a[0].match(c) || !a[1].match(/^\d+$/) : !a[0].match(/^\d+.*\d$/) || a[0].match(c) || !a[1].match(/^\d+$/)))) }, e.fn = l.prototype = { clone: function() { return e(this) }, format: function(t, n) { var r, o, i, s = this._value, c = t || u.defaultFormat; if (n = n || Math.round, 0 === s && null !== u.zeroFormat) o = u.zeroFormat; else if (null === s && null !== u.nullFormat) o = u.nullFormat; else { for (r in a) if (c.match(a[r].regexps.format)) { i = a[r].format; break } o = (i = i || e._.numberToFormat)(s, c, n) } return o }, value: function() { return this._value }, input: function() { return this._input }, set: function(e) { return this._value = Number(e), this }, add: function(e) { var n = t.correctionFactor.call(null, this._value, e); function r(e, t, r, o) { return e + Math.round(n * t) } return this._value = t.reduce([this._value, e], r, 0) / n, this }, subtract: function(e) { var n = t.correctionFactor.call(null, this._value, e); function r(e, t, r, o) { return e - Math.round(n * t) } return this._value = t.reduce([e], r, Math.round(this._value * n)) / n, this }, multiply: function(e) { function n(e, n, r, o) { var i = t.correctionFactor(e, n); return Math.round(e * i) * Math.round(n * i) / Math.round(i * i) } return this._value = t.reduce([this._value, e], n, 1), this }, divide: function(e) { function n(e, n, r, o) { var i = t.correctionFactor(e, n); return Math.round(e * i) / Math.round(n * i) } return this._value = t.reduce([this._value, e], n), this }, difference: function(t) { return Math.abs(e(this._value).subtract(t).value()) } }, e.register("locale", "en", { delimiters: { thousands: ",", decimal: "." }, abbreviations: { thousand: "k", million: "m", billion: "b", trillion: "t" }, ordinal: function(e) { var t = e % 10; return 1 == ~~(e % 100 / 10) ? "th" : 1 === t ? "st" : 2 === t ? "nd" : 3 === t ? "rd" : "th" }, currency: { symbol: "$" } }), e.register("format", "bps", { regexps: { format: /(BPS)/, unformat: /(BPS)/ }, format: function(t, n, r) { var o, i = e._.includes(n, " BPS") ? " " : ""; return t *= 1e4, n = n.replace(/\s?BPS/, ""), o = e._.numberToFormat(t, n, r), e._.includes(o, ")") ? ((o = o.split("")).splice(-1, 0, i + "BPS"), o = o.join("")) : o = o + i + "BPS", o }, unformat: function(t) { return +(1e-4 * e._.stringToNumber(t)).toFixed(15) } }), r = { base: 1024, suffixes: ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"] }, o = "(" + (o = (n = { base: 1e3, suffixes: ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"] }).suffixes.concat(r.suffixes.filter(function(e) { return n.suffixes.indexOf(e) < 0 })).join("|")).replace("B", "B(?!PS)") + ")", e.register("format", "bytes", { regexps: { format: /([0\s]i?b)/, unformat: new RegExp(o) }, format: function(t, o, i) { var a, s, c, u = e._.includes(o, "ib") ? r : n, l = e._.includes(o, " b") || e._.includes(o, " ib") ? " " : ""; for (o = o.replace(/\s?i?b/, ""), a = 0; a <= u.suffixes.length; a++) if (s = Math.pow(u.base, a), c = Math.pow(u.base, a + 1), null === t || 0 === t || t >= s && t < c) { l += u.suffixes[a], s > 0 && (t /= s); break } return e._.numberToFormat(t, o, i) + l }, unformat: function(t) { var o, i, a = e._.stringToNumber(t); if (a) { for (o = n.suffixes.length - 1; o >= 0; o--) { if (e._.includes(t, n.suffixes[o])) { i = Math.pow(n.base, o); break } if (e._.includes(t, r.suffixes[o])) { i = Math.pow(r.base, o); break } } a *= i || 1 } return a } }), e.register("format", "currency", { regexps: { format: /(\$)/ }, format: function(t, n, r) { var o, i, a = e.locales[e.options.currentLocale], s = { before: n.match(/^([\+|\-|\(|\s|\$]*)/)[0], after: n.match(/([\+|\-|\)|\s|\$]*)$/)[0] }; for (n = n.replace(/\s?\$\s?/, ""), o = e._.numberToFormat(t, n, r), t >= 0 ? (s.before = s.before.replace(/[\-\(]/, ""), s.after = s.after.replace(/[\-\)]/, "")) : t < 0 && !e._.includes(s.before, "-") && !e._.includes(s.before, "(") && (s.before = "-" + s.before), i = 0; i < s.before.length; i++) switch (s.before[i]) { case "$": o = e._.insert(o, a.currency.symbol, i); break; case " ": o = e._.insert(o, " ", i + a.currency.symbol.length - 1) } for (i = s.after.length - 1; i >= 0; i--) switch (s.after[i]) { case "$": o = i === s.after.length - 1 ? o + a.currency.symbol : e._.insert(o, a.currency.symbol, -(s.after.length - (1 + i))); break; case " ": o = i === s.after.length - 1 ? o + " " : e._.insert(o, " ", -(s.after.length - (1 + i) + a.currency.symbol.length - 1)) } return o } }), e.register("format", "exponential", { regexps: { format: /(e\+|e-)/, unformat: /(e\+|e-)/ }, format: function(t, n, r) { var o = ("number" != typeof t || e._.isNaN(t) ? "0e+0" : t.toExponential()).split("e"); return n = n.replace(/e[\+|\-]{1}0/, ""), e._.numberToFormat(Number(o[0]), n, r) + "e" + o[1] }, unformat: function(t) { var n = e._.includes(t, "e+") ? t.split("e+") : t.split("e-"), r = Number(n[0]), o = Number(n[1]); function i(t, n, r, o) { var i = e._.correctionFactor(t, n); return t * i * (n * i) / (i * i) } return o = e._.includes(t, "e-") ? o *= -1 : o, e._.reduce([r, Math.pow(10, o)], i, 1) } }), e.register("format", "ordinal", { regexps: { format: /(o)/ }, format: function(t, n, r) { var o = e.locales[e.options.currentLocale], i = e._.includes(n, " o") ? " " : ""; return n = n.replace(/\s?o/, ""), i += o.ordinal(t), e._.numberToFormat(t, n, r) + i } }), e.register("format", "percentage", { regexps: { format: /(%)/, unformat: /(%)/ }, format: function(t, n, r) { var o, i = e._.includes(n, " %") ? " " : ""; return e.options.scalePercentBy100 && (t *= 100), n = n.replace(/\s?\%/, ""), o = e._.numberToFormat(t, n, r), e._.includes(o, ")") ? ((o = o.split("")).splice(-1, 0, i + "%"), o = o.join("")) : o = o + i + "%", o }, unformat: function(t) { var n = e._.stringToNumber(t); return e.options.scalePercentBy100 ? .01 * n : n } }), e.register("format", "time", { regexps: { format: /(:)/, unformat: /(:)/ }, format: function(e, t, n) { var r = Math.floor(e / 60 / 60), o = Math.floor((e - 60 * r * 60) / 60), i = Math.round(e - 60 * r * 60 - 60 * o); return r + ":" + (o < 10 ? "0" + o : o) + ":" + (i < 10 ? "0" + i : i) }, unformat: function(e) { var t = e.split(":"), n = 0; return 3 === t.length ? (n += 60 * Number(t[0]) * 60, n += 60 * Number(t[1]), n += Number(t[2])) : 2 === t.length && (n += 60 * Number(t[0]), n += Number(t[1])), Number(n) } }), e }, void 0 === (o = "function" == typeof r ? r.call(t, n, t, e) : r) || (e.exports = o) }, 13351: (e, t, n) => { "use strict"; n.d(t, { Ay: () => h, dx: () => f, yn: () => d }); var r = n(9666), o = n(86146), i = n.n(o), a = n(9098), s = n(23649), c = n(29020), u = n(98119), l = n(74428), f = { tipId: i().string.isRequired, templateType: i().oneOf(["card", "teaser", "bottomSheet"]).isRequired, isSecondary: i().bool, scrollToCard: i().bool }, d = { isSecondary: !1, scrollToCard: !1 }, p = function(e) { var t = e.tipId, n = e.templateType, o = (0, a.d4)(s.fc.selectTipById(t)), i = (0, a.d4)((0, l.A)(t)) || {}, f = (0, r.useMemo)(function() { return { tipId: t, categoryData: i } }, [i, t]); if (!o) return null; var d = (0, c.A)(o.template, n); if (!d) return null; var p = "card" === n ? r.createElement("div", null, r.createElement(d, e)) : r.createElement(d, e); return r.createElement(u.A.Provider, { value: f }, p) }; p.propTypes = f, p.defaultProps = d; const h = p }, 17940: (e, t, n) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), Object.defineProperty(t, "BottomSheetFooter", { enumerable: !0, get: function() { return r.default } }), Object.defineProperty(t, "BottomSheetHeader", { enumerable: !0, get: function() { return o.default } }), Object.defineProperty(t, "CardFooter", { enumerable: !0, get: function() { return i.default } }), Object.defineProperty(t, "ContainerLoader", { enumerable: !0, get: function() { return a.default } }), Object.defineProperty(t, "ContainerWithDropdown", { enumerable: !0, get: function() { return s.default } }), Object.defineProperty(t, "DealEstimateContent", { enumerable: !0, get: function() { return c.default } }), Object.defineProperty(t, "Feedback", { enumerable: !0, get: function() { return u.default } }), Object.defineProperty(t, "FeedbackButton", { enumerable: !0, get: function() { return l.default } }), Object.defineProperty(t, "FeedbackRadio", { enumerable: !0, get: function() { return f.default } }), Object.defineProperty(t, "Header", { enumerable: !0, get: function() { return d.default } }), Object.defineProperty(t, "HoneyGoldProgress", { enumerable: !0, get: function() { return p.default } }), Object.defineProperty(t, "HoneyGoldStackedProgress", { enumerable: !0, get: function() { return h.default } }), Object.defineProperty(t, "MiniBadge", { enumerable: !0, get: function() { return m.default } }), Object.defineProperty(t, "MiniBadgeWithTeaser", { enumerable: !0, get: function() { return g.default } }), Object.defineProperty(t, "MovableBadge", { enumerable: !0, get: function() { return y.default } }), Object.defineProperty(t, "Tab", { enumerable: !0, get: function() { return v.default } }), Object.defineProperty(t, "Tooltip", { enumerable: !0, get: function() { return b.default } }); var r = _(n(70585)), o = _(n(33731)), i = _(n(76631)), a = _(n(97011)), s = _(n(23362)), c = _(n(49753)), u = _(n(86633)), l = _(n(90449)), f = _(n(80190)), d = _(n(96979)), p = _(n(17130)), h = _(n(26607)), m = _(n(89582)), g = _(n(22390)), y = _(n(72695)), v = _(n(75191)), b = _(n(5260)); function _(e) { return e && e.__esModule ? e : { default: e } } }, 18522: (e, t, n) => { "use strict"; var r = n(18201), o = function() { return !!r }; o.hasArrayLengthDefineBug = function() { if (!r) return null; try { return 1 !== r([], "length", { value: 1 }).length } catch (e) { return !0 } }, e.exports = o }, 19550: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, IE: () => i.A, zK: () => l }); var r = n(53996), o = n(83221), i = n(56628); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 20989: (e, t, n) => { "use strict"; n.d(t, { SG: () => jr, BW: () => Cr, Sv: () => Rr }); var r = n(9666), o = n(9098), i = n(9921), a = n(35826), s = n(27102), c = n(35614), u = n(22626), l = n(17940), f = n(54099), d = n(28992), p = n(86146), h = n.n(p), m = n(22662), g = (0, m.createUseStyles)({ layout: { position: "fixed", top: function(e) { return e.top }, right: 16, zIndex: 2147483647 } }), y = r.forwardRef(function(e, t) { var n = e.children, o = e.top, i = e.onMouseOver, a = e.onMouseLeave, s = g({ top: o }); return r.createElement("div", { className: s.layout, ref: t, onMouseOver: i, onMouseLeave: a }, n) }); y.propTypes = { children: h().node, top: h().number, onMouseOver: h().func, onMouseLeave: h().func }, y.defaultProps = { children: void 0, top: 16, onMouseOver: function() {}, onMouseLeave: function() {} }; const v = y; var b = n(72097), _ = n(23649), S = n(36927); const w = function() { var e = (0, o.wA)(), t = (0, o.d4)(S.A) || {}, n = t.id, i = t.notificationBanner, a = void 0 === i ? {} : i, s = a.showBanner, c = void 0 !== s && s, u = a.copy, l = a.color, f = a.ctaAction, d = a.ctaCopy; return r.createElement(b.NotificationBanner, { show: c, copy: u, color: l, ctaAction: f, ctaCopy: d, src: "UniversalContainer", short: !0, stackAbove: !0, zIndex: 3, onClose: function() { return e(_.Qq.resetNotificationBanner({ containerId: n })) } }) }; var O = n(7837), E = n(50618), k = n(70481), T = n(28555), x = n(84949), I = n(5350), P = n(33118), A = n(2236), C = n(6525), j = n(7459), R = n(64287); function M(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return D(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? D(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function D(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } var N = function(e, t) { var n = (0, S.z)(t()); e(_.Qq.snoozeContainer({ containerId: n })), Rr(), e((0, I.f)({ event: "action", action: "snooze_page" })), e((0, P.F)({ event: "action", action: "snooze" })) }, L = function(e) { e((0, P.F)({ event: "action", action: "click_settings" })) }, F = function(e) { var t = e.noClose, n = e.customSize, i = e.customColor, a = (0, o.wA)(), s = ((0, o.d4)(E.Ax.selectUser()) || {}).isLoggedIn, c = (0, o.d4)(k.VH.selectCurrentStoreId()), u = ((0, o.d4)(R.fN) || {}).productId, l = (0, o.d4)(C.A), f = (0, o.d4)(_.fc.selectConfiguration), d = f.links, p = void 0 === d ? {} : d, h = f.hasExtraSnoozeSettings, m = void 0 !== h && h, g = p.featureSettings || "https://www.joinhoney.com/settings/feature-settings", y = p.debugProduct || "https://dash.joinhoney.com/product-catalog/product?productId={PRODUCT_ID}", v = M((0, r.useState)(!1), 2), S = v[0], w = v[1], P = [{ label: O.A.getMessage("Hide_on_this_page"), key: "snooze_page", onClick: function() { a(N) } }, { label: O.A.getMessage("Snooze_for_24_hours"), key: "snooze_24", onClick: function() { a((0, A.Dg)(1)), w(!1), a((0, I.f)({ event: "action", action: "snooze_24" })), Rr() } }], D = s ? { label: O.A.getMessage("Go_to_settings"), key: "go_to_settings", onClick: function() { w(!S), window.open(g) } } : { label: O.A.getMessage("Snooze_on_all_sites"), key: "snooze_all", onClick: function() { a((0, A.Dg)(30)), w(!S), a((0, I.f)({ event: "action", action: "snooze_all" })), Rr() } }; return m && P.push({ label: O.A.getMessage("Snooze_on_this_site"), key: "snooze_store", onClick: function() { a((0, A.js)(c, 30)), w(!S), a((0, I.f)({ event: "action", action: "snooze_store" })), Rr() } }, D), l && P.push({ label: O.A.getMessage("Debug_product"), key: "debug_product", onClick: function() { return e = y.replace("{PRODUCT_ID}", u), window.open(e, "_blank"), void a((0, I.f)({ event: "action", action: "click_debug_product" })); var e }, icon: r.createElement(b.Icon, { name: "bug", type: "stroke", color: b.Colors.grey800, style: { marginRight: "5px" } }) }), r.createElement(r.Fragment, null, r.createElement(T.A, { open: S, onClick: function() { w(!S), a(L) }, options: P, customSize: n, customColor: i }), t ? null : r.createElement(x.A, { onClick: function() { a((0, j.A)()) }, ariaLabel: O.A.getMessage("Close_Honey") })) }; F.propTypes = { noClose: h().bool, customSize: h().number, customColor: h().string }, F.defaultProps = { noClose: null, customSize: null, customColor: null }; const B = F; var U = n(3650), G = n(2317), $ = (0, G.Mz)(S.A, function(e) { return !!(e && e.bottomSheet && e.bottomSheet.isOpen) }); const H = $; var z = (0, G.Mz)(S.A, function(e) { return !!(e && e.feedbackForm && e.feedbackForm.open) }); const q = z; var W = n(83701), V = n(33731), Y = n(70585), J = n(8706), K = n(35304), Q = n(43189), X = n(47516); const Z = function(e) { var t = e.tipId, n = void 0 === t ? "" : t, r = e.feedbackOption, o = e.feedbackComment; return function(e) { var t = { action: "feedback_detail", event: "action", feedbackOption: r, feedbackComment: o, feedback: "thumbs_down_detail", tipId: n }; e((0, X.J)(t)) } }; var ee = (0, G.Mz)(S.A, function(e) { return e && e.bottomSheet && e.bottomSheet.tipId }); const te = ee; const ne = function(e, t) { var n = (0, S.A)(t()), r = n.id, o = n.feedbackForm, i = void 0 === o ? {} : o, a = te(t()), s = (_.fc.selectTipById(a)(t()) || {}).categoryId, c = i.feedbackComment, u = i.feedbackOption; if (u || (e(_.Qq.setFeedbackFormValidation({ containerId: r, feedbackValidation: O.A.getMessage("Please_select_an_option") })), e(_.Qq.setFeedbackFormStatus({ containerId: r, feedbackStatus: "failed" })), 0)) try { e(Z({ tipId: a, feedbackComment: c, feedbackOption: u })), e(_.Qq.setFeedbackThumbsState({ containerId: r, feedbackThumbsState: Q.KM.negativeFormSubmitted, categoryId: s })), e(_.Qq.setFeedbackFormStatus({ containerId: r, feedbackStatus: "success" })) } catch (t) { e(_.Qq.setFeedbackFormStatus({ containerId: r, feedbackStatus: "failed" })) } }; var re = n(6202); const oe = function() { var e = (0, o.wA)(), t = (0, o.d4)(a.im.selectIsCurrentPageLaunchpad()), n = (0, o.d4)(S.A), i = n.id, s = n.feedbackForm, c = void 0 === s ? {} : s, u = c.feedbackComment, l = c.feedbackOption, f = c.feedbackStatus, d = c.feedbackValidation, p = (0, r.useCallback)(function(t) { e(_.Qq.setFeedbackFormComment({ containerId: i, feedbackComment: t })), e(_.Qq.setFeedbackFormStatus({ containerId: i, feedbackStatus: "" })) }, [e, i]), h = (0, r.useCallback)(function(t) { e(_.Qq.setFeedbackFormOption({ containerId: i, feedbackOption: t })), e(_.Qq.setFeedbackFormStatus({ containerId: i, feedbackStatus: "" })) }, [e, i]), m = (0, r.useCallback)(function() { e(ne) }, [e]), g = (0, r.useCallback)(function() { e((0, re.A)()) }, [e]), y = Q.Sl[f] || O.A.getMessage("Send"), v = Q.QJ[f] || "", w = (0, K.A)(t).map(function(e) { var t = e.value, n = e.copy; return r.createElement(b.RadioButton, { key: "".concat("radio-", t), value: t, copy: n }) }), E = "failed" === f, k = r.createElement(V.default, { onClose: g, closeButtonCopy: O.A.getMessage("Close"), title: O.A.getMessage("What_are_your_thoughts_Q") }), T = r.createElement(Y.default, { ctaCopy: y, ctaStatus: v, ctaType: "primary", handleCta: m }); return r.createElement(J.default, { header: k, footer: T }, E && r.createElement(W.default, { component: "div", variant: "body2", style: { color: b.Colors.red600, marginBottom: "8px" } }, d), r.createElement(b.RadioGroup, { onChange: h, group: "paymentAmount", selectedValue: l }, w), r.createElement("div", { style: { marginTop: "14px" } }, r.createElement(b.FormInput, { size: 88, id: "forminput", label: O.A.getMessage("Comments_or_suggestions"), value: u, onChange: p }))) }; var ie = (0, G.Mz)(S.A, function(e) { return e && e.bottomSheet && e.bottomSheet.tipId }); const ae = ie; var se = n(13351), ce = n(46529); function ue(e) { return ue = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, ue(e) } function le(e, t) { for (var n = 0; n < t.length; n++) { var r = t[n]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, me(r.key), r) } } function fe(e, t, n) { return t = pe(t), function(e, t) { if (t && ("object" == ue(t) || "function" == typeof t)) return t; if (void 0 !== t) throw new TypeError("Derived constructors may only return object or undefined"); return function(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e }(e) }(e, de() ? Reflect.construct(t, n || [], pe(e).constructor) : t.apply(e, n)) } function de() { try { var e = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})) } catch (e) {} return (de = function() { return !!e })() } function pe(e) { return pe = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(e) { return e.__proto__ || Object.getPrototypeOf(e) }, pe(e) } function he(e, t) { return he = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(e, t) { return e.__proto__ = t, e }, he(e, t) } function me(e) { var t = function(e, t) { if ("object" != ue(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != ue(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == ue(t) ? t : t + "" } var ge = function(e) { function t() { var e, n, r, o; ! function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); for (var i = arguments.length, a = new Array(i), s = 0; s < i; s++) a[s] = arguments[s]; return e = fe(this, t, [].concat(a)), n = e, o = { error: null }, (r = me(r = "state")) in n ? Object.defineProperty(n, r, { value: o, enumerable: !0, configurable: !0, writable: !0 }) : n[r] = o, e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function"); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, writable: !0, configurable: !0 } }), Object.defineProperty(e, "prototype", { writable: !1 }), t && he(e, t) }(t, e), n = t, a = [{ key: "getDerivedStateFromError", value: function(e) { return { error: e } } }], (o = [{ key: "componentDidCatch", value: function(e) { var t = this.props, n = t.sendSdataEvent, r = t.sdataAction; n(e, void 0 === r ? ce.go.TIP_CARD_ERROR : r), i.A.error(e) } }, { key: "render", value: function() { var e = this.props.children; return this.state.error ? r.createElement(r.Fragment, null) : e } }]) && le(n.prototype, o), a && le(n, a), Object.defineProperty(n, "prototype", { writable: !1 }), n; var n, o, a }(r.Component); ge.propTypes = { sendSdataEvent: h().func.isRequired, sdataAction: h().string.isRequired, children: h().oneOfType([h().node, h().arrayOf(h().node)]) }, ge.defaultProps = { children: null }; const ye = (0, o.Ng)(null, function(e) { return { sendSdataEvent: function(t, n) { return e((0, I.f)({ action: n, event: "error", errorMessage: t.message })) } } })(ge); var ve = function() { var e = (0, o.d4)(q), t = (0, o.d4)(ae); return r.createElement(r.Fragment, null, t && r.createElement(se.Ay, { tipId: t, templateType: "bottomSheet" }), e && r.createElement(oe, null)) }; const be = function() { var e = (0, o.wA)(), t = (0, o.d4)(H), n = (0, r.useCallback)(function() { e((0, re.A)()) }, [e]), i = (0, r.useCallback)(function() { t || e((0, re.I)()) }, [e, t]); return r.createElement(ye, { sdataAction: ce.go.TIP_CARD_ERROR }, r.createElement(U.default, { id: "bottom-sheet-1", open: t, onClose: n, onTransitionEnd: i }, r.createElement(ve, null))) }; var _e = { behavior: "smooth", block: "center" }; const Se = function() { var e = (0, r.useRef)({ tipsRefs: {} }), t = (0, r.useCallback)(function(t, n) { e.current.tipsRefs[t] = n }, []), n = (0, r.useCallback)(function(t) { var n = e.current.tipsRefs[t]; n ? n.scrollIntoView(_e) : i.A.debug("".concat("honeyTips:hooks:useScrollToCategory: ", "scrollToCategory: Category '").concat(t, "' not found.")) }, []); return (0, r.useMemo)(function() { return { addTipCategoryRef: t, scrollToCategory: n } }, [t, n]) }; var we = n(72341), Oe = n(9996), Ee = (0, m.createUseStyles)({ layout: function(e) { var t = e.footer, n = e.isLastTip; return { marginBottom: t && n ? "1px" : "8px" } } }), ke = r.forwardRef(function(e, t) { var n = e.children, o = e.isLastTip, i = (0, Oe.A)(), a = Ee({ footer: i, isLastTip: o }); return r.createElement("div", { className: a.layout, ref: t }, n) }); ke.propTypes = { children: h().node, isLastTip: h().bool }, ke.defaultProps = { children: void 0, isLastTip: !1 }; const Te = ke; var xe = n(65129), Ie = n(38707); const Pe = function() { return function(e, t) { var n = (0, S.A)(t()).id; e(_.Qq.updateShowTopTipOnly({ containerId: n, showTopTipOnly: !1 })), e((0, P.F)({ event: "action", action: "expand_container" })) } }; const Ae = function() { var e = (0, o.wA)(); return r.createElement(Ie.default, { body: O.A.getMessage("View_More_Tips"), "aria-label": O.A.getMessage("View_More_Tips"), onClick: function() { e(Pe()) } }) }; var Ce = n(8845); const je = function() { var e = (0, o.wA)(), t = O.A.getMessage("See_Deal_Summary"); return r.createElement(Ce.Ay, { text: t, "aria-label": t, icon: "right-line-16", onClick: function() { e(Pe()) } }) }; const Re = function() { switch ((0, Oe.A)()) { case Oe.C.POWERED_BY: return r.createElement(xe.A, null); case Oe.C.SEE_MORE_TIPS: return r.createElement(Ae, null); case Oe.C.SEE_DEAL_SUMMARY: return r.createElement(je, null); default: return null } }; var Me = n(31311), De = n(25094), Ne = n(78860), Le = n(78111); function Fe() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Be(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Be(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Be(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Be(f, "constructor", u), Be(u, "constructor", c), c.displayName = "GeneratorFunction", Be(u, o, "GeneratorFunction"), Be(f), Be(f, o, "Generator"), Be(f, r, function() { return this }), Be(f, "toString", function() { return "[object Generator]" }), (Fe = function() { return { w: i, m: d } })() } function Be(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Be = function(e, t, n, r) { function i(t, n) { Be(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Be(e, t, n, r) } function Ue(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const Ge = function() { var e = (0, o.wA)(), t = (0, o.d4)(E.Ax.selectUser()), n = (0, o.d4)(k.VH.selectCurrentStore()), i = (0, o.d4)(E.Ax.selectUserFollowsCurrentStore), s = (0, o.d4)(E.Ax.selectSessionCountForCurrentStore), c = (0, o.d4)(a.im.selectIsCurrentPageLaunchpad()), u = (0, r.useCallback)(function() { var n, r = (n = Fe().m(function n(r) { return Fe().w(function(n) { for (;;) switch (n.n) { case 0: t && t.isLoggedIn || De.A.openEmailAuth("login", "launchpad-ext", !0), e(E.Xp.updateUserFollow(r)); case 1: return n.a(2) } }, n) }), function() { var e = this, t = arguments; return new Promise(function(r, o) { var i = n.apply(e, t); function a(e) { Ue(i, r, o, a, s, "next", e) } function s(e) { Ue(i, r, o, a, s, "throw", e) } a(void 0) }) }); return function(e) { return r.apply(this, arguments) } }(), [e, t]); return c && n && t ? r.createElement(Ne.d, { inPopover: !1, store: n, storeFollowButton: r.createElement("div", null, r.createElement(Le.A, { allowTooltip: !1, isFollowing: i, isHeaderButton: !0, store: { storeId: n.id, storeName: n.name }, storeSessionCount: s, subSrc: "launchpad", updateUserFollow: u, user: t })) }) : null }; var $e = n(96161), He = n(89773), ze = n(34570), qe = n(84458); function We(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return Ve(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ve(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function Ve(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } var Ye = function(e) { var t = e.badgeTop, n = e.badgeHeight, r = e.containerRef; if (e.isAutopop) return 15; var o, i, a = (o = r) && o.current && o.current.offsetHeight || 0, s = (i = { badgeTop: t, badgeHeight: n }).badgeTop + i.badgeHeight / 2 < window.innerHeight / 2 ? t + n + 15 : t - 15 - a, c = function(e) { var t = e.containerTop, n = e.containerHeight; if (t < 15) return t - 15; var r = window.innerHeight - 15, o = t + n; return o > r ? o - r : 0 }({ containerTop: s, containerHeight: a }); return s - c }; const Je = function(e) { var t = e.containerRef, n = ((0, o.d4)(ze.A) || {}).top, i = void 0 === n ? ce.oU : n, a = (0, o.d4)(He.n2.selectBadgeHeight), s = ((0, o.d4)(S.A) || {}).open, c = (0, qe.A)(), u = We((0, r.useState)(ce.ij), 2), l = u[0], f = u[1], d = (0, $e.A)({ action: "show", sub_src: "tips_container", variant: "tips_moved" }).topMargin; return (0, r.useEffect)(function() { var e = Ye({ badgeTop: i, badgeHeight: a, containerRef: t, isAutopop: c }); f(e < d ? d : e) }, [a, i, t, c, s, d]), (0, r.useMemo)(function() { return { top: l } }, [l]) }; var Ke = n(9636), Qe = n(49976); function Xe(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return Ze(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ze(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function Ze(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } var et = function(e) { var t = e.tipId, n = e.children, i = (0, o.wA)(), a = Xe((0, r.useState)(null), 2), s = a[0], c = a[1], u = (0, Ke.useInView)({ threshold: .4 }), l = u.ref, f = u.inView, d = (0, r.useCallback)(function() { i((0, Qe.A)(t)) }, [i, t]); return (0, r.useEffect)(function() { if (f && !s) { var e = setTimeout(d, 1e3); c(e) } else !f && s && c(function(e) { return clearTimeout(e), null }); return function() { clearTimeout(s) } }, [d, f, s]), r.createElement("div", { ref: l }, n) }; et.propTypes = { tipId: h().string.isRequired, children: h().oneOfType([h().node, h().arrayOf(h().node)]) }, et.defaultProps = { children: null }; const tt = et; const nt = { loadingPhrases: ["Stand_by_for_some_serious_deal_science", "Cooking_up_coupons_rewards_and_tips", "Dropping_some_savings_knowledge_in_3_2_1", "Channeling_our_savings_superpowers", "Our_secret_formula_of_deals_rewards_and_tips_coming_up", "Were_whipping_up_todays_deals_and_tips", "Were_working_our_deal_finding_magic", "Finding_deals_is_a_science", "Todays_batch_of_store_deals_and_tips_coming_up", "Coiny_is_working_some_shopping_genius", "Adding_our_secret_deal_finding_ingredients", "Coiny_says_an_informed_shopper_is_a_smart_shopper", "Were_working_our_deal_searching_magic", "Doing_what_we_do_best_whipping_up_deals_and_tips", "Whos_ready_to_save_Q_Stand_by_for_deals", "Shopping_wisdom_is_worth_waiting_for", "Searching_every_corner_of_the_internet_for_deals", "Good_deals_come_to_those_who_wait", "Doing_what_we_do_best_finding_you-deals_and_tips", "Warming_up_our_shopping_muscles", "Were_consulting_our_crystal_ball_for deals", "Making_you_a_savings_mixtape", "Stick_with_us_P_Were_a_magnet_for_deals", "You_find_the_cool_stuff_well_find_the_savings"] }; var rt; var ot = "".concat("https://cdn.honey.io", "/images/tips/").concat("coiny_happy_scientist_beakers_transparent.gif"), it = (0, m.createUseStyles)({ containerLoader: { paddingTop: "60px", backgroundColor: b.Colors.white, display: "flex", justifyContent: "center", alignItems: "center" }, container: { lineHeight: "2rem" } }), at = function() { var e = it(), t = (rt || (rt = nt.loadingPhrases.map(function(e) { return O.A.getMessage(e) })), rt).map(function(t) { return r.createElement("div", { className: e.container }, t) }); return r.createElement("div", { className: e.containerLoader }, r.createElement(s.ContainerLoader, { loadingImage: ot, loadingPhrases: t, marqueeDelay: 2e3 })) }; function st(e) { return st = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, st(e) } function ct(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function ut(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? ct(Object(n), !0).forEach(function(t) { lt(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ct(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function lt(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != st(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != st(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == st(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } const ft = function() { var e = (0, r.useCallback)(a.im.selectIsCurrentPageLaunchpad(), []), t = (0, o.d4)(Me.A), n = (0, o.d4)(e), i = t || n; return (0, r.useMemo)(function() { return { header: ut({}, i && { root: { height: "48px" } }), container: ut({}, i && { header: { flexBasis: "48px" } }) } }, [i]) }; var dt = null; const pt = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; return function(t, n) { return clearTimeout(dt), dt = setTimeout(function() { var e = (0, S.A)(n()) || {}, r = e.id, o = e.isAutopop, i = e.isHoveringOverBadge, a = e.isHoveringOverContainer; o || i || a || t(_.Qq.closeContainer({ containerId: r, resetTipsShown: !1 })) }, e) } }; function ht(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return mt(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? mt(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function mt(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } const gt = function() { var e = (0, o.wA)(), t = ht((0, r.useState)(!1), 2), n = t[0], i = t[1], a = (0, o.d4)(S.A) || {}, s = a.id, c = a.open, u = (0, r.useCallback)(function() { n || (i(!0), e(_.Qq.setIsHoveringOverContainer({ containerId: s, isHovering: !0 }))) }, [s, e, n]), l = (0, r.useCallback)(function() { i(!1), e(_.Qq.setIsHoveringOverContainer({ containerId: s, isHovering: !1 })), e(pt(1e3)) }, [s, e]); return (0, r.useEffect)(function() { !c && i(!1) }, [c]), (0, r.useMemo)(function() { return { handleMouseOver: u, handleMouseLeave: l } }, [l, u]) }; var yt = n(41502), vt = n(13348); function bt(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return _t(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? _t(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function _t(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } var St = (0, m.createUseStyles)({ condensedContainer: { boxShadow: "0px 4px 20px 0px rgba(0, 0, 0, 0.18)", borderRadius: "5px", backgroundColor: "white", position: "relative", maxWidth: "400px", right: "20px", marginTop: "50px" }, honeyLogo: { height: "24px", marginLeft: "16px", marginTop: "12px" }, storeLogo: { position: "absolute", borderRadius: "6px", top: "-20px", backgroundColor: b.Colors.white, boxShadow: "0px 0px 5px 0px rgba(0, 0, 0, 0.12)" }, closeButtonContainer: { position: "absolute", right: "-11px", top: "-14px" }, closeButton: { cursor: "pointer", alignItems: "center", backgroundColor: b.Colors.white, borderRadius: "12px", display: "flex", height: "24px", width: "24px", justifyContent: "center", boxShadow: "rgba(0, 0, 0, 0.08)" }, closeButtonIcon: { color: b.Colors.grey900 }, progressCircle: { position: "absolute", transform: "translateY(-24px)" }, storeLogoContainer: { display: "flex", width: "100%", justifyContent: "center" }, logoAndSettings: { display: "flex", justifyContent: "space-between" }, condensedSettingsIcon: { marginTop: "8px", marginRight: "8px", lineHeight: "16px", fontSize: "12px" } }), wt = function(e) { var t = e.children, n = e.autoClose, i = bt((0, r.useState)(n / 1e3), 2), a = i[0], s = i[1], c = bt((0, r.useState)(), 2), u = c[0], l = c[1], f = bt((0, r.useState)(0), 2), d = f[0], p = f[1], h = St(), m = (0, o.wA)(), g = (0, o.d4)(k.VH.selectCurrentStore()), y = (0, o.d4)(k.VH.selectStoreContent()).goldActivated, v = (0, r.useCallback)(function() { return m((0, j.A)()) }, [m]), _ = (0, qe.A)(), S = n && _ && y, w = function() { return l(!0) }; return (0, r.useEffect)(function() { var e; return u ? (s(0), p(0)) : S && (s(n / 1e3), p(100), e = setTimeout(v, n)), function() { return clearTimeout(e) } }, [n, u, _, v, S]), r.createElement("div", { className: h.condensedContainer, onMouseDown: w, onMouseOver: w, onMouseLeave: function() { return l(!1) } }, r.createElement("div", { className: h.storeLogoContainer }, r.createElement(b.StoreLogo, { className: h.storeLogo, size: 48, overlay: !1, storeId: g.id, storeName: g.name })), r.createElement("div", { className: h.closeButtonContainer, onClick: v }, r.createElement("div", { className: h.closeButton }, r.createElement("div", { className: h.closeButtonIcon, alt: "close button" }, "\xd7")), S && r.createElement("div", { className: h.progressCircle }, r.createElement(vt.A, { color: "blue", progress: d, timing: a }))), r.createElement("div", { className: h.logoAndSettings }, r.createElement("img", { alt: "Honey", src: "".concat("https://cdn.honey.io", "/images/honey-symbol-black.svg"), className: h.honeyLogo }), r.createElement("div", { className: h.condensedSettingsIcon }, r.createElement(B, { noClose: !0, customSize: 24, customColor: b.Colors.grey900 }))), t) }; wt.propTypes = { children: h().node.isRequired, autoClose: h().number }, wt.defaultProps = { autoClose: 4e3 }; const Ot = wt; const Et = function() { var e = (0, o.d4)(S.A) || {}, t = e.open, n = e.scrollToCategoryId, i = e.showLoader, a = (0, o.d4)(yt.j_) || [], p = (0, o.d4)(Me.A), h = (0, o.d4)(f.A), m = (0, o.d4)(d.Og.selectIsLoadingStoreOffers()), g = (0, o.d4)(yt.vi), y = (0, qe.A)(), b = (0, Oe.A)(), _ = (0, r.useRef)(), O = Je({ containerRef: _ }).top, E = gt(), k = E.handleMouseOver, T = E.handleMouseLeave, x = ft(), I = (0, r.useMemo)(function() { return p && h ? [h] : a }, [a, h, p]), P = Se(), A = P.addTipCategoryRef, C = P.scrollToCategory, j = (0, r.useMemo)(function() { return { scrollToCategory: C } }, [C]); (0, r.useEffect)(function() { var e; return t && n && C && (e = setTimeout(function() { return C(n) }, 500)), function() { return clearTimeout(e) } }, [t, C, n]); var R = !i && I.map(function(e, t) { var n = e.id, o = e.categoryId; return r.createElement(tt, { key: n, tipId: n }, r.createElement(Te, { ref: function(e) { return A(o, e) }, isLastTip: t === I.length - 1 }, r.createElement(ye, { sdataAction: ce.go.TIP_CARD_ERROR }, r.createElement(se.Ay, { tipId: n, templateType: "card", isSecondary: t > 0 })))) }), M = r.createElement(l.Header, { leftContainer: r.createElement(c.default, null), rightContainer: r.createElement(B, null), style: x.header }), D = !!b && r.createElement(Re, null), N = (i || !I.length) && r.createElement(at, null), L = r.createElement(we.A.Provider, { value: j }, r.createElement(v, { ref: _, top: O, onMouseOver: k, onMouseLeave: T }, r.createElement(Ot, { autoClose: 4e3 }, R, N))), F = r.createElement(we.A.Provider, { value: j }, r.createElement(v, { ref: _, top: O, onMouseOver: k, onMouseLeave: T }, r.createElement(u.default, null, r.createElement(s.UniversalContainerLayout, { header: M, footer: D, styles: x.container }, r.createElement(w, null), r.createElement(Ge, null), R, N, r.createElement(be, null))))); if (m) return null; if (y && g) return L; var U = F; return g && (U = L), t ? U : null }; var kt = n(60592), Tt = n.n(kt), xt = n(23525), It = (0, m.createUseStyles)({ layout: { position: "fixed", top: function(e) { return e.top }, right: 0, zIndex: 2147483647, display: "flex" } }), Pt = function(e) { var t = e.children, n = e.top, o = It({ top: n }); return r.createElement("div", { className: o.layout }, t) }; Pt.propTypes = { children: h().node, top: h().number }, Pt.defaultProps = { children: void 0, top: xt.o }; const At = Pt; var Ct = n(73639), jt = n(6362), Rt = n(34778), Mt = n(74428), Dt = n(99507); const Nt = function(e) { var t = _.fc.selectBadgeCtaDisabledCategoriesForCurrentStore(e), n = (0, Dt.A)(e, t) || {}, r = n.id, o = n.categoryId, i = (((0, Rt.A)(r) || {}).badge || {}).notificationText, a = (0, Mt.A)(r)(e) || {}, s = ("function" == typeof i ? i(a) : i) || null; return { text: s, tipId: s ? r : null, categoryId: s ? o : null } }; var Lt = { text: h().string }, Ft = { "@keyframes fade": { "0%": { opacity: 0 }, "100%": { opacity: 1 } }, bottomText: { fontSize: "12px !important", lineHeight: "12px !important", composes: "price2", textAlign: "center", padding: "8px 2px", color: b.Colors.white, animation: "$fade 1s forwards" } }, Bt = (0, m.createUseStyles)(Ft), Ut = function(e) { var t = e.text, n = Bt(); return r.createElement("div", { className: n.bottomText }, t) }; Ut.propTypes = Lt, Ut.defaultProps = { text: null }; const Gt = Ut; var $t = (0, m.createUseStyles)({ root: function(e) { var t = e.hasNotification; return { paddingTop: e.isReady && t ? "8px" : "0px", transition: "paddingTop 500ms cubic-bezier(0.4, 0, 0.2, 1)" } } }), Ht = function(e) { var t = e.styleVars, n = $t(t); return r.createElement("div", { className: n.root }, r.createElement(b.Logo, { clickable: !1, color: b.Colors.white, size: 30, h: !0 })) }; Ht.propTypes = { styleVars: h().shape({ isReady: h().bool, hasNotification: h().bool }) }, Ht.defaultProps = { styleVars: {} }; const zt = Ht; function qt(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return Wt(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Wt(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function Wt(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } var Vt = (0, m.createUseStyles)({ "@keyframes pulsing": { "0%": { transform: "scale(1)" }, "50%": { transform: "scale(0.5)" }, "100%": { transform: "scale(1)" } }, "@keyframes shake": { "0%": { transform: "translate(0, 1px)" }, "10%": { transform: "translate(0, -2px)" }, "20%": { transform: "translate(0, 3px)" }, "30%": { transform: "translate(0, -2px)" }, "40%": { transform: "translate(0, 1px)" }, "50%": { transform: "translate(0, -2px)" }, "60%": { transform: "translate(0, 1px)" }, "70%": { transform: "translate(0, -1px)" }, "80%": { transform: "translate(0, 1px)" }, "90%": { transform: "translate(0, -2px)" }, "100%": { transform: "translate(0, 2px)" } }, root: { display: "flex", cursor: "move" }, teaserAnimateIn: function(e) { return { right: "1px", marginRight: e.animateTeaserIn ? "0" : "-200px", transition: "margin-right 800ms cubic-bezier(0.4, 0, 0.2, 1)", textAlign: "left" } }, logoAnimation: function(e) { var t = e.hasNotification; return { height: e.isReady && t ? "28px" : "64px", display: "flex", justifyContent: "center", flexDirection: "column", flexGrow: 1, transition: "height 500ms cubic-bezier(0.4, 0, 0.2, 1), transform 300ms cubic-bezier(0.4, 0, 0.2, 1)", pointerEvents: "none" } }, loadAnimation: function(e) { var t = e.hasNotification, n = e.isReady; return { height: "164px", display: "flex", justifyContent: "center", alignItems: "center", animation: n ? "none" : "$pulsing 1s infinite", transform: n && t ? "scale(66.65%)" : "scale(100%)", transition: "transform 500ms cubic-bezier(0.4, 0, 0.2, 1)", pointerEvents: "none" } }, shake: function(e) { var t = e.doNotBump, n = e.hasBumpAnimation, r = e.hasNotification; return { animation: n && r && !t ? "$shake 0.82s forwards" : "none" } } }); const Yt = function() { var e = (0, o.wA)(), t = qt((0, r.useState)(!1), 2), n = t[0], i = t[1], a = qt((0, r.useState)(!1), 2), s = a[0], c = a[1], u = qt((0, r.useState)(), 2), l = u[0], f = u[1], d = qt((0, r.useState)(!1), 2), p = d[0], h = d[1], m = qt((0, r.useState)(!1), 2), g = m[0], y = m[1], v = (0, o.d4)(S.A) || {}, b = v.ready, _ = v.open, w = v.hasAutopopped, O = ((0, o.d4)(Nt) || {}).text; (0, r.useEffect)(function() { var e = setTimeout(function() { return y(!0) }, 0); return function() { clearTimeout(e) } }, []), (0, r.useEffect)(function() { return _ && b || w ? h(!0) : b && !l && f(setTimeout(function() { return c(!0) }, 15e3)), function() { clearTimeout(l) } }, [l, w, b, _]), (0, r.useEffect)(function() { O && b && e((0, I.f)({ event: "teaser_show", notification: O })) }, [e, b, O]); var E = (0, r.useCallback)(function() { n || (i(!0), clearTimeout(l)) }, [n, l]), k = (0, r.useCallback)(function() { i(!1) }, [i]), T = { animateTeaserIn: g, hasBumpAnimation: s, hasNotification: !!O, isReady: b, doNotBump: p }, x = Vt(T), P = { width: n ? "95px" : "68px" }; return r.createElement("div", { className: x.shake }, r.createElement("div", { className: x.teaserAnimateIn }, r.createElement("div", { className: x.root, onMouseOver: E, onMouseLeave: k, style: P }, r.createElement(Ct.A, null, r.createElement("div", { className: x.logoAnimation }, r.createElement("div", { className: x.loadAnimation }, r.createElement(zt, { styleVars: T }))), b && O && r.createElement(Gt, { text: O })), n && r.createElement(jt.A, null)))) }; var Jt = n(7834), Kt = n(79973), Qt = n(67004), Xt = n(42528), Zt = n(47408), en = n(66588), tn = n(81870), nn = n(19550), rn = n(32372), on = n(5735), an = n(49194), sn = new Set(["savings-verylow", "savings-low", "savings-medium", "savings-high", "savings-veryhigh"]), cn = "honeyTips:canAutoPop: ", un = (0, G.Mz)(function(e) { return Kt.v_.selectDeviceSetting("autopopsDisabled")(e) }, function(e) { return Xt.HL.selectFeatureByName("tips_is_autopop_suppression_respected")(e) }, function(e, t) { return e && t }), ln = (0, G.Mz)(function(e) { return un(e) }, function(e) { return (0, f.A)(e) }, function(e) { return Zt.fq.selectAutoPopCountForCurrentStore(e) }, function(e, t, n) { var r = (t || {}).id; return !e && (!sn.has(r) && !n) }), fn = (0, G.Mz)(function(e) { return Qt.kF.selectIsStandaloneOffer(e) }, function(e) { return d.Og.selectCurrentProductOffer(e) }, function(e, t) { return !(!e || !t) }), dn = (0, G.Mz)(function(e) { return (0, on.A)(e) }, function(e) { return _.fc.selectAutopopDisabledCategoriesForCurrentStore(e) }, function(e, t) { return (e || []).filter(function(e) { var n = e.categoryId; return !(t || []).includes(n) }).some(function(e) { return e.score >= 10 }) }), pn = (0, G.Mz)(function(e) { return (0, S.A)(e) }, function(e) { return !!(e || {}).open }), hn = function(e) { if (function(e) { var t = (0, f.A)(e) || {}; if ((0, an.A)(t)) { var n = Qt.kF.selectVariant(tn.x0)(e); if (n === tn.ut.CCP_POP_ALL) return !0; if (n === tn.ut.CCP_POP_ALL_NON_TOP_PICK && "CCP-Non-Top-Pick-Organic" === t.id) return !0 } return !1 }(e)) return !0; var t = ((0, f.A)(e) || {}).categoryId, n = (Jt.A.categories[t] || {}).maxAutopopPerStoreThreshold, r = void 0 === n ? Number.POSITIVE_INFINITY : n; return (en.PW(t)(e) || 0) < r }, mn = (0, G.Mz)(function(e) { return en.X3()(e) }, function(e) { return e < 1 }), gn = (0, G.Mz)(function(e) { return fn(e) }, function(e) { return pn(e) }, function(e) { return dn(e) }, function(e) { return hn(e) }, function(e) { return function(e) { if (!(0, R.fN)(e)) return !1; var t = (0, f.A)(e) || {}, n = t.categoryId, r = t.maxAutopopOverrideThreshhold; return en.tM(n)(e) < r }(e) }, function(e) { return mn(e) }, function(e) { return k.VH.selectCurrentStore()(e) }, function(e) { return nn.IE.selectIsCurrentProductTopPickInCluster(e) }, function(e) { return Qt.kF.selectIsPriceComparisonVariant(e) }, function(e, t, n, r, o, a, s, c, u) { var l = -1 !== rn.Ay.AMAZON_STORES.indexOf(s.id); return !u || c || l ? e ? (i.A.debug("".concat(cn, "don't show autopop because standalone offer autopop is open")), !1) : t ? (i.A.debug("".concat(cn, "don't show autopop because container already open")), !1) : n ? r ? o ? (i.A.debug("".concat(cn, "show autopop because allow by tip configuration")), !0) : a ? (i.A.debug("".concat(cn, "show autopop")), !0) : (i.A.debug("".concat(cn, "don't show autopop because above max autopop per product threshold")), !1) : (i.A.debug("".concat(cn, "don't show autopop because above max autopop threshold for store and tip category")), !1) : (i.A.debug("".concat(cn, "don't show autopop because no tips have min autopop score")), !1) : (i.A.debug("".concat(cn, "don't show autopop because price comparison experiment variant no_conquest")), !1) }), yn = (0, G.Mz)(function(e) { return (0, S.A)(e) }, function(e) { return a.im.selectIsCurrentPageLaunchpad()(e) }, function(e) { return He.n2.selectHasPreOpened(e) }, function(e) { return e }, function(e, t, n, r) { var o = e || {}, a = o.ready, s = o.hasClosed; return a ? s ? (i.A.debug("".concat(cn, "don't show autopop because container was closed")), !1) : !n && (t ? ln(r) : gn(r)) : (i.A.debug("".concat(cn, "don't show autopop because container isn't ready")), !1) }); const vn = yn; var bn = n(74438), _n = n(97690); function Sn() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return wn(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (wn(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, wn(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, wn(f, "constructor", u), wn(u, "constructor", c), c.displayName = "GeneratorFunction", wn(u, o, "GeneratorFunction"), wn(f), wn(f, o, "Generator"), wn(f, r, function() { return this }), wn(f, "toString", function() { return "[object Generator]" }), (Sn = function() { return { w: i, m: d } })() } function wn(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } wn = function(e, t, n, r) { function i(t, n) { wn(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, wn(e, t, n, r) } function On(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } var En = function(e, t) { var n = (0, S.A)(t()).id; return e(_.Qq.openContainer({ containerId: n, isAutopop: !0 })) }, kn = function(e) { return function(t, n) { var r = (0, S.A)(n()).id; t(_.Qq.updateShowTopTipOnly({ containerId: r, showTopTipOnly: e })) } }; const Tn = (0, bn.zD)("tips/initContainer", function() { var e, t = (e = Sn().m(function e(t, n) { var r, o, i; return Sn().w(function(e) { for (;;) if (0 === e.n) return r = n.dispatch, o = n.getState, (i = a.im.selectIsCurrentPageLaunchpad()(o())) || r(kn(!0)), r(En), r((0, I.f)({ event: "implicit_hover" })), e.a(2, r(i ? Zt.E4.incrementAutoPopCount() : (0, _n.A)())) }, e) }), function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { On(i, r, o, a, s, "next", e) } function s(e) { On(i, r, o, a, s, "throw", e) } a(void 0) }) }); return function(e, n) { return t.apply(this, arguments) } }()); var xn = n(24166); const In = function() { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).scrollToCategoryId; return function(t, n) { if (xn.A._visible) i.A.debug("honeyTips:openCurrentContainer: Not opening container because UI already visible."); else { var r = (0, S.A)(n()) || {}, o = r.id; r.open || t(_.Qq.openContainer({ containerId: o, scrollToCategoryId: e })) } } }; var Pn = n(94576), An = n.n(Pn), Cn = n(34819); function jn(e) { return jn = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, jn(e) } function Rn() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Mn(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Mn(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Mn(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Mn(f, "constructor", u), Mn(u, "constructor", c), c.displayName = "GeneratorFunction", Mn(u, o, "GeneratorFunction"), Mn(f), Mn(f, o, "Generator"), Mn(f, r, function() { return this }), Mn(f, "toString", function() { return "[object Generator]" }), (Rn = function() { return { w: i, m: d } })() } function Mn(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Mn = function(e, t, n, r) { function i(t, n) { Mn(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Mn(e, t, n, r) } function Dn(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function Nn(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? Dn(Object(n), !0).forEach(function(t) { Ln(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Dn(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function Ln(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != jn(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != jn(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == jn(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } function Fn(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const Bn = function(e) { var t = e.top, n = e.sendSdata, r = void 0 !== n && n; return function() { var e, n = (e = Rn().m(function e(n, o) { var i, a, s, c; return Rn().w(function(e) { for (;;) switch (e.n) { case 0: return r && (i = (0, ze.A)(o()), a = Nn(Nn({}, i), {}, { top: t }), n((0, I.f)({ event: "action", action: "move", badgeLocationNew: a }))), s = k.VH.selectCurrentStoreId()(o()), c = (0, Cn.w)(s) ? ce.xw.MOVABLE_BADGE_SETTINGS_BY_STORE : ce.xw.MOVABLE_BADGE_SETTINGS, e.n = 1, n(Kt.A0.updateDeviceSetting({ key: c, value: { orientation: "topRight", top: t } })); case 1: return e.a(2, n(Kt.A0.loadDeviceSettings())) } }, e) }), function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { Fn(i, r, o, a, s, "next", e) } function s(e) { Fn(i, r, o, a, s, "throw", e) } a(void 0) }) }); return function(e, t) { return n.apply(this, arguments) } }() }; function Un(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return Gn(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Gn(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function Gn(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } var $n = function(e, t) { return { top: -Math.max(0, e - 150), bottom: Math.max(0, window.innerHeight - e - t - 15) } }, Hn = function(e, t) { return e + t > window.innerHeight - 15 || e < 0 }; const zn = function(e) { var t, n = e.badgeRef, i = e.openContainer, a = (0, o.wA)(), s = Un((0, r.useState)(!1), 2), c = s[0], u = s[1], l = Un((0, r.useState)({}), 2), f = l[0], d = l[1], p = Un((0, r.useState)(null), 2), h = p[0], m = p[1], g = Un((0, r.useState)(), 2), y = g[0], v = g[1], b = Un((0, r.useState)(!0), 2), _ = b[0], S = b[1], w = (t = n) && t.current && t.current.offsetHeight || ce.qS, O = ((0, o.d4)(ze.A) || {}).top, E = void 0 === O ? ce.oU : O, k = (0, r.useCallback)(function() { var e = function(e) { return window.innerHeight - 15 - e }(w); a(Bn({ top: e })), m(e), d($n(e, w)), v({ x: 0, y: 0 }), setTimeout(function() { return v(void 0) }, 0) }, [w, a]), T = (0, r.useCallback)(function() { Hn(E, w) ? k() : d($n(h, w)) }, [w, E, h, k]); (0, r.useEffect)(function() { "number" != typeof h && "number" == typeof E && (m(E), d($n(E, w)), Hn(E, w) && k()) }, [w, n, E, h, k]), (0, r.useEffect)(function() { var e = An()(T, 100); return window.addEventListener("resize", e), function() { window.removeEventListener("resize", e) } }, [T]), (0, r.useEffect)(function() { a(He.e5.badgeHeightUpdated(w)) }, [w, a]), (0, r.useEffect)(function() { _ && Hn(E, w) && a(Bn({ top: ce.oU })), S(!1) }, [w, E, a, _]); var x = (0, r.useCallback)(function() { v(void 0), a((0, j.A)({ resetTipsShown: !1 })), u(!0) }, [a]), I = (0, r.useCallback)(function(e, t) { var n = t.y; u(!1); var r = h + n, o = r !== E; o || i(), a(Bn({ top: r, sendSdata: o })) }, [E, a, h, i]); return { isDragging: c, initialBadgeTop: h, badgeBounds: f, badgePosition: y, handleDragStart: x, handleDragEnd: I } }; const qn = function(e) { e((0, I.f)({ event: "show" })) }; const Wn = function(e) { return function(t, n) { var r = (0, S.A)(n()).id; t(_.Qq.setBadgeHoverState({ containerId: r, isHovering: e })), e && t((0, I.f)({ event: "action", action: "hover" })) } }; function Vn(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return Yn(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Yn(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function Yn(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } const Jn = function() { var e = (0, o.wA)(), t = (0, r.useRef)(), n = Vn((0, r.useState)(!1), 2), i = n[0], a = n[1], s = Vn((0, r.useState)(null), 2), c = s[0], u = s[1], l = Vn((0, r.useState)(!1), 2), f = l[0], d = l[1], p = ((0, o.d4)(Nt) || {}).categoryId; (0, r.useEffect)(function() { e(qn) }, [e]); var h = (0, r.useCallback)(function() { var t = null; p && !f && (d(!0), t = p), e(In({ scrollToCategoryId: t })) }, [e, f, p]), m = zn({ badgeRef: t, openContainer: h }), g = m.isDragging, y = m.initialBadgeTop, v = m.badgeBounds, b = m.badgePosition, S = m.handleDragStart, w = m.handleDragEnd, O = (0, o.d4)(_.fc.selectRecentlyClosedContainer()) || !1, E = (0, r.useCallback)(function() { i || (a(!0), g || O || e(Wn(!0))) }, [e, g, i, O]); (0, r.useEffect)(function() { !i || g || c || u(setTimeout(function() { h() }, 1e3)), g && c && (clearTimeout(c), u(null)) }, [g, i, h, c]); var k = (0, r.useCallback)(function() { clearTimeout(c), u(null), a(!1), e(Wn(!1)), e(pt(2e3)) }, [e, c]), T = (0, o.d4)(vn); return (0, r.useEffect)(function() { T && e(Tn()) }, [e, T]), r.createElement(At, { top: y }, r.createElement(Tt(), { onStart: S, onStop: w, bounds: v, axis: "y", position: b }, r.createElement("div", { ref: t, onMouseOver: E, onMouseLeave: k, onTouchEndCapture: h }, r.createElement(Yt, null)))) }; var Kn = (0, m.createUseStyles)({ resetCss: { textTransform: "none", lineHeight: "normal", fontWeight: "normal", color: b.Colors.grey900 } }), Qn = function(e) { var t = e.children, n = Kn(); return r.createElement("div", { className: n.resetCss }, t) }; Qn.propTypes = { children: h().node }, Qn.defaultProps = { children: void 0 }; const Xn = Qn; var Zn = new Set(["StoreSavings", "MerchantPromotions"]), er = (0, G.Mz)(function(e) { return (0, on.A)(e) }, function(e) { return (e || []).map(function(e) { return e.categoryId }).some(function(e) { return Zn.has(e) }) }); const tr = er; var nr = n(96532); function rr(e) { return function(e) { if (Array.isArray(e)) return or(e) }(e) || function(e) { if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e) }(e) || function(e, t) { if (e) { if ("string" == typeof e) return or(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? or(e, t) : void 0 } }(e) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function or(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } const ir = function() { var e = (0, r.useCallback)(a.im.selectIsCurrentPageLaunchpad(), []), t = (0, o.d4)(e), n = (0, o.d4)(tr), s = (0, o.d4)(a.im.selectHasTipsTimedOut); return t && !n ? (i.A.debug("honeyTips:container: No valid tip categories for launchpad (".concat(rr(Zn).join(", "), ") found. Not showing badge or container")), null) : s ? (i.A.debug("honeyTips:container: Tips timed out after ".concat(nr.x, "ms. Not showing badge or container")), null) : r.createElement(ye, { sdataAction: ce.go.BADGE_INJECTION_ERROR }, r.createElement(Xn, null, r.createElement("slot", null, r.createElement(Jn, null), r.createElement(Et, null)))) }; var ar = n(99459), sr = n(60191), cr = n(22182), ur = n(70364), lr = n.n(ur), fr = n(35477), dr = n(1152), pr = n(6120); function hr() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return mr(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (mr(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, mr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, mr(f, "constructor", u), mr(u, "constructor", c), c.displayName = "GeneratorFunction", mr(u, o, "GeneratorFunction"), mr(f), mr(f, o, "Generator"), mr(f, r, function() { return this }), mr(f, "toString", function() { return "[object Generator]" }), (hr = function() { return { w: i, m: d } })() } function mr(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } mr = function(e, t, n, r) { function i(t, n) { mr(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, mr(e, t, n, r) } function gr(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function yr(e, t) { var n = "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (!n) { if (Array.isArray(e) || (n = function(e, t) { if (e) { if ("string" == typeof e) return vr(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? vr(e, t) : void 0 } }(e)) || t && e && "number" == typeof e.length) { n && (e = n); var r = 0, o = function() {}; return { s: o, n: function() { return r >= e.length ? { done: !0 } : { done: !1, value: e[r++] } }, e: function(e) { throw e }, f: o } } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") } var i, a = !0, s = !1; return { s: function() { n = n.call(e) }, n: function() { var e = n.next(); return a = e.done, e }, e: function(e) { s = !0, i = e }, f: function() { try { a || null == n.return || n.return() } finally { if (s) throw i } } } } function vr(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } var br = "z-index: 2147483647 !important; display:block !important;", _r = function(e) { var t = new MutationObserver(function(n) { var r, o = yr(n); try { for (o.s(); !(r = o.n()).done;) { var i = r.value; "attributes" === i.type && "style" === i.attributeName && (t.disconnect(), e.style = br) } } catch (e) { o.e(e) } finally { o.f() } }); return t.observe(e, { attributes: !0, attributeFilter: ["style"] }), t }, Sr = function(e) { var t = lr()(); e.setAttribute("id", t), i.A.debug("honeyTips:mountApp: Setting id = '".concat(t, "' on root element")) }, wr = function(e, t, n, r, o) { var i = new MutationObserver(function(a) { var s, c = yr(a); try { for (c.s(); !(s = c.n()).done;) { var u = s.value; if (e && u.removedNodes.length) { var l, f = yr(u.removedNodes); try { for (f.s(); !(l = f.n()).done;) { if (l.value.contains(t)) { if (i.disconnect(), r(), o > 4) return; Or(n, o + 1) } } } catch (e) { f.e(e) } finally { f.f() } } } } catch (e) { c.e(e) } finally { c.f() } }); return e && i.observe(e, { childList: !0, characterData: !0 }), i }, Or = function() { var e, t = (e = hr().m(function e(t) { var n, i, a, s, c, u, l, f, d, p, h, g, y = arguments; return hr().w(function(e) { for (;;) switch (e.n) { case 0: return n = y.length > 1 && void 0 !== y[1] ? y[1] : 0, i = ce.KA.includes(window.location.host), a = (0, cr.A)(), s = a.plugins, c = document.createElement("div"), Sr(c), document.body.appendChild(c), u = _r(c), l = "closed", e.n = 1, (0, fr.Ay)(c, null, { mode: l, dontInjectFonts: !0 }); case 1: return f = e.v, d = new sr.SN, (p = (0, sr.vt)()).setup({ plugins: s, insertionPoint: f.getElementById("honey") }), i ? f.getElementById("honey").style = br : c.style = br, h = r.createElement(o.Kq, { store: pr.A }, r.createElement(m.JssProvider, { registry: d, jss: p }, r.createElement(dr.Kq, { value: { shadowContainer: c } }, t))), e.n = 2, (0, fr.Ay)(c, h, { mode: l, dontInjectFonts: !0, feature: "honey-tips-new", surface: "badge" }); case 2: return g = function() { u.disconnect(), (0, ar.unmountComponentAtNode)(f) }, wr(document.body, c, t, g, n), e.a(2, { container: f, unmountApp: g }) } }, e) }), function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { gr(i, r, o, a, s, "next", e) } function s(e) { gr(i, r, o, a, s, "throw", e) } a(void 0) }) }); return function(e) { return t.apply(this, arguments) } }(); const Er = Or; function kr() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Tr(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Tr(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Tr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Tr(f, "constructor", u), Tr(u, "constructor", c), c.displayName = "GeneratorFunction", Tr(u, o, "GeneratorFunction"), Tr(f), Tr(f, o, "Generator"), Tr(f, r, function() { return this }), Tr(f, "toString", function() { return "[object Generator]" }), (kr = function() { return { w: i, m: d } })() } function Tr(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Tr = function(e, t, n, r) { function i(t, n) { Tr(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Tr(e, t, n, r) } function xr(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function Ir(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { xr(i, r, o, a, s, "next", e) } function s(e) { xr(i, r, o, a, s, "throw", e) } a(void 0) }) } } var Pr, Ar = !1, Cr = function() { var e = Ir(kr().m(function e() { var t, n, o; return kr().w(function(e) { for (;;) switch (e.n) { case 0: if (Pr || Ar) { e.n = 2; break } return Ar = !0, e.n = 1, Er(r.createElement(ir, null)); case 1: t = e.v, n = t.container, o = t.unmountApp, Pr = { container: n, unmountApp: o }, Ar = !1; case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), jr = function() { return !!Pr }, Rr = function() { var e = Ir(kr().m(function e() { return kr().w(function(e) { for (;;) switch (e.n) { case 0: Pr && Pr.unmountApp(), Pr = null; case 1: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }() }, 21733: (e, t, n) => { "use strict"; n.d(t, { A: () => S }); var r = n(32969), o = n(6120), i = n(69969), a = n(61117), s = n(61565), c = n(25094), u = n(323), l = n(3659), f = n(32372), d = n(85201); function p(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return h(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? h(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function h(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } function m() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return g(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (g(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, g(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, g(f, "constructor", u), g(u, "constructor", c), c.displayName = "GeneratorFunction", g(u, o, "GeneratorFunction"), g(f), g(f, o, "Generator"), g(f, r, function() { return this }), g(f, "toString", function() { return "[object Generator]" }), (m = function() { return { w: i, m: d } })() } function g(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } g = function(e, t, n, r) { function i(t, n) { g(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, g(e, t, n, r) } function y(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function v(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { y(i, r, o, a, s, "next", e) } function s(e) { y(i, r, o, a, s, "throw", e) } a(void 0) }) } } function b() { return _.apply(this, arguments) } function _() { return (_ = v(m().m(function e() { var t, n, r, h, g, y, v, b, _, S, w, O, E, k, T, x; return m().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, Promise.all([s.A.getCurrent(), c.A.getInfo(), a.A.getVariant(l.Q3), a.A.getVariant(l.$f), u.A.getFeatureFlag(d.bh), u.A.getFeatureFlag(d.iA)]); case 1: if (t = e.v, n = p(t, 6), r = n[0], h = n[1], g = n[2], y = n[3], v = n[4], b = n[5], _ = h.isLoggedIn, S = y === f.sl.LO_VARIANT, r.id) { e.n = 2; break } return e.a(2, {}); case 2: if (S || _) { e.n = 3; break } return e.a(2, {}); case 3: if (O = !1, (w = !1) || O) { e.n = 4; break } if ("control" !== g) { e.n = 4; break } return e.a(2, {}); case 4: if (!(w && !v || O && !b)) { e.n = 5; break } return e.a(2, {}); case 5: return e.n = 6, c.A.getSettings(); case 6: if (E = e.v, !h.isLoggedIn || 1 !== (null == E ? void 0 : E.postPurchaseAdsOptOut)) { e.n = 7; break } return e.a(2, {}); case 7: return e.n = 8, Promise.all([o.A.dispatch(i.Zw.fetchRoktOffers({ store: r, userAgent: navigator.userAgent, isLoggedIn: _ })), o.A.dispatch(i.Zw.fetchUserFirstName())]); case 8: if (k = e.v, T = p(k, 1), (x = T[0]).payload) { e.n = 9; break } throw new Error("No offer found or temporarily rate limited"); case 9: return e.a(2, { isStoreEligibleForRoktOffers: x.payload.isStoreEligibleForRoktOffers }) } }, e) }))).apply(this, arguments) } r.A.addListener("pageDetected:PAYMENTS", v(m().m(function e() { return m().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, b(); case 1: return e.a(2) } }, e) }))), r.A.addListener("tabs:activated", function() { var e = v(m().m(function e(t, n) { var o; return m().w(function(e) { for (;;) switch (e.n) { case 0: o = n && n.tabId, r.A.send("rokt:tabs:activated", { tabId: o }); case 1: return e.a(2) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }()); const S = { checkEligiblityAndFetchRoktOffers: b } }, 22626: (e, t, n) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.default = void 0; var r, o = (r = n(29677)) && r.__esModule ? r : { default: r }; t.default = o.default }, 23649: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, Qq: () => l, fc: () => i.A }); var r = n(83787), o = n(60834), i = n(59843); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 27102: (e, t, n) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var r = { atoms: !0, CardLoader: !0, hooks: !0, LoaderGroup: !0, ContainerLoader: !0, molecules: !0, organisms: !0, templates: !0, UniversalContainer: !0, UniversalContainerLayout: !0, CardHeader: !0, Card: !0, Collapse: !0 }; Object.defineProperty(t, "Card", { enumerable: !0, get: function() { return m.default } }), Object.defineProperty(t, "CardHeader", { enumerable: !0, get: function() { return h.default } }), Object.defineProperty(t, "CardLoader", { enumerable: !0, get: function() { return i.default } }), Object.defineProperty(t, "Collapse", { enumerable: !0, get: function() { return g.default } }), Object.defineProperty(t, "ContainerLoader", { enumerable: !0, get: function() { return c.default } }), Object.defineProperty(t, "LoaderGroup", { enumerable: !0, get: function() { return s.default } }), Object.defineProperty(t, "UniversalContainer", { enumerable: !0, get: function() { return d.default } }), Object.defineProperty(t, "UniversalContainerLayout", { enumerable: !0, get: function() { return p.default } }), Object.defineProperty(t, "atoms", { enumerable: !0, get: function() { return o.default } }), Object.defineProperty(t, "hooks", { enumerable: !0, get: function() { return a.default } }), Object.defineProperty(t, "molecules", { enumerable: !0, get: function() { return u.default } }), Object.defineProperty(t, "organisms", { enumerable: !0, get: function() { return l.default } }), Object.defineProperty(t, "templates", { enumerable: !0, get: function() { return f.default } }); var o = v(n(35483)), i = v(n(38757)), a = v(n(30553)), s = v(n(8255)), c = v(n(97011)), u = v(n(17940)), l = v(n(42396)), f = v(n(92870)), d = v(n(22626)), p = v(n(7992)), h = function(e, t) { if (!t && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var n = y(t); if (n && n.has(e)) return n.get(e); var r = { __proto__: null }, o = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var i in e) if ("default" !== i && Object.prototype.hasOwnProperty.call(e, i)) { var a = o ? Object.getOwnPropertyDescriptor(e, i) : null; a && (a.get || a.set) ? Object.defineProperty(r, i, a) : r[i] = e[i] } return r.default = e, n && n.set(e, r), r }(n(29959)); Object.keys(h).forEach(function(e) { "default" !== e && "__esModule" !== e && (Object.prototype.hasOwnProperty.call(r, e) || e in t && t[e] === h[e] || Object.defineProperty(t, e, { enumerable: !0, get: function() { return h[e] } })) }); var m = v(n(53030)), g = v(n(5535)); function y(e) { if ("function" != typeof WeakMap) return null; var t = new WeakMap, n = new WeakMap; return (y = function(e) { return e ? n : t })(e) } function v(e) { return e && e.__esModule ? e : { default: e } } }, 28966: e => { "use strict"; var t, n, r, o = { '"': '"', "\\": "\\", "/": "/", b: "\b", f: "\f", n: "\n", r: "\r", t: "\t" }; function i(e) { throw { name: "SyntaxError", message: e, at: t, text: r } } function a(e) { return e && e !== n && i("Expected '" + e + "' instead of '" + n + "'"), n = r.charAt(t), t += 1, n } function s() { var e, t = ""; for ("-" === n && (t = "-", a("-")); n >= "0" && n <= "9";) t += n, a(); if ("." === n) for (t += "."; a() && n >= "0" && n <= "9";) t += n; if ("e" === n || "E" === n) for (t += n, a(), "-" !== n && "+" !== n || (t += n, a()); n >= "0" && n <= "9";) t += n, a(); return e = Number(t), isFinite(e) || i("Bad number"), e } function c() { var e, t, r, s = ""; if ('"' === n) for (; a();) { if ('"' === n) return a(), s; if ("\\" === n) if (a(), "u" === n) { for (r = 0, t = 0; t < 4 && (e = parseInt(a(), 16), isFinite(e)); t += 1) r = 16 * r + e; s += String.fromCharCode(r) } else { if ("string" != typeof o[n]) break; s += o[n] } else s += n } i("Bad string") } function u() { for (; n && n <= " ";) a() } function l() { switch (u(), n) { case "{": return function() { var e, t = {}; if ("{" === n) { if (a("{"), u(), "}" === n) return a("}"), t; for (; n;) { if (e = c(), u(), a(":"), Object.prototype.hasOwnProperty.call(t, e) && i('Duplicate key "' + e + '"'), t[e] = l(), u(), "}" === n) return a("}"), t; a(","), u() } } i("Bad object") }(); case "[": return function() { var e = []; if ("[" === n) { if (a("["), u(), "]" === n) return a("]"), e; for (; n;) { if (e.push(l()), u(), "]" === n) return a("]"), e; a(","), u() } } i("Bad array") }(); case '"': return c(); case "-": return s(); default: return n >= "0" && n <= "9" ? s() : function() { switch (n) { case "t": return a("t"), a("r"), a("u"), a("e"), !0; case "f": return a("f"), a("a"), a("l"), a("s"), a("e"), !1; case "n": return a("n"), a("u"), a("l"), a("l"), null; default: i("Unexpected '" + n + "'") } }() } } e.exports = function(e, o) { var a; return r = e, t = 0, n = " ", a = l(), u(), n && i("Syntax error"), "function" == typeof o ? function e(t, n) { var r, i, a = t[n]; if (a && "object" == typeof a) for (r in l) Object.prototype.hasOwnProperty.call(a, r) && (void 0 === (i = e(a, r)) ? delete a[r] : a[r] = i); return o.call(t, n, a) }({ "": a }, "") : a } }, 28992: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, Og: () => i.A, Ru: () => l }); var r = n(18850), o = n(20987), i = n(6590); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 29123: (e, t, n) => { "use strict"; var r = ("undefined" != typeof JSON ? JSON : n(55657)).stringify, o = n(3700), i = n(3595), a = n(51769), s = n(33862), c = s("Array.prototype.join"), u = s("Array.prototype.indexOf"), l = s("Array.prototype.splice"), f = s("Array.prototype.sort"), d = function(e, t) { for (var n = "", r = 0; r < e; r += 1) n += t; return n }, p = function(e, t, n) { return n }; e.exports = function(e) { var t = arguments.length > 1 ? arguments[1] : void 0, n = t && t.space || ""; "number" == typeof n && (n = d(n, " ")); var s = !!t && "boolean" == typeof t.cycles && t.cycles, h = t && t.replacer ? a(t.replacer) : p; if (t && void 0 !== t.collapseEmpty && "boolean" != typeof t.collapseEmpty) throw new TypeError("`collapseEmpty` must be a boolean, if provided"); var m = !!t && t.collapseEmpty, g = "function" == typeof t ? t : t && t.cmp, y = g && function(e) { var t = g.length > 2 && function(t) { return e[t] }; return function(n, r) { return g({ key: n, value: e[n] }, { key: r, value: e[r] }, t ? { __proto__: null, get: t } : void 0) } }, v = []; return function e(t, a, p, g) { var b = n ? "\n" + d(g, n) : "", _ = n ? ": " : ":"; if (p && p.toJSON && "function" == typeof p.toJSON && (p = p.toJSON()), void 0 !== (p = h(t, a, p))) { if ("object" != typeof p || null === p) return r(p); var S = function(e, t) { return m && 0 === e.length ? t : ("[]" === t ? "[" : "{") + c(e, ",") + b + ("[]" === t ? "]" : "}") }; if (o(p)) { for (var w = [], O = 0; O < p.length; O++) { var E = e(p, O, p[O], g + 1) || r(null); w[w.length] = b + n + E } return S(w, "[]") } if (-1 !== u(v, p)) { if (s) return r("__cycle__"); throw new TypeError("Converting circular structure to JSON") } v[v.length] = p; var k = f(i(p), y && y(p)); for (w = [], O = 0; O < k.length; O++) { var T = e(p, a = k[O], p[a], g + 1); if (T) { var x = r(a) + _ + T; w[w.length] = b + n + x } } return l(v, u(v, p), 1), S(w, "{}") } }({ "": e }, "", e, 0) } }, 29926: (e, t, n) => { "use strict"; n.d(t, { A: () => r }); const r = { selectOffers: function() { return function(e) { return (e && e.roktOffers).offers } }, selectFirstName: function() { return function(e) { var t; return null == e || null === (t = e.roktOffers) || void 0 === t ? void 0 : t.firstName } } } }, 31234: (e, t, n) => { "use strict"; n.d(t, { I: () => r, l: () => o }); var r = "honeyTips:suppression:all:loggedOut:expirationDate", o = "honeyTips:suppression:all:expirationDate" }, 31311: (e, t, n) => { "use strict"; n.d(t, { A: () => i }); var r = n(2317), o = n(36927); const i = (0, r.Mz)(function(e) { return (0, o.A)(e) }, function(e) { return !!(e || {}).showTopTipOnly }) }, 32451: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, fS: () => l, o2: () => i.A }); var r = n(35501), o = n(99488), i = n(8741); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 33118: (e, t, n) => { "use strict"; n.d(t, { F: () => l }); var r = n(9921), o = n(46946), i = n(25836); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = function(e) { return function(t, n) { var a = c(c({}, (0, i.A)(n())), e); o.A.sendEvent("tip004035", a), r.A.debug("TIPS_CONTAINER:".concat(a.event), a) } } }, 33731: (e, t, n) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.default = void 0; var r = c(n(9666)), o = c(n(86146)), i = n(22662), a = c(n(62924)), s = n(72097); function c(e) { return e && e.__esModule ? e : { default: e } } const u = { backButtonCopy: o.default.string, closeButtonCopy: o.default.string.isRequired, handleBackClick: o.default.func, onClose: o.default.func.isRequired, title: o.default.string.isRequired }, l = { header: { display: "flex", justifyContent: "space-between", alignItems: "center", position: "sticky", padding: "16px", boxShadow: "0px 1px 2px rgba(0, 0, 0, 0.1)" }, headerAction: { composes: "body2", color: s.Colors.grey800, cursor: "pointer", "&:focus": { outline: "unset" } }, headerTitle: { composes: "title1", position: "absolute", width: "calc(100% - 104px)", margin: "0 36px", textAlign: "center", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, hidden: { visibility: "hidden" } }, f = (0, i.createUseStyles)(l), d = ({ backButtonCopy: e, closeButtonCopy: t, handleBackClick: n, onClose: o, title: i }) => { const s = f(); return r.default.createElement("div", { className: s.header }, r.default.createElement("div", { id: "BottomSheetHeaderBackButton", className: (0, a.default)(s.headerAction, { [s.hidden]: !e }), onClick: n, onKeyPress: n, role: "button", tabIndex: 0 }, e), r.default.createElement("div", { className: s.headerTitle }, i), r.default.createElement("div", { id: "BottomSheetHeaderCloseButton", className: s.headerAction, onClick: o, onKeyPress: o, role: "button", tabIndex: 0 }, t)) }; d.propTypes = u, d.defaultProps = { backButtonCopy: "", handleBackClick: () => {} }; t.default = d }, 34570: (e, t, n) => { "use strict"; n.d(t, { A: () => u }); var r = n(2317), o = n(79973), i = n(70481), a = n(46529), s = n(34819), c = { orientation: "topRight", top: a.oU }; const u = (0, r.Mz)(function(e) { return o.v_.selectDeviceSetting(a.xw.MOVABLE_BADGE_SETTINGS)(e) }, function(e) { return o.v_.selectDeviceSetting(a.xw.MOVABLE_BADGE_SETTINGS_BY_STORE)(e) }, function(e) { return i.VH.selectCurrentStoreId()(e) }, function(e, t, n) { return (0, s.w)(n) ? (t || {})[n] || (0, s.b)(n) : e || c }) }, 34819: (e, t, n) => { "use strict"; n.d(t, { b: () => o, w: () => i }); var r = { 1: { orientation: "topRight", top: 160 } }, o = function(e) { return r[e] }, i = function(e) { return !!o(e) } }, 35251: e => { "use strict"; var t = Object.prototype.toString; e.exports = function(e) { var n = t.call(e), r = "[object Arguments]" === n; return r || (r = "[object Array]" !== n && null !== e && "object" == typeof e && "number" == typeof e.length && e.length >= 0 && "[object Function]" === t.call(e.callee)), r } }, 35304: (e, t, n) => { "use strict"; n.d(t, { A: () => s }); var r = n(43189), o = { helpful: !0, not_relevant: !0, something_wrong: !0, not_helpful: !0 }, i = { helpful: !0, not_relevant: !0, price_wrong: !0, something_else_wrong: !0, not_helpful: !0 }, a = { price_wrong: !0, something_else_wrong: !0, not_helpful: !0 }; const s = function(e, t) { return e ? r.Wv.filter(function(e) { return o[e.id] }) : t ? r.Wv.filter(function(e) { return a[e.id] }) : r.Wv.filter(function(e) { return i[e.id] }) } }, 35477: (e, t, n) => { "use strict"; n.d(t, { Ay: () => C, MR: () => P, jG: () => T }); var r = n(9666), o = n(99459), i = n(60191), a = n(22662), s = n(22182), c = n(69698), u = n.n(c), l = n(86531), f = n.n(l), d = n(7837), p = n(24166); function h(e) { return h = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, h(e) } function m() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return g(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (g(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, g(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, g(f, "constructor", u), g(u, "constructor", c), c.displayName = "GeneratorFunction", g(u, o, "GeneratorFunction"), g(f), g(f, o, "Generator"), g(f, r, function() { return this }), g(f, "toString", function() { return "[object Generator]" }), (m = function() { return { w: i, m: d } })() } function g(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } g = function(e, t, n, r) { function i(t, n) { g(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, g(e, t, n, r) } function y(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function v(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? y(Object(n), !0).forEach(function(t) { b(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : y(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function b(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != h(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != h(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == h(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } function _(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function S(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { _(i, r, o, a, s, "next", e) } function s(e) { _(i, r, o, a, s, "throw", e) } a(void 0) }) } } var w = (0, s.A)().plugins, O = "_honeyShadowRoot", E = { containerId: "honey", mode: "open", fallbackToNonShadow: !0, dontInjectFonts: !1 }; function k() { u()("head").append("")) } function T(e) { return e && (e.shadowRoot || u()(e).data(O)) } function x(e, t) { return I.apply(this, arguments) } function I() { return I = S(m().m(function e(t, n) { var i, a, s, c, l, h = arguments; return m().w(function(e) { for (;;) switch (e.n) { case 0: if (i = h.length > 2 && void 0 !== h[2] ? h[2] : {}, f().locale(d.A.getUILanguage()), !n) { e.n = 2; break } return e.n = 1, p.A.constructor.allowUi(i.feature, i.surface); case 1: if (e.v) { e.n = 2; break } return e.a(2, !1); case 2: if (a = v(v({}, E), i), s = r.createElement("div", { id: a.containerId }, r.createElement("link", { rel: "stylesheet", href: "".concat("https://cdn.honey.io", "/css/honey-font.min.css?v2") }), n), !t) { e.n = 7; break } if (!(c = T(t))) { e.n = 3; break } return o.render(s, c), e.a(2, Promise.resolve(c)); case 3: if (!t.attachShadow) { e.n = 4; break } return l = t.attachShadow({ mode: a.mode }), a.dontInjectFonts || k(), "closed" === a.mode && u()(t).data(O, l), o.render(s, l), e.a(2, Promise.resolve(l)); case 4: if (!a.fallbackToNonShadow) { e.n = 5; break } o.render(s, t), e.n = 6; break; case 5: case 7: return e.a(2, Promise.resolve(!1)); case 6: e.n = 8; break; case 8: return e.a(2, Promise.resolve(!0)) } }, e) })), I.apply(this, arguments) } function P(e, t) { return A.apply(this, arguments) } function A() { return A = S(m().m(function e(t, n) { var o, s, c, u, l, f = arguments; return m().w(function(e) { for (;;) switch (e.n) { case 0: return o = f.length > 2 && void 0 !== f[2] ? f[2] : { mode: "closed", dontInjectFonts: !0 }, e.n = 1, x(t, null, o); case 1: return s = e.v, c = new i.SN, (u = (0, i.vt)()).setup({ plugins: w, insertionPoint: s.getElementById("honey") }), l = r.createElement(a.JssProvider, { jss: u, registry: c }, n), e.n = 2, x(t, l, o); case 2: return e.a(2) } }, e) })), A.apply(this, arguments) } const C = x }, 35614: (e, t, n) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.default = void 0; var r = s(n(9666)), o = s(n(86146)), i = n(22662), a = n(72097); function s(e) { return e && e.__esModule ? e : { default: e } } const c = { title: o.default.node }, u = { title: void 0 }, l = { root: { display: "flex", alignItems: "center" }, icon: { width: "24px", height: "24px", backgroundColor: a.Colors.main500, display: "flex", alignItems: "center", justifyContent: "center", borderRadius: "5px", flex: "0,0,24px", marginTop: 0, marginBottom: 0 }, title: { fontSize: "18px", fontWeight: "500", paddingLeft: "5px", color: a.Colors.main500, flex: "1", marginTop: 0, marginBottom: 0 } }, f = (0, i.createUseStyles)(l), d = ({ title: e }) => { const t = f(); return r.default.createElement("div", { className: t.root }, r.default.createElement("div", { className: t.icon }, r.default.createElement(a.Logo, { color: a.Colors.white, size: 16, clickable: !1, h: !0 })), r.default.createElement("h1", { className: t.title }, e || "tips")) }; d.propTypes = c, d.defaultProps = u; t.default = d }, 35643: (e, t, n) => { "use strict"; var r = n(2089), o = n(68636), i = n(80506); e.exports = function() { return i(r, o, arguments) } }, 35826: (e, t, n) => { "use strict"; n.d(t, { Ay: () => S, vt: () => _, im: () => g }); var r = n(63086), o = n(2317), i = function() { return function(e) { return e && e.page && e.page.currentPageId } }, a = function() { return function(e) { return e && e.page && e.page.pendingPageId } }, s = function() { return function(e) { return function(e) { return e && e.page && e.page.pendingPageId }(e) || function(e) { return e && e.page && e.page.currentPageId }(e) } }, c = function(e) { return function(t) { return t && t.page && t.page.pages && t.page.pages[e] } }, u = function(e) { return function(t) { return (c(e)(t) || {}).pageTypes } }, l = function(e) { return function(t) { return (c(e)(t) || {}).isGeneric } }, f = function(e) { return ["PRODUCT", "SHOPIFY_PRODUCT_PAGE", "SHOPIFY_WHERE_AM_I", "WHERE_AM_I"].includes(e) }, d = function(e) { return ["HOMEPAGE"].includes(e) }, p = (0, o.Mz)(function(e) { return function(e) { return e && e.page && e.page.pendingPageId }(e) || function(e) { return e && e.page && e.page.currentPageId }(e) }, function(e) { return e }, function(e, t) { return u(e)(t) }), h = (0, o.Mz)(p, function(e) { return e.some(d) }), m = (0, o.Mz)(p, function(e) { return e.some(f) }); const g = { selectPageByPageId: c, selectCurrentPageId: i, selectPendingPageId: a, selectMostRecentPageId: s, selectContainerIdByPageId: function(e) { return function(t) { return (c(e)(t) || {}).containerId } }, selectPageTypesByPageId: u, selectIsCurrentPageLaunchpad: function() { return function(e) { var t = function(e) { return e && e.page && e.page.currentPageId }(e); return (u(t)(e) || []).includes("HOMEPAGE") } }, selectIsHomePage: h, selectIsProductPage: m, selectIsGenericPage: function(e) { var t = function(e) { return function(e) { return e && e.page && e.page.pendingPageId }(e) || function(e) { return e && e.page && e.page.currentPageId }(e) }(e); return l(t)(e) }, selectIsGenericByPageId: l, selectHasTipsTimedOut: function(e) { var t = function(e) { return function(e) { return e && e.page && e.page.pendingPageId }(e) || function(e) { return e && e.page && e.page.currentPageId }(e) }(e); if (!t) return !1; var n = c(t)(e); return !(!n || !n.tipsTimedOut) } }; function y(e) { return y = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, y(e) } function v(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function b(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != y(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != y(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == y(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var _ = function(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? v(Object(n), !0).forEach(function(t) { b(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : v(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e }({}, r.o1); const S = r.Ff }, 36927: (e, t, n) => { "use strict"; n.d(t, { A: () => s, z: () => a }); var r = n(2317), o = n(35826), i = n(23649), a = (0, r.Mz)(o.im.selectCurrentPageId(), function(e) { return e }, function(e, t) { return o.im.selectContainerIdByPageId(e)(t) }); const s = (0, r.Mz)(a, function(e) { return e }, function(e, t) { return i.fc.selectContainerByContainerId(e)(t) }) }, 38402: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, GF: () => i.A, td: () => l }); var r = n(3640), o = n(50600), i = n(34136); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 38707: (e, t, n) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.default = void 0; var r = s(n(9666)), o = s(n(86146)), i = n(72097), a = n(22662); function s(e) { return e && e.__esModule ? e : { default: e } } function c() { return c = Object.assign ? Object.assign.bind() : function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]) } return e }, c.apply(this, arguments) } const u = { onClick: o.default.func, body: o.default.string }, l = (0, a.createUseStyles)({ main: { width: "100%", height: "48px", textAlign: "center", backgroundColor: i.Colors.white, padding: "10px", display: "flex", flexDirection: "row", justifyContent: "center", alignItems: "center" }, button: { background: "none", color: "inherit", border: "none", padding: "0", font: "inherit", cursor: "pointer", outlineOffset: "-2px", width: "100%" }, expandCopy: { composes: "title1", paddingRight: "6px", "&:hover": { cursor: "pointer" } }, downIcon: { "&:hover": { cursor: "pointer" } } }), f = ({ onClick: e, body: t, ...n }) => { const o = l(); return r.default.createElement("button", c({ onClick: e, className: o.button }, n), r.default.createElement("div", { className: o.main }, r.default.createElement("div", { className: o.expandCopy }, t), r.default.createElement("div", null, r.default.createElement(i.Icon, { color: i.Colors.grey800, icon: "down-line-16" })))) }; f.propTypes = u, f.defaultProps = { onClick: null, body: "" }; t.default = f }, 41502: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, j_: () => l, vi: () => u }); var r = n(81870), o = n(67004), i = n(5735), a = function(e) { return e && e.categoryId === r.Q.MAIN }, s = function(e, t) { var n = a(t) - a(e); return 0 !== n ? n : t.score - e.score }, c = function(e) { var t = (0, i.A)(e) || []; return o.kF.selectCurrentTipsContainerVariant(e) === r.ut.DEPRIORITIZED_MAIN_TIP ? t : function(e) { return e && e.sort(s) }(t) }, u = function(e) { return ((0, i.A)(e) || []).find(function(e) { return e && e.categoryId === r.Q.CONDENSED_LAUNCHPAD }) || !1 }, l = function(e) { var t = ((0, i.A)(e) || []).find(function(e) { return function(e) { return e && e.categoryId === r.Q.CONDENSED_LAUNCHPAD }(e) }); return u(e) && t ? [t] : c(e) }; const f = c }, 42528: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, HL: () => i.A, Jq: () => l }); var r = n(23106), o = n(23323), i = n(71326); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 43189: (e, t, n) => { "use strict"; n.d(t, { KM: () => s, QJ: () => o, Sl: () => i, Wv: () => a }); var r = n(7837), o = { loading: "loading", success: "success" }, i = { loading: r.A.getMessage("Loading"), success: r.A.getMessage("Sent"), failed: r.A.getMessage("Try_Again") }, a = [{ id: "not_relevant", value: "not_relevant", copy: r.A.getMessage("This_isnt_relevant") }, { id: "price_wrong", value: "price_wrong", copy: r.A.getMessage("The_price_is_wrong") }, { id: "something_wrong", value: "something_wrong", copy: r.A.getMessage("Something_is_wrong") }, { id: "something_else_wrong", value: "something_wrong", copy: r.A.getMessage("Something_else_is_wrong") }, { id: "not_helpful", value: "not_helpful", copy: r.A.getMessage("This_isnt_useful") }], s = { none: "none", positive: "thumbs_up", negative: "thumbs_down", negativeFormSubmitted: "thumbs_down_form_submitted" }; Object.freeze(s) }, 46529: (e, t, n) => { "use strict"; function r(e) { return r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, r(e) } function o(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function i(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? o(Object(n), !0).forEach(function(t) { a(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : o(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function a(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != r(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var o = n.call(e, t || "default"); if ("object" != r(o)) return o; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == r(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } n.d(t, { qS: () => f, oU: () => d, ij: () => p, kp: () => m, xw: () => l, PB: () => s, Ue: () => c, KA: () => g, g$: () => u, go: () => h }); var s = { BLOCKING_CDN: "blocking CDN", STAND_DOWN: "stand down", INVALID_PAGE_TYPE: "invalid page type", DEFAULT_LAUNCHPAD_PATH_BLACKLISTED: "default launchpad path blacklisted", STORE_LAUNCHPAD_DISABLED: "store launchpad disabled", DYNAMIC_URL_BLACKLISTED: "dynamic url blacklisted", STATIC_URL_BLACKLISTED: "static url blacklisted", FIRST_PAGE_AFTER_INSTALL: "first page after install", CANT_SHOW_LAUNCHPAD_WITH_ALLOW_LIST: "cannot show launchpad with allow list", STORE_PDP_DISABLED: "store pdp disabled", NO_LAUNCHPAD: "no launchpad variant for condensed container" }, c = i(i({}, s), { HOLDOUT_GROUP: "holdout group", DISABLED_BY_USER: "disabled by user", SUPPRESSED: "suppressed" }), u = ["BILLING", "CHECKOUT_CONFIRM", "FIND_SAVINGS", "FIND_SAVINGS_URL", "GOLD_REWARDS", "PAYMENTS", "PRODUCT", "SHOPIFY_FIND_SAVINGS", "SHOPIFY_PRODUCT_PAGE", "SHOPIFY_WHERE_AM_I", "NONPRODUCT", "HOMEPAGE", "UNSUPPORTED", "WHERE_AM_I"], l = { MOVABLE_BADGE_SETTINGS: "honeyTips:movableBadgeSettings", MOVABLE_BADGE_SETTINGS_BY_STORE: "honeyTips:movableBadgeSettingsByStore", TIPS_BUCKET_DATE: "device:tipsBucketDate" }, f = 56, d = 150, p = 16, h = { TIP_CARD_ERROR: "tipCardError", BADGE_INJECTION_ERROR: "badgeInjectionError" }, m = 8, g = ["www2.hm.com"] }, 47516: (e, t, n) => { "use strict"; n.d(t, { J: () => l, o: () => f }); var r = n(46946), o = n(9921), i = n(16670); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = function(e) { return function(t, n) { var a = (e || {}).tipId, s = c(c({}, (0, i.A)(a)(n())), e); r.A.sendEvent("tip004032", s), o.A.debug(function(e) { var t = "TIPS_TIP:".concat(e.event); return t + (e.action ? ":".concat(e.action) : "") }(s), s) } }, f = function(e) { var t = e.tipId, n = e.customAction, r = e.action; return function(e) { e(l({ tipId: t, action: r || "custom_action", event: "action", customAction: n })) } } }, 48541: (e, t, n) => { "use strict"; var r; if (!Object.keys) { var o = Object.prototype.hasOwnProperty, i = Object.prototype.toString, a = n(35251), s = Object.prototype.propertyIsEnumerable, c = !s.call({ toString: null }, "toString"), u = s.call(function() {}, "prototype"), l = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"], f = function(e) { var t = e.constructor; return t && t.prototype === e }, d = { $applicationCache: !0, $console: !0, $external: !0, $frame: !0, $frameElement: !0, $frames: !0, $innerHeight: !0, $innerWidth: !0, $onmozfullscreenchange: !0, $onmozfullscreenerror: !0, $outerHeight: !0, $outerWidth: !0, $pageXOffset: !0, $pageYOffset: !0, $parent: !0, $scrollLeft: !0, $scrollTop: !0, $scrollX: !0, $scrollY: !0, $self: !0, $webkitIndexedDB: !0, $webkitStorageInfo: !0, $window: !0 }, p = function() { if ("undefined" == typeof window) return !1; for (var e in window) try { if (!d["$" + e] && o.call(window, e) && null !== window[e] && "object" == typeof window[e]) try { f(window[e]) } catch (e) { return !0 } } catch (e) { return !0 } return !1 }(); r = function(e) { var t = null !== e && "object" == typeof e, n = "[object Function]" === i.call(e), r = a(e), s = t && "[object String]" === i.call(e), d = []; if (!t && !n && !r) throw new TypeError("Object.keys called on a non-object"); var h = u && n; if (s && e.length > 0 && !o.call(e, 0)) for (var m = 0; m < e.length; ++m) d.push(String(m)); if (r && e.length > 0) for (var g = 0; g < e.length; ++g) d.push(String(g)); else for (var y in e) h && "prototype" === y || !o.call(e, y) || d.push(String(y)); if (c) for (var v = function(e) { if ("undefined" == typeof window || !p) return f(e); try { return f(e) } catch (e) { return !1 } }(e), b = 0; b < l.length; ++b) v && "constructor" === l[b] || !o.call(e, l[b]) || d.push(l[b]); return d } } e.exports = r }, 49651: (e, t, n) => { "use strict"; function r() { return "undefined" != typeof __SENTRY_BROWSER_BUNDLE__ && !!__SENTRY_BROWSER_BUNDLE__ } function o() { return "npm" } n.d(t, { Z: () => r, e: () => o }) }, 50769: (e, t, n) => { "use strict"; n.d(t, { EF: () => p, MC: () => h, Oo: () => d, VK: () => m, tY: () => f }); var r = n(6241), o = n.n(r), i = n(32372), a = n(65352); function s(e) { return s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, s(e) } function c(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function u(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? c(Object(n), !0).forEach(function(t) { l(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : c(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function l(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != s(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != s(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == s(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } function f() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments.length > 1 ? arguments[1] : void 0, n = a.A.formatInitialProduct(e), r = e.parent_id, s = e.variant_id, c = function(e, t, n) { return e && t && n && "".concat(e, "_").concat(o()(t), "_").concat(o()(n)) }(t, r, s); return u(u({}, n), {}, { id: c, storeId: t, variantId: s, parentId: r, productId: c, fetcherType: i.HR.VIM }) } function d() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments.length > 1 ? arguments[1] : void 0, n = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = e.partialObservation, n = void 0 === t ? {} : t, r = n.title, o = n.url, i = n.descriptionText, a = n.image, s = n.alt_images, c = n.price, u = void 0 === c ? "" : c, l = e.productId, f = e.parentId, d = e.storeId, p = e.variations, h = e.dealInsightHeadline, m = void 0 === h ? {} : h; return { canonicalUrl: o, description: i, imageUrl: a, images: s, lastPrice: u && parseInt((100 * u.substr(1)).toFixed(), 10), parentId: f, productId: l, storeId: d, title: r, variations: p || {}, dealInsightHeadline: m } }(e), r = n.parentId, o = e.variantId, a = n.productId; return u(u({}, n), {}, { id: a, storeId: t, variantId: o, merchId: r, fetcherType: i.HR.VIM }) } function p() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = e.productId, n = e.parentId, r = e.variantId, o = e.basePrice; return { id: t, productId: t, parentId: n, variantId: r, storeId: arguments.length > 1 ? arguments[1] : void 0, merchId: n, lastPrice: parseInt((100 * o).toFixed(), 10), fetcherType: i.HR.OPTIMUS } } function h() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments.length > 1 ? arguments[1] : void 0; return { canonicalUrl: e.canonical_url, imageUrl: e.image_url_primary, lastPrice: "number" == typeof e.price_current ? parseInt((100 * e.price_current).toFixed(), 10) : "", lastPriceCurrency: e.currency, currencySymbol: e.currency_symbol, title: e.title, storeId: t, fetcherType: i.HR.GENERIC } } function m() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = t.parentId, r = t.storeId; return u(u({}, e), {}, { id: e.productId, lastPrice: t.priceInCents || e.priceCurrent, imageUrl: e.imageUrlPrimary, parentId: n, merchId: n, storeId: r, fetcherType: i.HR.WHERE_AM_I }) } }, 51769: (e, t, n) => { "use strict"; var r = n(58303), o = n(18201), i = n(58144), a = n(35643); e.exports = function(e) { var t = i(arguments), n = e.length - (arguments.length - 1); return r(t, 1 + (n > 0 ? n : 0), !0) }, o ? o(e.exports, "apply", { value: a }) : e.exports.apply = a }, 54099: (e, t, n) => { "use strict"; n.d(t, { A: () => i }); var r = n(23649), o = n(99507); const i = function(e) { return (0, o.A)(e, r.fc.selectAutopopDisabledCategoriesForCurrentStore(e)) } }, 54277: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, QS: () => l, oj: () => i.A }); var r = n(33736), o = n(6806), i = n(62295); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 55657: (e, t, n) => { "use strict"; t.parse = n(28966), t.stringify = n(10408) }, 56112: (e, t, n) => { "use strict"; n.d(t, { A: () => r }); const r = { selectDiscoveryData: function() { return function(e) { return e && e.honeyCheckout && e.honeyCheckout.discoveryData } } } }, 57503: (e, t, n) => { "use strict"; n.d(t, { Ay: () => ie, sT: () => P }); var r = n(69698), o = n.n(r), i = n(262), a = n.n(i), s = n(12206), c = n(9921), u = n(7720), l = n(32969), f = n(46946), d = n(61565), p = n(88585), h = n(25094), m = n(24333), g = n(12396), y = n(2), v = n(42108), b = n(97856), _ = n(34589), S = n(73276); function w() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return O(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (O(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, O(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, O(f, "constructor", u), O(u, "constructor", c), c.displayName = "GeneratorFunction", O(u, o, "GeneratorFunction"), O(f), O(f, o, "Generator"), O(f, r, function() { return this }), O(f, "toString", function() { return "[object Generator]" }), (w = function() { return { w: i, m: d } })() } function O(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } O = function(e, t, n, r) { function i(t, n) { O(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, O(e, t, n, r) } function E(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return k(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? k(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function k(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } function T(e) { return T = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, T(e) } function x(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function I(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { x(i, r, o, a, s, "next", e) } function s(e) { x(i, r, o, a, s, "throw", e) } a(void 0) }) } } function P() { var e = window.location.href; return new(a())(function(t) { var n = setInterval(function() { e !== window.location.href && (e = window.location.href, clearInterval(n), t(window.location.href)) }, 10) }) } var A = {}, C = {}; var j = {}, R = {}; var M = {}, D = {}; function N(e, t) { var n = e; "string" == typeof n && (n = [e]); var r = t ? D : M; return r[n.toString()] ? new(a())(function() {}) : a().all(n.map(function(e) { return function(e, t) { var n = t ? R : j; return new(a())(function(t) { n[e] || m.A.waitForElement(e).then(function() { n[e] = !0, t(e) }) }) }(e, t) })).then(function(e) { return r[n.toString()] = !0, e }) } var L = new(a())(function() {}), F = L, B = L, U = L, G = L; function $() { return H.apply(this, arguments) } function H() { return H = I(w().m(function e() { var t, n, r, o, i, s, c = arguments; return w().w(function(e) { for (;;) if (0 === e.n) return n = !0 === (t = c.length > 0 && void 0 !== c[0] ? c[0] : {}).v5, r = n ? U : F, t.url && r.isPending() && (n ? U = P().then(function(e) { return { url: e } }) : F = P().then(function(e) { return { url: e } })), o = n ? G : B, "object" === T(t.selectors) && o.isPending() && (i = a().any(Object.keys(t.selectors).map(function(e) { return N(t.selectors[e], n).then(function() { return { selectors: e, url: window.location.href } }) })), n ? G = i : B = i), s = n ? [U, G] : [F, B], e.a(2, a().any(s).then(function(e) { return n ? (U.isResolved() && (U = L), G.isResolved() && (G = L)) : (F.isResolved() && (F = L), B.isResolved() && (B = L)), e || {} })) }, e) })), H.apply(this, arguments) } var z, q = {}; function W(e, t, n, r, o) { return V.apply(this, arguments) } function V() { return V = I(w().m(function e(t, n, r, o, i) { return w().w(function(e) { for (;;) switch (e.n) { case 0: if (c.A.info("Triggering page type: ".concat(t)), !o || !i) { e.n = 4; break } if (!z) { e.n = 2; break } return e.n = 1, z; case 1: e.n = 3; break; case 2: return z = d.A.getCurrent().then(function() { var e = I(w().m(function e(t) { var n, r, i, a; return w().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, d.A.getStoreById(o); case 1: return n = e.v, r = n && n.metadata, i = "frameworkMetadata:".concat(t.id), e.n = 2, u.A.get(i); case 2: if (a = !!e.v, !r || a) { e.n = 4; break } return e.n = 3, u.A.set(i, r); case 3: return e.n = 4, l.A.send("stores:action", { action: "refreshStoreInfo", data: { storeId: t.id } }, { background: !0 }); case 4: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), e.n = 3, z; case 3: z = null; case 4: if (q[t] = n, !q.SHOPIFY_PRODUCT_PAGE && !q.SHOPIFY_WHERE_AM_I || "PRODUCT" !== t || "GENERIC" !== n) { e.n = 5; break } return e.a(2); case 5: p.A.getCurrent().then(function(e) { return l.A.send("pageDetected:".concat(t), { data: n, isV4Result: r, frameworkId: o, shouldUseFramework: i }, { ignoreResponse: !0, background: !1, tab: e.id }) }); case 6: return e.a(2) } }, e) })), V.apply(this, arguments) } function Y(e, t) { var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3]; return arguments.length > 4 && void 0 !== arguments[4] && arguments[4] ? null : "object" === T(e) ? Object.entries(e).forEach(function(o) { var i = E(o, 2), a = i[0], c = i[1]; if (c) { var u = t && t[a], l = u && s.dn && s.dn[u]; W(a, "PAYMENTS" === a ? { allPageTypes: e, value: c } : c, r, l, n) } else "PRODUCT" === a && W("NONPRODUCT", null, r) }) : null } function J() { return Object.assign({}, q) } function K() { var e = new s.XQ; return e.add("waitForElement", function(e) { var t = e.payload; return m.A.waitForElement(t.selector) }), e.add("waitForMutation", function(e) { var t, n, r = e.payload; return t = r.target, "number" != typeof A[t] && (A[t] = 0), C[t] = new MutationObserver(function(e) { e.length && Date.now() - A[t] > 800 && (A[t] = Date.now(), C[t].disconnect(), n()) }), C[t].observe(document.querySelector(t), { childList: !0, subtree: !0 }), new(a())(function(e) { n = e }) }), e.add("waitForPageUpdate", function(e) { return $(e.payload) }), e.add("getPageHtml", function() { return m.A.getCurrentPageHtml() }), e.add("getItemLocalStorage", function(e) { var t = e.payload; return localStorage.getItem(t.key) }), e.add("setItemLocalStorage", function(e) { var t = e.payload; return localStorage.setItem(t.key, t.value) }), e.add("getDocumentCookies", function() { var e = {}; return document.cookie.split("; ").forEach(function(t) { var n = t.split("="); e[n[0]] = n[1] }), e }), e.add("getUserSettings", function() { return h.A.getSettings() }), e.add("setUserSetting", function(e) { var t = e.payload; return h.A.updateSetting(t.key, t.value) }), e.add("reportPageTypes", function(e) { return Y(e.payload.types) }), e.add("handleFinishedRun", function() { var e = I(w().m(function e(t) { var n, r; return w().w(function(e) { for (;;) switch (e.n) { case 0: n = t.runId, r = t.runner, n && r.state.hasRun(n) && r.state.clearRun(n); case 1: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), e.addDefaultAction(function(e, t) { return c.A.warn("Unhandled nativeAction: ".concat(e), t), null }), e } function Q(e) { return X.apply(this, arguments) } function X() { return (X = I(w().m(function e(t) { var n, r, o, i, a, u, l; return w().w(function(e) { for (;;) switch (e.n) { case 0: return n = "pageDetector", r = K(), e.n = 1, g.A.getStoreRecipe(t); case 1: o = e.v; try { i = new s.Y5({ platform: "extension", nativeActionRegistry: r }) } catch (e) { c.A.error("Error in CoreRunner creation: ", e) } return a = { storeId: t, vimOptions: { recipeOverride: o, disableTimeout: !0, v5SupportEnabled: !1 }, vimName: n, inputData: { url: window.location.href, html: document.documentElement.innerHTML } }, e.n = 2, i.doAction({ name: "canRunVim", options: a }); case 2: if (e.v) { e.n = 3; break } throw new NotFoundError; case 3: return e.n = 4, i.getActionHandle({ name: n, options: a }); case 4: return u = e.v, e.n = 5, u.getResult(); case 5: return l = e.v, e.a(2, l) } }, e) }))).apply(this, arguments) } function Z(e) { o()(function() { v.A.check(e), y.A.check(e), _.A.check(e), S.A.check(e), b.A.check(e) }) } function ee(e) { return te.apply(this, arguments) } function te() { return (te = I(w().m(function e(t) { var n, r; return w().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, l.A.send("stores:action", { action: "getStoresWithProductCatalogSupport" }, { background: !0 }); case 1: return n = e.v, r = n && n[t], e.a(2, r) } }, e) }))).apply(this, arguments) } function ne() { return ne = I(w().m(function e(t, n) { return w().w(function(e) { for (;;) switch (e.n) { case 0: if (n && "string" == typeof n.id && n.supported) { e.n = 1; break } return e.a(2, null); case 1: return e.a(2, h.A.getUserABGroup("trustV5PageDetectors").then(function() { var e = I(w().m(function e(t) { return w().w(function(e) { for (;;) switch (e.p = e.n) { case 0: if (!t || "on" !== t.group) { e.n = 5; break } return S.A.check(n), b.A.check(n), e.p = 1, e.n = 2, ee(n.id); case 2: e.v || _.A.check(n), e.n = 4; break; case 3: e.p = 3, e.v; case 4: return e.a(2, g.A.getAndRunV5Vim(n.id, "pd")); case 5: throw new OperationSkippedError; case 6: return e.a(2) } }, e, null, [ [1, 3] ]) })); return function(t) { return e.apply(this, arguments) } }()).catch(function(e) { if ("TimeoutError" !== e.name) throw e }).catch(I(w().m(function e() { return w().w(function(e) { for (;;) if (0 === e.n) return e.a(2, Q(n.templateId || n.id)) }, e) }))).catch(function() { return Z(n) }).catch(function(e) { return c.A.error("Failed to run page detection:", e) })) } }, e) })), ne.apply(this, arguments) } l.A.addListener("vims:reportPageTypes", function() { var e = I(w().m(function e(t, n) { var r, o, i; return w().w(function(e) { for (;;) switch (e.n) { case 0: return r = n.types, o = n.frameworks, e.n = 1, ee(n.storeId); case 1: i = e.v, Y(r, o, n.shouldUseFramework, !1, n.ignoreForFeatures), !Object.values(r).every(function(e) { return !1 === e }) || Object.keys(r).includes("PRODUCT") && i || _.A.check(); case 2: return e.a(2) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }()), l.A.addListener("vims:waitForPageUpdate", function(e, t, n) { var r = t.payload, o = t.runId, i = r.selectors; return $({ url: r.url, selectors: i, v5: !0 }, n.tabId).then(function(e) { l.A.send("vims:action", { action: "pageChange", data: { result: e, runId: o } }, { background: !0, ignoreResponse: !0 }) }) }); var re = ["BILLING", "CART_PRODUCT", "CHECKOUT_CONFIRM", "FIND_SAVINGS", "FIND_SAVINGS_URL", "GOLD_REWARDS", "HOMEPAGE", "PAYMENTS", "PRODUCT", "SEARCH", "SHOPIFY_FIND_SAVINGS", "SHOPIFY_PRODUCT_PAGE", "SHOPIFY_WHERE_AM_I", "SUBMIT_ORDER", "UNSUPPORTED", "WHERE_AM_I", "PAY_LATER"], oe = {}; h.A.getUserABGroup("extPageDetected").then(function(e) { var t = e || {}, n = t.unsupportedPercentage || 0, r = t.unsupportedDelay || 1e4; re.forEach(function(e) { l.A.addListener("pageDetected:".concat(e), function(r, o) { if (!oe[e] && "on" === t.group) { var i = function(e) { try { var t = new URL(e), n = {}; n.hostname = t.hostname.toLowerCase(); var r = t.pathname.replace(/\//g, " / ").replace(/_/g, " _ ").replace(/-/g, " - ").replace(/\+/g, " + "), o = t.search.replace(/\?/g, " ? ").replace(/=/g, " = ").replace(/&/g, " & ").replace(/_/g, " _ ").replace(/-/g, " - ").replace(/\+/g, " + "); return n.urlText = r + o, n } catch (e) { return { hostname: !1, urlText: "" } } }(window.location.href), a = ""; document && document.title && (a = document.title), i.hostname && (oe[e] = !0, ("UNSUPPORTED" !== e || Math.random() < n) && f.A.sendEvent("ext001002", { pageTitle: a, pageType: e, hostname: i.hostname, urlText: i.urlText, isGeneric: "GENERIC" === o.data })) } }) }), p.A.inPopover() || setTimeout(function() { var e = J(), t = Object.entries(e).length, n = 0 === t, r = 1 === t && "NONPRODUCT" === Object.keys(e)[0]; (n || r) && W("UNSUPPORTED", null) }, r) }), l.A.addListener("stores:pageview", function(e, t) { return ne.apply(this, arguments) }); const ie = { getCurrentPageTypes: J, triggerPageType: W, PAGE_TYPES: re } }, 58303: (e, t, n) => { "use strict"; var r = n(73083), o = n(6687), i = n(18522)(), a = n(1405), s = n(79809), c = r("%Math.floor%"); e.exports = function(e, t) { if ("function" != typeof e) throw new s("`fn` is not a function"); if ("number" != typeof t || t < 0 || t > 4294967295 || c(t) !== t) throw new s("`length` must be a positive 32-bit integer"); var n = arguments.length > 2 && !!arguments[2], r = !0, u = !0; if ("length" in e && a) { var l = a(e, "length"); l && !l.configurable && (r = !1), l && !l.writable && (u = !1) } return (r || u || !n) && (i ? o(e, "length", t, !0, !0) : o(e, "length", t)), e } }, 60592: (e, t, n) => { "use strict"; const { default: r, DraggableCore: o } = n(25005); e.exports = r, e.exports.default = r, e.exports.DraggableCore = o }, 61565: (e, t, n) => { "use strict"; n.d(t, { A: () => qe, L: () => W }); var r = n(262), o = n.n(r), i = n(86531), a = n.n(i), s = n(69698), c = n.n(s), u = n(57147), l = n.n(u), f = n(32372), d = n(77002), p = n(2479), h = n(78098), m = n(48427), g = n(30539), y = n(9921), v = n(7720), b = n(32969), _ = n(57503), S = n(93744), w = n(48158), O = n(46946), E = n(10051), k = n(88585), T = n(24166), x = n(25094), I = n(24333), P = n(323), A = n(12206), C = n(57183); function j(e) { return j = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, j(e) } function R(e) { return function(e) { if (Array.isArray(e)) return M(e) }(e) || function(e) { if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e) }(e) || function(e, t) { if (e) { if ("string" == typeof e) return M(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? M(e, t) : void 0 } }(e) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function M(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } function D() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return N(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (N(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, N(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, N(f, "constructor", u), N(u, "constructor", c), c.displayName = "GeneratorFunction", N(u, o, "GeneratorFunction"), N(f), N(f, o, "Generator"), N(f, r, function() { return this }), N(f, "toString", function() { return "[object Generator]" }), (D = function() { return { w: i, m: d } })() } function N(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } N = function(e, t, n, r) { function i(t, n) { N(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, N(e, t, n, r) } function L(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function F(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? L(Object(n), !0).forEach(function(t) { B(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : L(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function B(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != j(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != j(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == j(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } function U(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function G(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { U(i, r, o, a, s, "next", e) } function s(e) { U(i, r, o, a, s, "throw", e) } a(void 0) }) } } var $, H, z = h.A.NotFoundError, q = "593104143661403249", W = { HBC: "hbc", EXTENSION_LINKS: "extension_links" }; function V(e, t, n) { return Y.apply(this, arguments) } function Y() { return (Y = G(D().m(function e(t, n, r) { var o, i; return D().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, k.A.getContentScriptUrl(); case 1: return o = e.v, i = I.A.cleanString(r, o), e.a(2, b.A.send("stores:action", { action: "activateStoreGold", data: { storeId: t, taggingOptions: n, targetUrl: i } }, { background: !0 })) } }, e) }))).apply(this, arguments) } function J(e, t) { return o().try(function() { return t || x.A.getUserId() }).then(function(t) { return b.A.send("stores:action", { action: "deactivateStoreGold", data: { storeId: e, userId: t } }, { background: !0 }) }) } function K(e, t) { return b.A.send("stores:action", { action: "getClaimedOffers", data: { userId: e, stores: t } }, { background: !0 }) } function Q(e) { return b.A.send("stores:action", { action: "getStoreById", data: { storeId: e } }, { background: !0 }) } function X(e) { return b.A.send("stores:action", { action: "getStoreByUrl", data: { storeUrl: e } }, { background: !0 }) } function Z(e, t, n) { return b.A.send("stores:action", { action: "setSessionAttribute", data: { storeId: e, attribute: t, value: n } }, { background: !0 }) } function ee(e) { return te.apply(this, arguments) } function te() { return (te = G(D().m(function e(t) { var n, r, o; return D().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, Q(t); case 1: return n = e.v, r = !n.metadata.pns_overrideShopify && n.templateId || n.storeId, e.n = 2, (0, A.as)(r); case 2: return o = e.v, e.a(2, !!o) } }, e) }))).apply(this, arguments) } function ne(e) { return re.apply(this, arguments) } function re() { return (re = G(D().m(function e(t) { var n, r, o, i; return D().w(function(e) { for (;;) switch (e.n) { case 0: if (!k.A.inPopover()) { e.n = 3; break } return e.n = 1, S.A.getPagesDetected(); case 1: if (i = e.v) { e.n = 2; break } i = {}; case 2: n = i, e.n = 4; break; case 3: n = _.Ay.getCurrentPageTypes() || {}; case 4: return r = {}, o = p.A.checkGoldStatus(t.gold), n.FIND_SAVINGS_URL && (r.hasFSRegex = !0), (n.FIND_SAVINGS || n.SHOPIFY_FIND_SAVINGS) && (r.couponsEnabled = !0), n.GOLD_REWARDS && o.active && (r.onOfferPage = !0), (r.onOfferPage || r.couponsEnabled) && (r.onFindSavingsPage = !0), e.a(2, Object.assign({}, r)) } }, e) }))).apply(this, arguments) } function oe(e) { var t = Object.assign({}, e), n = p.A.checkGoldStatus(e.gold); try { t.couponsEnabled = c()(e.metadata.pns_siteSelCartCodeBox).length > 0 && c()(e.metadata.pns_siteSelCartTotalPrice).length > 0 && e.metadata.pns_siteSelCartCodeSubmit } catch (e) { t.couponsEnabled = !1 } try { t.onOfferPage = n.active && !e.standDown && c()(e.metadata.pns_siteSelShowHoneyGold).length > 0 } catch (e) { t.onOfferPage = !1 } return t.onFindSavingsPage = t.couponsEnabled || t.onOfferPage, t } function ie(e) { return ae.apply(this, arguments) } function ae() { return (ae = G(D().m(function e(t) { var n; return D().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, ne(t); case 1: return n = e.v, e.a(2, Object.assign(oe(t), n)) } }, e) }))).apply(this, arguments) } function se() { return ce.apply(this, arguments) } function ce() { return (ce = G(D().m(function e() { var t; return D().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, k.A.getContentScriptUrl(); case 1: return t = e.v, e.a(2, X(t).then(function(e) { return e ? ie(e) : {} })) } }, e) }))).apply(this, arguments) } function ue(e, t) { return se().then(function(n) { return Z(n.id, e, t) }) } function le(e) { return x.A.getUserId().then(function(t) { return K(t, [e]).then(function() { return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []).length > 0 }) }) } function fe(e, t, n) { return de.apply(this, arguments) } function de() { return (de = G(D().m(function e(t, n, r) { var o, i, a; return D().w(function(e) { for (;;) switch (e.n) { case 0: if (r) { e.n = 6; break } return e.n = 1, le(t); case 1: if (!e.v) { e.n = 6; break } return e.n = 2, J(t); case 2: return "base" === n && (k.A.inPopover() || T.A.open({ pathname: "/stooddown", query: {}, state: {}, force: !0, feature: "stooddown", surface: "popup" })), Z(t, "hasStoodUp", !0), e.n = 3, x.A.getUserABGroup("taggingInsuranceDenylist"); case 3: return o = e.v, i = o.denylistStoreIds, a = void 0 === i ? [] : i, e.n = 4, P.A.getFeatureFlag("ext_tagging_insurance_with_denylist"); case 4: if (!e.v || a.includes(t)) { e.n = 6; break } return e.n = 5, I.A.sleep(5e3); case 5: T.A.open({ pathname: "/taggingInsurance", query: {}, state: { storeId: t }, force: !1, feature: "tagging-insurance", surface: "badge" }); case 6: return e.a(2) } }, e) }))).apply(this, arguments) } function pe() { return se().then(function(e) { var t = function(e) { if (e.metadata.pns_siteSelCartTotalPrice) { var t = e.metadata.formatPriceDivisor || 1; return I.A.cleanPrice(c()(e.metadata.pns_siteSelCartTotalPrice).last().text().trim()) / t } return null }(e); O.A.sendEvent("ext003024", { cart: { currency: e.currencyCode, startPrice: t } }) }) } function he(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return w.A.getFindSavingsCta(e).then(function(n) { T.A.open({ pathname: "/notification", query: {}, state: F({ cta: n }, t), force: !1, feature: "notification", surface: "popup" }).then(function() { return o().all([d.A.getLastSetIcon(), ee(e.id), Z(e.id, "userInitiated", !1), Z(e.id, "applyCodesShown", a()().unix())]).spread(function(t, r) { var o; return $ > a()().unix() || ($ = a()().add(10, "seconds").unix()), O.A.sendEvent("ext003023", { sub_src: "findsavings_modal", action: "show", cta: n, variant: n && n.variation }), e.popularCodes ? o = "popular_codes_test" : "ux_resillience" === n.variation && (o = n.variation), O.A.sendEvent("ext003001", { store: e, dac: r, ok: e.coupons && e.coupons.length > 0, coupons: e.coupons && e.coupons.length || 0, coupons_tested: w.A.getNumCoupons(), user_initiated: !1, user_hbc: e.userHBC, cta: n, icon: t, cash_bonus: m.A.getEventCashBonus(e.gold), has_fs_regex: e.hasFSRegex, has_fs_mixin: e.hasFindSavingsMixin, variant: o }) }) }) }) } function me() { return se().then(function(e) { return v.A.get("stores:".concat(e.id, ":usershare")).then(function(t) { var n = t.code, r = t.startPrice, o = e.coupons.some(function(e) { return I.A.cleanStringUpper(e.code) === I.A.cleanStringUpper(n) }), i = function() { var t = G(D().m(function t(a) { var s, u = arguments; return D().w(function(t) { for (;;) switch (t.n) { case 0: s = u.length > 1 && void 0 !== u[1] ? u[1] : 20, clearTimeout(H), H = setTimeout(G(D().m(function t() { var u, l, f, d, p, h, m, S, w, E, k; return D().w(function(t) { for (;;) switch (t.n) { case 0: if (u = /\d/.test(c()(e.metadata.pns_siteSelCartTotalPrice).last().text()), l = I.A.cleanPrice(c()(e.metadata.pns_siteSelCartTotalPrice).last().text()), u && l !== r || !(a > 0) || 20 !== s) { t.n = 1; break } return t.a(2, i(a - 100, s)); case 1: if (f = _.Ay.getCurrentPageTypes(), !(u && l !== r && f.SHOPIFY_FIND_SAVINGS && s)) { t.n = 2; break } return t.a(2, i(a - 100, s - 1)); case 2: return G(D().m(function t() { var n, r; return D().w(function(t) { for (;;) switch (t.p = t.n) { case 0: return t.p = 0, t.n = 1, v.A.get("cartLastSeenTotalPrice:".concat(e.id)); case 1: n = t.v, t.n = 3; break; case 2: t.p = 2, r = t.v, y.A.error("Failed to get last seen total price", r); case 3: n && v.A.set("cartLastSeenPreCouponTotal:".concat(e.id), n), v.A.set("cartLastSeenTotalPrice:".concat(e.id), l); case 4: return t.a(2) } }, t, null, [ [0, 2] ]) }))(), v.A.del("stores:".concat(e.id, ":usershare")), t.n = 3, x.A.getUserId(); case 3: if (d = t.v, p = I.A.cleanStringUpper(n), h = { code: p, storeId: e.id, discount: r - l, userId: d }, O.A.sendEvent("ext004501", { coupon_code: p, savings: r - l, has_clicked_apply: !!e.applyCodesClick }), o && b.A.send("stores:action", { action: "markUserSubmittedCode", data: h }, { background: !0 }).reflect(), m = !1, e.ugcAllowed) { t.n = 4; break } m = "ugc-not-allowed", t.n = 10; break; case 4: if (!(l >= r)) { t.n = 5; break } m = "savings-not-found", t.n = 10; break; case 5: if (!o) { t.n = 6; break } m = "already-had-coupon", t.n = 10; break; case 6: if (!(p.length <= 2)) { t.n = 7; break } m = "code-length-under-2", t.n = 10; break; case 7: if (!(p.length >= 16)) { t.n = 8; break } m = "code-length-over-16", t.n = 10; break; case 8: if (e.applyCodesClick || e.applyCodesShown || e.userHBC || !e.coupons.length) { t.n = 10; break } return t.n = 9, g.A.getCouponStats(e.id); case 9: S = t.v, w = e && null === e.affiliateURL, E = S && S.successRate < .2 && S.failuresCount > 10, e.id === q && (E = !0), m = (!w || !E) && "user-hasnt-seen-ui"; case 10: return k = !1, t.n = 11, v.A.get("userCodeShareUi-shown-".concat(e.id)).then(function(e) { k = e === n }).catch(z, function() {}); case 11: if (m || k) { t.n = 12; break } return T.A.open({ pathname: "/usershare", query: {}, state: { code: n }, feature: "usershare", surface: "popup", force: !0 }), t.a(2, e.id); case 12: return O.A.sendEvent("ext004503", { coupon_code: p, savings: r - l, skipPromptReason: m }), t.a(2, !1); case 13: return t.a(2) } }, t) })), 100); case 1: return t.a(2) } }, t) })); return function(e) { return t.apply(this, arguments) } }(), a = (e.metadata.pns_siteTimeBetween || 3e3) + 2e3; return i(a) }).catch(z, function() {}) }).catch(function() {}) } var ge = !1; function ye(e) { var t = e.metadata.pns_siteSelCartCodeBox; if (t) { var n = !1; c()(t).on("keypress paste", function() { ge || (b.A.send("site_support:watchUGCRequest", { store: e }, { background: !0 }), ge = !0), n = !0 }), c()(t).on("change blur keydown", function(t) { if (!t.keyCode || 13 === t.keyCode) { var r = t.target.value.slice(0, 100); if (r && n) { n = !1, ue("manualCoupon", r); var o = I.A.cleanPrice(c()(e.metadata.pns_siteSelCartTotalPrice).last().text()); v.A.set("stores:".concat(e.id, ":usershare"), { code: r, startPrice: o }); var i = e.coupons.some(function(e) { return I.A.cleanStringUpper(e.code) === I.A.cleanStringUpper(r) }); O.A.sendEvent("ext004500", { coupon_code: r, has_applied_coupons: !!e.applyCodesClick, already_have_coupon: i }), me(), ge && b.A.send("site_support:checkUGCCoupon", { store: e, code: r }, { background: !0 }) } } }), c()(t).attr("couponInputBound", !0) } } var ve = !1; function be(e) { var t = e.metadata.pns_siteSelCartCodeBox; if (t) { new MutationObserver(function(n) { n.some(function(e) { return "childList" === e.type && e.addedNodes.length > 0 }) && (ve || (ve = !0, setTimeout(function() { c()(t).length && !c()(t).attr("couponInputBound") && ye(e), ve = !1 }, 1e3))) }).observe(document.body, { childList: !0, subtree: !0 }) } } function _e(e) { return Se.apply(this, arguments) } function Se() { return (Se = G(D().m(function e(t) { var n, r, o; return D().w(function(e) { for (;;) switch (e.n) { case 0: return n = "user:findSavingsCooldown:".concat(t.id), e.n = 1, v.A.get(n).catch(function() { return null }); case 1: if (r = e.v, o = a()().unix(), !(r && o < r.timestamp + 300)) { e.n = 2; break } return e.a(2, !0); case 2: return e.a(2, !1) } }, e) }))).apply(this, arguments) } function we(e, t, n) { var r, o = a()().unix(); try { r = I.A.cleanPrice(c()(e.metadata.pns_siteSelCartTotalPrice).last().text().trim()) } catch (e) { return !1 } var i = e.coupons, s = t.attemptTs, u = void 0 === s ? 0 : s, l = t.cartTotalPrice, f = void 0 === l ? 0 : l, d = t.coupons, p = void 0 === d ? [] : d, h = t.urlPathname, m = void 0 === h ? "" : h; if (t.coupons && 0 === t.coupons.length && 0 === i.length) return !0; if (o > u + 3600 && !n) return !1; if (r !== f && m === window.location.pathname) return !1; var g = i.every(function(e, t) { var n = p[t] || {}; return e.code === n.code }); return !(!1 === g && !n) && (O.A.sendEvent("ext003003", { store: e, interaction: "silenced", last_savings_attempt_ts: u, last_savings_cart_total_price: f, current_cart_total_price: r, same_coupons: g }), !0) } function Oe(e) { return I.A.cleanPrice(c()(e.metadata.pns_siteSelCartTotalPrice).last().text().trim()) || 0 } function Ee() { return (Ee = G(D().m(function e(t) { var n, r, o; return D().w(function(e) { for (;;) switch (e.n) { case 0: return n = !1, r = w.A.getCtaType(t), e.n = 1, v.A.get("user:lastSavings:".concat(t.id, ":").concat(r)).catch(z, function() { return {} }); case 1: return o = e.v, Object.keys(o).length > 0 && (n = !0), e.a(2, n) } }, e) }))).apply(this, arguments) } function ke(e, t) { var n = !0; e.cartTotalPrice && e.cartTotalPrice !== Oe(t) || (n = !1); var r = !1; return e.savings > 0 && e.initPrice !== Oe(t) && (r = !0), { attemptTs: e.attemptTs, bestCoupon: e.bestCoupon, cartChanged: n, couponsApplied: r, savings: e.savings } } function Te(e) { return xe.apply(this, arguments) } function xe() { return (xe = G(D().m(function e(t) { var n, r, o, i, a, s, c, u; return D().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, P.A.getFeatureFlag("ext_mixin_fallback_enabled"); case 1: return n = e.v, r = !!t.coupons.length, e.n = 2, ee(t.id); case 2: return o = e.v, i = t.hasFindSavingsMixin || o || t.templateId, a = t.metadata.pns_codeTopFunnel || !1, s = !0 === t.metadata.mixinFallback || !1, c = p.A.checkGoldStatus(t.gold).active, u = r && (!i && !a || s), e.a(2, { doMixinFallback: u, hasGold: c, mixinFallbackEnabled: n }) } }, e) }))).apply(this, arguments) } var Ie, Pe, Ae = (Ie = !1, function() { return Ie ? o().resolve() : (Ie = !0, se().then(function(e) { var t = w.A.getCtaType(e); o().all([w.A.isApplying(), v.A.get("stores:notification"), e.applyCodesClick ? me() : "", v.A.get("user:lastSavings:".concat(e.id, ":").concat(t)), v.A.get("store:hide:".concat(e.id)), k.A.getCurrent()]).spread(function() { var n = G(D().m(function n(r, o, i) { var s, c, u, d, p, h, m, y, _, S, w, E, k, x = arguments; return D().w(function(n) { for (;;) switch (n.n) { case 0: if (s = x.length > 3 && void 0 !== x[3] ? x[3] : {}, c = x.length > 4 ? x[4] : void 0, u = x.length > 5 ? x[5] : void 0, e && e.supported) { n.n = 1; break } return n.a(2); case 1: if (!0 !== c) { n.n = 2; break } return n.a(2); case 2: if ("string" != typeof c || c !== window.location.pathname) { n.n = 3; break } return n.a(2); case 3: if (b.A.send("stores:current:update", { store: e }, { ignoreResponse: !0 }), e.onFindSavingsPage && e.couponsEnabled && (ye(e), be(e)), d = -1 !== f.Ay.AMAZON_STORES.indexOf(e.id), !(r || d && e.couponsEnabled && !e.gold.isNNA)) { n.n = 4; break } return n.a(2); case 4: k = e.standDown, n.n = "base" === k ? 5 : "nopopup" === k || "suspend" === k ? 6 : 7; break; case 5: return n.a(3, 7); case 6: return n.a(2); case 7: if (p = o && o[e.id] || {}, !(e.couponsEnabled && p.codes && e.metadata.pns_openThrottleCodes > 0 && a()().diff(a().unix(p.codes), "minutes") < e.metadata.pns_openThrottleCodes)) { n.n = 8; break } n.n = 21; break; case 8: if (!(e.onOfferPage && p.gold && e.metadata.pns_openThrottleGold > 0 && a()().diff(a().unix(p.gold), "minutes") < e.metadata.pns_openThrottleGold)) { n.n = 9; break } n.n = 21; break; case 9: if (!e.onFindSavingsPage) { n.n = 21; break } if (!(i === e.id || e.tagged && e.metadata && e.metadata.pns_codeTopFunnel)) { n.n = 10; break } return n.a(2); case 10: return n.n = 11, _e(e); case 11: if (h = n.v, !0 !== we(e, s, h)) { n.n = 12; break } return n.a(2); case 12: return e.metadata.isGracefulFailure && T.A.open({ pathname: "/graceful-failure", query: { ctaType: t }, state: {}, force: !0, feature: "graceful-failure", surface: "badge" }), m = ke(s, e), y = !!e.coupons.length, _ = function() { var t = G(D().m(function t() { var n, r, o, i, s, c, u, l; return D().w(function(t) { for (;;) switch (t.n) { case 0: if (e.id !== C.P) { t.n = 1; break } return t.a(2, !1); case 1: if (!e.gold || !e.gold.isNNA) { t.n = 2; break } return t.a(2, !1); case 2: return t.n = 3, g.A.getCouponStats(e.id); case 3: if (n = t.v, r = e && null === e.affiliateURL, o = n && n.successRate < .2 && n.failuresCount > 10, i = Math.random() <= .05, e.id === q && (o = !0), !r || !o || i) { t.n = 4; break } return s = a().unix(Math.max.apply(Math, R(e.coupons.map(function(e) { return e.created })))), c = s > a()().subtract(12, "hours"), t.a(2, !c); case 4: if (u = m.cartChanged, l = n && n.successRate > .5, !u || l) { t.n = 5; break } return t.a(2, !0); case 5: return t.a(2, !1) } }, t) })); return function() { return t.apply(this, arguments) } }(), n.n = 13, _(); case 13: if (!n.v) { n.n = 14; break } return O.A.sendEvent("ext000013", { action: "show", sub_src: "findsavings_modal", variant: "fs_suppression_lowcsr" }), n.a(2); case 14: return n.n = 15, Te(e); case 15: if (S = n.v, w = S.doMixinFallback, E = S.hasGold, !S.mixinFallbackEnabled) { n.n = 16; break } if (!w) { n.n = 16; break } return E && !e.gold.activated && he(e, { showMixinFallback: !0 }), n.a(2); case 16: return n.n = 17, v.A.get("".concat(e.id, ":").concat(u.id, ":stoodup")); case 17: if (!n.v) { n.n = 18; break } return n.a(2); case 18: if (!e.gold || l()(e.gold)) { n.n = 20; break } if (!e.gold.activated || y) { n.n = 19; break } return n.a(2); case 19: (!e.gold.activated || e.couponsEnabled && !d) && he(e, m), n.n = 21; break; case 20: he(e, m); case 21: return n.a(2) } }, n) })); return function(e, t, r) { return n.apply(this, arguments) } }()).catch(z, function() {}).catch(function(e) { y.A.error(e) }) })) }); function Ce() { return (Ce = G(D().m(function e() { var t, n, r; return D().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, se(); case 1: return t = e.v, n = t.gold, e.n = 2, x.A.getInfo(); case 2: return r = e.v, e.n = 3, V(t.id, { src: "popup" }); case 3: r && r.isLoggedIn || x.A.openEmailAuth("login", "popup-activated-gold-ui", !0), b.A.send("ui:action", { action: "open", data: { pathname: "/goldactivated", query: { cartPrice: 0, exclusionText: n.description, goldActive: !0, honeyGoldBonus: 0, isFlatFee: n.isFlatFee, max: n.max, maxFlatFee: n.maxFlatFee, min: n.min, minFlatFee: n.minFlatFee }, state: {}, force: !0, feature: "gold-activated", surface: "popup" } }), O.A.sendEvent("ext003002", { cta: { cta_type: "c0_g1", type: "c0_g1" } }), O.A.sendEvent("ext003010", { store: { id: t.id } }); case 4: return e.a(2) } }, e) }))).apply(this, arguments) } function je() { return Re.apply(this, arguments) } function Re() { return (Re = G(D().m(function e() { var t; return D().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, se(); case 1: return t = e.v, e.a(2, b.A.send("stores:action", { action: "saveCurrent", data: { store: t } }, { background: !0 })) } }, e) }))).apply(this, arguments) } function Me() { return De.apply(this, arguments) } function De() { return (De = G(D().m(function e() { var t, n, r; return D().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, k.A.getCurrent(); case 1: return t = e.v, n = t.id, r = w.A.getNumCoupons(), e.a(2, b.A.send("stores:getNumCoupons", { numCoupons: r, tabId: n }, { background: !0 })) } }, e) }))).apply(this, arguments) } function Ne() { return se().then(function(e) { return e && e.metadata && e.supported ? new(o())(function(t) { c()(function() { t([1, 2, 3].map(function(t) { try { var n = e.metadata["pns_siteSelSubId".concat(t)]; if (n) { var r = c()(n).first().text().trim(); return r ? r.toLowerCase() : null } } catch (e) {} return null })) }) }) : null }).catch(z, function() { return null }) } function Le(e, t, n, r) { return Fe.apply(this, arguments) } function Fe() { return (Fe = G(D().m(function e(t, n, r, o) { var i, a; return D().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, k.A.getContentScriptUrl(); case 1: return i = e.v, a = I.A.cleanString(r, i), Q(t).then(function(e) { e.metadata && "true" === e.metadata.pns_affFlush && (y.A.debug("Tag - refreshing local state"), document.cookie.split(";").forEach(function(e) { document.cookie = e.replace(/^ +/, "").replace(/=.*/, "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/") }), localStorage.clear(), sessionStorage.clear()) }), e.a(2, b.A.send("stores:action", { action: "tag", data: { storeId: t, type: n, targetUrl: a, options: o } }, { background: !0 })) } }, e) }))).apply(this, arguments) } function Be(e) { return b.A.send("stores:action", { action: "getSession", data: { storeId: e } }, { background: !0 }) } function Ue(e) { return b.A.send("stores:action", { action: "getStoreTabStandDownStatus", data: { storeId: e } }, { background: !0 }) } function Ge(e, t) { return t && t.attributes.isBlockingCDN } function $e() { return ($e = G(D().m(function e() { var t, n; return D().w(function(e) { for (;;) switch (e.n) { case 0: if (void 0 === Pe) { e.n = 1; break } return e.a(2, Pe); case 1: return e.n = 2, se(); case 2: return t = e.v, e.n = 3, Be(t.id); case 3: return n = e.v, Pe = Ge(0, n), e.a(2, Pe) } }, e) }))).apply(this, arguments) } function He() { return ze.apply(this, arguments) } function ze() { return (ze = G(D().m(function e() { return D().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, o().delay(100); case 1: se().then(function(e) { if (e && e.id) switch (k.A.inPopover() || b.A.send("stores:pageview", e, { currentTab: !0, background: !0, ignoreResponse: !0 }).reflect(), e.standDown) { case "base": case "nopopup": case "suspend": fe(e.id, e.standDown, e.hasStoodUp) } }).catch(z, function() {}).catch(function(e) { return y.A.error(e) }); case 2: return e.a(2) } }, e) }))).apply(this, arguments) } b.A.addListener("pageDetected:FIND_SAVINGS_URL", function() { se().then(function(e) { if (e && !e.onFindSavingsPage && -1 === document.documentElement.innerHTML.toLowerCase().indexOf("is empty")) { var t = []; try { 0 === c()(e.metadata.pns_siteSelCartCodeBox).length && t.push("pns_siteSelCartCodeBox") } catch (e) { t.push("pns_siteSelCartCodeBox") } try { 0 === c()(e.metadata.pns_siteSelCartTotalPrice).length && t.push("pns_siteSelCartTotalPrice") } catch (e) { t.push("pns_siteSelCartTotalPrice") } try { e.metadata.pns_siteSelCartCodeSubmit || t.push("pns_siteSelCartCodeSubmit") } catch (e) { t.push("pns_siteSelCartCodeSubmit") } x.A.getUserId().then(function(n) { return O.A.sendEvent("ext003021", { store: e, url: window.location.href, error_type: "Apply codes not shown", user_id: n, affected_selectors: t.join(",") }) }) } }) }), b.A.addListener("pageDetected:FIND_SAVINGS", function() { Ae(), pe() }), b.A.addListener("pageDetected:SHOPIFY_FIND_SAVINGS", function() { Ae() }), b.A.addListener("pageDetected:GOLD_REWARDS", function() { Ae() }), b.A.addListener("tabs:activated", function() { var e = G(D().m(function e(t, n) { var r; return D().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, Me(); case 1: return e.n = 2, k.A.getCurrent(); case 2: if (r = e.v, !n || n.tabId !== r.id) { e.n = 3; break } return e.n = 3, je(); case 3: return e.a(2) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }()), b.A.addListener("stores:pageview", G(D().m(function e() { return D().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, je(); case 1: return e.n = 2, Me(); case 2: return e.a(2) } }, e) }))), o().try(function() { return se() }).then(function(e) { ! function(e) { e && e.id && e.supported && "suspend" !== e.standDown && (E.A[e.id] || []).forEach(function(t) { try { new t, y.A.debug("Loaded store module ".concat(t.__honeyStoreModuleName)) } catch (n) { y.A.error("Failed to load store module ".concat(t.__honeyStoreModuleName), { store: e, err: n }) } }) }(e), c()(He) }).catch(z, function() {}).catch(function(e) { return y.A.error(e) }), b.A.addListener("stores:action", function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; if ("getSubIds" === (t && t.action)) return Ne(); throw new InvalidParametersError("No stores:action listener for ".concat(t.action)) }); const qe = { activateGoldUI: function() { return Ce.apply(this, arguments) }, activateStoreGold: V, deactivateStoreGold: J, getClaimedOffers: K, getCurrencyExchangeRates: function() { return b.A.send("stores:action", { action: "getCurrencyExchangeRates", data: {} }, { background: !0 }) }, getCurrent: se, getCurrentStoreTabStandDownStatus: function() { return se().then(function(e) { return Ue(e.id) }) }, getFindSavingsPageState: ne, getFixedGoldRateActivation: function(e, t) { return b.A.send("stores:action", { action: "getFixedGoldRateActivation", data: { storeId: e, userId: t } }, { background: !0 }) }, getPrevious: function() { return b.A.send("stores:action", { action: "getPrevious", data: {} }, { background: !0 }) }, getStoreById: Q, getStoreByUrl: X, getSession: Be, getStoreTabStandDownStatus: Ue, getStoreUrlTrace: function(e, t) { return b.A.send("stores:action", { action: "getStoreUrlTrace", data: { storeId: e, sessionId: t } }, { background: !0 }) }, getSubIds: Ne, getTopStores: function() { return b.A.send("stores:action", { action: "getTopStores", data: {} }, { background: !0 }) }, getTrending: function(e) { return b.A.send("stores:action", { action: "getTrending", data: e }, { background: !0 }) }, getTrendingByGMV: function(e) { return b.A.send("stores:action", { action: "getTrendingByGMV", data: { country: e } }, { background: !0 }) }, goToStorePage: function(e) { e && k.A.open({ url: "".concat("https://www.joinhoney.com", "/shop/").concat(e), active: !0 }) }, hasDac: ee, haveCouponsBeenApplied: function(e) { return Ee.apply(this, arguments) }, maybeNotify: Ae, saveCurrent: je, search: function(e, t) { return b.A.send("stores:action", { action: "search", data: { countryCode: t, query: e } }, { background: !0 }) }, setCurrentStoreSessionAttribute: ue, setSessionAttribute: Z, setStoreTabStandDownStatus: function(e, t, n) { return b.A.send("stores:action", { action: "setStoreTabStandDownStatus", data: { storeId: e, standDownStatus: t, ttlSeconds: n } }, { background: !0 }) }, determineMixinFallbackEligibility: Te, snoozeFindSavings: function() { return se().then(function(e) { var t = w.A.getCtaType(e); return v.A.get("user:lastSavings:".concat(e.id, ":").concat(t)).then(function() { return we(e, arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}) }) }) }, shouldShowFindSavingsAgain: _e, updateFindSavingsCooldown: function(e) { k.A.getCurrent().then(function(t) { var n = "user:findSavingsCooldown:".concat(e.id); v.A.get("".concat(e.id, ":").concat(t.id, ":stoodup")).then(function(e) { e && v.A.del(n) }) }) }, setFindSavingsCooldown: function() { se().then(function(e) { var t = "user:findSavingsCooldown:".concat(e.id), n = { timestamp: a()().unix() }; return v.A.set(t, n), !0 }) }, standUpRelevantTabs: fe, submitCoupon: function(e) { return ue("manualCoupon", e.code), b.A.send("stores:action", { action: "submitCoupon", data: e }, { background: !0 }) }, tag: Le, tagCurrentStore: function(e, t, n) { return se().then(function(r) { return Le(r.id, e, t, n) }) }, updateStorePageDependentStatus: ie, waitForCouponInput: ye, waitForCouponInputChecker: be, isBlockingCDN: function() { return $e.apply(this, arguments) }, isBlockingCDNLogic: Ge, sendNumCoupons: Me } }, 64055: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, U7: () => l, dK: () => a }); var r = n(76337), o = n(50769), i = function(e) { return function(t) { var n = t.whereAmI.whereAmIByPageId[e], r = t.whereAmI.bestMatchProductByPageId[e]; if (n && r) return (0, o.VK)(r, n) } }; const a = { selectProductByPageId: i, selectProductByProductId: function(e) { return function(t) { var n = t.whereAmI.bestMatchProductByPageId || {}, r = Object.keys(n).find(function(t) { return n[t].productId === e }); return i(r)(t) } } }; function s(e) { return s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, s(e) } function c(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != s(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != s(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == s(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = function(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? c(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : c(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e }({}, r.o1); const f = r.Ff }, 65129: (e, t, n) => { "use strict"; n.d(t, { A: () => d }); var r = n(9666), o = n(86146), i = n.n(o), a = n(72097), s = n(27102), c = n(22662), u = n(7837), l = (0, c.createUseStyles)({ container: { display: "flex", padding: function(e) { return e.noPadding ? "unset" : "14px 0" }, justifyContent: "center" }, iconContainer: { display: "flex", width: "124px", marginTop: "-2px", marginLeft: "2px", flexWrap: "nowrap", textAlign: "left" }, logo: { width: "112px", overflowX: "hidden", display: "flex" }, logoBtn: { width: "12px", overflowX: "hidden", display: "flex" }, logoImg: { marginLeft: "-112px" }, overflowVisible: { overflow: "visible" } }), f = function(e) { var t = e.noPadding, n = e.tooltipDirection, o = l({ noPadding: t }), i = u.A.getMessage("This_feature_was_developed_by_Honey_Amazon_and_Honey_are_not_affiliated"); return r.createElement(s.Card, { classes: { root: o.overflowVisible } }, r.createElement("div", { className: o.container }, r.createElement("div", { className: o.iconContainer }, r.createElement("div", { className: o.logo }, r.createElement("img", { src: "".concat("https://cdn.honey.io", "/images/powered_by_honey.svg"), alt: "".concat(u.A.getMessage("Powered_by_HONEY").replace(/{HONEY}/g, "Honey")) })), r.createElement(a.ToolTipIcon, { direction: n, dotted: !1, copy: i, customAnchorElement: r.createElement("div", { className: o.logoBtn }, r.createElement("img", { className: o.logoImg, src: "".concat("https://cdn.honey.io", "/images/powered_by_honey.svg"), alt: u.A.getMessage("Info_Icon") })) })))) }; f.propTypes = { noPadding: i().bool, tooltipDirection: i().string }, f.defaultProps = { noPadding: !1, tooltipDirection: "bottom" }; const d = f }, 65830: (e, t, n) => { "use strict"; n.d(t, { A: () => G, G: () => M }); var r = n(9666), o = n(99459), i = n(6120), a = n(9921), s = n(61565), c = n(88585), u = n(25094), l = n(24333), f = n(323), d = n(63123), p = n(98031), h = n(13917), m = n(43869), g = n(91379), y = n(20946), v = n(80219); function b(e) { return b = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, b(e) } function _(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function S(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? _(Object(n), !0).forEach(function(t) { w(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : _(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function w(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != b(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != b(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == b(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } function O(e) { return function(e) { if (Array.isArray(e)) return I(e) }(e) || function(e) { if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e) }(e) || x(e) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function E() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return k(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (k(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, k(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, k(f, "constructor", u), k(u, "constructor", c), c.displayName = "GeneratorFunction", k(u, o, "GeneratorFunction"), k(f), k(f, o, "Generator"), k(f, r, function() { return this }), k(f, "toString", function() { return "[object Generator]" }), (E = function() { return { w: i, m: d } })() } function k(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } k = function(e, t, n, r) { function i(t, n) { k(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, k(e, t, n, r) } function T(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || x(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function x(e, t) { if (e) { if ("string" == typeof e) return I(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? I(e, t) : void 0 } } function I(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } function P(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function A(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { P(i, r, o, a, s, "next", e) } function s(e) { P(i, r, o, a, s, "throw", e) } a(void 0) }) } } function C(e, t) { return j.apply(this, arguments) } function j() { return (j = A(E().m(function e(t, n) { var r, o; return E().w(function(e) { for (;;) switch (e.n) { case 0: if (void 0 !== window.MutationObserver) { e.n = 1; break } return e.a(2); case 1: return r = new MutationObserver(A(E().m(function e() { var r, o, i, a; return E().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, Promise.all([(0, m.BM)(n), c.A.getCurrent()]); case 1: return r = e.v, o = T(r, 2), i = o[0], a = o[1], e.n = 2, v.t.request(v.N5.checkoutCartPriceChange, { cartPrice: i, tabId: a.id, storeId: t.id, storeName: t.name }); case 2: return e.a(2) } }, e) }))), e.n = 2, l.A.waitForElement(n, { timeout: 3e3 }); case 2: try { o = document.querySelector(n), r.observe(o, { characterData: !0, attributes: !1, childList: !0, subtree: !0 }) } catch (e) { a.A.error("Error attaching mutation observer for store", { storeId: t.id, selector: n }) } case 3: return e.a(2) } }, e) }))).apply(this, arguments) } function R(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "body", n = document.querySelector("#".concat(e)); n || ((n = document.createElement("div")).id = e, document.querySelector(t).appendChild(n)); return n } function M(e, t) { return D.apply(this, arguments) } function D() { return (D = A(E().m(function e(t, n) { var r; return E().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, (0, m.oO)(t); case 1: return r = e.v, n && "SUPPORTED" !== r.status && (0, y.r)({ eligibilityReason: "store-not-enabled", iframeLoaded: !1, isEligible: !1 }), e.a(2, r) } }, e) }))).apply(this, arguments) } function N() { return L.apply(this, arguments) } function L() { return L = A(E().m(function e() { var t, n, l, f, b, _, w, k, x, I, P, j, D, N, L, F; return E().w(function(e) { for (;;) switch (e.p = e.n) { case 0: return e.n = 1, Promise.all([u.A.getInfo(), s.A.getCurrent(), c.A.getCurrent(), (0, m.te)(h.ld.devToolsEnabled)]); case 1: if (t = e.v, n = T(t, 4), l = n[0], f = n[1], b = n[2], _ = n[3], f.id) { e.n = 2; break } return e.a(2); case 2: return e.p = 2, N = Boolean, e.n = 3, (0, m.pD)(f.id); case 3: if (L = e.v, w = N(L), k = null, x = null, I = [], w) { e.n = 8; break } return e.n = 4, M(f.id, _); case 4: return k = e.v, I.push.apply(I, O(k.checkoutTypes)), e.n = 5, d.A.startDiscovery(I, b.id, k.status); case 5: if (x = e.v, "SUPPORTED" === k.status) { e.n = 6; break } return (0, y.r)({ discovered: k.status }), e.a(2); case 6: return e.n = 7, (0, m.OX)(f); case 7: _ && (0, y.r)({ discovered: x.origin }); case 8: return x && x.origin === h.YO.VCC && C(f, f.metadata.pns_siteSelCartTotalPrice), P = function() { var e = A(E().m(function e(t) { var n, r, o; return E().w(function(e) { for (;;) switch (e.n) { case 0: if (!_) { e.n = 2; break } return n = t ? t.eligibilityReason : "none", r = !!t && t.isEligible, e.n = 1, v.fR.request(v.r8.merchantSPBGuestEnabled, { merchantId: k.encryptedRcvrId }); case 1: o = e.v, (0, y.r)(S(S({}, t), {}, { eligibilityReason: n, isEligible: r, isMerchantGuestEnabled: o, iframeLoaded: !0 })); case 2: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }(), j = R("honeyCheckout"), e.n = 9, (0, m.te)(h.ld.iFrameOriginUrl); case 9: if (D = e.v, !i.A) { e.n = 11; break } return e.n = 10, i.A.dispatch(p.h$.reset()); case 10: i.A.dispatch(p.h$.setDiscoveryData(S({}, x))); case 11: o.render(r.createElement(g.A, { SPBCheckoutCoordinator: undefined, onIFrameLoadedProp: P, iframeSrc: D, store: f, storeCheckoutConfig: k, user: l, discoveryData: x }), j), e.n = 13; break; case 12: e.p = 12, F = e.v, a.A.error("Error loading Honey Checkout iframe: ".concat(F)); case 13: return e.a(2) } }, e, null, [ [2, 12] ]) })), L.apply(this, arguments) } function F(e) { return !(!e.id || ["270883781864074943", "229099436401559906"].includes(e.id)) } function B() { return U.apply(this, arguments) } function U() { return (U = A(E().m(function e() { var t, n, i, a, c, u; return E().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, Promise.all([s.A.getCurrent(), (0, m.e5)(), f.A.getFeatureFlag("honey_checkout_spb_refactor_enabled")]); case 1: if (t = e.v, n = T(t, 3), i = n[0], a = n[1], c = n[2], a && F(i) && a[h.ld.devToolsEnabled]) { e.n = 2; break } return e.a(2); case 2: u = R("honeyCheckoutDevTools"), o.render(r.createElement(y.A, { store: i, checkoutSettings: a, isRefactorEnabled: c }), u); case 3: return e.a(2) } }, e) }))).apply(this, arguments) } const G = { start: function() { setTimeout(N, 0), setTimeout(B, 0) } } }, 67107: (e, t, n) => { "use strict"; var r = {}; n.r(r), n.d(r, { FunctionToString: () => ru, InboundFilters: () => cu, LinkedErrors: () => yu }); var o = {}; n.r(o), n.d(o, { Breadcrumbs: () => Bd, Dedupe: () => $d, GlobalHandlers: () => Jd, HttpContext: () => tp, LinkedErrors: () => op, TryCatch: () => cp }); var i = {}; n.r(i), n.d(i, { Breadcrumbs: () => Bd, BrowserClient: () => Bf, BrowserProfilingIntegration: () => lS, BrowserTracing: () => b_, Dedupe: () => $d, Feedback: () => lb, FunctionToString: () => ru, GlobalHandlers: () => Jd, HttpContext: () => tp, Hub: () => Zs, InboundFilters: () => cu, Integrations: () => dS, LinkedErrors: () => op, ModuleMetadata: () => Bu, Replay: () => rv, ReplayCanvas: () => Nv, SDK_VERSION: () => Ks, SEMANTIC_ATTRIBUTE_SENTRY_OP: () => $u, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN: () => Hu, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE: () => Gu, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE: () => Uu, Scope: () => Ys, TryCatch: () => cp, WINDOW: () => wf, addBreadcrumb: () => Tc, addEventProcessor: () => ol, addGlobalEventProcessor: () => vs, addIntegration: () => Qc, addTracingExtensions: () => Ql, breadcrumbsIntegration: () => Fd, browserApiErrorsIntegration: () => sp, browserProfilingIntegration: () => uS, browserTracingIntegration: () => O_, captureConsoleIntegration: () => db, captureEvent: () => Ec, captureException: () => wc, captureMessage: () => Oc, captureSession: () => Wc, captureUserFeedback: () => _p, chromeStackLineParser: () => Xf, close: () => Fc, configureScope: () => kc, contextLinesIntegration: () => mb, continueTrace: () => xl, createTransport: () => of, createUserFeedbackEnvelope: () => Ff, debugIntegration: () => yb, dedupeIntegration: () => _b, defaultIntegrations: () => pp, defaultRequestInstrumentationOptions: () => p_, defaultStackLineParsers: () => cd, defaultStackParser: () => ud, endSession: () => zc, eventFromException: () => Rf, eventFromMessage: () => Mf, exceptionFromError: () => If, extraErrorDataIntegration: () => Tb, extractTraceparentData: () => yl, feedbackIntegration: () => ub, flush: () => Lc, forceLoad: () => yp, functionToStringIntegration: () => nu, geckoStackLineParser: () => td, getActiveSpan: () => Tl, getActiveTransaction: () => gl, getClient: () => Uc, getCurrentHub: () => nc, getCurrentScope: () => $c, getDefaultIntegrations: () => hp, getHubFromCarrier: () => sc, getReplay: () => iv, getSpanStatusFromHttpCode: () => Nl, globalHandlersIntegration: () => Yd, httpClientIntegration: () => Ib, httpContextIntegration: () => ep, inboundFiltersIntegration: () => su, init: () => mp, instrumentOutgoingRequests: () => h_, isInitialized: () => Gc, lastEventId: () => Bc, linkedErrorsIntegration: () => rp, makeBrowserOfflineTransport: () => L_, makeFetchTransport: () => qf, makeMain: () => tc, makeMultiplexedTransport: () => cf, makeXHRTransport: () => Vf, metrics: () => vf, moduleMetadataIntegration: () => Fu, onLoad: () => vp, onProfilingStartRouteTransaction: () => aS, opera10StackLineParser: () => id, opera11StackLineParser: () => sd, parameterize: () => bf, replayCanvasIntegration: () => Dv, replayIntegration: () => nv, reportingObserverIntegration: () => Lb, rewriteFramesIntegration: () => zb, sendFeedback: () => Vv, sessionTimingIntegration: () => Wb, setContext: () => xc, setCurrentClient: () => _f, setExtra: () => Pc, setExtras: () => Ic, setHttpStatus: () => Fl, setMeasurement: () => Sf, setTag: () => Cc, setTags: () => Ac, setUser: () => jc, showReportDialog: () => gp, spanStatusfromHttpCode: () => Ll, startBrowserTracingNavigationSpan: () => k_, startBrowserTracingPageLoadSpan: () => E_, startInactiveSpan: () => kl, startSession: () => Hc, startSpan: () => Ol, startSpanManual: () => El, startTransaction: () => Nc, trace: () => wl, winjsStackLineParser: () => rd, withActiveSpan: () => Dc, withIsolationScope: () => Mc, withScope: () => Rc, wrap: () => bp }); n(10499), n(78098); var a, s = n(262), c = n.n(s), u = n(69698), l = n.n(u), f = n(24333), d = n(76364), p = n(68031), h = n(77002), m = n(69145), g = n(18323), y = n(65830); function v() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return b(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (b(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, b(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, b(f, "constructor", u), b(u, "constructor", c), c.displayName = "GeneratorFunction", b(u, o, "GeneratorFunction"), b(f), b(f, o, "Generator"), b(f, r, function() { return this }), b(f, "toString", function() { return "[object Generator]" }), (v = function() { return { w: i, m: d } })() } function b(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } b = function(e, t, n, r) { function i(t, n) { b(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, b(e, t, n, r) } function _(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) }(a = v().m(function e() { return v().w(function(e) { for (;;) switch (e.n) { case 0: y.A.start(); case 1: return e.a(2) } }, e) }), function() { var e = this, t = arguments; return new Promise(function(n, r) { var o = a.apply(e, t); function i(e) { _(o, n, r, i, s, "next", e) } function s(e) { _(o, n, r, i, s, "throw", e) } i(void 0) }) })(); var S = n(17144), w = n(82), O = n(31755), E = n(61117), k = n(67867), T = n(7837), x = n(38907), I = n(9921), P = n(32969), A = n(24166); P.A.addListener("mseupsell:action", function(e, t) { var n = t && t.flow ? t.flow : "default"; switch (t && t.action) { case "showMSEPrompt": A.A.open({ pathname: "/msePrompt", query: { flow: n }, force: !0, feature: "qr-code-prompt", surface: "popup" }); break; case "showQrCode": A.A.open({ pathname: "/qrCode", query: { flow: n }, force: !0, feature: "qr-code-scan", surface: "popup" }); break; default: throw new InvalidParametersError("No mseupsell:action listener for ".concat(t.action)) } }); var C = n(2733), j = n(13038), R = n(9666), M = n(99459), D = n(11389), N = n.n(D), L = n(7720), F = n(25094), B = n(61565), U = n(88585), G = n(86531), $ = n.n(G), H = n(32372), z = n(48158); function q() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return W(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (W(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, W(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, W(f, "constructor", u), W(u, "constructor", c), c.displayName = "GeneratorFunction", W(u, o, "GeneratorFunction"), W(f), W(f, o, "Generator"), W(f, r, function() { return this }), W(f, "toString", function() { return "[object Generator]" }), (q = function() { return { w: i, m: d } })() } function W(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } W = function(e, t, n, r) { function i(t, n) { W(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, W(e, t, n, r) } function V(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } var Y = function(e, t) { return e.GOLD_REWARDS && (!t.gold || t.gold && t.gold.activated) }, J = function(e, t) { return e && (e.FIND_SAVINGS || e.GOLD_REWARDS) && $().unix(t.applyCodesComplete).isAfter($()().subtract(2, "hours")) }, K = function(e) { return e && !e.FIND_SAVINGS }, Q = function(e) { return !e.standDown }; function X() { return X = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { V(i, r, o, a, s, "next", e) } function s(e) { V(i, r, o, a, s, "throw", e) } a(void 0) }) } }(q().m(function e(t, n, r) { var o, i, a, s, c; return q().w(function(e) { for (;;) switch (e.n) { case 0: if (c = n) { e.n = 2; break } return e.n = 1, B.A.getCurrent(); case 1: c = e.v; case 2: if (o = c, i = z.A.getCtaType(o), !(i === H.ct.NONE)) { e.n = 3; break } return e.a(2, !0); case 3: return a = [Y, J, K], r && (a = r), e.n = 4, Promise.all(a.map(function(e) { return e(t, o) })); case 4: return s = e.v, e.a(2, s.some(function(e) { return e }) && Q(o)) } }, e) })), X.apply(this, arguments) } const Z = { isFsOrGoldAndMoreThanTwoHrs: J, isNotOnFs: K, isOnGoldRewardsOrActivated: Y, isPaymentsViewPrioritized: function(e, t, n) { return X.apply(this, arguments) } }; var ee = n(28498), te = n(46299), ne = n(323), re = n(62397); function oe(e) { return oe = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, oe(e) } function ie(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function ae(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? ie(Object(n), !0).forEach(function(t) { se(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ie(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function se(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != oe(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != oe(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == oe(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var ce = { extensionRemoveIFrame: "extensionRemoveIFrame", extensionSendSDataEvent: "extensionSendSDataEvent", extensionUpdateStyles: "extensionUpdateStyles", extensionExperimentsGetVariant: "extensionExperimentsGetVariant", extensionExperimentsTrackImpression: "extensionExperimentsTrackImpression", extensionGetUserABGroup: "extensionGetUserABGroup", extensionGetI18nCountryCode: "extensionGetI18nCountryCode", extensionGetI18nMessage: "extensionGetI18nMessage", extensionSetGiftCardsEnabledForUser: "extensionSetGiftCardsEnabledForUser", extensionOpenLoginPrompt: "extensionOpenLoginPrompt", extensionHideContentUI: "extensionHideContentUI", extensionGetCartPrice: "extensionGetCartPrice", extensionSetIFrameAttribute: "extensionSetIFrameAttribute", extensionRemoveIFrameAttribute: "extensionRemoveIFrameAttribute", extensionSetHoneyStorageItem: "extensionSetHoneyStorageItem", extensionGetHoneyStorageItem: "extensionGetHoneyStorageItem", extensionRemoveHoneyStorageItem: "extensionRemoveHoneyStorageItem", extensionSetWindowLocalStorageItem: "extensionSetWindowLocalStorageItem", extensionGetWindowLocalStorageItem: "extensionGetWindowLocalStorageItem", extensionRemoveWindowLocalStorageItem: "extensionRemoveWindowLocalStorageItem", extensionGQLQuery: "extensionGQLQuery", extensionGQLMutation: "extensionGQLMutation", extensionOpenGiftCardDealModal: "extensionOpenGiftCardDealModal", giftCardsInit: "giftCardsInit", giftCardsReady: "giftCardsReady", giftCardsUserUpdate: "giftCardsUserUpdate", giftCardsCartPriceChange: "giftCardsCartPriceChange", giftCardsUserLoggedIn: "giftCardsUserLoggedIn", giftCardsFindSavingsClosed: "giftCardsFindSavingsClosed", extensionSetIsMinimized: "extensionSetIsMinimized", giftCardsSetIsMinimized: "giftCardsSetIsMinimized" }, ue = Object.keys(ce).reduce(function(e, t) { return ae(ae({}, e), {}, se({}, t, t)) }, {}), le = new Proxy(ue, { get: function(e, t, n) { var r = Reflect.get(e, t, n); if (void 0 === r) throw new Error("checkout message name not found: ".concat(t)); return r } }); const fe = new re.PostMessenger({ types: ce, enableLogging: !1, clientName: "extension", useEncryption: !1 }); var de = n(86146), pe = n.n(de), he = n(46946), me = n(65855), ge = n(22662), ye = n(72097), ve = n(48611); function be(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return _e(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? _e(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function _e(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } var Se = { root: { display: "flex", position: "fixed", right: "0px", top: "80px", zIndex: 2147483647 }, container: { backgroundColor: ye.Colors.white, width: "280px", right: function(e) { return e.isExpanded ? "0px" : "-202px" }, transition: "all 400ms ease-in-out", height: "56px", display: "flex", flexDirection: "row", alignItems: "center", justifyContent: "flex-start", borderRadius: "5px 0px 0px 5px", position: "relative", boxShadow: "0px 2px 35px rgba(0, 0, 0, 0.25)" }, icon: { cursor: "pointer", width: "18px", height: "18px", marginLeft: "9px" }, dotsContainer: { alignItems: "center", cursor: "move", display: "flex", height: "100%", paddingRight: "9px" }, dots: { display: "flex", flexDirection: "column", height: "17px", width: "10px", justifyContent: "space-between", marginLeft: "16px" }, dotRow: { width: "100%", display: "flex", justifyContent: "space-between" }, dot: { height: "3px", width: "3px", display: "inline-block", borderRadius: "50%", backgroundColor: ye.Colors.grey600 }, content: { cursor: "pointer", display: "flex", flexDirection: "row", alignItems: "center", justifyContent: "flex-start", width: "100%" }, savingsText: { marginLeft: "18px" }, giftCardInfo: { fontSize: "12px" }, title: { color: ye.Colors.grey900, fontSize: "12px", fontWeight: "600" }, savings: { color: ye.Colors.green500, fontWeight: "700" }, goldAward: { color: ye.Colors.gold900, fontWeight: "700" }, seeSavings: { color: ye.Colors.grey800, composes: "link1" } }, we = (0, ge.createUseStyles)(Se), Oe = function(e) { var t = e.handleUnMinimize, n = e.savings, r = e.goldAward, o = e.autoPopType, i = be((0, R.useState)(!1), 2), a = i[0], s = i[1], c = we({ isExpanded: a }), u = (0, R.createRef)(), l = function(e) { return function() { s(e) } }, f = function(e) { var t = e.changedTouches && e.changedTouches[0].clientY || e.clientY; (t < 0 || t > window.innerHeight - 56) && (t = t < 0 ? 0 : window.innerHeight - 56), u.current.style.top = "".concat(t, "px") }; function d() { window.removeEventListener("mousemove", f), window.removeEventListener("mouseup", d) } var p = function() { return n && !r }, h = Number(r).toLocaleString(), m = "$".concat(r / 100), g = function() { return !n && r ? T.A.getMessageAndReplace("Get_GOLDINCURRENCY_GOLDPOINTS", { GOLDINCURRENCY: R.createElement("span", { className: c.goldAward }, m), GOLDPOINTS: R.createElement("span", null, h) }) : p() ? T.A.getMessageAndReplace("Save_SAVINGS_with_a_gift_card", { SAVINGS: R.createElement("span", { className: c.savings }, (0, ve.nT)(n)) }) : T.A.getMessageAndReplace("Save_SAVINGS_and_get_Gold", { SAVINGS: R.createElement("span", { className: c.savings }, (0, ve.nT)(n)) }) }; return R.createElement("div", { ref: u, className: c.root }, R.createElement("div", { className: c.container }, R.createElement("div", { className: c.dotsContainer, onMouseDown: function() { window.addEventListener("mousemove", f), window.addEventListener("mouseup", d) }, onMouseUp: d, onTouchMove: f }, R.createElement("div", { className: c.dots }, R.createElement("div", { className: c.dotRow }, R.createElement("div", { className: c.dot }), R.createElement("div", { className: c.dot })), R.createElement("div", { className: c.dotRow }, R.createElement("div", { className: c.dot }), R.createElement("div", { className: c.dot })), R.createElement("div", { className: c.dotRow }, R.createElement("div", { className: c.dot }), R.createElement("div", { className: c.dot })))), R.createElement("div", { className: c.content, onClick: t, onMouseEnter: l(!0), onMouseLeave: l(!1) }, R.createElement("img", { className: c.icon, src: "".concat("https://cdn.honey.io", "/images/finance/honey-icon-orange.svg"), alt: "Open Honey" }), R.createElement("div", { className: c.savingsText }, "HOOK" === o ? R.createElement(R.Fragment, null, R.createElement("div", { className: c.title }, g()), R.createElement("div", { className: c.seeSavings }, p() ? T.A.getMessage("Click_to_see_savings") : T.A.getMessage("Click_to_see_Gift_Card_Deal"))) : R.createElement("div", { className: c.giftCardInfo }, T.A.getMessage("Click_for_gift_card_info")))))) }; Oe.propTypes = { handleUnMinimize: pe().func.isRequired, savings: pe().number.isRequired, goldAward: pe().number.isRequired, autoPopType: pe().string.isRequired }; const Ee = Oe; function ke(e) { return ke = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, ke(e) } var Te = ["eventName"]; function xe(e) { return function(e) { if (Array.isArray(e)) return Ne(e) }(e) || function(e) { if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e) }(e) || De(e) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function Ie(e, t) { if (null == e) return {}; var n, r, o = function(e, t) { if (null == e) return {}; var n = {}; for (var r in e) if ({}.hasOwnProperty.call(e, r)) { if (-1 !== t.indexOf(r)) continue; n[r] = e[r] } return n }(e, t); if (Object.getOwnPropertySymbols) { var i = Object.getOwnPropertySymbols(e); for (r = 0; r < i.length; r++) n = i[r], -1 === t.indexOf(n) && {}.propertyIsEnumerable.call(e, n) && (o[n] = e[n]) } return o } function Pe(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function Ae(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? Pe(Object(n), !0).forEach(function(t) { Ce(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Pe(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function Ce(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != ke(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != ke(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == ke(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } function je() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Re(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Re(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Re(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Re(f, "constructor", u), Re(u, "constructor", c), c.displayName = "GeneratorFunction", Re(u, o, "GeneratorFunction"), Re(f), Re(f, o, "Generator"), Re(f, r, function() { return this }), Re(f, "toString", function() { return "[object Generator]" }), (je = function() { return { w: i, m: d } })() } function Re(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Re = function(e, t, n, r) { function i(t, n) { Re(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Re(e, t, n, r) } function Me(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || De(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function De(e, t) { if (e) { if ("string" == typeof e) return Ne(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ne(e, t) : void 0 } } function Ne(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } function Le(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function Fe(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { Le(i, r, o, a, s, "next", e) } function s(e) { Le(i, r, o, a, s, "throw", e) } a(void 0) }) } } var Be, Ue, Ge, $e = "https://cdn.joinhoney.com/gift-cards/index.html"; function He(e) { for (var t = new ArrayBuffer(2 * e.length), n = new Uint16Array(t), r = 0, o = e.length; r < o; r += 1) n[r] = e.charCodeAt(r); return t } function ze() { return qe.apply(this, arguments) } function qe() { return (qe = Fe(je().m(function e() { return je().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, crypto.subtle.generateKey({ name: "AES-CBC", length: 256 }, !0, ["encrypt", "decrypt"]); case 1: Be = e.v, Ue = crypto.getRandomValues(new Uint8Array(16)), Ge = { name: "AES-CBC", iv: Ue }; case 2: return e.a(2) } }, e) }))).apply(this, arguments) } function We(e) { return Ve.apply(this, arguments) } function Ve() { return (Ve = Fe(je().m(function e(t) { var n, r, o, i; return je().w(function(e) { for (;;) switch (e.n) { case 0: return n = He(t), e.n = 1, crypto.subtle.decrypt(Ge, Be, n); case 1: return r = e.v, o = new TextDecoder, i = o.decode(r), e.a(2, i) } }, e) }))).apply(this, arguments) } function Ye(e) { var t = e.data, n = (0, R.useRef)(!1), r = (0, R.useRef)(), o = (0, R.useRef)(function() {}), i = (0, R.useRef)(document.querySelector("body")), a = Me((0, R.useState)(null), 2), s = a[0], c = a[1], u = Me((0, R.useState)(!1), 2), l = u[0], f = u[1], d = Me((0, R.useState)(null), 2), p = d[0], h = d[1], m = Me((0, R.useState)(null), 2), g = m[0], y = m[1], v = Me((0, R.useState)(null), 2), b = v[0], _ = v[1]; function S() { o.current(), fe.stopListening(), r.current.remove() } function w(e) { var t = e.visible, n = e.lockScrolling, o = e.bodyStyle, a = void 0 === o ? {} : o, s = e.iframeStyle, c = void 0 === s ? {} : s; return Object.assign(i.current.style, Ae({ overflow: n ? "hidden" : "auto" }, a)), Object.assign(r.current.style, Ae({ visibility: t ? "visible" : "hidden" }, c)), !0 } function O() { return O = Fe(je().m(function e() { var i, a, s; return je().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, ze(); case 1: return fe.setTarget(r.current.contentWindow, $e), fe.beginListening(function(e) { return $e.match(new RegExp("^(".concat(e, ")"))) }), o.current = fe.bindResponders((Ce(Ce(Ce(Ce(Ce(Ce(Ce(Ce(Ce(Ce(i = {}, le.giftCardsReady, function() { P.A.send("gift-cards-app:ready", {}) }), le.extensionSendSDataEvent, function() { var e = Fe(je().m(function e(t) { var n, r; return je().w(function(e) { for (;;) switch (e.n) { case 0: return n = t.eventName, r = Ie(t, Te), e.n = 1, he.A.sendEvent(n, r); case 1: return e.a(2, !0) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), le.extensionRemoveIFrame, S), le.extensionUpdateStyles, w), le.extensionExperimentsGetVariant, function(e) { return E.A.getVariant(e.variantName) }), le.extensionGetI18nMessage, function(e) { return T.A.getMessage(e.messageName) }), le.extensionSetIFrameAttribute, function(e) { return r.current.setAttribute(e.attributeName, e.value), !0 }), le.extensionRemoveIFrameAttribute, function(e) { return r.current.removeAttribute(e.attributeName), !0 }), le.extensionSetGiftCardsEnabledForUser, function(e) { return F.A.updateSetting("honeyWallet", e.enabled ? 1 : 0) }), le.extensionOpenLoginPrompt, function() { return A.A.open({ pathname: "/gift-cards-auth", query: {}, state: {}, force: !0, feature: "gift-cards-auth", surface: "popup" }) }), Ce(Ce(Ce(Ce(Ce(Ce(Ce(Ce(Ce(Ce(i, le.extensionHideContentUI, function() { return A.A.hide() }), le.extensionGetCartPrice, Fe(je().m(function e() { var t, n; return je().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, B.A.getCurrent(); case 1: return t = e.v, e.n = 2, it(t); case 2: return n = e.v, e.a(2, n) } }, e) }))), le.extensionSetHoneyStorageItem, function() { var e = Fe(je().m(function e(t) { var n, r; return je().w(function(e) { for (;;) switch (e.n) { case 0: return n = t.key, r = t.value, e.n = 1, me.A.local.set(n, r); case 1: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), le.extensionGetHoneyStorageItem, function() { var e = Fe(je().m(function e(t) { var n, r; return je().w(function(e) { for (;;) switch (e.n) { case 0: return n = t.key, e.n = 1, me.A.local.get(n).catch(function() { return null }); case 1: return r = e.v, e.a(2, r) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), le.extensionRemoveHoneyStorageItem, function() { var e = Fe(je().m(function e(t) { var n, r; return je().w(function(e) { for (;;) switch (e.n) { case 0: return n = t.key, e.n = 1, me.A.local.del(n).catch(function() { return null }); case 1: return r = e.v, e.a(2, r) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), le.extensionSetWindowLocalStorageItem, function() { var e = Fe(je().m(function e(t) { var n, r; return je().w(function(e) { for (;;) switch (e.n) { case 0: return n = t.key, r = t.value, e.n = 1, P.A.send("honey-pay-now:action:local-storage", { action: te.f_.SET_LOCAL_STORAGE_ITEM, data: { key: n, value: r } }, { background: !0 }); case 1: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), le.extensionGetWindowLocalStorageItem, function() { var e = Fe(je().m(function e(t) { var n, r; return je().w(function(e) { for (;;) switch (e.n) { case 0: return n = t.key, e.n = 1, P.A.send("honey-pay-now:action:local-storage", { action: te.f_.GET_LOCAL_STORAGE_ITEM, data: { key: n } }, { background: !0 }); case 1: return r = e.v, e.a(2, r) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), le.extensionRemoveWindowLocalStorageItem, function() { var e = Fe(je().m(function e(t) { var n, r; return je().w(function(e) { for (;;) switch (e.n) { case 0: return n = t.key, e.n = 1, P.A.send("honey-pay-now:action:local-storage", { action: te.f_.REMOVE_LOCAL_STORAGE_ITEM, data: { key: n } }, { background: !0 }); case 1: return r = e.v, e.a(2, r) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), le.extensionGQLQuery, function() { var e = Fe(je().m(function e(t) { var n, r, o; return je().w(function(e) { for (;;) switch (e.n) { case 0: if (n = t.requestData, !t.encrypted) { e.n = 2; break } return e.n = 1, We(t.requestData); case 1: r = e.v, n = JSON.parse(r); case 2: return e.n = 3, P.A.send("honey-pay-now:action:gql-query", { action: te.f_.GQL_QUERY, data: n }, { background: !0 }); case 3: return o = e.v, e.a(2, o) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), le.extensionGQLMutation, function() { var e = Fe(je().m(function e(t) { var n, r, o; return je().w(function(e) { for (;;) switch (e.n) { case 0: if (n = t.requestData, !t.encrypted) { e.n = 2; break } return e.n = 1, We(t.requestData); case 1: r = e.v, n = JSON.parse(r); case 2: return e.n = 3, P.A.send("honey-pay-now:action:gql-query", { action: te.f_.GQL_MUTATION, data: n }, { background: !0 }); case 3: return o = e.v, e.a(2, o) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), Ce(Ce(Ce(Ce(i, le.extensionGetUserABGroup, Fe(je().m(function e() { var t; return je().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, F.A.getUserABGroup("auth"); case 1: return t = e.v, e.a(2, t) } }, e) }))), le.extensionGetI18nCountryCode, Fe(je().m(function e() { var t; return je().w(function(e) { for (;;) if (0 === e.n) return t = T.A.getCountryCode(), e.a(2, t) }, e) }))), le.extensionSetIsMinimized, function() { var e = Fe(je().m(function e(t) { var n, r, o, i; return je().w(function(e) { for (;;) switch (e.n) { case 0: n = t.isMinimized, r = t.savings, o = t.goldAward, i = t.autoPopType, _(i), r && h(r), o && y(o), f(n); case 1: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), le.extensionOpenGiftCardDealModal, Fe(je().m(function e() { var t; return je().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, B.A.getCurrent(); case 1: t = e.v, B.A.tag(t.id, "extension_links", null, { forceHidden: !0, src: "GiftCardDealOpenModal" }); case 2: return e.a(2) } }, e) }))))), e.n = 2, crypto.subtle.exportKey("jwk", Be); case 2: return a = e.v, e.n = 3, fe.request(le.giftCardsInit, Ae(Ae({}, t), {}, { jsonRequestKey: a, requestIV: xe(Ue), parentOrigin: window.location.origin })); case 3: s = e.v, n.current = s; case 4: return e.a(2) } }, e) })), O.apply(this, arguments) }(0, R.useEffect)(function() { Fe(je().m(function e() { var t; return je().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, ne.A.getFeatureFlag("gift_cards_use_remote_iframe"); case 1: t = e.v, c(t); case 2: return e.a(2) } }, e) }))() }, []), (0, R.useEffect)(function() { return function() { return S() } }, []), (0, R.useEffect)(function() { function e(e) { return t.apply(this, arguments) } function t() { return t = Fe(je().m(function e(t) { var n, r, o = arguments; return je().w(function(e) { for (;;) switch (e.n) { case 0: r = (n = o.length > 1 && void 0 !== o[1] ? o[1] : {}) && n.action, e.n = r === te.f_.SET_PAY_NOW_MODAL_VISIBILITY ? 1 : r === te.f_.REMOVE_PAY_NOW_IFRAME ? 2 : 3; break; case 1: return w({ visible: n.data.isVisible, lockScrolling: n.data.isVisible }), e.a(3, 4); case 2: return S(), e.a(3, 4); case 3: return e.a(3, 4); case 4: return e.a(2) } }, e) })), t.apply(this, arguments) } function n(e, t) { var n = t.user; fe.request(le.giftCardsUserUpdate, n) } return P.A.addListener("honey-pay-now:action:ui", e), P.A.addListener("user:current:update", n), function() { P.A.removeListener("honey-pay-now:action:ui", e), P.A.removeListener("user:current:update", n) } }, []); return null === s ? null : R.createElement(R.Fragment, null, l && R.createElement(Ee, { autoPopType: b, handleUnMinimize: function() { fe.request(le.giftCardsSetIsMinimized, !1), f(!1, b) }, goldAward: g, savings: p }), R.createElement("iframe", { ref: r, id: "giftcardsIFrame", title: "Honey Pay Now", src: $e, className: null, style: { visibility: "hidden" }, onLoad: function() { return O.apply(this, arguments) }, scrolling: "no" })) } Ye.propTypes = { data: pe().object }, Ye.defaultProps = { data: {} }; const Je = Ye; function Ke(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return Qe(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Qe(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function Qe(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } function Xe() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Ze(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Ze(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Ze(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Ze(f, "constructor", u), Ze(u, "constructor", c), c.displayName = "GeneratorFunction", Ze(u, o, "GeneratorFunction"), Ze(f), Ze(f, o, "Generator"), Ze(f, r, function() { return this }), Ze(f, "toString", function() { return "[object Generator]" }), (Xe = function() { return { w: i, m: d } })() } function Ze(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Ze = function(e, t, n, r) { function i(t, n) { Ze(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Ze(e, t, n, r) } function et(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function tt(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { et(i, r, o, a, s, "next", e) } function s(e) { et(i, r, o, a, s, "throw", e) } a(void 0) }) } } var nt = /[\d+][,.\d+]+/; function rt(e) { var t = e && e.match(nt); if (t) return t[0] } function ot() { return ot = tt(Xe().m(function e(t) { var n, r, o, i = arguments; return Xe().w(function(e) { for (;;) switch (e.n) { case 0: return n = i.length > 1 && void 0 !== i[1] ? i[1] : 3e3, e.n = 1, f.A.waitForElement(t, { timeout: n }); case 1: return r = e.v, o = rt(r.text()), e.a(2, f.A.cleanPrice(o)) } }, e) })), ot.apply(this, arguments) } function it(e) { var t = function(e) { return ot.apply(this, arguments) }(e.metadata.honeyPayCartPriceSelector); return t } function at(e) { [].forEach(function(t) { return P.A.send("honey-pay-now:action:".concat(t), { action: te.f_.SET_CART_PRICE, data: { cartPrice: e } }, { background: !0 }) }) } function st(e) { var t = function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "body", n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "", r = document.querySelector("#".concat(e)); return r || ((r = document.createElement("div")).id = e, r.style.cssText = n, document.querySelector(t).appendChild(r)), r }("honeyPayNowContainer"); M.render(R.createElement(Je, { data: e }), t) } function ct(e, t, n) { return ut.apply(this, arguments) } function ut() { return (ut = tt(Xe().m(function e(t, n, r) { var o, i, a; return Xe().w(function(e) { for (;;) switch (e.p = e.n) { case 0: if (void 0 !== window.MutationObserver) { e.n = 1; break } return e.a(2); case 1: return o = new MutationObserver(tt(Xe().m(function e() { var n, o; return Xe().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, it(t); case 1: return n = e.v, e.n = 2, ne.A.getFeatureFlag("gift_cards_use_remote_iframe"); case 2: if (!e.v) { e.n = 3; break } return o = U.A.getCurrent(), e.n = 3, fe.request(le.giftCardsCartPriceChange, { cartPrice: n, tabId: o.id, prioritized: r, storeId: t.id, storeName: t.name }); case 3: return e.a(2) } }, e) }))), e.n = 2, f.A.waitForElement(n, { timeout: 3e3 }); case 2: return e.p = 2, e.n = 3, ne.A.getFeatureFlag("gift_card_deals_observe_body_for_total"); case 3: i = e.v, a = i ? document.body : document.querySelector(n), o.observe(a, { characterData: !0, attributes: !1, childList: !0, subtree: !0 }), e.n = 5; break; case 4: e.p = 4, e.v, I.A.error("Error attaching mutation observer for store ".concat(t.id, " with selector ").concat(n)); case 5: return e.a(2) } }, e, null, [ [2, 4] ]) }))).apply(this, arguments) } function lt(e) { var t = e.allPageTypes; return Z.isPaymentsViewPrioritized(t) } function ft(e) { return dt.apply(this, arguments) } function dt() { return (dt = tt(Xe().m(function e(t) { var n, r, o, i, a; return Xe().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, Promise.all([ee.A.getReminder(t), L.A.get("honey-pay-now:gift-card-deal-reminder:".concat(t))]); case 1: return n = e.v, r = Ke(n, 2), o = r[0], i = r[1], a = null, i && (a = i.isGiftcardTipEngaged), e.a(2, !(!o && !a)) } }, e) }))).apply(this, arguments) } function pt(e, t) { return ht.apply(this, arguments) } function ht() { return (ht = tt(Xe().m(function e(t, n) { var r, o; return Xe().w(function(e) { for (;;) switch (e.n) { case 0: return r = U.A.getCurrent(), e.n = 1, ft(t.id); case 1: return o = e.v, e.n = 2, fe.request(le.giftCardsFindSavingsClosed, { cartPrice: n, tabId: r.id, prioritized: !0, storeId: t.id, storeName: t.name, isReminderSet: o }); case 2: return e.a(2) } }, e) }))).apply(this, arguments) } P.A.addListener("current:product", function() { var e = tt(Xe().m(function e(t, n) { var r, o, i, a, s, c, u, l; return Xe().w(function(e) { for (;;) switch (e.n) { case 0: return r = n.data, e.n = 1, U.A.getCurrent(); case 1: o = e.v, i = o.id, a = r.partialObservation, s = a.price, c = a.url, u = r.productId, l = N()(s).value(), L.A.set("honey-pay-now:product:".concat(c, ":").concat(i), { productPrice: l, productId: u }); case 2: return e.a(2) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }()), P.A.addListener("honey-pay-now:action:ui", function(e, t) { switch (t && t.action) { case te.f_.SET_PAY_NOW_CARD_VISIBILITY: return A.A.open({ pathname: "/honey-pay-now-card", query: {}, state: { cardData: t.data.cardData }, force: !0, feature: "honey-pay-now-card", surface: "popup" }); case te.f_.OPEN_PAY_NOW_AUTOPOP: return A.A.open({ pathname: "/honey-pay-now-autopop", query: {}, state: t.data, force: !0, feature: "honey-pay-now-autopop", surface: "popup" }); default: throw new InvalidParametersError("Invalid action") } }), Promise.all([new Promise(function(e) { P.A.addListener("gift-cards-app:ready", function() { return e() }) }), new Promise(function(e) { P.A.addListener("find-savings:closed", function() { return e() }) })]).then(tt(Xe().m(function e() { var t, n; return Xe().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, B.A.getCurrent(); case 1: if ((t = e.v).id) { e.n = 2; break } return e.a(2); case 2: return e.n = 3, it(t); case 3: if (n = e.v) { e.n = 4; break } return e.a(2); case 4: return e.n = 5, ne.A.getFeatureFlag("gift_cards_use_remote_iframe"); case 5: if (!e.v) { e.n = 6; break } return e.n = 6, pt(t, n); case 6: return e.a(2) } }, e) }))).catch(function() { return "" }), P.A.addListener("find-savings:complete", tt(Xe().m(function e() { var t, n; return Xe().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, B.A.getCurrent(); case 1: if ((t = e.v).id) { e.n = 2; break } return e.a(2); case 2: return e.n = 3, it(t); case 3: if (n = e.v) { e.n = 4; break } return e.a(2); case 4: return e.n = 5, ne.A.getFeatureFlag("gift_cards_use_remote_iframe"); case 5: if (!e.v) { e.n = 6; break } return e.n = 6, pt(t, n); case 6: return e.a(2) } }, e) }))); var mt = 0; P.A.addListener("pageDetected:PAYMENTS", function() { var e = tt(Xe().m(function e(t, n) { var r, o, i, a, s, c, u, l, f, d; return Xe().w(function(e) { for (;;) switch (e.n) { case 0: if (r = n.data, !((o = Date.now()) - mt < 5e3)) { e.n = 1; break } return e.a(2); case 1: mt = o; case 2: return e.n = 3, B.A.getCurrent(); case 3: if ((i = e.v).id) { e.n = 4; break } return e.a(2); case 4: return e.n = 5, it(i); case 5: if (a = e.v) { e.n = 6; break } return e.a(2); case 6: return e.n = 7, ne.A.getFeatureFlag("gift_cards_use_remote_iframe"); case 7: if (!e.v) { e.n = 14; break } return e.n = 8, lt(r); case 8: return s = e.v, e.n = 9, O.A.getDeviceId(); case 9: return c = e.v, e.n = 10, ft(i.id); case 10: return u = e.v, e.n = 11, T.A.getCountryCode(); case 11: return l = e.v, e.n = 12, T.A.getUILanguage(); case 12: return f = e.v, e.n = 13, F.A.getInfo(); case 13: d = e.v, at(a), ct(i, i.metadata.honeyPayCartPriceSelector, s); try { st({ storeId: i.id, deviceId: c, browser: "ch", extVersion: "18.2.1", cartPrice: a, prioritized: s, isReminderSet: u, language: f, country: l, user: d }) } catch (e) { I.A.error("Error loading Honey Pay iframe: ".concat(e)) } case 14: return e.a(2) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }()); var gt = n(21344), yt = n(93744), vt = (n(91256), n(57503)), bt = (n(21733), n(81213)); const _t = { getExtensionID: function() { return bt.A.getExtensionID() }, connect: function(e, t) { return bt.A.connect(e, t) }, addOnConnectListener: function(e) { return bt.A.addOnConnectListener(e) }, removeOnConnnectListener: function(e) { return bt.A.removeOnConnnectListener(e) } }; n(61985); var St = n(6120), wt = n(46529), Ot = n(2317), Et = n(70481), kt = n(50618), Tt = n(2481), xt = n(79973), It = n(35826), Pt = n(67004), At = n(31234), Ct = n(63610), jt = (0, Ot.Mz)(Et.VH.selectCurrentStore(), Tt.zA.selectCurrentStoreSession(), function(e, t) { return B.A.isBlockingCDNLogic(e, t) }), Rt = (0, Ot.Mz)(Et.VH.selectCurrentStore(), function(e) { return e.tips && e.tips.configuration && e.tips.configuration.blacklistDefaultLaunchpadPathnameByStoreId }, function(e) { return e && (arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : []).includes(e.id) }), Mt = (0, Ot.Mz)(function(e) { return Et.VH.selectCurrentStore()(e) }, function(e) { return !!(e && e.tipsConfig && e.tipsConfig.isLaunchpadDisabled) }), Dt = (0, Ot.Mz)(function(e) { return Et.VH.selectCurrentStore()(e) }, function(e) { return !!(e && e.tipsConfig && e.tipsConfig.isPdpDisabled) }), Nt = (0, Ot.Mz)(Et.VH.selectCurrentStore(), function(e) { return e.tips && e.tips.configuration && e.tips.configuration.blacklistedDynamicUrlsByStoreId }, function(e, t) { var n = (e || {}).id; if (t && t[n]) { var r = window && window.location && window.location.href; if ((t[n] || []).some(function(e) { return r.startsWith(e) })) return !0 } return !1 }), Lt = (0, Ot.Mz)(Et.VH.selectCurrentStore(), function(e) { return e.tips && e.tips.configuration && e.tips.configuration.blacklistedStaticUrlsByStoreId }, function(e, t) { var n = (e || {}).id; if (t && t[n]) { var r = window && window.location && window.location.href; if ((t[n] || []).includes(r)) return !0 } return !1 }), Ft = (0, Ot.Mz)(Et.VH.selectCurrentStore(), function(e) { return e.tips && e.tips.configuration && e.tips.configuration.allowlistDynamicUrlsByStoreId }, function(e) { return e.tips && e.tips.configuration && e.tips.configuration.allowlistStaticUrlsByStoreId }, function(e, t, n) { var r = e && e.id, o = !1, i = window && window.location && window.location.href; if (t && t[r]) { if ((t[r] || []).some(function(e) { return i.startsWith(e) })) return !0; o = !0 } if (n && n[r]) { if ((n[r] || []).includes(i)) return !0; o = !0 } return !o }), Bt = (0, Ot.Mz)(xt.v_.selectDeviceSetting("tipsLoggedOutDisabled"), kt.Ax.selectSetting("tipsEnabled"), kt.Ax.selectUser(), function(e, t, n) { return n && n.isLoggedIn ? !!t ? { tipsEnabledByUser: !0 } : void 0 === t ? { tipsEnabledByUser: !1, reason: "tips_enabled_undefined" } : { tipsEnabledByUser: !1, reason: "tips_enabled_false" } : e ? { tipsEnabledByUser: !1, reason: "tips_logged_out_disabled" } : { tipsEnabledByUser: !0 } }), Ut = (0, Ot.Mz)(function(e) { return Pt.kF.selectVariant(H.vE.TIPS_SHOWING_GROUP)(e) }, function(e) { return "control" === e }); const Gt = { selectCanRunTips: (0, Ot.Mz)(It.im.selectIsHomePage, It.im.selectIsProductPage, jt, Rt, Mt, Nt, Lt, xt.v_.selectIsFirstPageAfterInstall(), Et.VH.selectCurrentStoreStandDown, Ft, Dt, Ut, Bt, function(e) { var t = (Et.VH.selectCurrentStore()(e) || {}).id, n = Date.now(), r = function(e) { return function(t) { if (!e) return null; var n = (0, Ct.p)(e); return xt.v_.selectDeviceSetting(n)(t) } }(t)(e), o = r && n < r, i = n < (xt.v_.selectDeviceSetting(At.I)(e) || !1), a = n < (xt.v_.selectDeviceSetting(At.l)(e) || !1), s = function(e) { var t = kt.Ax.selectUser()(e); if (!t || !t.isLoggedIn) return xt.v_.selectDeviceSetting("tipsLoggedOutDisabled")(e) ? { tipsEnabledByUser: !1, reason: "tips_logged_out_disabled" } : { tipsEnabledByUser: !0 }; var n, r = kt.Ax.selectSetting("tipsEnabled"), o = !!r; return o || (n = void 0 === r ? "tips_enabled_undefined" : "tips_enabled_false"), { tipsEnabledByUser: o, reason: n } }(e), c = s.tipsEnabledByUser, u = s.reason; return { suppressed: o || i || a || !c, reason: a ? "snoozed_for_day" : o ? "snoozed_for_store" : i ? "snoozed_for_all" : c ? "" : u } }, function(e, t, n, r, o, i, a, s, c, u, l, f, d, p) { var h = c.standDown, m = d.tipsEnabledByUser, g = d.reason, y = p.suppressed, v = p.reason, b = []; return n && b.push(wt.Ue.BLOCKING_CDN), ["nopopup", "suspend"].includes(h) && b.push(wt.Ue.STAND_DOWN), e || t || b.push(wt.Ue.INVALID_PAGE_TYPE), f && b.push(wt.Ue.HOLDOUT_GROUP), m || b.push(wt.Ue.DISABLED_BY_USER), y && b.push(wt.Ue.SUPPRESSED), i && b.push(wt.Ue.DYNAMIC_URL_BLACKLISTED), a && b.push(wt.Ue.STATIC_URL_BLACKLISTED), e && (r && b.push(wt.Ue.DEFAULT_LAUNCHPAD_PATH_BLACKLISTED), o && b.push(wt.Ue.STORE_LAUNCHPAD_DISABLED), s && b.push(wt.Ue.FIRST_PAGE_AFTER_INSTALL), u || b.push(wt.Ue.CANT_SHOW_LAUNCHPAD_WITH_ALLOW_LIST)), t && l && b.push(wt.Ue.STORE_PDP_DISABLED), { canRunTips: 0 === b.length, hideReasons: b, suppressionReason: v, disabledByUserReason: g } }) }; var $t = n(96532), Ht = n(5350), zt = n(5735), qt = null, Wt = function() { return function(e, t) { clearTimeout(qt), qt = setTimeout(function() { var n = (0, zt.A)(t()), r = It.im.selectMostRecentPageId()(t()); n.length || (I.A.debug("honeyTips:events: canRunTips but no tips appeared after timeout of ".concat($t.x, "ms")), e(It.vt.setTipsTimedOut({ pageId: r, tipsTimedOut: !0 })), e((0, Ht.f)({ event: "hide", action: null }))) }, $t.x) } }, Vt = function() { return function() { return clearTimeout(qt) } }, Yt = n(20989), Jt = n(70364), Kt = n.n(Jt), Qt = n(23649), Xt = n(33118); const Zt = function() { return function(e, t) { var n = It.im.selectMostRecentPageId()(t()), r = Kt()(); e(Qt.Qq.loadContainer({ containerId: r })), e(It.vt.setContainerId({ pageId: n, containerId: r })), e((0, Xt.F)({ event: "pre-init" })), e((0, Xt.F)({ event: "init" })) } }; var en = n(28992), tn = n(89773), nn = n(64287), rn = n(36836), on = new Set(Object.values(wt.PB)), an = new Set, sn = function(e) { return e.every(function(e) { return !on.has(e) }) }, cn = function() { return function(e) { e((0, rn.h)({ debugEvent: "funnel", action: "not_shown" })) } }, un = function(e) { return function(t, n) { var r = en.Og.selectCurrentProductOffer(n()); if (r) { var o = (0, nn.fN)(n()), i = JSON.stringify({ product: o, offer: r }); t((0, rn.h)({ debugEvent: "offers_miss_rate", action: e, metadataJson: i })) } } }, ln = function(e) { var t = e.canRunTips, n = e.hideReasons, r = void 0 === n ? [] : n, o = e.disabledByUserReason, i = e.suppressionReason; return function(e, n) { var a = "honeyTips:sendTipsVisibilitySdata: ", s = It.im.selectCurrentPageId()(n()); if (!an.has(s)) { an.add(s); var c = Pt.kF.selectCurrentTipsContainerVariant(n()), u = It.im.selectIsCurrentPageLaunchpad()(n()) && sn(r); if (sn(r)) { var l = JSON.stringify({ funnelForLaunchpad: u }); e((0, rn.h)({ debugEvent: "funnel", action: "should_show_container", metadataJson: l })) } if (t) e(function(e, t) { var n = It.im.selectIsCurrentPageLaunchpad()(t()), r = tn.n2.selectHasPreOpened(t()); if (n && r) { var o = tn.n2.selectPreOpenPathname(t()); e((0, Ht.f)({ event: "hide_collision", collisionPathname: o })) } }); else { if (function(e) { return sn(e) && e.includes(wt.Ue.HOLDOUT_GROUP) }(r)) return I.A.debug("".concat(a, "Hiding tips because user is in holdout group.")), e((0, Ht.f)({ event: "hide_holdout" })), e(un("tips_available_holdout")), void e(cn()); if (function(e) { return sn(e) && e.includes(wt.Ue.DISABLED_BY_USER) }(r)) return I.A.debug("".concat(a, "Tips disabled by user.")), e((0, Ht.f)({ event: o ? "hide_disable:".concat(o) : "hide_disable", group: "launch_v:".concat(c) })), e(un("tips_available_disable")), void e(cn()); if (function(e) { return sn(e) && e.includes(wt.Ue.SUPPRESSED) }(r)) return I.A.debug("".concat(a, "Tips suppressed by user.")), e((0, Ht.f)({ event: i ? "hide_snooze:".concat(i) : "hide_snooze", group: "launch_v:".concat(c) })), e(un("tips_available_suppress")), void e(cn()); e((0, rn.h)({ debugEvent: "funnel", action: "should_not_show_container", metadataJson: JSON.stringify({ isValidLaunchpadPage: u }) })); var f = It.im.selectIsProductPage(n()), d = Pt.kF.selectIsStandaloneOffer(n()); f && d && e((0, Ht.f)({ event: "hide", group: "autopop_displayed" })) } } } }, fn = n(471), dn = n(19550), pn = n(25513), hn = n(36927); function mn(e) { return mn = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, mn(e) } function gn(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function yn(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != mn(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != mn(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == mn(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } const vn = function() { return function(e, t) { var n = (0, hn.A)(t()), r = n.id; n.ready ? (e(Qt.Qq.refreshContainer({ containerId: r })), e((0, Xt.F)({ event: "refresh" }))) : (e(Qt.Qq.readyContainer({ containerId: r })), e((0, Xt.F)({ event: "ready" }))); var o = (0, fn.ec)(t()), i = (0, fn.Wt)(t()), a = dn.IE.selectCurrentTopPickSavings(t()); if (o && e((0, rn.q)({ action: "topSavingsLessThanDollar", topPickSavings: a, ifTopSavingsLessThanDollarOn: o }, { skipSessionCheck: !0 })), !1 === i) { var s = (0, pn.A)()(t()); e((0, rn.q)(function(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? gn(Object(n), !0).forEach(function(t) { yn(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : gn(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e }({ action: "MissingCanonicalClusterId" }, s), { skipSessionCheck: !0 })) } } }; var bn = n(47408); function _n() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Sn(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Sn(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Sn(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Sn(f, "constructor", u), Sn(u, "constructor", c), c.displayName = "GeneratorFunction", Sn(u, o, "GeneratorFunction"), Sn(f), Sn(f, o, "Generator"), Sn(f, r, function() { return this }), Sn(f, "toString", function() { return "[object Generator]" }), (_n = function() { return { w: i, m: d } })() } function Sn(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Sn = function(e, t, n, r) { function i(t, n) { Sn(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Sn(e, t, n, r) } function wn(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function On(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { wn(i, r, o, a, s, "next", e) } function s(e) { wn(i, r, o, a, s, "throw", e) } a(void 0) }) } } var En = [H.vE.STANDALONE_OFFERS, H.vE.TIPS_SHOWING_GROUP], kn = {}; const Tn = function() { return function() { var e = On(_n().m(function e(t, n) { var r, o, i, a, s, c; return _n().w(function(e) { for (;;) switch (e.n) { case 0: if (r = It.im.selectMostRecentPageId()(n()), !kn[r]) { e.n = 1; break } return e.a(2, kn[r]); case 1: return o = t(Et.md.load()), i = function() { var e = On(_n().m(function e() { return _n().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, o; case 1: return e.n = 2, t(Tt.qL.loadStoreSession()); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), a = i(), s = function() { var e = On(_n().m(function e() { return _n().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, Promise.allSettled([o, a]); case 1: return e.n = 2, t(bn.E4.load()); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), c = Promise.allSettled([t(xt.A0.loadDeviceSettings()), t(xt.A0.loadIsFirstPageAfterInstall()), t(Pt.QC.loadVariants(En)), t(kt.Xp.load()), t(kt.Xp.loadSettings()), t(Qt.Qq.loadConfiguration()), o, a, s()]), kn[r] = c, e.a(2, c) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }() }; var xn = function(e) { return ["PRODUCT", "SHOPIFY_PRODUCT_PAGE", "SHOPIFY_WHERE_AM_I", "WHERE_AM_I"].includes(e) }, In = function(e) { return ["HOMEPAGE"].includes(e) }, Pn = function(e, t) { return new URL(e).href.startsWith(new URL(t).href) }; const An = function(e) { var t = ((0, hn.A)(e) || {}).id; if (!t) return !1; var n = It.im.selectMostRecentPageId()(e); return t === (It.im.selectPageByPageId(n)(e) || {}).containerId }; var Cn = n(3659), jn = n(29490), Rn = n(8004), Mn = n(42528), Dn = n(76255), Nn = n(95872), Ln = n(85831), Fn = n(3371), Bn = n(54277), Un = n(30840), Gn = n(81870), $n = n(13917), Hn = n(43869), zn = n(93800), qn = n(65645), Wn = n(69408), Vn = n(84993), Yn = n(97555); function Jn(e) { return Jn = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, Jn(e) } function Kn() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Qn(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Qn(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Qn(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Qn(f, "constructor", u), Qn(u, "constructor", c), c.displayName = "GeneratorFunction", Qn(u, o, "GeneratorFunction"), Qn(f), Qn(f, o, "Generator"), Qn(f, r, function() { return this }), Qn(f, "toString", function() { return "[object Generator]" }), (Kn = function() { return { w: i, m: d } })() } function Qn(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Qn = function(e, t, n, r) { function i(t, n) { Qn(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Qn(e, t, n, r) } function Xn(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function Zn(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? Xn(Object(n), !0).forEach(function(t) { er(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Xn(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function er(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != Jn(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != Jn(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == Jn(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } function tr(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } var nr = "honeyTips:loadPL2GoTipData: ", rr = "honey_checkout_paypal_vcc_pdp_enabled", or = "honey_checkout_paypal_vcc_enabled"; const ir = function() { return function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { tr(i, r, o, a, s, "next", e) } function s(e) { tr(i, r, o, a, s, "throw", e) } a(void 0) }) } }(Kn().m(function e(t, n) { var r, o, i, a, s, c, u, l, f, d, p, h, m, g, v, b, _, S, w, O, E; return Kn().w(function(e) { for (;;) switch (e.p = e.n) { case 0: return t(Vn.an.reset()), r = Yn.fL.selectCurrentGenericPageProduct(n()), o = (0, nn.fN)(n()), i = Et.VH.selectCurrentStore()(n()), a = (o || r || {}).lastPrice, c = (s = i || {}).currencyCode, u = s.id, e.n = 1, (0, Hn.qY)(); case 1: l = e.v, t(Vn.an.setCheckoutEligibilityState(l)), f = a && a > 0 ? (a / 100).toFixed(2) : void 0, d = (0, Wn.A)(n()), e.n = 2; break; case 2: if (!f) { e.n = 3; break } if (!(a < 3e3 || a > 15e4)) { e.n = 3; break } return (0, qn.ax)(Zn(Zn({}, d), {}, { action: qn.hr.USER_INELIGIBLE, subAction: a < 3e3 ? qn.U9.AMOUNT_TOO_LOW : qn.U9.AMOUNT_TOO_HIGH })), I.A.debug("".concat(nr, "Out of required price range")), e.a(2); case 3: return e.n = 4, t(Mn.Jq.loadFeatures([rr, or])); case 4: if (p = Mn.HL.selectFeatureByName(rr)(n()), h = Mn.HL.selectFeatureByName(or)(n()), ![p, h].some(function(e) { return !e })) { e.n = 5; break } return m = qn.U9.VCC_PDP_DISABLED, h || (m = qn.U9.VCC_DISABLED), (0, qn.ax)(Zn(Zn({}, d), {}, { action: qn.hr.USER_INELIGIBLE, subAction: m })), I.A.debug("".concat(nr, "Required feature flag not met")), e.a(2); case 5: if (g = !1, e.p = 6, !u) { e.n = 9; break } return e.n = 7, (0, Hn.te)($n.ld.devToolsEnabled); case 7: return v = e.v, e.n = 8, (0, y.G)(u, v); case 8: b = e.v, g = b && (b.checkoutTypes || []).includes($n.YO.VCC) && b.pl2goPdp; case 9: e.n = 11; break; case 10: e.p = 10, E = e.v, I.A.error("PL2Go PDP - store config error: ".concat(E)); case 11: if (g) { e.n = 12; break } return (0, qn.ax)(Zn(Zn({}, d), {}, { action: qn.hr.USER_INELIGIBLE, subAction: qn.U9.MERCHANT_DISABLED })), I.A.debug("".concat(nr, "Required store config not met")), e.a(2); case 12: return e.n = 13, (0, zn.Il)({ amountValue: f, currencyCode: c, timeout: 3e3 }); case 13: if (_ = e.v, S = (0, zn.Kj)(_), w = S.invalidReason, S.isValid) { e.n = 14; break } return (0, qn.ax)(Zn(Zn({}, d), {}, { action: qn.hr.USER_INELIGIBLE, subAction: qn.U9.PRESENTMENT_UNAVAILABLE })), I.A.debug("".concat(nr).concat(w)), e.a(2); case 14: O = kt.Ax.selectUser()(n()), (0, qn.ax)(Zn(Zn({}, d), {}, { action: qn.hr.USER_ELIGIBLE, subAction: (0, qn.wC)(O, f) })), t(Vn.an.setValidatedPL2GoResponse(S)); case 15: return e.a(2) } }, e, null, [ [6, 10] ]) })); return function(t, n) { return e.apply(this, arguments) } }() }; function ar() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return sr(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (sr(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, sr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, sr(f, "constructor", u), sr(u, "constructor", c), c.displayName = "GeneratorFunction", sr(u, o, "GeneratorFunction"), sr(f), sr(f, o, "Generator"), sr(f, r, function() { return this }), sr(f, "toString", function() { return "[object Generator]" }), (ar = function() { return { w: i, m: d } })() } function sr(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } sr = function(e, t, n, r) { function i(t, n) { sr(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, sr(e, t, n, r) } function cr(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function ur(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { cr(i, r, o, a, s, "next", e) } function s(e) { cr(i, r, o, a, s, "throw", e) } a(void 0) }) } } var lr = [Gn.x0, H.vE.STANDALONE_OFFERS, H.vE.TIPS_SHOWING_GROUP, Cn.nc, Cn.PU, Cn.fB, Cn.s$, Cn.Di, Cn.L5], fr = ["ext_paypal_tip_enabled", "tips_is_autopop_suppression_respected", "offers_show_gold_value", "tips_main_tip_pay_in_four_enabled"]; const dr = function(e) { return function() { var t = ur(ar().m(function t(n, r) { var o, i, a, s, c, u, l, f, d, p, h, m, g, y; return ar().w(function(t) { for (;;) switch (t.n) { case 0: return o = n(Et.md.load()), i = n(Mn.Jq.loadFeatures(fr)), a = n(kt.Xp.load()), s = n(Tt.qL.loadGlobalSessionId()), c = function() { var e = ur(ar().m(function e() { return ar().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, n(Pt.QC.loadVariants(lr)); case 1: lr.forEach(function(e) { return E.A.trackImpression(e) }); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), u = function() { var e = ur(ar().m(function e() { var t, o, i; return ar().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, a; case 1: if (t = kt.Ax.selectUser()(r()), o = t.id, i = t.isLoggedIn, !i) { e.n = 2; break } return e.n = 2, n(kt.Xp.getUserFollow(o)); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), l = function() { var e = ur(ar().m(function e() { var t, i; return ar().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, Promise.all([o, a]); case 1: if (t = Et.VH.selectCurrentStore()(r()) || {}, !((i = kt.Ax.selectUser()(r()) || {}).isLoggedIn && i.id && t.storeId && t.isDoubleGold)) { e.n = 2; break } return e.n = 2, n(kt.Xp.getDoubleGoldActivationsByUserId(i.id)); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), f = function() { var e = ur(ar().m(function e() { return ar().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, o; case 1: return e.n = 2, n(kt.Xp.loadSessionCountForCurrentStore()); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), d = function() { var e = ur(ar().m(function e() { return ar().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, s; case 1: return e.n = 2, n((0, Un.A)()); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), p = function() { var e = ur(ar().m(function e() { return ar().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, o; case 1: n(Qt.Qq.loadTipsShown()); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), h = function() { var e = ur(ar().m(function e() { return ar().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, o; case 1: return e.n = 2, n(Bn.QS.loadStoreInsights()); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), m = function() { var e = ur(ar().m(function e() { return ar().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, o; case 1: return e.n = 2, n(Rn.Vp.loadStats()); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), g = function() { var e = ur(ar().m(function e() { return ar().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, i; case 1: return e.n = 2, n(Nn.f1.load()); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), y = function() { var t = ur(ar().m(function t() { var i, s, c, u; return ar().w(function(t) { for (;;) switch (t.n) { case 0: if (e) { t.n = 1; break } return t.a(2); case 1: return i = function() { var e = ur(ar().m(function e() { return ar().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, a; case 1: return e.n = 2, n(en.Ru.loadEligibility()); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), s = i(), c = function() { var e = ur(ar().m(function e() { return ar().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, s; case 1: n(en.Ru.loadStoreOffer()); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), t.n = 2, Promise.allSettled([o, a]); case 2: return u = Et.VH.selectCurrentStoreId()(r()), t.n = 3, Promise.allSettled([n(en.Ru.loadLaunchpadOffersConfiguration()), c(), n(Ln.qg.loadSaleAlert()), g(), n(Fn.Ip.loadStoreDeals()), n(Dn.Ji.loadByProduct({ product: { storeId: u }, subSrc: "tips" }))]); case 3: return t.a(2) } }, t) })); return function() { return t.apply(this, arguments) } }(), t.n = 1, Promise.allSettled([o, a, c(), i, n(jn._o.checkForAdblock()), s, n(tn.e5.loadLanguage()), n(Qt.Qq.loadDeprioritization()), n(Qt.Qq.loadTipsAndCategories()), n(ir()), u(), l(), f(), d(), p(), h(), m(), y(), n(kt.Xp.loadIsQuantumLeapEligible())]); case 1: return t.a(2) } }, t) })); return function(e, n) { return t.apply(this, arguments) } }() }; function pr() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return hr(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (hr(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, hr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, hr(f, "constructor", u), hr(u, "constructor", c), c.displayName = "GeneratorFunction", hr(u, o, "GeneratorFunction"), hr(f), hr(f, o, "Generator"), hr(f, r, function() { return this }), hr(f, "toString", function() { return "[object Generator]" }), (pr = function() { return { w: i, m: d } })() } function hr(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } hr = function(e, t, n, r) { function i(t, n) { hr(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, hr(e, t, n, r) } function mr(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const gr = function(e) { var t = e.pageType, n = e.isGeneric; return function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { mr(i, r, o, a, s, "next", e) } function s(e) { mr(i, r, o, a, s, "throw", e) } a(void 0) }) } }(pr().m(function e(r, o) { var i, a, s, c, u, l, f, d, p, h, m, g, y, v, b; return pr().w(function(e) { for (;;) switch (e.n) { case 0: if (r(Vt()), i = It.im.selectMostRecentPageId()(o()), r(It.vt.addPageType({ pageType: t, pageId: i })), r(It.vt.setIsGeneric({ isGeneric: n, pageId: i })), a = It.im.selectPageTypesByPageId(i)(o()) || [], s = a.some(In), c = a.some(xn), !s && !c) { e.n = 1; break } return e.n = 1, r(Tn()); case 1: if (u = Gt.selectCanRunTips(o()), l = u.canRunTips, f = u.hideReasons, d = u.disabledByUserReason, p = u.suppressionReason, r(ln({ canRunTips: l, hideReasons: f, disabledByUserReason: d, suppressionReason: p })), l) { e.n = 2; break } return r(It.vt.updateCurrentPage()), h = (f || []).join(", "), I.A.debug("honeyTips:events:cantRunTips reasons: ".concat(h)), (0, Yt.Sv)(), e.a(2); case 2: if (m = It.im.selectCurrentPageId()(o()), g = It.im.selectPendingPageId()(o()), y = It.im.selectPageTypesByPageId(m)(o()) || [], v = It.im.selectPageTypesByPageId(g)(o()) || [], b = y.some(xn), !(c && (!b || g !== m) || s)) { e.n = 3; break } return e.n = 3, r(It.vt.updateCurrentPage()); case 3: if (null !== g && Pn(m, g) && !v.includes("HOMEPAGE") && vt.Ay.triggerPageType("HOMEPAGE", {}, !0), (0, Yt.SG)()) { e.n = 5; break } return An(o()) || r(Zt()), (0, Yt.BW)(), e.n = 4, r(dr(s)); case 4: s && r(vn()); case 5: r(Wt()); case 6: return e.a(2) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }() }; const yr = function() { wt.g$.map(function(e) { return P.A.addListener("pageDetected:".concat(e), function(t) { var n = "GENERIC" === (arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}).data; St.A.dispatch(gr({ pageType: e, isGeneric: n })) }) }) }; var vr = n(50769), br = n(92685), _r = n(38402), Sr = n(43623), wr = n(32451), Or = n(73158), Er = n(94861); function kr() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Tr(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Tr(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Tr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Tr(f, "constructor", u), Tr(u, "constructor", c), c.displayName = "GeneratorFunction", Tr(u, o, "GeneratorFunction"), Tr(f), Tr(f, o, "Generator"), Tr(f, r, function() { return this }), Tr(f, "toString", function() { return "[object Generator]" }), (kr = function() { return { w: i, m: d } })() } function Tr(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Tr = function(e, t, n, r) { function i(t, n) { Tr(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Tr(e, t, n, r) } function xr(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } var Ir = function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { xr(i, r, o, a, s, "next", e) } function s(e) { xr(i, r, o, a, s, "throw", e) } a(void 0) }) } }(kr().m(function e(t, n) { var r, o, i, a, s; return kr().w(function(e) { for (;;) switch (e.n) { case 0: if (r = (0, nn.fN)(n()) || {}, o = r.parentId, !o) { e.n = 1; break } return e.n = 1, t(Rn.Vp.loadTopProductCoupon({ parentId: o })); case 1: i = (0, Er.t)(n()), a = i.coupon, s = (0, Er.x)(n()), a && s && t((0, rn.h)({ debugEvent: "invalid_coupon_stats", action: "invalid_coupon_stats", metadata_json: JSON.stringify({ source: "extension", couponStats: a, referrerUrl: "".concat(window.location.origin).concat(window.location.pathname) }) })); case 2: return e.a(2) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }(); function Pr() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Ar(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Ar(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Ar(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Ar(f, "constructor", u), Ar(u, "constructor", c), c.displayName = "GeneratorFunction", Ar(u, o, "GeneratorFunction"), Ar(f), Ar(f, o, "Generator"), Ar(f, r, function() { return this }), Ar(f, "toString", function() { return "[object Generator]" }), (Pr = function() { return { w: i, m: d } })() } function Ar(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Ar = function(e, t, n, r) { function i(t, n) { Ar(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Ar(e, t, n, r) } function Cr(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function jr(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { Cr(i, r, o, a, s, "next", e) } function s(e) { Cr(i, r, o, a, s, "throw", e) } a(void 0) }) } } const Rr = function(e) { return function() { var t = jr(Pr().m(function t(n, r) { var o, i, a, s, c, u; return Pr().w(function(t) { for (;;) switch (t.n) { case 0: if (e) { t.n = 1; break } return t.a(2); case 1: return o = e.parentId, i = e.productId, a = function() { var t = jr(Pr().m(function t() { return Pr().w(function(t) { for (;;) switch (t.n) { case 0: return t.n = 1, n(en.Ru.loadProductOffer(e)); case 1: en.Og.selectCurrentProductOffer(r()) && n(vn()); case 2: return t.a(2) } }, t) })); return function() { return t.apply(this, arguments) } }(), s = n(_r.td.loadProductByProductId(i)), c = function() { var e = jr(Pr().m(function e() { return Pr().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, s; case 1: return e.n = 2, n(wr.fS.loadProductByProductId(i)); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(), u = function() { var t = jr(Pr().m(function t() { var o, i; return Pr().w(function(t) { for (;;) switch (t.n) { case 0: return t.n = 1, s; case 1: if (o = _r.GF.selectByProductId(e.productId)(r()) || {}, i = Pt.kF.selectVariant(Gn.x0)(r()), !(0, Or.A)(i)) { t.n = 2; break } return t.n = 2, n(dn.zK.loadCanonicalProducts({ product: e, catalogProduct: o })); case 2: return t.a(2) } }, t) })); return function() { return t.apply(this, arguments) } }(), t.n = 2, Promise.allSettled([a(), s, c(), u(), n(Ir), n(dn.zK.loadWebPriceComparisonViewed({ parentId: o })), n(Sr.XY.loadDroplistAndCollectionsByVimProduct(e)), n(Dn.Ji.loadByProduct({ product: e, subSrc: "tips" })), n(Nn.f1.load()), n(Pt.QC.loadVariant(Cn.PU))]); case 2: return t.a(2) } }, t) })); return function(e, n) { return t.apply(this, arguments) } }() }; const Mr = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; return function(t) { var n = It.im.selectMostRecentPageId()(t), r = _r.GF.selectCurrentCatalogProduct(t) || {}, o = It.im.selectContainerIdByPageId(n)(t), i = Qt.fc.selectContainerByContainerId(o)(t) || {}, a = e.productId === r.productId, s = !!i.ready; return a && s } }; function Dr() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Nr(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Nr(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Nr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Nr(f, "constructor", u), Nr(u, "constructor", c), c.displayName = "GeneratorFunction", Nr(u, o, "GeneratorFunction"), Nr(f), Nr(f, o, "Generator"), Nr(f, r, function() { return this }), Nr(f, "toString", function() { return "[object Generator]" }), (Dr = function() { return { w: i, m: d } })() } function Nr(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Nr = function(e, t, n, r) { function i(t, n) { Nr(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Nr(e, t, n, r) } function Lr(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const Fr = function(e) { return function() { var t = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { Lr(i, r, o, a, s, "next", e) } function s(e) { Lr(i, r, o, a, s, "throw", e) } a(void 0) }) } }(Dr().m(function t(n, r) { var o, i, a, s; return Dr().w(function(t) { for (;;) switch (t.n) { case 0: if (e && !Mr(e)(r())) { t.n = 1; break } return t.a(2); case 1: return o = It.im.selectCurrentPageId()(r()), i = (0, nn.JE)(o)(r()) || {}, i.parentId === e.parentId || An(r()) ? (a = It.im.selectContainerIdByPageId(o)(r()), s = It.im.selectMostRecentPageId()(r()), n(Qt.Qq.setLoading({ containerId: a })), n(It.vt.setContainerId({ containerId: a, pageId: s }))) : n(Zt()), n(It.vt.updateCurrentPage()), t.n = 2, n(Rr(e)); case 2: n(vn()); case 3: return t.a(2) } }, t) })); return function(e, n) { return t.apply(this, arguments) } }() }; var Br = n(64055); const Ur = function() { return function(e) { var t = It.im.selectMostRecentPageId()(e), n = br.XK.selectProductByPageId(t)(e), r = Br.dK.selectProductByPageId(t)(e); return { vimProduct: n, waiProduct: r, isProductIdMatch: (null == n ? void 0 : n.productId) === (null == r ? void 0 : r.productId), isParentIdMatch: (null == n ? void 0 : n.parentId) === (null == r ? void 0 : r.parentId) } } }; function Gr(e) { return Gr = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, Gr(e) } function $r(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function Hr(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? $r(Object(n), !0).forEach(function(t) { zr(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : $r(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function zr(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != Gr(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != Gr(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == Gr(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } const qr = function(e) { return function(t, n) { var r = Hr(Hr({}, Ur()(n())), e); he.A.sendEvent("tip004037", r), I.A.debug(function(e) { var t = "TIPS_PRODUCT:".concat(e.event); return t + (e.action ? ":".concat(e.action) : "") }(r), r) } }; function Wr() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Vr(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Vr(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Vr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Vr(f, "constructor", u), Vr(u, "constructor", c), c.displayName = "GeneratorFunction", Vr(u, o, "GeneratorFunction"), Vr(f), Vr(f, o, "Generator"), Vr(f, r, function() { return this }), Vr(f, "toString", function() { return "[object Generator]" }), (Wr = function() { return { w: i, m: d } })() } function Vr(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Vr = function(e, t, n, r) { function i(t, n) { Vr(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Vr(e, t, n, r) } function Yr(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const Jr = function() { return function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { Yr(i, r, o, a, s, "next", e) } function s(e) { Yr(i, r, o, a, s, "throw", e) } a(void 0) }) } }(Wr().m(function e(t, n) { var r, o, i; return Wr().w(function(e) { for (;;) switch (e.n) { case 0: r = Ur()(n()), o = r.vimProduct, i = r.waiProduct, o && i && t(qr({ event: "productCompare" })); case 1: return e.a(2) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }() }; function Kr() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Qr(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Qr(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Qr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Qr(f, "constructor", u), Qr(u, "constructor", c), c.displayName = "GeneratorFunction", Qr(u, o, "GeneratorFunction"), Qr(f), Qr(f, o, "Generator"), Qr(f, r, function() { return this }), Qr(f, "toString", function() { return "[object Generator]" }), (Kr = function() { return { w: i, m: d } })() } function Qr(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Qr = function(e, t, n, r) { function i(t, n) { Qr(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Qr(e, t, n, r) } function Xr(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function Zr(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { Xr(i, r, o, a, s, "next", e) } function s(e) { Xr(i, r, o, a, s, "throw", e) } a(void 0) }) } } var eo = function() { return function() { var e = Zr(Kr().m(function e(t, n) { var r; return Kr().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, t(Pt.QC.loadVariant(Gn.x0)); case 1: return r = Pt.kF.selectVariant(Gn.x0)(n()), e.a(2, r === Gn.ut.WAI_ENABLED_PF_DISABLED) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }() }; const to = function(e) { return function() { var t = Zr(Kr().m(function t(n, r) { var o; return Kr().w(function(t) { for (;;) switch (t.n) { case 0: return t.n = 1, n(eo()); case 1: if (!t.v) { t.n = 2; break } return I.A.debug("".concat("honeyTips:handleVimProduct: ", "VIM fetcher handling is disabled.")), t.a(2); case 2: return o = It.im.selectMostRecentPageId()(r()), n(br.Qm.productFetched({ pageId: o, product: e })), t.n = 3, n(Fr(e)); case 3: return t.n = 4, n(Jr()); case 4: return t.a(2) } }, t) })); return function(e, n) { return t.apply(this, arguments) } }() }; function no() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return ro(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (ro(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, ro(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, ro(f, "constructor", u), ro(u, "constructor", c), c.displayName = "GeneratorFunction", ro(u, o, "GeneratorFunction"), ro(f), ro(f, o, "Generator"), ro(f, r, function() { return this }), ro(f, "toString", function() { return "[object Generator]" }), (no = function() { return { w: i, m: d } })() } function ro(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } ro = function(e, t, n, r) { function i(t, n) { ro(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, ro(e, t, n, r) } function oo(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const io = function() { P.A.addListener("droplist:update", function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { oo(i, r, o, a, s, "next", e) } function s(e) { oo(i, r, o, a, s, "throw", e) } a(void 0) }) } }(no().m(function e(t) { var n, r, o, i, a, s, c = arguments; return no().w(function(e) { for (;;) switch (e.n) { case 0: if (r = (n = c.length > 1 && void 0 !== c[1] ? c[1] : {}).type, o = n.product, i = void 0 === o ? {} : o, "productFetcher" !== r || !0 !== i.imprint) { e.n = 1; break } return a = Et.VH.selectCurrentStoreId()(St.A.getState()), s = (0, vr.tY)(i, a), e.n = 1, St.A.dispatch(to(s)); case 1: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }()) }; function ao() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return so(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (so(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, so(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, so(f, "constructor", u), so(u, "constructor", c), c.displayName = "GeneratorFunction", so(u, o, "GeneratorFunction"), so(f), so(f, o, "Generator"), so(f, r, function() { return this }), so(f, "toString", function() { return "[object Generator]" }), (ao = function() { return { w: i, m: d } })() } function so(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } so = function(e, t, n, r) { function i(t, n) { so(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, so(e, t, n, r) } function co(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const uo = function() { P.A.addListener("current:product", function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { co(i, r, o, a, s, "next", e) } function s(e) { co(i, r, o, a, s, "throw", e) } a(void 0) }) } }(ao().m(function e(t) { var n, r, o, i, a = arguments; return ao().w(function(e) { for (;;) switch (e.n) { case 0: n = (a.length > 1 && void 0 !== a[1] ? a[1] : {}).data, r = void 0 === n ? {} : n, o = Et.VH.selectCurrentStoreId()(St.A.getState()), i = (0, vr.Oo)(r, o), St.A.dispatch(to(i)); case 1: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }()) }; const lo = function() { return function(e, t) { var n = (0, hn.A)(t()).id; e(Qt.Qq.refreshContainer({ containerId: n })), e((0, Xt.F)({ event: "update" })) } }; function fo() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return po(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (po(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, po(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, po(f, "constructor", u), po(u, "constructor", c), c.displayName = "GeneratorFunction", po(u, o, "GeneratorFunction"), po(f), po(f, o, "Generator"), po(f, r, function() { return this }), po(f, "toString", function() { return "[object Generator]" }), (fo = function() { return { w: i, m: d } })() } function po(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } po = function(e, t, n, r) { function i(t, n) { po(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, po(e, t, n, r) } function ho(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const mo = function(e) { return function() { var t = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { ho(i, r, o, a, s, "next", e) } function s(e) { ho(i, r, o, a, s, "throw", e) } a(void 0) }) } }(fo().m(function t(n) { return fo().w(function(t) { for (;;) switch (t.n) { case 0: if (e) { t.n = 1; break } return t.a(2); case 1: return t.n = 2, Promise.allSettled([n(Sr.XY.loadDroplistAndCollectionsByGenericProduct(e)), n(Dn.Ji.loadByProduct({ product: e, subSrc: "tips" }))]); case 2: return t.a(2) } }, t) })); return function(e) { return t.apply(this, arguments) } }() }; function go() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return yo(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (yo(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, yo(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, yo(f, "constructor", u), yo(u, "constructor", c), c.displayName = "GeneratorFunction", yo(u, o, "GeneratorFunction"), yo(f), yo(f, o, "Generator"), yo(f, r, function() { return this }), yo(f, "toString", function() { return "[object Generator]" }), (go = function() { return { w: i, m: d } })() } function yo(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } yo = function(e, t, n, r) { function i(t, n) { yo(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, yo(e, t, n, r) } function vo(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const bo = function() { return function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { vo(i, r, o, a, s, "next", e) } function s(e) { vo(i, r, o, a, s, "throw", e) } a(void 0) }) } }(go().m(function e(t, n) { var r, o, i, a, s, c, u, l, f, d; return go().w(function(e) { for (;;) switch (e.n) { case 0: if (r = Gt.selectCanRunTips(n()), r.canRunTips) { e.n = 1; break } return e.a(2); case 1: return o = It.im.selectCurrentPageId()(n()), i = It.im.selectPageTypesByPageId(o)(n()) || [], a = i.some(In), s = i.some(xn), c = [t(dr(a))], u = It.im.selectIsGenericByPageId(o)(n()), s && !u ? (l = (0, nn.JE)(o)(n())) && c.push(t(Rr(l))) : u && (f = Yn.fL.selectGenericProductByPageId(o)(n())) && c.push(t(mo(f))), e.n = 2, Promise.allSettled(c); case 2: d = (0, hn.A)(n()) || {}, d.ready && t(lo()); case 3: return e.a(2) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }() }; function _o() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return So(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (So(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, So(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, So(f, "constructor", u), So(u, "constructor", c), c.displayName = "GeneratorFunction", So(u, o, "GeneratorFunction"), So(f), So(f, o, "Generator"), So(f, r, function() { return this }), So(f, "toString", function() { return "[object Generator]" }), (_o = function() { return { w: i, m: d } })() } function So(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } So = function(e, t, n, r) { function i(t, n) { So(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, So(e, t, n, r) } function wo(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const Oo = function() { P.A.addListener("user:current:update", function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { wo(i, r, o, a, s, "next", e) } function s(e) { wo(i, r, o, a, s, "throw", e) } a(void 0) }) } }(_o().m(function e(t) { var n, r, o, i, a, s = arguments; return _o().w(function(e) { for (;;) switch (e.n) { case 0: if (n = (s.length > 1 && void 0 !== s[1] ? s[1] : {}).user, r = void 0 === n ? {} : n, o = St.A.getState(), i = kt.Ax.selectUser()(o), a = i && r && i.isLoggedIn === r.isLoggedIn && i.id === r.id, I.A.debug("honeyTips:userListener should update:".concat(!a, " ")), !!a) { e.n = 1; break } return e.n = 1, St.A.dispatch(bo()); case 1: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }()) }; function Eo() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return ko(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (ko(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, ko(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, ko(f, "constructor", u), ko(u, "constructor", c), c.displayName = "GeneratorFunction", ko(u, o, "GeneratorFunction"), ko(f), ko(f, o, "Generator"), ko(f, r, function() { return this }), ko(f, "toString", function() { return "[object Generator]" }), (Eo = function() { return { w: i, m: d } })() } function ko(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } ko = function(e, t, n, r) { function i(t, n) { ko(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, ko(e, t, n, r) } function To(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const xo = function(e) { return function() { var t = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { To(i, r, o, a, s, "next", e) } function s(e) { To(i, r, o, a, s, "throw", e) } a(void 0) }) } }(Eo().m(function t(n, r) { var o, i, a, s, c, u; return Eo().w(function(t) { for (;;) switch (t.n) { case 0: return t.n = 1, n(Tn()); case 1: if (o = Gt.selectCanRunTips(r()), o.canRunTips) { t.n = 2; break } return t.a(2); case 2: if (i = It.im.selectMostRecentPageId()(r()), a = It.im.selectIsGenericPage(r()), s = a && !An(r()), a) { t.n = 3; break } return t.a(2); case 3: return n(Yn.ox.productFetched({ pageId: i, product: e })), s ? n(Zt()) : (c = It.im.selectCurrentPageId()(r()), u = It.im.selectContainerIdByPageId(c)(r()), n(It.vt.setContainerId({ containerId: u, pageId: i }))), n(It.vt.updateCurrentPage()), t.n = 4, n(mo(e)); case 4: n(vn()); case 5: return t.a(2) } }, t) })); return function(e, n) { return t.apply(this, arguments) } }() }; function Io() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Po(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Po(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Po(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Po(f, "constructor", u), Po(u, "constructor", c), c.displayName = "GeneratorFunction", Po(u, o, "GeneratorFunction"), Po(f), Po(f, o, "Generator"), Po(f, r, function() { return this }), Po(f, "toString", function() { return "[object Generator]" }), (Io = function() { return { w: i, m: d } })() } function Po(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Po = function(e, t, n, r) { function i(t, n) { Po(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Po(e, t, n, r) } function Ao(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const Co = function() { P.A.addListener("current:product:generic", function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { Ao(i, r, o, a, s, "next", e) } function s(e) { Ao(i, r, o, a, s, "throw", e) } a(void 0) }) } }(Io().m(function e(t) { var n, r, o, i, a = arguments; return Io().w(function(e) { for (;;) switch (e.n) { case 0: n = (a.length > 1 && void 0 !== a[1] ? a[1] : {}).data, r = void 0 === n ? {} : n, o = Et.VH.selectCurrentStoreId()(St.A.getState()), i = (0, vr.MC)(r, o), St.A.dispatch(xo(i)); case 1: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }()) }; function jo() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Ro(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Ro(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Ro(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Ro(f, "constructor", u), Ro(u, "constructor", c), c.displayName = "GeneratorFunction", Ro(u, o, "GeneratorFunction"), Ro(f), Ro(f, o, "Generator"), Ro(f, r, function() { return this }), Ro(f, "toString", function() { return "[object Generator]" }), (jo = function() { return { w: i, m: d } })() } function Ro(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Ro = function(e, t, n, r) { function i(t, n) { Ro(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Ro(e, t, n, r) } function Mo(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const Do = function() { return function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { Mo(i, r, o, a, s, "next", e) } function s(e) { Mo(i, r, o, a, s, "throw", e) } a(void 0) }) } }(jo().m(function e(t, n) { var r; return jo().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, t(Ir); case 1: r = (0, hn.A)(n()) || {}, r.ready && t(lo()); case 2: return e.a(2) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }() }; function No() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Lo(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Lo(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Lo(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Lo(f, "constructor", u), Lo(u, "constructor", c), c.displayName = "GeneratorFunction", Lo(u, o, "GeneratorFunction"), Lo(f), Lo(f, o, "Generator"), Lo(f, r, function() { return this }), Lo(f, "toString", function() { return "[object Generator]" }), (No = function() { return { w: i, m: d } })() } function Lo(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Lo = function(e, t, n, r) { function i(t, n) { Lo(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Lo(e, t, n, r) } function Fo(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function Bo(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { Fo(i, r, o, a, s, "next", e) } function s(e) { Fo(i, r, o, a, s, "throw", e) } a(void 0) }) } } const Uo = function() { P.A.addListener("honeyTips:pdpCoupons:honeyProductCoupons:init", Bo(No().m(function e() { return No().w(function(e) { for (;;) switch (e.n) { case 0: St.A.dispatch(Do()); case 1: return e.a(2) } }, e) }))) }; const Go = function() { P.A.addListener("ui:action", function(e, t) { St.A.dispatch(tn.e5.addAction(t)) }) }; var $o = n(87888); function Ho() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return zo(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (zo(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, zo(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, zo(f, "constructor", u), zo(u, "constructor", c), c.displayName = "GeneratorFunction", zo(u, o, "GeneratorFunction"), zo(f), zo(f, o, "Generator"), zo(f, r, function() { return this }), zo(f, "toString", function() { return "[object Generator]" }), (Ho = function() { return { w: i, m: d } })() } function zo(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } zo = function(e, t, n, r) { function i(t, n) { zo(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, zo(e, t, n, r) } function qo(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } var Wo = "honeyTips:handleOptimusProduct: ", Vo = "tips_use_optimus_product"; const Yo = function(e) { return function() { var t = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { qo(i, r, o, a, s, "next", e) } function s(e) { qo(i, r, o, a, s, "throw", e) } a(void 0) }) } }(Ho().m(function t(n, r) { var o; return Ho().w(function(t) { for (;;) switch (t.n) { case 0: return t.n = 1, n(Mn.Jq.loadFeatures([Vo])); case 1: if (Mn.HL.selectFeatureByName(Vo)(r())) { t.n = 2; break } return I.A.debug("".concat(Wo, "Feature '").concat(Vo, "' is disabled. Returning early.")), t.a(2); case 2: if (o = It.im.selectMostRecentPageId()(r()), n($o.j.loadProductByPageId({ pageId: o, product: e })), !!!br.XK.selectProductByPageId(o)(r())) { t.n = 3; break } return I.A.debug("".concat(Wo, "VIM product is available, which is more likely to be accurate. Returning early.")), t.a(2); case 3: return t.n = 4, n(Fr(e)); case 4: return t.a(2) } }, t) })); return function(e, n) { return t.apply(this, arguments) } }() }; function Jo() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Ko(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Ko(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Ko(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Ko(f, "constructor", u), Ko(u, "constructor", c), c.displayName = "GeneratorFunction", Ko(u, o, "GeneratorFunction"), Ko(f), Ko(f, o, "Generator"), Ko(f, r, function() { return this }), Ko(f, "toString", function() { return "[object Generator]" }), (Jo = function() { return { w: i, m: d } })() } function Ko(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Ko = function(e, t, n, r) { function i(t, n) { Ko(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Ko(e, t, n, r) } function Qo(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const Xo = function() { P.A.addListener("optimus:productDetected", function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { Qo(i, r, o, a, s, "next", e) } function s(e) { Qo(i, r, o, a, s, "throw", e) } a(void 0) }) } }(Jo().m(function e(t, n) { var r, o, i, a; return Jo().w(function(e) { for (;;) switch (e.n) { case 0: r = (n || {}).data, o = void 0 === r ? {} : r, i = Et.VH.selectCurrentStoreId()(St.A.getState()), a = (0, vr.EF)(o, i), St.A.dispatch(Yo(a)); case 1: return e.a(2) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }()) }, Zo = { pageDetectionListener: yr, v4FetcherListener: io, v5FetcherListener: uo, userListener: Oo, genericFetcherListener: Co, productCouponsListener: Uo, uiActionsListener: Go, optimusProductListener: Xo }; const ei = function() { return function(e) { e(Vt()), e(It.vt.pageInit()) } }; function ti() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return ni(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (ni(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, ni(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, ni(f, "constructor", u), ni(u, "constructor", c), c.displayName = "GeneratorFunction", ni(u, o, "GeneratorFunction"), ni(f), ni(f, o, "Generator"), ni(f, r, function() { return this }), ni(f, "toString", function() { return "[object Generator]" }), (ti = function() { return { w: i, m: d } })() } function ni(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } ni = function(e, t, n, r) { function i(t, n) { ni(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, ni(e, t, n, r) } function ri(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } var oi = function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { ri(i, r, o, a, s, "next", e) } function s(e) { ri(i, r, o, a, s, "throw", e) } a(void 0) }) } }(ti().m(function e() { return ti().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, (0, vt.sT)(); case 1: St.A.dispatch(ei()), e.n = 0; break; case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(); const ii = oi; function ai() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return si(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (si(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, si(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, si(f, "constructor", u), si(u, "constructor", c), c.displayName = "GeneratorFunction", si(u, o, "GeneratorFunction"), si(f), si(f, o, "Generator"), si(f, r, function() { return this }), si(f, "toString", function() { return "[object Generator]" }), (ai = function() { return { w: i, m: d } })() } function si(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } si = function(e, t, n, r) { function i(t, n) { si(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, si(e, t, n, r) } function ci(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } const ui = function() { return function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { ci(i, r, o, a, s, "next", e) } function s(e) { ci(i, r, o, a, s, "throw", e) } a(void 0) }) } }(ai().m(function e(t) { return ai().w(function(e) { for (;;) switch (e.n) { case 0: return t(It.vt.pageInit()), e.n = 1, Promise.all([t(Et.md.load()), t(Pt.QC.loadVariant(Gn.x0)), t(xt.A0.loadScreenviewId()), t(Qt.Qq.loadSendTipsDebugEventsFlag()), t(Mn.Jq.loadFeatures(Object.values(Gn.jt)))]); case 1: t((0, rn.h)({ action: "init", debugEvent: "funnel" })); case 2: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }() }; function li() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return fi(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (fi(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, fi(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, fi(f, "constructor", u), fi(u, "constructor", c), c.displayName = "GeneratorFunction", fi(u, o, "GeneratorFunction"), fi(f), fi(f, o, "Generator"), fi(f, r, function() { return this }), fi(f, "toString", function() { return "[object Generator]" }), (li = function() { return { w: i, m: d } })() } function fi(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } fi = function(e, t, n, r) { function i(t, n) { fi(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, fi(e, t, n, r) } function di(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } var pi = function() { var e = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { di(i, r, o, a, s, "next", e) } function s(e) { di(i, r, o, a, s, "throw", e) } a(void 0) }) } }(li().m(function e() { var t, n, r, o, i, a, s; return li().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, St.A.dispatch(ui()); case 1: t = Zo.v4FetcherListener, n = Zo.v5FetcherListener, r = Zo.userListener, o = Zo.genericFetcherListener, i = Zo.productCouponsListener, a = Zo.uiActionsListener, s = Zo.optimusProductListener, (0, Zo.pageDetectionListener)(), t(), n(), r(), o(), i(), a(), ii(), s(); case 2: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(); pi(); var hi = n(90455), mi = n(79778), gi = n(29123), yi = n.n(gi), vi = n(12396), bi = n(36385), _i = n.n(bi), Si = n(28974), wi = n(75606); function Oi(e) { return Oi = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, Oi(e) } function Ei(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function ki(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? Ei(Object(n), !0).forEach(function(t) { Ti(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Ei(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function Ti(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != Oi(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != Oi(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == Oi(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } function xi() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return Ii(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (Ii(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Ii(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, Ii(f, "constructor", u), Ii(u, "constructor", c), c.displayName = "GeneratorFunction", Ii(u, o, "GeneratorFunction"), Ii(f), Ii(f, o, "Generator"), Ii(f, r, function() { return this }), Ii(f, "toString", function() { return "[object Generator]" }), (xi = function() { return { w: i, m: d } })() } function Ii(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } Ii = function(e, t, n, r) { function i(t, n) { Ii(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, Ii(e, t, n, r) } function Pi(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function Ai(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { Pi(i, r, o, a, s, "next", e) } function s(e) { Pi(i, r, o, a, s, "throw", e) } a(void 0) }) } } var Ci = "honeyTips:handleWhereAmI: ", ji = function() { return function() { var e = Ai(xi().m(function e(t, n) { var r; return xi().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, t(Pt.QC.loadVariant(Gn.x0)); case 1: return r = Pt.kF.selectVariant(Gn.x0)(n()), e.a(2, r === Gn.ut.PF_ENABLED_WAI_DISABLED) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }() }, Ri = function(e) { var t = e.parentId, n = e.storeId, r = e.priceInCents; return P.A.send("honeyTips:tips", { action: Si.A.TIPS_GET_BEST_MATCH_INVENTORY_PRODUCT, parentId: t, storeId: n, priceInCents: r }, { background: !0 }) }; function Mi(e, t) { if (!e || !t) return !1; var n = e === t, r = e.includes(t), o = t.includes(e); return n || r || o } var Di = function(e) { var t = (0, wi.C)().prodData, n = t && t.canonical_url, r = window && window.location && window.location.href, o = e.canonicalUrl, i = Mi(n, o), a = Mi(r, o), s = i || a; return s || I.A.debug("".concat(Ci, " canonicalUrl does not match page\n url=").concat(r, ", canonicalUrl=").concat(n, ", inventoryProductCanonicalUrl=").concat(o)), { isCanonicalMatch: s, pageCanonicalUrl: n, catalogCanonicalUrl: o, pageUrl: r } }, Ni = function(e) { return function(t, n) { return br.XK.selectProductByPageId(e)(n()) ? (I.A.debug("".concat(Ci, "VIM product is available, which is likely to be more accurate. No need for whereAmI handler to continue.")), !0) : !!$o.cA.selectProductByPageId(e)(n()) && (I.A.debug("".concat(Ci, "Optimus product is available, which is likely to be more accurate. No need for whereAmI handler to continue.")), !0) } }, Li = function(e) { if (!e) return null; var t = f.A.cleanPrice(e); return parseInt((100 * t).toFixed(), 10) }; const Fi = function(e) { var t = e.whereAmIPayload, n = e.atlasProducts; return function() { var e = Ai(xi().m(function e(r, o) { var i, a, s, c, u, l, f, d, p, h, m, g, y, v, b, _, S; return xi().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, r(ji()); case 1: if (!e.v) { e.n = 2; break } return I.A.debug("".concat(Ci, "whereAmI handling is disabled.")), e.a(2); case 2: if (i = It.im.selectMostRecentPageId()(o()), a = Et.VH.selectCurrentStoreId()(o()), s = _i()(n || [], "score") || {}, c = s.parentId) { e.n = 3; break } return I.A.debug("".concat(Ci, "whereAmI did not find a parentId. Returning early.")), e.a(2); case 3: return u = t && t.data || {}, l = u.price, f = Li(l), r(Br.U7.loadByPageId({ pageId: i, parentId: c, whereAmIPayload: t, priceInCents: f, storeId: a })), e.n = 4, Ri({ parentId: c, storeId: a, priceInCents: f }); case 4: if (d = e.v, p = { productId: d.productId, parentId: c, attrs: d.productDetails, name: d.title, unitPrice: l }, P.A.send("honeyTips:whereAmI", { WAIdata: p }, { background: !1 }), d) { e.n = 5; break } return I.A.debug("".concat(Ci, "no matching inventory product found for parentId=").concat(c, ", storeId=").concat(a, ".")), h = { parentId: c, storeId: a }, r((0, rn.q)(ki(ki({}, h), {}, { action: "atlas_catalog_missing" }), { skipSessionCheck: !0 })), e.a(2); case 5: if (m = "on" === Pt.kF.selectVariant(Cn.L5)(o()), g = Di(d), y = g.isCanonicalMatch, v = g.pageCanonicalUrl, b = g.pageUrl, y) { e.n = 6; break } if (I.A.debug("".concat(Ci, " canonicalUrl does not match page parentId=").concat(c, ", storeId=").concat(a, ", isAtlasMismatchOn=").concat(m)), _ = { productId: d.productId, parentId: d.parentId, variantId: d.variantId, storeId: d.storeId, catalogPrice: d.lastPrice, title: d.title, canonicalUrl: d.canonicalUrl, pageCanonicalUrl: v, pageUrl: b, isAtlasMismatchOn: m }, r((0, rn.q)(ki(ki({}, _), {}, { action: "atlas_url_mismatch" }), { skipSessionCheck: !0 })), !m) { e.n = 6; break } return e.a(2); case 6: if (r(Br.U7.setBestMatchProductForPage({ pageId: i, product: d })), r(Jr()), !r(Ni(i))) { e.n = 7; break } return e.a(2); case 7: S = Br.dK.selectProductByPageId(i)(o()), r(Fr(S)); case 8: return e.a(2) } }, e) })); return function(t, n) { return e.apply(this, arguments) } }() }; function Bi(e) { return Bi = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, Bi(e) } function Ui(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function Gi(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? Ui(Object(n), !0).forEach(function(t) { $i(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Ui(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function $i(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != Bi(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != Bi(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == Bi(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } function Hi(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || Vi(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function zi() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return qi(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (qi(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, qi(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, qi(f, "constructor", u), qi(u, "constructor", c), c.displayName = "GeneratorFunction", qi(u, o, "GeneratorFunction"), qi(f), qi(f, o, "Generator"), qi(f, r, function() { return this }), qi(f, "toString", function() { return "[object Generator]" }), (zi = function() { return { w: i, m: d } })() } function qi(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } qi = function(e, t, n, r) { function i(t, n) { qi(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, qi(e, t, n, r) } function Wi(e, t) { var n = "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (!n) { if (Array.isArray(e) || (n = Vi(e)) || t && e && "number" == typeof e.length) { n && (e = n); var r = 0, o = function() {}; return { s: o, n: function() { return r >= e.length ? { done: !0 } : { done: !1, value: e[r++] } }, e: function(e) { throw e }, f: o } } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") } var i, a = !0, s = !1; return { s: function() { n = n.call(e) }, n: function() { var e = n.next(); return a = e.done, e }, e: function(e) { s = !0, i = e }, f: function() { try { a || null == n.return || n.return() } finally { if (s) throw i } } } } function Vi(e, t) { if (e) { if ("string" == typeof e) return Yi(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Yi(e, t) : void 0 } } function Yi(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } function Ji(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function Ki(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { Ji(i, r, o, a, s, "next", e) } function s(e) { Ji(i, r, o, a, s, "throw", e) } a(void 0) }) } } var Qi = "tips_atlas_update_v1", Xi = "", Zi = !0, ea = {}, ta = !1; function na() { return na = Ki(zi().m(function e(t, n) { var r, o, i, a, s, c, u, l, f, d; return zi().w(function(e) { for (;;) switch (e.n) { case 0: return r = n.data, e.n = 1, Promise.all([B.A.getCurrent(), E.A.getVariant(Qi)]); case 1: if (o = e.v, i = Hi(o, 2), a = i[0], s = i[1], E.A.trackImpression(Qi), r) { e.n = 2; break } return I.A.error("WhereAmI was handed undefined product info"), e.a(2); case 2: if (c = (a || {}).id, l = Gi({ useDeterministicParentId: u = "variant" === s, store_id: c }, r), (f = yi()(l)) === Xi) { e.n = 4; break } return Xi = f, e.n = 3, P.A.send("stores:action", { action: "getAtlas", data: { atlasPayload: l } }, { background: !0 }).catch(function(e) { return I.A.error("Error while getting atlas: ".concat(e || e.message)), [] }); case 3: d = e.v, St.A.dispatch(Fi({ whereAmIPayload: n, atlasProducts: d })), he.A.sendEvent("ext009009", { where_am_i: r, is_initial_observation: Zi, products: d, useDeterministicParentId: u }), Zi = !1; case 4: return e.a(2) } }, e) })), na.apply(this, arguments) } var ra = function(e, t) { var n = { parent_id: ea.WAIdata.parentId, variant_id: null, product_id: ea.WAIdata.productId, store_id: e.storeId, name: ea.WAIdata.name, attrs: JSON.stringify(ea.WAIdata.attrs), qty: null, unit_price: ea.WAIdata.unitPrice, total_price: null, sku: t }; he.A.sendEvent("ext112000", { store: e, products: n }) }, oa = function(e) { var t = []; if (!e) return t; try { if (e.startsWith("//") || e.startsWith("substring")) for (var n = document.evaluate(e, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null), r = 0; r < n.snapshotLength; r += 1) { var o = n.snapshotItem(r); t.push(o) } else t = l()(e).get() } catch (e) { I.A.error("Trouble finding elements from selector", e) } return t }, ia = function() { var e = Ki(zi().m(function e() { var t, n, r, o, i, a, s, c, u, l, f, d, p, h, m, g, y, v; return zi().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, B.A.getCurrent(); case 1: return t = e.v, n = t.storeId, e.n = 2, vi.A.getStoreRecipe(n); case 2: if (r = e.v, o = r.sku_identifier, r.sku_identifier && (o = r.sku_identifier.selector), i = [], "complete" === r.scope) { a = r.add_to_cart_recording, s = Wi(a); try { for (s.s(); !(c = s.n()).done;) d = c.value, p = null !== (u = null == d ? void 0 : d.type) && void 0 !== u ? u : null, h = null !== (l = null == d || null === (f = d.info) || void 0 === f ? void 0 : f.is_optional) && void 0 !== l ? l : null, 20 === p && "no" === h && i.push(d.info.selector) } catch (e) { s.e(e) } finally { s.f() } } g = 0, y = i; case 3: if (!(g < y.length)) { e.n = 5; break } if (v = y[g], !((m = oa(v)).length > 0)) { e.n = 4; break } return e.a(3, 5); case 4: g++, e.n = 3; break; case 5: m.forEach(function(e) { 0 !== Object.keys(e).length && e.addEventListener("click", Ki(zi().m(function e() { return zi().w(function(e) { for (;;) switch (e.n) { case 0: return e.n = 1, ra(t, o); case 1: return e.a(2) } }, e) }))) }); case 6: return e.a(2) } }, e) })); return function() { return e.apply(this, arguments) } }(); P.A.addListener("honeyTips:whereAmI", function() { var e = Ki(zi().m(function e(t) { var n = arguments; return zi().w(function(e) { for (;;) switch (e.n) { case 0: ea = n.length > 1 && void 0 !== n[1] ? n[1] : {}, ta || (ta = !0, ia()); case 1: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }()), P.A.addListener("vims:reportWhereAmI", function(e, t) { return na.apply(this, arguments) }), P.A.addListener("pageDetected:WHERE_AM_I", function(e, t) { var n = t.frameworkId; ne.A.getFeatureFlag("ext_run_wai_vim").then(function() { var e = Ki(zi().m(function e(t) { return zi().w(function(e) { for (;;) switch (e.n) { case 0: if (t) { e.n = 1; break } return e.a(2, {}); case 1: return e.a(2, B.A.getCurrent().then(function() { var e = Ki(zi().m(function e(t) { var r; return zi().w(function(e) { for (;;) switch (e.n) { case 0: return r = t.id, e.n = 1, vi.A.getAndRunV5Vim(r, "wai", n); case 1: return e.a(2) } }, e) })); return function(t) { return e.apply(this, arguments) } }())) } }, e) })); return function(t) { return e.apply(this, arguments) } }()) }); var aa = n(75168), sa = n(98998), ca = n(84414); n(19893); const ua = Object.prototype.toString; function la(e) { switch (ua.call(e)) { case "[object Error]": case "[object Exception]": case "[object DOMException]": return !0; default: return Sa(e, Error) } } function fa(e, t) { return ua.call(e) === `[object ${t}]` } function da(e) { return fa(e, "ErrorEvent") } function pa(e) { return fa(e, "DOMError") } function ha(e) { return fa(e, "String") } function ma(e) { return "object" == typeof e && null !== e && "__sentry_template_string__" in e && "__sentry_template_values__" in e } function ga(e) { return null === e || ma(e) || "object" != typeof e && "function" != typeof e } function ya(e) { return fa(e, "Object") } function va(e) { return "undefined" != typeof Event && Sa(e, Event) } function ba(e) { return Boolean(e && e.then && "function" == typeof e.then) } function _a(e) { return "number" == typeof e && e != e } function Sa(e, t) { try { return e instanceof t } catch (e) { return !1 } } function wa(e) { return !("object" != typeof e || null === e || !e.__isVue && !e._isVue) } function Oa(e) { return e && e.Math == Math ? e : void 0 } const Ea = "object" == typeof globalThis && Oa(globalThis) || "object" == typeof window && Oa(window) || "object" == typeof self && Oa(self) || "object" == typeof n.g && Oa(n.g) || function() { return this }() || {}; function ka() { return Ea } function Ta(e, t, n) { const r = n || Ea, o = r.__SENTRY__ = r.__SENTRY__ || {}; return o[e] || (o[e] = t()) } const xa = ka(), Ia = 80; function Pa(e, t = {}) { if (!e) return ""; try { let n = e; const r = 5, o = []; let i = 0, a = 0; const s = " > ", c = s.length; let u; const l = Array.isArray(t) ? t : t.keyAttrs, f = !Array.isArray(t) && t.maxStringLength || Ia; for (; n && i++ < r && (u = Aa(n, l), !("html" === u || i > 1 && a + o.length * c + u.length >= f));) o.push(u), a += u.length, n = n.parentNode; return o.reverse().join(s) } catch (e) { return "" } } function Aa(e, t) { const n = e, r = []; let o, i, a, s, c; if (!n || !n.tagName) return ""; if (xa.HTMLElement && n instanceof HTMLElement && n.dataset && n.dataset.sentryComponent) return n.dataset.sentryComponent; r.push(n.tagName.toLowerCase()); const u = t && t.length ? t.filter(e => n.getAttribute(e)).map(e => [e, n.getAttribute(e)]) : null; if (u && u.length) u.forEach(e => { r.push(`[${e[0]}="${e[1]}"]`) }); else if (n.id && r.push(`#${n.id}`), o = n.className, o && ha(o)) for (i = o.split(/\s+/), c = 0; c < i.length; c++) r.push(`.${i[c]}`); const l = ["aria-label", "type", "name", "title", "alt"]; for (c = 0; c < l.length; c++) a = l[c], s = n.getAttribute(a), s && r.push(`[${a}="${s}"]`); return r.join("") } function Ca() { try { return xa.document.location.href } catch (e) { return "" } } function ja(e) { return xa.document && xa.document.querySelector ? xa.document.querySelector(e) : null } function Ra(e) { if (!xa.HTMLElement) return null; let t = e; for (let e = 0; e < 5; e++) { if (!t) return null; if (t instanceof HTMLElement && t.dataset.sentryComponent) return t.dataset.sentryComponent; t = t.parentNode } return null } const Ma = "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__, Da = ["debug", "info", "warn", "error", "log", "assert", "trace"], Na = {}; function La(e) { if (!("console" in Ea)) return e(); const t = Ea.console, n = {}, r = Object.keys(Na); r.forEach(e => { const r = Na[e]; n[e] = t[e], t[e] = r }); try { return e() } finally { r.forEach(e => { t[e] = n[e] }) } } const Fa = function() { let e = !1; const t = { enable: () => { e = !0 }, disable: () => { e = !1 }, isEnabled: () => e }; return Ma ? Da.forEach(n => { t[n] = (...t) => { e && La(() => { Ea.console[n](`Sentry Logger [${n}]:`, ...t) }) } }) : Da.forEach(e => { t[e] = () => {} }), t }(); function Ba(e, t = 0) { return "string" != typeof e || 0 === t || e.length <= t ? e : `${e.slice(0,t)}...` } function Ua(e, t) { let n = e; const r = n.length; if (r <= 150) return n; t > r && (t = r); let o = Math.max(t - 60, 0); o < 5 && (o = 0); let i = Math.min(o + 140, r); return i > r - 5 && (i = r), i === r && (o = Math.max(i - 140, 0)), n = n.slice(o, i), o > 0 && (n = `'{snip} ${n}`), i < r && (n += " {snip}"), n } function Ga(e, t) { if (!Array.isArray(e)) return ""; const n = []; for (let t = 0; t < e.length; t++) { const r = e[t]; try { wa(r) ? n.push("[VueViewModel]") : n.push(String(r)) } catch (e) { n.push("[value cannot be serialized]") } } return n.join(t) } function $a(e, t, n = !1) { return !!ha(e) && (fa(t, "RegExp") ? t.test(e) : !!ha(t) && (n ? e === t : e.includes(t))) } function Ha(e, t = [], n = !1) { return t.some(t => $a(e, t, n)) } function za(e, t, n) { if (!(t in e)) return; const r = e[t], o = n(r); "function" == typeof o && Wa(o, r), e[t] = o } function qa(e, t, n) { try { Object.defineProperty(e, t, { value: n, writable: !0, configurable: !0 }) } catch (n) { Ma && Fa.log(`Failed to add non-enumerable property "${t}" to object`, e) } } function Wa(e, t) { try { const n = t.prototype || {}; e.prototype = t.prototype = n, qa(e, "__sentry_original__", t) } catch (e) {} } function Va(e) { return e.__sentry_original__ } function Ya(e) { if (la(e)) return { message: e.message, name: e.name, stack: e.stack, ...Ka(e) }; if (va(e)) { const t = { type: e.type, target: Ja(e.target), currentTarget: Ja(e.currentTarget), ...Ka(e) }; return "undefined" != typeof CustomEvent && Sa(e, CustomEvent) && (t.detail = e.detail), t } return e } function Ja(e) { try { return t = e, "undefined" != typeof Element && Sa(t, Element) ? Pa(e) : Object.prototype.toString.call(e) } catch (e) { return "" } var t } function Ka(e) { if ("object" == typeof e && null !== e) { const t = {}; for (const n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); return t } return {} } function Qa(e) { return Xa(e, new Map) } function Xa(e, t) { if (function(e) { if (!ya(e)) return !1; try { const t = Object.getPrototypeOf(e).constructor.name; return !t || "Object" === t } catch (e) { return !0 } }(e)) { const n = t.get(e); if (void 0 !== n) return n; const r = {}; t.set(e, r); for (const n of Object.keys(e)) void 0 !== e[n] && (r[n] = Xa(e[n], t)); return r } if (Array.isArray(e)) { const n = t.get(e); if (void 0 !== n) return n; const r = []; return t.set(e, r), e.forEach(e => { r.push(Xa(e, t)) }), r } return e } const Za = "production", es = "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__; function ts() { const e = Ea, t = e.crypto || e.msCrypto; let n = () => 16 * Math.random(); try { if (t && t.randomUUID) return t.randomUUID().replace(/-/g, ""); t && t.getRandomValues && (n = () => { const e = new Uint8Array(1); return t.getRandomValues(e), e[0] }) } catch (e) {} return ([1e7] + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, e => (e ^ (15 & n()) >> e / 4).toString(16)) } function ns(e) { return e.exception && e.exception.values ? e.exception.values[0] : void 0 } function rs(e) { const { message: t, event_id: n } = e; if (t) return t; const r = ns(e); return r ? r.type && r.value ? `${r.type}: ${r.value}` : r.type || r.value || n || "" : n || "" } function os(e, t, n) { const r = e.exception = e.exception || {}, o = r.values = r.values || [], i = o[0] = o[0] || {}; i.value || (i.value = t || ""), i.type || (i.type = n || "Error") } function is(e, t) { const n = ns(e); if (!n) return; const r = n.mechanism; if (n.mechanism = { type: "generic", handled: !0, ...r, ...t }, t && "data" in t) { const e = { ...r && r.data, ...t.data }; n.mechanism.data = e } } function as(e) { if (e && e.__sentry_captured__) return !0; try { qa(e, "__sentry_captured__", !0) } catch (e) {} return !1 } function ss(e) { return Array.isArray(e) ? e : [e] } const cs = 1e3; function us() { return Date.now() / cs } const ls = function() { const { performance: e } = Ea; if (!e || !e.now) return us; const t = Date.now() - e.now(), n = null == e.timeOrigin ? t : e.timeOrigin; return () => (n + e.now()) / cs }(); let fs; const ds = (() => { const { performance: e } = Ea; if (!e || !e.now) return void(fs = "none"); const t = 36e5, n = e.now(), r = Date.now(), o = e.timeOrigin ? Math.abs(e.timeOrigin + n - r) : t, i = o < t, a = e.timing && e.timing.navigationStart, s = "number" == typeof a ? Math.abs(a + n - r) : t; return i || s < t ? o <= s ? (fs = "timeOrigin", e.timeOrigin) : (fs = "navigationStart", a) : (fs = "dateNow", r) })(); var ps; function hs(e) { return new gs(t => { t(e) }) } function ms(e) { return new gs((t, n) => { n(e) }) }! function(e) { e[e.PENDING = 0] = "PENDING"; e[e.RESOLVED = 1] = "RESOLVED"; e[e.REJECTED = 2] = "REJECTED" }(ps || (ps = {})); class gs { constructor(e) { gs.prototype.__init.call(this), gs.prototype.__init2.call(this), gs.prototype.__init3.call(this), gs.prototype.__init4.call(this), this._state = ps.PENDING, this._handlers = []; try { e(this._resolve, this._reject) } catch (e) { this._reject(e) } } then(e, t) { return new gs((n, r) => { this._handlers.push([!1, t => { if (e) try { n(e(t)) } catch (e) { r(e) } else n(t) }, e => { if (t) try { n(t(e)) } catch (e) { r(e) } else r(e) }]), this._executeHandlers() }) } catch (e) { return this.then(e => e, e) } finally(e) { return new gs((t, n) => { let r, o; return this.then(t => { o = !1, r = t, e && e() }, t => { o = !0, r = t, e && e() }).then(() => { o ? n(r) : t(r) }) }) } __init() { this._resolve = e => { this._setResult(ps.RESOLVED, e) } } __init2() { this._reject = e => { this._setResult(ps.REJECTED, e) } } __init3() { this._setResult = (e, t) => { this._state === ps.PENDING && (ba(t) ? t.then(this._resolve, this._reject) : (this._state = e, this._value = t, this._executeHandlers())) } } __init4() { this._executeHandlers = () => { if (this._state === ps.PENDING) return; const e = this._handlers.slice(); this._handlers = [], e.forEach(e => { e[0] || (this._state === ps.RESOLVED && e[1](this._value), this._state === ps.REJECTED && e[2](this._value), e[0] = !0) }) } } } function ys() { return Ta("globalEventProcessors", () => []) } function vs(e) { ys().push(e) } function bs(e, t, n, r = 0) { return new gs((o, i) => { const a = e[r]; if (null === t || "function" != typeof a) o(t); else { const s = a({ ...t }, n); es && a.id && null === s && Fa.log(`Event processor "${a.id}" dropped event`), ba(s) ? s.then(t => bs(e, t, n, r + 1).then(o)).then(null, i) : bs(e, s, n, r + 1).then(o).then(null, i) } }) } function _s(e) { const t = ls(), n = { sid: ts(), init: !0, timestamp: t, started: t, duration: 0, status: "ok", errors: 0, ignoreDuration: !1, toJSON: () => function(e) { return Qa({ sid: `${e.sid}`, init: e.init, started: new Date(1e3 * e.started).toISOString(), timestamp: new Date(1e3 * e.timestamp).toISOString(), status: e.status, errors: e.errors, did: "number" == typeof e.did || "string" == typeof e.did ? `${e.did}` : void 0, duration: e.duration, abnormal_mechanism: e.abnormal_mechanism, attrs: { release: e.release, environment: e.environment, ip_address: e.ipAddress, user_agent: e.userAgent } }) }(n) }; return e && Ss(n, e), n } function Ss(e, t = {}) { if (t.user && (!e.ipAddress && t.user.ip_address && (e.ipAddress = t.user.ip_address), e.did || t.did || (e.did = t.user.id || t.user.email || t.user.username)), e.timestamp = t.timestamp || ls(), t.abnormal_mechanism && (e.abnormal_mechanism = t.abnormal_mechanism), t.ignoreDuration && (e.ignoreDuration = t.ignoreDuration), t.sid && (e.sid = 32 === t.sid.length ? t.sid : ts()), void 0 !== t.init && (e.init = t.init), !e.did && t.did && (e.did = `${t.did}`), "number" == typeof t.started && (e.started = t.started), e.ignoreDuration) e.duration = void 0; else if ("number" == typeof t.duration) e.duration = t.duration; else { const t = e.timestamp - e.started; e.duration = t >= 0 ? t : 0 } t.release && (e.release = t.release), t.environment && (e.environment = t.environment), !e.ipAddress && t.ipAddress && (e.ipAddress = t.ipAddress), !e.userAgent && t.userAgent && (e.userAgent = t.userAgent), "number" == typeof t.errors && (e.errors = t.errors), t.status && (e.status = t.status) } function ws(e, t) { let n = {}; t ? n = { status: t } : "ok" === e.status && (n = { status: "exited" }), Ss(e, n) } function Os(e) { return e.transaction } const Es = "baggage", ks = "sentry-", Ts = /^sentry-/, xs = 8192; function Is(e) { if (!ha(e) && !Array.isArray(e)) return; let t = {}; if (Array.isArray(e)) t = e.reduce((e, t) => { const n = As(t); for (const t of Object.keys(n)) e[t] = n[t]; return e }, {}); else { if (!e) return; t = As(e) } const n = Object.entries(t).reduce((e, [t, n]) => { if (t.match(Ts)) { e[t.slice(ks.length)] = n } return e }, {}); return Object.keys(n).length > 0 ? n : void 0 } function Ps(e) { if (!e) return; return function(e) { if (0 === Object.keys(e).length) return; return Object.entries(e).reduce((e, [t, n], r) => { const o = `${encodeURIComponent(t)}=${encodeURIComponent(n)}`, i = 0 === r ? o : `${e},${o}`; return i.length > xs ? (Ma && Fa.warn(`Not adding key: ${t} with val: ${n} to baggage header due to exceeding baggage size limits.`), e) : i }, "") }(Object.entries(e).reduce((e, [t, n]) => (n && (e[`${ks}${t}`] = n), e), {})) } function As(e) { return e.split(",").map(e => e.split("=").map(e => decodeURIComponent(e.trim()))).reduce((e, [t, n]) => (e[t] = n, e), {}) } const Cs = new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$"); function js(e) { if (!e) return; const t = e.match(Cs); if (!t) return; let n; return "1" === t[3] ? n = !0 : "0" === t[3] && (n = !1), { traceId: t[1], parentSampled: n, parentSpanId: t[2] } } function Rs(e, t) { const n = js(e), r = Is(t), { traceId: o, parentSpanId: i, parentSampled: a } = n || {}; return n ? { traceId: o || ts(), parentSpanId: i || ts().substring(16), spanId: ts().substring(16), sampled: a, dsc: r || {} } : { traceId: o || ts(), spanId: ts().substring(16) } } function Ms(e = ts(), t = ts().substring(16), n) { let r = ""; return void 0 !== n && (r = n ? "-1" : "-0"), `${e}-${t}${r}` } const Ds = 1; function Ns(e) { const { spanId: t, traceId: n } = e.spanContext(), { data: r, op: o, parent_span_id: i, status: a, tags: s, origin: c } = Us(e); return Qa({ data: r, op: o, parent_span_id: i, span_id: t, status: a, tags: s, trace_id: n, origin: c }) } function Ls(e) { const { traceId: t, spanId: n } = e.spanContext(); return Ms(t, n, Gs(e)) } function Fs(e) { return "number" == typeof e ? Bs(e) : Array.isArray(e) ? e[0] + e[1] / 1e9 : e instanceof Date ? Bs(e.getTime()) : ls() } function Bs(e) { return e > 9999999999 ? e / 1e3 : e } function Us(e) { return function(e) { return "function" == typeof e.getSpanJSON }(e) ? e.getSpanJSON() : "function" == typeof e.toJSON ? e.toJSON() : {} } function Gs(e) { const { traceFlags: t } = e.spanContext(); return Boolean(t & Ds) } function $s(e, t, n) { const r = t.getOptions(), { publicKey: o } = t.getDsn() || {}, { segment: i } = n && n.getUser() || {}, a = Qa({ environment: r.environment || Za, release: r.release, user_segment: i, public_key: o, trace_id: e }); return t.emit && t.emit("createDsc", a), a } function Hs(e) { const t = Uc(); if (!t) return {}; const n = $s(Us(e).trace_id || "", t, $c()), r = Os(e); if (!r) return n; const o = r && r._frozenDynamicSamplingContext; if (o) return o; const { sampleRate: i, source: a } = r.metadata; null != i && (n.sample_rate = `${i}`); const s = Us(r); return a && "url" !== a && (n.transaction = s.description), n.sampled = String(Gs(r)), t.emit && t.emit("createDsc", n), n } function zs(e, t) { const { fingerprint: n, span: r, breadcrumbs: o, sdkProcessingMetadata: i } = t; ! function(e, t) { const { extra: n, tags: r, user: o, contexts: i, level: a, transactionName: s } = t, c = Qa(n); c && Object.keys(c).length && (e.extra = { ...c, ...e.extra }); const u = Qa(r); u && Object.keys(u).length && (e.tags = { ...u, ...e.tags }); const l = Qa(o); l && Object.keys(l).length && (e.user = { ...l, ...e.user }); const f = Qa(i); f && Object.keys(f).length && (e.contexts = { ...f, ...e.contexts }); a && (e.level = a); s && (e.transaction = s) }(e, t), r && function(e, t) { e.contexts = { trace: Ns(t), ...e.contexts }; const n = Os(t); if (n) { e.sdkProcessingMetadata = { dynamicSamplingContext: Hs(t), ...e.sdkProcessingMetadata }; const r = Us(n).description; r && (e.tags = { transaction: r, ...e.tags }) } }(e, r), function(e, t) { e.fingerprint = e.fingerprint ? ss(e.fingerprint) : [], t && (e.fingerprint = e.fingerprint.concat(t)); e.fingerprint && !e.fingerprint.length && delete e.fingerprint }(e, n), function(e, t) { const n = [...e.breadcrumbs || [], ...t]; e.breadcrumbs = n.length ? n : void 0 }(e, o), function(e, t) { e.sdkProcessingMetadata = { ...e.sdkProcessingMetadata, ...t } }(e, i) } function qs(e, t) { const { extra: n, tags: r, user: o, contexts: i, level: a, sdkProcessingMetadata: s, breadcrumbs: c, fingerprint: u, eventProcessors: l, attachments: f, propagationContext: d, transactionName: p, span: h } = t; Ws(e, "extra", n), Ws(e, "tags", r), Ws(e, "user", o), Ws(e, "contexts", i), Ws(e, "sdkProcessingMetadata", s), a && (e.level = a), p && (e.transactionName = p), h && (e.span = h), c.length && (e.breadcrumbs = [...e.breadcrumbs, ...c]), u.length && (e.fingerprint = [...e.fingerprint, ...u]), l.length && (e.eventProcessors = [...e.eventProcessors, ...l]), f.length && (e.attachments = [...e.attachments, ...f]), e.propagationContext = { ...e.propagationContext, ...d } } function Ws(e, t, n) { if (n && Object.keys(n).length) { e[t] = { ...e[t] }; for (const r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[t][r] = n[r]) } } let Vs; class Ys { constructor() { this._notifyingListeners = !1, this._scopeListeners = [], this._eventProcessors = [], this._breadcrumbs = [], this._attachments = [], this._user = {}, this._tags = {}, this._extra = {}, this._contexts = {}, this._sdkProcessingMetadata = {}, this._propagationContext = Js() } static clone(e) { return e ? e.clone() : new Ys } clone() { const e = new Ys; return e._breadcrumbs = [...this._breadcrumbs], e._tags = { ...this._tags }, e._extra = { ...this._extra }, e._contexts = { ...this._contexts }, e._user = this._user, e._level = this._level, e._span = this._span, e._session = this._session, e._transactionName = this._transactionName, e._fingerprint = this._fingerprint, e._eventProcessors = [...this._eventProcessors], e._requestSession = this._requestSession, e._attachments = [...this._attachments], e._sdkProcessingMetadata = { ...this._sdkProcessingMetadata }, e._propagationContext = { ...this._propagationContext }, e._client = this._client, e } setClient(e) { this._client = e } getClient() { return this._client } addScopeListener(e) { this._scopeListeners.push(e) } addEventProcessor(e) { return this._eventProcessors.push(e), this } setUser(e) { return this._user = e || { email: void 0, id: void 0, ip_address: void 0, segment: void 0, username: void 0 }, this._session && Ss(this._session, { user: e }), this._notifyScopeListeners(), this } getUser() { return this._user } getRequestSession() { return this._requestSession } setRequestSession(e) { return this._requestSession = e, this } setTags(e) { return this._tags = { ...this._tags, ...e }, this._notifyScopeListeners(), this } setTag(e, t) { return this._tags = { ...this._tags, [e]: t }, this._notifyScopeListeners(), this } setExtras(e) { return this._extra = { ...this._extra, ...e }, this._notifyScopeListeners(), this } setExtra(e, t) { return this._extra = { ...this._extra, [e]: t }, this._notifyScopeListeners(), this } setFingerprint(e) { return this._fingerprint = e, this._notifyScopeListeners(), this } setLevel(e) { return this._level = e, this._notifyScopeListeners(), this } setTransactionName(e) { return this._transactionName = e, this._notifyScopeListeners(), this } setContext(e, t) { return null === t ? delete this._contexts[e] : this._contexts[e] = t, this._notifyScopeListeners(), this } setSpan(e) { return this._span = e, this._notifyScopeListeners(), this } getSpan() { return this._span } getTransaction() { const e = this._span; return e && e.transaction } setSession(e) { return e ? this._session = e : delete this._session, this._notifyScopeListeners(), this } getSession() { return this._session } update(e) { if (!e) return this; const t = "function" == typeof e ? e(this) : e; if (t instanceof Ys) { const e = t.getScopeData(); this._tags = { ...this._tags, ...e.tags }, this._extra = { ...this._extra, ...e.extra }, this._contexts = { ...this._contexts, ...e.contexts }, e.user && Object.keys(e.user).length && (this._user = e.user), e.level && (this._level = e.level), e.fingerprint.length && (this._fingerprint = e.fingerprint), t.getRequestSession() && (this._requestSession = t.getRequestSession()), e.propagationContext && (this._propagationContext = e.propagationContext) } else if (ya(t)) { const t = e; this._tags = { ...this._tags, ...t.tags }, this._extra = { ...this._extra, ...t.extra }, this._contexts = { ...this._contexts, ...t.contexts }, t.user && (this._user = t.user), t.level && (this._level = t.level), t.fingerprint && (this._fingerprint = t.fingerprint), t.requestSession && (this._requestSession = t.requestSession), t.propagationContext && (this._propagationContext = t.propagationContext) } return this } clear() { return this._breadcrumbs = [], this._tags = {}, this._extra = {}, this._user = {}, this._contexts = {}, this._level = void 0, this._transactionName = void 0, this._fingerprint = void 0, this._requestSession = void 0, this._span = void 0, this._session = void 0, this._notifyScopeListeners(), this._attachments = [], this._propagationContext = Js(), this } addBreadcrumb(e, t) { const n = "number" == typeof t ? t : 100; if (n <= 0) return this; const r = { timestamp: us(), ...e }, o = this._breadcrumbs; return o.push(r), this._breadcrumbs = o.length > n ? o.slice(-n) : o, this._notifyScopeListeners(), this } getLastBreadcrumb() { return this._breadcrumbs[this._breadcrumbs.length - 1] } clearBreadcrumbs() { return this._breadcrumbs = [], this._notifyScopeListeners(), this } addAttachment(e) { return this._attachments.push(e), this } getAttachments() { return this.getScopeData().attachments } clearAttachments() { return this._attachments = [], this } getScopeData() { const { _breadcrumbs: e, _attachments: t, _contexts: n, _tags: r, _extra: o, _user: i, _level: a, _fingerprint: s, _eventProcessors: c, _propagationContext: u, _sdkProcessingMetadata: l, _transactionName: f, _span: d } = this; return { breadcrumbs: e, attachments: t, contexts: n, tags: r, extra: o, user: i, level: a, fingerprint: s || [], eventProcessors: c, propagationContext: u, sdkProcessingMetadata: l, transactionName: f, span: d } } applyToEvent(e, t = {}, n = []) { zs(e, this.getScopeData()); return bs([...n, ...ys(), ...this._eventProcessors], e, t) } setSDKProcessingMetadata(e) { return this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...e }, this } setPropagationContext(e) { return this._propagationContext = e, this } getPropagationContext() { return this._propagationContext } captureException(e, t) { const n = t && t.event_id ? t.event_id : ts(); if (!this._client) return Fa.warn("No client configured on scope - will not capture exception!"), n; const r = new Error("Sentry syntheticException"); return this._client.captureException(e, { originalException: e, syntheticException: r, ...t, event_id: n }, this), n } captureMessage(e, t, n) { const r = n && n.event_id ? n.event_id : ts(); if (!this._client) return Fa.warn("No client configured on scope - will not capture message!"), r; const o = new Error(e); return this._client.captureMessage(e, t, { originalException: e, syntheticException: o, ...n, event_id: r }, this), r } captureEvent(e, t) { const n = t && t.event_id ? t.event_id : ts(); return this._client ? (this._client.captureEvent(e, { ...t, event_id: n }, this), n) : (Fa.warn("No client configured on scope - will not capture event!"), n) } _notifyScopeListeners() { this._notifyingListeners || (this._notifyingListeners = !0, this._scopeListeners.forEach(e => { e(this) }), this._notifyingListeners = !1) } } function Js() { return { traceId: ts(), spanId: ts().substring(16) } } const Ks = "7.120.4", Qs = parseFloat(Ks), Xs = 100; class Zs { constructor(e, t, n, r = Qs) { let o, i; this._version = r, t ? o = t : (o = new Ys, o.setClient(e)), n ? i = n : (i = new Ys, i.setClient(e)), this._stack = [{ scope: o }], e && this.bindClient(e), this._isolationScope = i } isOlderThan(e) { return this._version < e } bindClient(e) { const t = this.getStackTop(); t.client = e, t.scope.setClient(e), e && e.setupIntegrations && e.setupIntegrations() } pushScope() { const e = this.getScope().clone(); return this.getStack().push({ client: this.getClient(), scope: e }), e } popScope() { return !(this.getStack().length <= 1) && !!this.getStack().pop() } withScope(e) { const t = this.pushScope(); let n; try { n = e(t) } catch (e) { throw this.popScope(), e } return ba(n) ? n.then(e => (this.popScope(), e), e => { throw this.popScope(), e }) : (this.popScope(), n) } getClient() { return this.getStackTop().client } getScope() { return this.getStackTop().scope } getIsolationScope() { return this._isolationScope } getStack() { return this._stack } getStackTop() { return this._stack[this._stack.length - 1] } captureException(e, t) { const n = this._lastEventId = t && t.event_id ? t.event_id : ts(), r = new Error("Sentry syntheticException"); return this.getScope().captureException(e, { originalException: e, syntheticException: r, ...t, event_id: n }), n } captureMessage(e, t, n) { const r = this._lastEventId = n && n.event_id ? n.event_id : ts(), o = new Error(e); return this.getScope().captureMessage(e, t, { originalException: e, syntheticException: o, ...n, event_id: r }), r } captureEvent(e, t) { const n = t && t.event_id ? t.event_id : ts(); return e.type || (this._lastEventId = n), this.getScope().captureEvent(e, { ...t, event_id: n }), n } lastEventId() { return this._lastEventId } addBreadcrumb(e, t) { const { scope: n, client: r } = this.getStackTop(); if (!r) return; const { beforeBreadcrumb: o = null, maxBreadcrumbs: i = Xs } = r.getOptions && r.getOptions() || {}; if (i <= 0) return; const a = { timestamp: us(), ...e }, s = o ? La(() => o(a, t)) : a; null !== s && (r.emit && r.emit("beforeAddBreadcrumb", s, t), n.addBreadcrumb(s, i)) } setUser(e) { this.getScope().setUser(e), this.getIsolationScope().setUser(e) } setTags(e) { this.getScope().setTags(e), this.getIsolationScope().setTags(e) } setExtras(e) { this.getScope().setExtras(e), this.getIsolationScope().setExtras(e) } setTag(e, t) { this.getScope().setTag(e, t), this.getIsolationScope().setTag(e, t) } setExtra(e, t) { this.getScope().setExtra(e, t), this.getIsolationScope().setExtra(e, t) } setContext(e, t) { this.getScope().setContext(e, t), this.getIsolationScope().setContext(e, t) } configureScope(e) { const { scope: t, client: n } = this.getStackTop(); n && e(t) } run(e) { const t = tc(this); try { e(this) } finally { tc(t) } } getIntegration(e) { const t = this.getClient(); if (!t) return null; try { return t.getIntegration(e) } catch (t) { return es && Fa.warn(`Cannot retrieve integration ${e.id} from the current Hub`), null } } startTransaction(e, t) { const n = this._callExtensionMethod("startTransaction", e, t); if (es && !n) { this.getClient() ? Fa.warn("Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n") : Fa.warn("Tracing extension 'startTransaction' is missing. You should 'init' the SDK before calling 'startTransaction'") } return n } traceHeaders() { return this._callExtensionMethod("traceHeaders") } captureSession(e = !1) { if (e) return this.endSession(); this._sendSessionUpdate() } endSession() { const e = this.getStackTop().scope, t = e.getSession(); t && ws(t), this._sendSessionUpdate(), e.setSession() } startSession(e) { const { scope: t, client: n } = this.getStackTop(), { release: r, environment: o = Za } = n && n.getOptions() || {}, { userAgent: i } = Ea.navigator || {}, a = _s({ release: r, environment: o, user: t.getUser(), ...i && { userAgent: i }, ...e }), s = t.getSession && t.getSession(); return s && "ok" === s.status && Ss(s, { status: "exited" }), this.endSession(), t.setSession(a), a } shouldSendDefaultPii() { const e = this.getClient(), t = e && e.getOptions(); return Boolean(t && t.sendDefaultPii) } _sendSessionUpdate() { const { scope: e, client: t } = this.getStackTop(), n = e.getSession(); n && t && t.captureSession && t.captureSession(n) } _callExtensionMethod(e, ...t) { const n = ec().__SENTRY__; if (n && n.extensions && "function" == typeof n.extensions[e]) return n.extensions[e].apply(this, t); es && Fa.warn(`Extension method ${e} couldn't be found, doing nothing.`) } } function ec() { return Ea.__SENTRY__ = Ea.__SENTRY__ || { extensions: {}, hub: void 0 }, Ea } function tc(e) { const t = ec(), n = sc(t); return cc(t, e), n } function nc() { const e = ec(); if (e.__SENTRY__ && e.__SENTRY__.acs) { const t = e.__SENTRY__.acs.getCurrentHub(); if (t) return t } return oc(e) } function rc() { return nc().getIsolationScope() } function oc(e = ec()) { return ac(e) && !sc(e).isOlderThan(Qs) || cc(e, new Zs), sc(e) } function ic(e, t = {}) { const n = ec(); return n.__SENTRY__ && n.__SENTRY__.acs ? n.__SENTRY__.acs.runWithAsyncContext(e, t) : e() } function ac(e) { return !!(e && e.__SENTRY__ && e.__SENTRY__.hub) } function sc(e) { return Ta("hub", () => new Zs, e) } function cc(e, t) { if (!e) return !1; return (e.__SENTRY__ = e.__SENTRY__ || {}).hub = t, !0 } const uc = 50, lc = /\(error: (.*)\)/, fc = /captureMessage|captureException/; function dc(...e) { const t = e.sort((e, t) => e[0] - t[0]).map(e => e[1]); return (e, n = 0) => { const r = [], o = e.split("\n"); for (let e = n; e < o.length; e++) { const n = o[e]; if (n.length > 1024) continue; const i = lc.test(n) ? n.replace(lc, "$1") : n; if (!i.match(/\S*Error: /)) { for (const e of t) { const t = e(i); if (t) { r.push(t); break } } if (r.length >= uc) break } } return function(e) { if (!e.length) return []; const t = Array.from(e); /sentryWrapped/.test(t[t.length - 1].function || "") && t.pop(); t.reverse(), fc.test(t[t.length - 1].function || "") && (t.pop(), fc.test(t[t.length - 1].function || "") && t.pop()); return t.slice(0, uc).map(e => ({ ...e, filename: e.filename || t[t.length - 1].filename, function: e.function || "?" })) }(r) } } const pc = ""; function hc(e) { try { return e && "function" == typeof e && e.name || pc } catch (e) { return pc } } function mc(e, t = 100, n = 1 / 0) { try { return yc("", e, t, n) } catch (e) { return { ERROR: `**non-serializable** (${e})` } } } function gc(e, t = 3, n = 102400) { const r = mc(e, t); return o = r, function(e) { return ~-encodeURI(e).split(/%..|./).length }(JSON.stringify(o)) > n ? gc(e, t - 1, n) : r; var o } function yc(e, t, r = 1 / 0, o = 1 / 0, i = function() { const e = "function" == typeof WeakSet, t = e ? new WeakSet : []; return [function(n) { if (e) return !!t.has(n) || (t.add(n), !1); for (let e = 0; e < t.length; e++) if (t[e] === n) return !0; return t.push(n), !1 }, function(n) { if (e) t.delete(n); else for (let e = 0; e < t.length; e++) if (t[e] === n) { t.splice(e, 1); break } }] }()) { const [a, s] = i; if (null == t || ["number", "boolean", "string"].includes(typeof t) && !_a(t)) return t; const c = function(e, t) { try { if ("domain" === e && t && "object" == typeof t && t._events) return "[Domain]"; if ("domainEmitter" === e) return "[DomainEmitter]"; if (void 0 !== n.g && t === n.g) return "[Global]"; if ("undefined" != typeof window && t === window) return "[Window]"; if ("undefined" != typeof document && t === document) return "[Document]"; if (wa(t)) return "[VueViewModel]"; if (ya(r = t) && "nativeEvent" in r && "preventDefault" in r && "stopPropagation" in r) return "[SyntheticEvent]"; if ("number" == typeof t && t != t) return "[NaN]"; if ("function" == typeof t) return `[Function: ${hc(t)}]`; if ("symbol" == typeof t) return `[${String(t)}]`; if ("bigint" == typeof t) return `[BigInt: ${String(t)}]`; const o = function(e) { const t = Object.getPrototypeOf(e); return t ? t.constructor.name : "null prototype" }(t); return /^HTML(\w*)Element$/.test(o) ? `[HTMLElement: ${o}]` : `[object ${o}]` } catch (e) { return `**non-serializable** (${e})` } var r }(e, t); if (!c.startsWith("[object ")) return c; if (t.__sentry_skip_normalization__) return t; const u = "number" == typeof t.__sentry_override_normalization_depth__ ? t.__sentry_override_normalization_depth__ : r; if (0 === u) return c.replace("object ", ""); if (a(t)) return "[Circular ~]"; const l = t; if (l && "function" == typeof l.toJSON) try { return yc("", l.toJSON(), u - 1, o, i) } catch (e) {} const f = Array.isArray(t) ? [] : {}; let d = 0; const p = Ya(t); for (const e in p) { if (!Object.prototype.hasOwnProperty.call(p, e)) continue; if (d >= o) { f[e] = "[MaxProperties ~]"; break } const t = p[e]; f[e] = yc(e, t, u - 1, o, i), d++ } return s(t), f } function vc(e, t, n, r, o, i) { const { normalizeDepth: a = 3, normalizeMaxBreadth: s = 1e3 } = e, c = { ...t, event_id: t.event_id || n.event_id || ts(), timestamp: t.timestamp || us() }, u = n.integrations || e.integrations.map(e => e.name); ! function(e, t) { const { environment: n, release: r, dist: o, maxValueLength: i = 250 } = t; "environment" in e || (e.environment = "environment" in t ? n : Za); void 0 === e.release && void 0 !== r && (e.release = r); void 0 === e.dist && void 0 !== o && (e.dist = o); e.message && (e.message = Ba(e.message, i)); const a = e.exception && e.exception.values && e.exception.values[0]; a && a.value && (a.value = Ba(a.value, i)); const s = e.request; s && s.url && (s.url = Ba(s.url, i)) }(c, e), function(e, t) { t.length > 0 && (e.sdk = e.sdk || {}, e.sdk.integrations = [...e.sdk.integrations || [], ...t]) }(c, u), void 0 === t.type && function(e, t) { const n = Ea._sentryDebugIds; if (!n) return; let r; const o = bc.get(t); o ? r = o : (r = new Map, bc.set(t, r)); const i = Object.keys(n).reduce((e, o) => { let i; const a = r.get(o); a ? i = a : (i = t(o), r.set(o, i)); for (let t = i.length - 1; t >= 0; t--) { const r = i[t]; if (r.filename) { e[r.filename] = n[o]; break } } return e }, {}); try { e.exception.values.forEach(e => { e.stacktrace.frames.forEach(e => { e.filename && (e.debug_id = i[e.filename]) }) }) } catch (e) {} }(c, e.stackParser); const l = function(e, t) { if (!t) return e; const n = e ? e.clone() : new Ys; return n.update(t), n }(r, n.captureContext); n.mechanism && is(c, n.mechanism); const f = o && o.getEventProcessors ? o.getEventProcessors() : [], d = (Vs || (Vs = new Ys), Vs).getScopeData(); if (i) { qs(d, i.getScopeData()) } if (l) { qs(d, l.getScopeData()) } const p = [...n.attachments || [], ...d.attachments]; p.length && (n.attachments = p), zs(c, d); return bs([...f, ...ys(), ...d.eventProcessors], c, n).then(e => (e && function(e) { const t = {}; try { e.exception.values.forEach(e => { e.stacktrace.frames.forEach(e => { e.debug_id && (e.abs_path ? t[e.abs_path] = e.debug_id : e.filename && (t[e.filename] = e.debug_id), delete e.debug_id) }) }) } catch (e) {} if (0 === Object.keys(t).length) return; e.debug_meta = e.debug_meta || {}, e.debug_meta.images = e.debug_meta.images || []; const n = e.debug_meta.images; Object.keys(t).forEach(e => { n.push({ type: "sourcemap", code_file: e, debug_id: t[e] }) }) }(e), "number" == typeof a && a > 0 ? function(e, t, n) { if (!e) return null; const r = { ...e, ...e.breadcrumbs && { breadcrumbs: e.breadcrumbs.map(e => ({ ...e, ...e.data && { data: mc(e.data, t, n) } })) }, ...e.user && { user: mc(e.user, t, n) }, ...e.contexts && { contexts: mc(e.contexts, t, n) }, ...e.extra && { extra: mc(e.extra, t, n) } }; e.contexts && e.contexts.trace && r.contexts && (r.contexts.trace = e.contexts.trace, e.contexts.trace.data && (r.contexts.trace.data = mc(e.contexts.trace.data, t, n))); e.spans && (r.spans = e.spans.map(e => { const r = Us(e).data; return r && (e.data = mc(r, t, n)), e })); return r }(e, a, s) : e)) } const bc = new WeakMap; function _c(e) { if (e) return function(e) { return e instanceof Ys || "function" == typeof e }(e) || function(e) { return Object.keys(e).some(e => Sc.includes(e)) }(e) ? { captureContext: e } : e } const Sc = ["user", "level", "extra", "contexts", "tags", "fingerprint", "requestSession", "propagationContext"]; function wc(e, t) { return nc().captureException(e, _c(t)) } function Oc(e, t) { const n = "string" == typeof t ? t : void 0, r = "string" != typeof t ? { captureContext: t } : void 0; return nc().captureMessage(e, n, r) } function Ec(e, t) { return nc().captureEvent(e, t) } function kc(e) { nc().configureScope(e) } function Tc(e, t) { nc().addBreadcrumb(e, t) } function xc(e, t) { nc().setContext(e, t) } function Ic(e) { nc().setExtras(e) } function Pc(e, t) { nc().setExtra(e, t) } function Ac(e) { nc().setTags(e) } function Cc(e, t) { nc().setTag(e, t) } function jc(e) { nc().setUser(e) } function Rc(...e) { const t = nc(); if (2 === e.length) { const [n, r] = e; return n ? t.withScope(() => (t.getStackTop().scope = n, r(n))) : t.withScope(r) } return t.withScope(e[0]) } function Mc(e) { return ic(() => e(rc())) } function Dc(e, t) { return Rc(n => (n.setSpan(e), t(n))) } function Nc(e, t) { return nc().startTransaction({ ...e }, t) } async function Lc(e) { const t = Uc(); return t ? t.flush(e) : (es && Fa.warn("Cannot flush events. No client defined."), Promise.resolve(!1)) } async function Fc(e) { const t = Uc(); return t ? t.close(e) : (es && Fa.warn("Cannot flush events and disable SDK. No client defined."), Promise.resolve(!1)) } function Bc() { return nc().lastEventId() } function Uc() { return nc().getClient() } function Gc() { return !!Uc() } function $c() { return nc().getScope() } function Hc(e) { const t = Uc(), n = rc(), r = $c(), { release: o, environment: i = Za } = t && t.getOptions() || {}, { userAgent: a } = Ea.navigator || {}, s = _s({ release: o, environment: i, user: r.getUser() || n.getUser(), ...a && { userAgent: a }, ...e }), c = n.getSession(); return c && "ok" === c.status && Ss(c, { status: "exited" }), zc(), n.setSession(s), r.setSession(s), s } function zc() { const e = rc(), t = $c(), n = t.getSession() || e.getSession(); n && ws(n), qc(), e.setSession(), t.setSession() } function qc() { const e = rc(), t = $c(), n = Uc(), r = t.getSession() || e.getSession(); r && n && n.captureSession && n.captureSession(r) } function Wc(e = !1) { e ? zc() : qc() } const Vc = []; function Yc(e) { const t = e.defaultIntegrations || [], n = e.integrations; let r; t.forEach(e => { e.isDefaultInstance = !0 }), r = Array.isArray(n) ? [...t, ...n] : "function" == typeof n ? ss(n(t)) : t; const o = function(e) { const t = {}; return e.forEach(e => { const { name: n } = e, r = t[n]; r && !r.isDefaultInstance && e.isDefaultInstance || (t[n] = e) }), Object.keys(t).map(e => t[e]) }(r), i = function(e, t) { for (let n = 0; n < e.length; n++) if (!0 === t(e[n])) return n; return -1 }(o, e => "Debug" === e.name); if (-1 !== i) { const [e] = o.splice(i, 1); o.push(e) } return o } function Jc(e, t) { for (const n of t) n && n.afterAllSetup && n.afterAllSetup(e) } function Kc(e, t, n) { if (n[t.name]) es && Fa.log(`Integration skipped because it was already installed: ${t.name}`); else { if (n[t.name] = t, -1 === Vc.indexOf(t.name) && (t.setupOnce(vs, nc), Vc.push(t.name)), t.setup && "function" == typeof t.setup && t.setup(e), e.on && "function" == typeof t.preprocessEvent) { const n = t.preprocessEvent.bind(t); e.on("preprocessEvent", (t, r) => n(t, r, e)) } if (e.addEventProcessor && "function" == typeof t.processEvent) { const n = t.processEvent.bind(t), r = (t, r) => n(t, r, e); r.id = t.name, e.addEventProcessor(r) } es && Fa.log(`Integration installed: ${t.name}`) } } function Qc(e) { const t = Uc(); t && t.addIntegration ? t.addIntegration(e) : es && Fa.warn(`Cannot add integration "${e.name}" because no SDK Client is available.`) } function Xc(e, t) { const n = function(...e) { return t(...e) }; return n.id = e, n } let Zc; const eu = "FunctionToString", tu = new WeakMap, nu = () => ({ name: eu, setupOnce() { Zc = Function.prototype.toString; try { Function.prototype.toString = function(...e) { const t = Va(this), n = tu.has(Uc()) && void 0 !== t ? t : this; return Zc.apply(n, e) } } catch (e) {} }, setup(e) { tu.set(e, !0) } }), ru = Xc(eu, nu), ou = [/^Script error\.?$/, /^Javascript error: Script error\.? on line 0$/, /^ResizeObserver loop completed with undelivered notifications.$/, /^Cannot redefine property: googletag$/], iu = [/^.*\/healthcheck$/, /^.*\/healthy$/, /^.*\/live$/, /^.*\/ready$/, /^.*\/heartbeat$/, /^.*\/health$/, /^.*\/healthz$/], au = "InboundFilters", su = (e = {}) => ({ name: au, setupOnce() {}, processEvent(t, n, r) { const o = r.getOptions(), i = function(e = {}, t = {}) { return { allowUrls: [...e.allowUrls || [], ...t.allowUrls || []], denyUrls: [...e.denyUrls || [], ...t.denyUrls || []], ignoreErrors: [...e.ignoreErrors || [], ...t.ignoreErrors || [], ...e.disableErrorDefaults ? [] : ou], ignoreTransactions: [...e.ignoreTransactions || [], ...t.ignoreTransactions || [], ...e.disableTransactionDefaults ? [] : iu], ignoreInternal: void 0 === e.ignoreInternal || e.ignoreInternal } }(e, o); return function(e, t) { if (t.ignoreInternal && function(e) { try { return "SentryError" === e.exception.values[0].type } catch (e) {} return !1 }(e)) return es && Fa.warn(`Event dropped due to being internal Sentry Error.\nEvent: ${rs(e)}`), !0; if (function(e, t) { if (e.type || !t || !t.length) return !1; return function(e) { const t = []; e.message && t.push(e.message); let n; try { n = e.exception.values[e.exception.values.length - 1] } catch (e) {} n && n.value && (t.push(n.value), n.type && t.push(`${n.type}: ${n.value}`)); es && 0 === t.length && Fa.error(`Could not extract message for event ${rs(e)}`); return t }(e).some(e => Ha(e, t)) }(e, t.ignoreErrors)) return es && Fa.warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${rs(e)}`), !0; if (function(e, t) { if ("transaction" !== e.type || !t || !t.length) return !1; const n = e.transaction; return !!n && Ha(n, t) }(e, t.ignoreTransactions)) return es && Fa.warn(`Event dropped due to being matched by \`ignoreTransactions\` option.\nEvent: ${rs(e)}`), !0; if (function(e, t) { if (!t || !t.length) return !1; const n = uu(e); return !!n && Ha(n, t) }(e, t.denyUrls)) return es && Fa.warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${rs(e)}.\nUrl: ${uu(e)}`), !0; if (! function(e, t) { if (!t || !t.length) return !0; const n = uu(e); return !n || Ha(n, t) }(e, t.allowUrls)) return es && Fa.warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${rs(e)}.\nUrl: ${uu(e)}`), !0; return !1 }(t, i) ? null : t } }), cu = Xc(au, su); function uu(e) { try { let t; try { t = e.exception.values[0].stacktrace.frames } catch (e) {} return t ? function(e = []) { for (let t = e.length - 1; t >= 0; t--) { const n = e[t]; if (n && "" !== n.filename && "[native code]" !== n.filename) return n.filename || null } return null }(t) : null } catch (t) { return es && Fa.error(`Cannot extract url for event ${rs(e)}`), null } } function lu(e, t, n = 250, r, o, i, a) { if (!(i.exception && i.exception.values && a && Sa(a.originalException, Error))) return; const s = i.exception.values.length > 0 ? i.exception.values[i.exception.values.length - 1] : void 0; var c, u; s && (i.exception.values = (c = fu(e, t, o, a.originalException, r, i.exception.values, s, 0), u = n, c.map(e => (e.value && (e.value = Ba(e.value, u)), e)))) } function fu(e, t, n, r, o, i, a, s) { if (i.length >= n + 1) return i; let c = [...i]; if (Sa(r[o], Error)) { du(a, s); const i = e(t, r[o]), u = c.length; pu(i, o, u, s), c = fu(e, t, n, r[o], o, [i, ...c], i, u) } return Array.isArray(r.errors) && r.errors.forEach((r, i) => { if (Sa(r, Error)) { du(a, s); const u = e(t, r), l = c.length; pu(u, `errors[${i}]`, l, s), c = fu(e, t, n, r, o, [u, ...c], u, l) } }), c } function du(e, t) { e.mechanism = e.mechanism || { type: "generic", handled: !0 }, e.mechanism = { ...e.mechanism, ..."AggregateError" === e.type && { is_exception_group: !0 }, exception_id: t } } function pu(e, t, n, r) { e.mechanism = e.mechanism || { type: "generic", handled: !0 }, e.mechanism = { ...e.mechanism, type: "chained", source: t, exception_id: n, parent_id: r } } function hu(e, t) { return e(t.stack || "", 1) } function mu(e, t) { const n = { type: t.name || t.constructor.name, value: t.message }, r = hu(e, t); return r.length && (n.stacktrace = { frames: r }), n } const gu = "LinkedErrors", yu = Xc(gu, (e = {}) => { const t = e.limit || 5, n = e.key || "cause"; return { name: gu, setupOnce() {}, preprocessEvent(e, r, o) { const i = o.getOptions(); lu(mu, i.stackParser, i.maxValueLength, n, t, e, r) } } }), vu = r, bu = /^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/; function _u(e, t = !1) { const { host: n, path: r, pass: o, port: i, projectId: a, protocol: s, publicKey: c } = e; return `${s}://${c}${t&&o?`:${o}`:""}@${n}${i?`:${i}`:""}/${r?`${r}/`:r}${a}` } function Su(e) { const t = bu.exec(e); if (!t) return void La(() => { console.error(`Invalid Sentry Dsn: ${e}`) }); const [n, r, o = "", i, a = "", s] = t.slice(1); let c = "", u = s; const l = u.split("/"); if (l.length > 1 && (c = l.slice(0, -1).join("/"), u = l.pop()), u) { const e = u.match(/^\d+/); e && (u = e[0]) } return wu({ host: i, pass: o, path: c, projectId: u, port: a, protocol: n, publicKey: r }) } function wu(e) { return { protocol: e.protocol, publicKey: e.publicKey || "", pass: e.pass || "", host: e.host, port: e.port || "", path: e.path || "", projectId: e.projectId } } function Ou(e) { const t = "string" == typeof e ? Su(e) : wu(e); if (t && function(e) { if (!Ma) return !0; const { port: t, projectId: n, protocol: r } = e; return !(["protocol", "publicKey", "host", "projectId"].find(t => !e[t] && (Fa.error(`Invalid Sentry Dsn: ${t} missing`), !0)) || (n.match(/^\d+$/) ? function(e) { return "http" === e || "https" === e }(r) ? t && isNaN(parseInt(t, 10)) && (Fa.error(`Invalid Sentry Dsn: Invalid port ${t}`), 1) : (Fa.error(`Invalid Sentry Dsn: Invalid protocol ${r}`), 1) : (Fa.error(`Invalid Sentry Dsn: Invalid projectId ${n}`), 1))) }(t)) return t } function Eu(e, t = []) { return [e, t] } function ku(e, t) { const [n, r] = e; return [n, [...r, t]] } function Tu(e, t) { const n = e[1]; for (const e of n) { if (t(e, e[0].type)) return !0 } return !1 } function xu(e, t) { return (t || new TextEncoder).encode(e) } function Iu(e, t) { const [n, r] = e; let o = JSON.stringify(n); function i(e) { "string" == typeof o ? o = "string" == typeof e ? o + e : [xu(o, t), e] : o.push("string" == typeof e ? xu(e, t) : e) } for (const e of r) { const [t, n] = e; if (i(`\n${JSON.stringify(t)}\n`), "string" == typeof n || n instanceof Uint8Array) i(n); else { let e; try { e = JSON.stringify(n) } catch (t) { e = JSON.stringify(mc(n)) } i(e) } } return "string" == typeof o ? o : function(e) { const t = e.reduce((e, t) => e + t.length, 0), n = new Uint8Array(t); let r = 0; for (const t of e) n.set(t, r), r += t.length; return n }(o) } function Pu(e, t) { const n = "string" == typeof e.data ? xu(e.data, t) : e.data; return [Qa({ type: "attachment", length: n.length, filename: e.filename, content_type: e.contentType, attachment_type: e.attachmentType }), n] } const Au = { session: "session", sessions: "session", attachment: "attachment", transaction: "transaction", event: "error", client_report: "internal", user_report: "default", profile: "profile", replay_event: "replay", replay_recording: "replay", check_in: "monitor", feedback: "feedback", span: "span", statsd: "metric_bucket" }; function Cu(e) { return Au[e] } function ju(e) { if (!e || !e.sdk) return; const { name: t, version: n } = e.sdk; return { name: t, version: n } } function Ru(e, t, n, r) { const o = e.sdkProcessingMetadata && e.sdkProcessingMetadata.dynamicSamplingContext; return { event_id: e.event_id, sent_at: (new Date).toISOString(), ...t && { sdk: t }, ...!!n && r && { dsn: _u(r) }, ...o && { trace: Qa({ ...o }) } } } const Mu = new Map, Du = new Set; function Nu(e, t) { return function(e) { if (Ea._sentryModuleMetadata) for (const t of Object.keys(Ea._sentryModuleMetadata)) { const n = Ea._sentryModuleMetadata[t]; if (Du.has(t)) continue; Du.add(t); const r = e(t); for (const e of r.reverse()) if (e.filename) { Mu.set(e.filename, n); break } } }(e), Mu.get(t) } const Lu = "ModuleMetadata", Fu = () => ({ name: Lu, setupOnce() {}, setup(e) { "function" == typeof e.on && e.on("beforeEnvelope", e => { Tu(e, (e, t) => { if ("event" === t) { const t = Array.isArray(e) ? e[1] : void 0; t && (! function(e) { try { e.exception.values.forEach(e => { if (e.stacktrace) for (const t of e.stacktrace.frames || []) delete t.module_metadata }) } catch (e) {} }(t), e[1] = t) } }) }) }, processEvent: (e, t, n) => (function(e, t) { try { t.exception.values.forEach(t => { if (t.stacktrace) for (const n of t.stacktrace.frames || []) { if (!n.filename) continue; const t = Nu(e, n.filename); t && (n.module_metadata = t) } }) } catch (e) {} }(n.getOptions().stackParser, e), e) }), Bu = Xc(Lu, Fu), Uu = "sentry.source", Gu = "sentry.sample_rate", $u = "sentry.op", Hu = "sentry.origin"; class zu extends Error { constructor(e, t = "warn") { super(e), this.message = e, this.name = new.target.prototype.constructor.name, Object.setPrototypeOf(this, new.target.prototype), this.logLevel = t } } const qu = "7"; function Wu(e) { const t = e.protocol ? `${e.protocol}:` : "", n = e.port ? `:${e.port}` : ""; return `${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/` } function Vu(e, t) { return n = { sentry_key: e.publicKey, sentry_version: qu, ...t && { sentry_client: `${t.name}/${t.version}` } }, Object.keys(n).map(e => `${encodeURIComponent(e)}=${encodeURIComponent(n[e])}`).join("&"); var n } function Yu(e, t = {}) { const n = "string" == typeof t ? t : t.tunnel, r = "string" != typeof t && t._metadata ? t._metadata.sdk : void 0; return n || `${function(e){return`${Wu(e)}${e.projectId}/envelope/`}(e)}?${Vu(e,r)}` } function Ju(e, t, n, r) { const o = ju(n), i = e.type && "replay_event" !== e.type ? e.type : "event"; ! function(e, t) { t && (e.sdk = e.sdk || {}, e.sdk.name = e.sdk.name || t.name, e.sdk.version = e.sdk.version || t.version, e.sdk.integrations = [...e.sdk.integrations || [], ...t.integrations || []], e.sdk.packages = [...e.sdk.packages || [], ...t.packages || []]) }(e, n && n.sdk); const a = Ru(e, o, r, t); delete e.sdkProcessingMetadata; return Eu(a, [ [{ type: i }, e] ]) } function Ku(e) { return e.replace(/[^\w\-./]+/gi, "") } const Qu = [ ["\n", "\\n"], ["\r", "\\r"], ["\t", "\\t"], ["\\", "\\\\"], ["|", "\\u{7c}"], [",", "\\u{2c}"] ]; function Xu(e) { return [...e].reduce((e, t) => e + function(e) { for (const [t, n] of Qu) if (e === t) return n; return e }(t), "") } function Zu(e, t, n, r) { const o = { sent_at: (new Date).toISOString() }; n && n.sdk && (o.sdk = { name: n.sdk.name, version: n.sdk.version }), r && t && (o.dsn = _u(t)); const i = function(e) { const t = function(e) { let t = ""; for (const n of e) { const e = Object.entries(n.tags), r = e.length > 0 ? `|#${e.map(([e,t])=>`${e}:${t}`).join(",")}` : ""; t += `${n.name}@${n.unit}:${n.metric}|${n.metricType}${r}|T${n.timestamp}\n` } return t }(e); return [{ type: "statsd", length: t.length }, t] }(e); return Eu(o, [i]) } const el = "Not capturing exception because it's already been captured."; class tl { constructor(e) { if (this._options = e, this._integrations = {}, this._integrationsInitialized = !1, this._numProcessing = 0, this._outcomes = {}, this._hooks = {}, this._eventProcessors = [], e.dsn ? this._dsn = Ou(e.dsn) : es && Fa.warn("No DSN provided, client will not send events."), this._dsn) { const t = Yu(this._dsn, e); this._transport = e.transport({ tunnel: this._options.tunnel, recordDroppedEvent: this.recordDroppedEvent.bind(this), ...e.transportOptions, url: t }) } } captureException(e, t, n) { if (as(e)) return void(es && Fa.log(el)); let r = t && t.event_id; return this._process(this.eventFromException(e, t).then(e => this._captureEvent(e, t, n)).then(e => { r = e })), r } captureMessage(e, t, n, r) { let o = n && n.event_id; const i = ma(e) ? e : String(e), a = ga(e) ? this.eventFromMessage(i, t, n) : this.eventFromException(e, n); return this._process(a.then(e => this._captureEvent(e, n, r)).then(e => { o = e })), o } captureEvent(e, t, n) { if (t && t.originalException && as(t.originalException)) return void(es && Fa.log(el)); let r = t && t.event_id; const o = (e.sdkProcessingMetadata || {}).capturedSpanScope; return this._process(this._captureEvent(e, t, o || n).then(e => { r = e })), r } captureSession(e) { "string" != typeof e.release ? es && Fa.warn("Discarded session because of missing or non-string release") : (this.sendSession(e), Ss(e, { init: !1 })) } getDsn() { return this._dsn } getOptions() { return this._options } getSdkMetadata() { return this._options._metadata } getTransport() { return this._transport } flush(e) { const t = this._transport; return t ? (this.metricsAggregator && this.metricsAggregator.flush(), this._isClientDoneProcessing(e).then(n => t.flush(e).then(e => n && e))) : hs(!0) } close(e) { return this.flush(e).then(e => (this.getOptions().enabled = !1, this.metricsAggregator && this.metricsAggregator.close(), e)) } getEventProcessors() { return this._eventProcessors } addEventProcessor(e) { this._eventProcessors.push(e) } setupIntegrations(e) { (e && !this._integrationsInitialized || this._isEnabled() && !this._integrationsInitialized) && this._setupIntegrations() } init() { this._isEnabled() && this._setupIntegrations() } getIntegrationById(e) { return this.getIntegrationByName(e) } getIntegrationByName(e) { return this._integrations[e] } getIntegration(e) { try { return this._integrations[e.id] || null } catch (t) { return es && Fa.warn(`Cannot retrieve integration ${e.id} from the current Client`), null } } addIntegration(e) { const t = this._integrations[e.name]; Kc(this, e, this._integrations), t || Jc(this, [e]) } sendEvent(e, t = {}) { this.emit("beforeSendEvent", e, t); let n = Ju(e, this._dsn, this._options._metadata, this._options.tunnel); for (const e of t.attachments || []) n = ku(n, Pu(e, this._options.transportOptions && this._options.transportOptions.textEncoder)); const r = this._sendEnvelope(n); r && r.then(t => this.emit("afterSendEvent", e, t), null) } sendSession(e) { const t = function(e, t, n, r) { const o = ju(n); return Eu({ sent_at: (new Date).toISOString(), ...o && { sdk: o }, ...!!r && t && { dsn: _u(t) } }, ["aggregates" in e ? [{ type: "sessions" }, e] : [{ type: "session" }, e.toJSON()]]) }(e, this._dsn, this._options._metadata, this._options.tunnel); this._sendEnvelope(t) } recordDroppedEvent(e, t, n) { if (this._options.sendClientReports) { const r = "number" == typeof n ? n : 1, o = `${e}:${t}`; es && Fa.log(`Recording outcome: "${o}"${r>1?` (${r} times)`:""}`), this._outcomes[o] = (this._outcomes[o] || 0) + r } } captureAggregateMetrics(e) { es && Fa.log(`Flushing aggregated metrics, number of metrics: ${e.length}`); const t = Zu(e, this._dsn, this._options._metadata, this._options.tunnel); this._sendEnvelope(t) } on(e, t) { this._hooks[e] || (this._hooks[e] = []), this._hooks[e].push(t) } emit(e, ...t) { this._hooks[e] && this._hooks[e].forEach(e => e(...t)) } _setupIntegrations() { const { integrations: e } = this._options; this._integrations = function(e, t) { const n = {}; return t.forEach(t => { t && Kc(e, t, n) }), n }(this, e), Jc(this, e), this._integrationsInitialized = !0 } _updateSessionFromEvent(e, t) { let n = !1, r = !1; const o = t.exception && t.exception.values; if (o) { r = !0; for (const e of o) { const t = e.mechanism; if (t && !1 === t.handled) { n = !0; break } } } const i = "ok" === e.status; (i && 0 === e.errors || i && n) && (Ss(e, { ...n && { status: "crashed" }, errors: e.errors || Number(r || n) }), this.captureSession(e)) } _isClientDoneProcessing(e) { return new gs(t => { let n = 0; const r = setInterval(() => { 0 == this._numProcessing ? (clearInterval(r), t(!0)) : (n += 1, e && n >= e && (clearInterval(r), t(!1))) }, 1) }) } _isEnabled() { return !1 !== this.getOptions().enabled && void 0 !== this._transport } _prepareEvent(e, t, n, r = rc()) { const o = this.getOptions(), i = Object.keys(this._integrations); return !t.integrations && i.length > 0 && (t.integrations = i), this.emit("preprocessEvent", e, t), vc(o, e, t, n, this, r).then(e => { if (null === e) return e; const t = { ...r.getPropagationContext(), ...n ? n.getPropagationContext() : void 0 }; if (!(e.contexts && e.contexts.trace) && t) { const { traceId: r, spanId: o, parentSpanId: i, dsc: a } = t; e.contexts = { trace: { trace_id: r, span_id: o, parent_span_id: i }, ...e.contexts }; const s = a || $s(r, this, n); e.sdkProcessingMetadata = { dynamicSamplingContext: s, ...e.sdkProcessingMetadata } } return e }) } _captureEvent(e, t = {}, n) { return this._processEvent(e, t, n).then(e => e.event_id, e => { if (es) { const t = e; "log" === t.logLevel ? Fa.log(t.message) : Fa.warn(t) } }) } _processEvent(e, t, n) { const r = this.getOptions(), { sampleRate: o } = r, i = rl(e), a = nl(e), s = e.type || "error", c = `before send for type \`${s}\``; if (a && "number" == typeof o && Math.random() > o) return this.recordDroppedEvent("sample_rate", "error", e), ms(new zu(`Discarding event because it's not included in the random sample (sampling rate = ${o})`, "log")); const u = "replay_event" === s ? "replay" : s, l = (e.sdkProcessingMetadata || {}).capturedSpanIsolationScope; return this._prepareEvent(e, t, n, l).then(n => { if (null === n) throw this.recordDroppedEvent("event_processor", u, e), new zu("An event processor returned `null`, will not send event.", "log"); if (t.data && !0 === t.data.__sentry__) return n; const o = function(e, t, n) { const { beforeSend: r, beforeSendTransaction: o } = e; if (nl(t) && r) return r(t, n); if (rl(t) && o) { if (t.spans) { const e = t.spans.length; t.sdkProcessingMetadata = { ...t.sdkProcessingMetadata, spanCountBeforeProcessing: e } } return o(t, n) } return t }(r, n, t); return function(e, t) { const n = `${t} must return \`null\` or a valid event.`; if (ba(e)) return e.then(e => { if (!ya(e) && null !== e) throw new zu(n); return e }, e => { throw new zu(`${t} rejected with ${e}`) }); if (!ya(e) && null !== e) throw new zu(n); return e }(o, c) }).then(r => { if (null === r) { if (this.recordDroppedEvent("before_send", u, e), i) { const t = 1 + (e.spans || []).length; this.recordDroppedEvent("before_send", "span", t) } throw new zu(`${c} returned \`null\`, will not send event.`, "log") } const o = n && n.getSession(); if (!i && o && this._updateSessionFromEvent(o, r), i) { const e = (r.sdkProcessingMetadata && r.sdkProcessingMetadata.spanCountBeforeProcessing || 0) - (r.spans ? r.spans.length : 0); e > 0 && this.recordDroppedEvent("before_send", "span", e) } const a = r.transaction_info; if (i && a && r.transaction !== e.transaction) { const e = "custom"; r.transaction_info = { ...a, source: e } } return this.sendEvent(r, t), r }).then(null, e => { if (e instanceof zu) throw e; throw this.captureException(e, { data: { __sentry__: !0 }, originalException: e }), new zu(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${e}`) }) } _process(e) { this._numProcessing++, e.then(e => (this._numProcessing--, e), e => (this._numProcessing--, e)) } _sendEnvelope(e) { if (this.emit("beforeEnvelope", e), this._isEnabled() && this._transport) return this._transport.send(e).then(null, e => { es && Fa.error("Error while sending event:", e) }); es && Fa.error("Transport disabled") } _clearOutcomes() { const e = this._outcomes; return this._outcomes = {}, Object.keys(e).map(t => { const [n, r] = t.split(":"); return { reason: n, category: r, quantity: e[t] } }) } } function nl(e) { return void 0 === e.type } function rl(e) { return "transaction" === e.type } function ol(e) { const t = Uc(); t && t.addEventProcessor && t.addEventProcessor(e) } const il = {}, al = {}; function sl(e, t) { il[e] = il[e] || [], il[e].push(t) } function cl(e, t) { al[e] || (t(), al[e] = !0) } function ul(e, t) { const n = e && il[e]; if (n) for (const r of n) try { r(t) } catch (t) { Ma && Fa.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${hc(r)}\nError:`, t) } } let ll = null; function fl(e) { const t = "error"; sl(t, e), cl(t, dl) } function dl() { ll = Ea.onerror, Ea.onerror = function(e, t, n, r, o) { return ul("error", { column: r, error: o, line: n, msg: e, url: t }), !(!ll || ll.__SENTRY_LOADER__) && ll.apply(this, arguments) }, Ea.onerror.__SENTRY_INSTRUMENTED__ = !0 } let pl = null; function hl(e) { const t = "unhandledrejection"; sl(t, e), cl(t, ml) } function ml() { pl = Ea.onunhandledrejection, Ea.onunhandledrejection = function(e) { return ul("unhandledrejection", e), !(pl && !pl.__SENTRY_LOADER__) || pl.apply(this, arguments) }, Ea.onunhandledrejection.__SENTRY_INSTRUMENTED__ = !0 } function gl(e) { return (e || nc()).getScope().getTransaction() } const yl = js; let vl = !1; function bl() { const e = gl(); if (e) { const t = "internal_error"; es && Fa.log(`[Tracing] Transaction: ${t} -> Global error occured`), e.setStatus(t) } } function _l(e, t, n = () => {}) { let r; try { r = e() } catch (e) { throw t(e), n(), e } return function(e, t, n) { if (ba(e)) return e.then(e => (n(), e), e => { throw t(e), n(), e }); return n(), e }(r, t, n) } function Sl(e) { if ("boolean" == typeof __SENTRY_TRACING__ && !__SENTRY_TRACING__) return !1; const t = Uc(), n = e || t && t.getOptions(); return !!n && (n.enableTracing || "tracesSampleRate" in n || "tracesSampler" in n) } function wl(e, t, n = () => {}, r = () => {}) { const o = nc(), i = $c(), a = i.getSpan(), s = Pl(e), c = Il(o, { parentSpan: a, spanContext: s, forceTransaction: !1, scope: i }); return i.setSpan(c), _l(() => t(c), e => { c && c.setStatus("internal_error"), n(e, c) }, () => { c && c.end(), i.setSpan(a), r() }) } function Ol(e, t) { const n = Pl(e); return ic(() => Rc(e.scope, r => { const o = nc(), i = r.getSpan(), a = e.onlyIfParent && !i ? void 0 : Il(o, { parentSpan: i, spanContext: n, forceTransaction: e.forceTransaction, scope: r }); return _l(() => t(a), () => { if (a) { const { status: e } = Us(a); e && "ok" !== e || a.setStatus("internal_error") } }, () => a && a.end()) })) } bl.tag = "sentry_tracingErrorCallback"; function El(e, t) { const n = Pl(e); return ic(() => Rc(e.scope, r => { const o = nc(), i = r.getSpan(), a = e.onlyIfParent && !i ? void 0 : Il(o, { parentSpan: i, spanContext: n, forceTransaction: e.forceTransaction, scope: r }); function s() { a && a.end() } return _l(() => t(a, s), () => { if (a && a.isRecording()) { const { status: e } = Us(a); e && "ok" !== e || a.setStatus("internal_error") } }) })) } function kl(e) { if (!Sl()) return; const t = Pl(e), n = nc(), r = e.scope ? e.scope.getSpan() : Tl(); if (e.onlyIfParent && !r) return; const o = (e.scope || $c()).clone(); return Il(n, { parentSpan: r, spanContext: t, forceTransaction: e.forceTransaction, scope: o }) } function Tl() { return $c().getSpan() } const xl = ({ sentryTrace: e, baggage: t }, n) => { const r = $c(), { traceparentData: o, dynamicSamplingContext: i, propagationContext: a } = function(e, t) { const n = js(e), r = Is(t), { traceId: o, parentSpanId: i, parentSampled: a } = n || {}; return n ? { traceparentData: n, dynamicSamplingContext: r || {}, propagationContext: { traceId: o || ts(), parentSpanId: i || ts().substring(16), spanId: ts().substring(16), sampled: a, dsc: r || {} } } : { traceparentData: n, dynamicSamplingContext: void 0, propagationContext: { traceId: o || ts(), spanId: ts().substring(16) } } }(e, t); r.setPropagationContext(a), es && o && Fa.log(`[Tracing] Continuing trace ${o.traceId}.`); const s = { ...o, metadata: Qa({ dynamicSamplingContext: i }) }; return n ? ic(() => n(s)) : s }; function Il(e, { parentSpan: t, spanContext: n, forceTransaction: r, scope: o }) { if (!Sl()) return; const i = rc(); let a; if (t && !r) a = t.startChild(n); else if (t) { const r = Hs(t), { traceId: o, spanId: i } = t.spanContext(), s = Gs(t); a = e.startTransaction({ traceId: o, parentSpanId: i, parentSampled: s, ...n, metadata: { dynamicSamplingContext: r, ...n.metadata } }) } else { const { traceId: t, dsc: r, parentSpanId: s, sampled: c } = { ...i.getPropagationContext(), ...o.getPropagationContext() }; a = e.startTransaction({ traceId: t, parentSpanId: s, parentSampled: c, ...n, metadata: { dynamicSamplingContext: r, ...n.metadata } }) } return o.setSpan(a), function(e, t, n) { e && (qa(e, Cl, n), qa(e, Al, t)) }(a, o, i), a } function Pl(e) { if (e.startTime) { const t = { ...e }; return t.startTimestamp = Fs(e.startTime), delete t.startTime, t } return e } const Al = "_sentryScope", Cl = "_sentryIsolationScope"; let jl; function Rl(e) { return jl ? jl.get(e) : void 0 } function Ml(e) { const t = Rl(e); if (!t) return; const n = {}; for (const [, [e, r]] of t) n[e] || (n[e] = []), n[e].push(Qa(r)); return n } var Dl; function Nl(e) { if (e < 400 && e >= 100) return "ok"; if (e >= 400 && e < 500) switch (e) { case 401: return "unauthenticated"; case 403: return "permission_denied"; case 404: return "not_found"; case 409: return "already_exists"; case 413: return "failed_precondition"; case 429: return "resource_exhausted"; default: return "invalid_argument" } if (e >= 500 && e < 600) switch (e) { case 501: return "unimplemented"; case 503: return "unavailable"; case 504: return "deadline_exceeded"; default: return "internal_error" } return "unknown_error" }! function(e) { e.Ok = "ok"; e.DeadlineExceeded = "deadline_exceeded"; e.Unauthenticated = "unauthenticated"; e.PermissionDenied = "permission_denied"; e.NotFound = "not_found"; e.ResourceExhausted = "resource_exhausted"; e.InvalidArgument = "invalid_argument"; e.Unimplemented = "unimplemented"; e.Unavailable = "unavailable"; e.InternalError = "internal_error"; e.UnknownError = "unknown_error"; e.Cancelled = "cancelled"; e.AlreadyExists = "already_exists"; e.FailedPrecondition = "failed_precondition"; e.Aborted = "aborted"; e.OutOfRange = "out_of_range"; e.DataLoss = "data_loss" }(Dl || (Dl = {})); const Ll = Nl; function Fl(e, t) { e.setTag("http.status_code", String(t)), e.setData("http.response.status_code", t); const n = Nl(t); "unknown_error" !== n && e.setStatus(n) } class Bl { constructor(e = 1e3) { this._maxlen = e, this.spans = [] } add(e) { this.spans.length > this._maxlen ? e.spanRecorder = void 0 : this.spans.push(e) } } class Ul { constructor(e = {}) { this._traceId = e.traceId || ts(), this._spanId = e.spanId || ts().substring(16), this._startTime = e.startTimestamp || ls(), this.tags = e.tags ? { ...e.tags } : {}, this.data = e.data ? { ...e.data } : {}, this.instrumenter = e.instrumenter || "sentry", this._attributes = {}, this.setAttributes({ [Hu]: e.origin || "manual", [$u]: e.op, ...e.attributes }), this._name = e.name || e.description, e.parentSpanId && (this._parentSpanId = e.parentSpanId), "sampled" in e && (this._sampled = e.sampled), e.status && (this._status = e.status), e.endTimestamp && (this._endTime = e.endTimestamp), void 0 !== e.exclusiveTime && (this._exclusiveTime = e.exclusiveTime), this._measurements = e.measurements ? { ...e.measurements } : {} } get name() { return this._name || "" } set name(e) { this.updateName(e) } get description() { return this._name } set description(e) { this._name = e } get traceId() { return this._traceId } set traceId(e) { this._traceId = e } get spanId() { return this._spanId } set spanId(e) { this._spanId = e } set parentSpanId(e) { this._parentSpanId = e } get parentSpanId() { return this._parentSpanId } get sampled() { return this._sampled } set sampled(e) { this._sampled = e } get attributes() { return this._attributes } set attributes(e) { this._attributes = e } get startTimestamp() { return this._startTime } set startTimestamp(e) { this._startTime = e } get endTimestamp() { return this._endTime } set endTimestamp(e) { this._endTime = e } get status() { return this._status } set status(e) { this._status = e } get op() { return this._attributes[$u] } set op(e) { this.setAttribute($u, e) } get origin() { return this._attributes[Hu] } set origin(e) { this.setAttribute(Hu, e) } spanContext() { const { _spanId: e, _traceId: t, _sampled: n } = this; return { spanId: e, traceId: t, traceFlags: n ? Ds : 0 } } startChild(e) { const t = new Ul({ ...e, parentSpanId: this._spanId, sampled: this._sampled, traceId: this._traceId }); t.spanRecorder = this.spanRecorder, t.spanRecorder && t.spanRecorder.add(t); const n = Os(this); if (t.transaction = n, es && n) { const r = `[Tracing] Starting '${e&&e.op||"< unknown op >"}' span on transaction '${Us(t).description||"< unknown name >"}' (${n.spanContext().spanId}).`; Fa.log(r), this._logMessage = r } return t } setTag(e, t) { return this.tags = { ...this.tags, [e]: t }, this } setData(e, t) { return this.data = { ...this.data, [e]: t }, this } setAttribute(e, t) { void 0 === t ? delete this._attributes[e] : this._attributes[e] = t } setAttributes(e) { Object.keys(e).forEach(t => this.setAttribute(t, e[t])) } setStatus(e) { return this._status = e, this } setHttpStatus(e) { return Fl(this, e), this } setName(e) { this.updateName(e) } updateName(e) { return this._name = e, this } isSuccess() { return "ok" === this._status } finish(e) { return this.end(e) } end(e) { if (this._endTime) return; const t = Os(this); if (es && t && t.spanContext().spanId !== this._spanId) { const e = this._logMessage; e && Fa.log(e.replace("Starting", "Finishing")) } this._endTime = Fs(e) } toTraceparent() { return Ls(this) } toContext() { return Qa({ data: this._getData(), description: this._name, endTimestamp: this._endTime, op: this.op, parentSpanId: this._parentSpanId, sampled: this._sampled, spanId: this._spanId, startTimestamp: this._startTime, status: this._status, tags: this.tags, traceId: this._traceId }) } updateWithContext(e) { return this.data = e.data || {}, this._name = e.name || e.description, this._endTime = e.endTimestamp, this.op = e.op, this._parentSpanId = e.parentSpanId, this._sampled = e.sampled, this._spanId = e.spanId || this._spanId, this._startTime = e.startTimestamp || this._startTime, this._status = e.status, this.tags = e.tags || {}, this._traceId = e.traceId || this._traceId, this } getTraceContext() { return Ns(this) } getSpanJSON() { return Qa({ data: this._getData(), description: this._name, op: this._attributes[$u], parent_span_id: this._parentSpanId, span_id: this._spanId, start_timestamp: this._startTime, status: this._status, tags: Object.keys(this.tags).length > 0 ? this.tags : void 0, timestamp: this._endTime, trace_id: this._traceId, origin: this._attributes[Hu], _metrics_summary: Ml(this), profile_id: this._attributes.profile_id, exclusive_time: this._exclusiveTime, measurements: Object.keys(this._measurements).length > 0 ? this._measurements : void 0 }) } isRecording() { return !this._endTime && !!this._sampled } toJSON() { return this.getSpanJSON() } _getData() { const { data: e, _attributes: t } = this, n = Object.keys(e).length > 0, r = Object.keys(t).length > 0; if (n || r) return n && r ? { ...e, ...t } : n ? e : t } } class Gl extends Ul { constructor(e, t) { super(e), this._contexts = {}, this._hub = t || nc(), this._name = e.name || "", this._metadata = { ...e.metadata }, this._trimEnd = e.trimEnd, this.transaction = this; const n = this._metadata.dynamicSamplingContext; n && (this._frozenDynamicSamplingContext = { ...n }) } get name() { return this._name } set name(e) { this.setName(e) } get metadata() { return { source: "custom", spanMetadata: {}, ...this._metadata, ...this._attributes[Uu] && { source: this._attributes[Uu] }, ...this._attributes[Gu] && { sampleRate: this._attributes[Gu] } } } set metadata(e) { this._metadata = e } setName(e, t = "custom") { this._name = e, this.setAttribute(Uu, t) } updateName(e) { return this._name = e, this } initSpanRecorder(e = 1e3) { this.spanRecorder || (this.spanRecorder = new Bl(e)), this.spanRecorder.add(this) } setContext(e, t) { null === t ? delete this._contexts[e] : this._contexts[e] = t } setMeasurement(e, t, n = "") { this._measurements[e] = { value: t, unit: n } } setMetadata(e) { this._metadata = { ...this._metadata, ...e } } end(e) { const t = Fs(e), n = this._finishTransaction(t); if (n) return this._hub.captureEvent(n) } toContext() { return Qa({ ...super.toContext(), name: this._name, trimEnd: this._trimEnd }) } updateWithContext(e) { return super.updateWithContext(e), this._name = e.name || "", this._trimEnd = e.trimEnd, this } getDynamicSamplingContext() { return Hs(this) } setHub(e) { this._hub = e } getProfileId() { if (void 0 !== this._contexts && void 0 !== this._contexts.profile) return this._contexts.profile.profile_id } _finishTransaction(e) { if (void 0 !== this._endTime) return; this._name || (es && Fa.warn("Transaction has no name, falling back to ``."), this._name = ""), super.end(e); const t = this._hub.getClient(); if (t && t.emit && t.emit("finishTransaction", this), !0 !== this._sampled) return es && Fa.log("[Tracing] Discarding transaction because its trace was not chosen to be sampled."), void(t && t.recordDroppedEvent("sample_rate", "transaction")); const n = this.spanRecorder ? this.spanRecorder.spans.filter(e => e !== this && Us(e).timestamp) : []; if (this._trimEnd && n.length > 0) { const e = n.map(e => Us(e).timestamp).filter(Boolean); this._endTime = e.reduce((e, t) => e > t ? e : t) } const { scope: r, isolationScope: o } = { scope: (i = this)[Al], isolationScope: i[Cl] }; var i; const { metadata: a } = this, { source: s } = a, c = { contexts: { ...this._contexts, trace: Ns(this) }, spans: n, start_timestamp: this._startTime, tags: this.tags, timestamp: this._endTime, transaction: this._name, type: "transaction", sdkProcessingMetadata: { ...a, capturedSpanScope: r, capturedSpanIsolationScope: o, ...Qa({ dynamicSamplingContext: Hs(this) }) }, _metrics_summary: Ml(this), ...s && { transaction_info: { source: s } } }; return Object.keys(this._measurements).length > 0 && (es && Fa.log("[Measurements] Adding measurements to transaction", JSON.stringify(this._measurements, void 0, 2)), c.measurements = this._measurements), es && Fa.log(`[Tracing] Finishing ${this.op} transaction: ${this._name}.`), c } } const $l = { idleTimeout: 1e3, finalTimeout: 3e4, heartbeatInterval: 5e3 }, Hl = ["heartbeatFailed", "idleTimeout", "documentHidden", "finalTimeout", "externalFinish", "cancelled"]; class zl extends Bl { constructor(e, t, n, r) { super(r), this._pushActivity = e, this._popActivity = t, this.transactionSpanId = n } add(e) { if (e.spanContext().spanId !== this.transactionSpanId) { const t = e.end; e.end = (...n) => (this._popActivity(e.spanContext().spanId), t.apply(e, n)), void 0 === Us(e).timestamp && this._pushActivity(e.spanContext().spanId) } super.add(e) } } class ql extends Gl { constructor(e, t, n = $l.idleTimeout, r = $l.finalTimeout, o = $l.heartbeatInterval, i = !1, a = !1) { super(e, t), this._idleHub = t, this._idleTimeout = n, this._finalTimeout = r, this._heartbeatInterval = o, this._onScope = i, this.activities = {}, this._heartbeatCounter = 0, this._finished = !1, this._idleTimeoutCanceledPermanently = !1, this._beforeFinishCallbacks = [], this._finishReason = Hl[4], this._autoFinishAllowed = !a, i && (es && Fa.log(`Setting idle transaction on scope. Span ID: ${this.spanContext().spanId}`), t.getScope().setSpan(this)), a || this._restartIdleTimeout(), setTimeout(() => { this._finished || (this.setStatus("deadline_exceeded"), this._finishReason = Hl[3], this.end()) }, this._finalTimeout) } end(e) { const t = Fs(e); if (this._finished = !0, this.activities = {}, "ui.action.click" === this.op && this.setAttribute("finishReason", this._finishReason), this.spanRecorder) { es && Fa.log("[Tracing] finishing IdleTransaction", new Date(1e3 * t).toISOString(), this.op); for (const e of this._beforeFinishCallbacks) e(this, t); this.spanRecorder.spans = this.spanRecorder.spans.filter(e => { if (e.spanContext().spanId === this.spanContext().spanId) return !0; Us(e).timestamp || (e.setStatus("cancelled"), e.end(t), es && Fa.log("[Tracing] cancelling span since transaction ended early", JSON.stringify(e, void 0, 2))); const { start_timestamp: n, timestamp: r } = Us(e), o = n && n < t, i = (this._finalTimeout + this._idleTimeout) / 1e3, a = r && n && r - n < i; if (es) { const t = JSON.stringify(e, void 0, 2); o ? a || Fa.log("[Tracing] discarding Span since it finished after Transaction final timeout", t) : Fa.log("[Tracing] discarding Span since it happened after Transaction was finished", t) } return o && a }), es && Fa.log("[Tracing] flushing IdleTransaction") } else es && Fa.log("[Tracing] No active IdleTransaction"); if (this._onScope) { const e = this._idleHub.getScope(); e.getTransaction() === this && e.setSpan(void 0) } return super.end(e) } registerBeforeFinishCallback(e) { this._beforeFinishCallbacks.push(e) } initSpanRecorder(e) { if (!this.spanRecorder) { const t = e => { this._finished || this._pushActivity(e) }, n = e => { this._finished || this._popActivity(e) }; this.spanRecorder = new zl(t, n, this.spanContext().spanId, e), es && Fa.log("Starting heartbeat"), this._pingHeartbeat() } this.spanRecorder.add(this) } cancelIdleTimeout(e, { restartOnChildSpanChange: t } = { restartOnChildSpanChange: !0 }) { this._idleTimeoutCanceledPermanently = !1 === t, this._idleTimeoutID && (clearTimeout(this._idleTimeoutID), this._idleTimeoutID = void 0, 0 === Object.keys(this.activities).length && this._idleTimeoutCanceledPermanently && (this._finishReason = Hl[5], this.end(e))) } setFinishReason(e) { this._finishReason = e } sendAutoFinishSignal() { this._autoFinishAllowed || (es && Fa.log("[Tracing] Received finish signal for idle transaction."), this._restartIdleTimeout(), this._autoFinishAllowed = !0) } _restartIdleTimeout(e) { this.cancelIdleTimeout(), this._idleTimeoutID = setTimeout(() => { this._finished || 0 !== Object.keys(this.activities).length || (this._finishReason = Hl[1], this.end(e)) }, this._idleTimeout) } _pushActivity(e) { this.cancelIdleTimeout(void 0, { restartOnChildSpanChange: !this._idleTimeoutCanceledPermanently }), es && Fa.log(`[Tracing] pushActivity: ${e}`), this.activities[e] = !0, es && Fa.log("[Tracing] new activities count", Object.keys(this.activities).length) } _popActivity(e) { if (this.activities[e] && (es && Fa.log(`[Tracing] popActivity ${e}`), delete this.activities[e], es && Fa.log("[Tracing] new activities count", Object.keys(this.activities).length)), 0 === Object.keys(this.activities).length) { const e = ls(); this._idleTimeoutCanceledPermanently ? this._autoFinishAllowed && (this._finishReason = Hl[5], this.end(e)) : this._restartIdleTimeout(e + this._idleTimeout / 1e3) } } _beat() { if (this._finished) return; const e = Object.keys(this.activities).join(""); e === this._prevHeartbeatString ? this._heartbeatCounter++ : this._heartbeatCounter = 1, this._prevHeartbeatString = e, this._heartbeatCounter >= 3 ? this._autoFinishAllowed && (es && Fa.log("[Tracing] Transaction finished because of no change for 3 heart beats"), this.setStatus("deadline_exceeded"), this._finishReason = Hl[0], this.end()) : this._pingHeartbeat() } _pingHeartbeat() { es && Fa.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`), setTimeout(() => { this._beat() }, this._heartbeatInterval) } } function Wl(e, t, n) { if (!Sl(t)) return e.sampled = !1, e; if (void 0 !== e.sampled) return e.setAttribute(Gu, Number(e.sampled)), e; let r; return "function" == typeof t.tracesSampler ? (r = t.tracesSampler(n), e.setAttribute(Gu, Number(r))) : void 0 !== n.parentSampled ? r = n.parentSampled : void 0 !== t.tracesSampleRate ? (r = t.tracesSampleRate, e.setAttribute(Gu, Number(r))) : (r = 1, e.setAttribute(Gu, r)), Vl(r) ? r ? (e.sampled = Math.random() < r, e.sampled ? (es && Fa.log(`[Tracing] starting ${e.op} transaction - ${Us(e).description}`), e) : (es && Fa.log(`[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(r)})`), e)) : (es && Fa.log("[Tracing] Discarding transaction because " + ("function" == typeof t.tracesSampler ? "tracesSampler returned 0 or false" : "a negative sampling decision was inherited or tracesSampleRate is set to 0")), e.sampled = !1, e) : (es && Fa.warn("[Tracing] Discarding transaction because of invalid sample rate."), e.sampled = !1, e) } function Vl(e) { return _a(e) || "number" != typeof e && "boolean" != typeof e ? (es && Fa.warn(`[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(e)} of type ${JSON.stringify(typeof e)}.`), !1) : !(e < 0 || e > 1) || (es && Fa.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${e}.`), !1) } function Yl() { const e = this.getScope().getSpan(); return e ? { "sentry-trace": Ls(e) } : {} } function Jl(e, t) { const n = this.getClient(), r = n && n.getOptions() || {}, o = r.instrumenter || "sentry", i = e.instrumenter || "sentry"; o !== i && (es && Fa.error(`A transaction was started with instrumenter=\`${i}\`, but the SDK is configured with the \`${o}\` instrumenter.\nThe transaction will not be sampled. Please use the ${o} instrumentation to start transactions.`), e.sampled = !1); let a = new Gl(e, this); return a = Wl(a, r, { name: e.name, parentSampled: e.parentSampled, transactionContext: e, attributes: { ...e.data, ...e.attributes }, ...t }), a.isRecording() && a.initSpanRecorder(r._experiments && r._experiments.maxSpans), n && n.emit && n.emit("startTransaction", a), a } function Kl(e, t, n, r, o, i, a, s = !1) { const c = e.getClient(), u = c && c.getOptions() || {}; let l = new ql(t, e, n, r, a, o, s); return l = Wl(l, u, { name: t.name, parentSampled: t.parentSampled, transactionContext: t, attributes: { ...t.data, ...t.attributes }, ...i }), l.isRecording() && l.initSpanRecorder(u._experiments && u._experiments.maxSpans), c && c.emit && c.emit("startTransaction", l), l } function Ql() { const e = ec(); e.__SENTRY__ && (e.__SENTRY__.extensions = e.__SENTRY__.extensions || {}, e.__SENTRY__.extensions.startTransaction || (e.__SENTRY__.extensions.startTransaction = Jl), e.__SENTRY__.extensions.traceHeaders || (e.__SENTRY__.extensions.traceHeaders = Yl), vl || (vl = !0, fl(bl), hl(bl))) } function Xl(e) { const t = []; function n(e) { return t.splice(t.indexOf(e), 1)[0] } return { $: t, add: function(r) { if (!(void 0 === e || t.length < e)) return ms(new zu("Not adding Promise because buffer limit was reached.")); const o = r(); return -1 === t.indexOf(o) && t.push(o), o.then(() => n(o)).then(null, () => n(o).then(null, () => {})), o }, drain: function(e) { return new gs((n, r) => { let o = t.length; if (!o) return n(!0); const i = setTimeout(() => { e && e > 0 && n(!1) }, e); t.forEach(e => { hs(e).then(() => { --o || (clearTimeout(i), n(!0)) }, r) }) }) } } } const Zl = 6e4; function ef(e, t = Date.now()) { const n = parseInt(`${e}`, 10); if (!isNaN(n)) return 1e3 * n; const r = Date.parse(`${e}`); return isNaN(r) ? Zl : r - t } function tf(e, t, n = Date.now()) { return function(e, t) { return e[t] || e.all || 0 }(e, t) > n } function nf(e, { statusCode: t, headers: n }, r = Date.now()) { const o = { ...e }, i = n && n["x-sentry-rate-limits"], a = n && n["retry-after"]; if (i) for (const e of i.trim().split(",")) { const [t, n, , , i] = e.split(":", 5), a = parseInt(t, 10), s = 1e3 * (isNaN(a) ? 60 : a); if (n) for (const e of n.split(";")) "metric_bucket" === e && i && !i.split(";").includes("custom") || (o[e] = r + s); else o.all = r + s } else a ? o.all = r + ef(a, r) : 429 === t && (o.all = r + 6e4); return o } const rf = 30; function of(e, t, n = Xl(e.bufferSize || rf)) { let r = {}; function o(o) { const i = []; if (Tu(o, (t, n) => { const o = Cu(n); if (tf(r, o)) { const r = af(t, n); e.recordDroppedEvent("ratelimit_backoff", o, r) } else i.push(t) }), 0 === i.length) return hs(); const a = Eu(o[0], i), s = t => { Tu(a, (n, r) => { const o = af(n, r); e.recordDroppedEvent(t, Cu(r), o) }) }; return n.add(() => t({ body: Iu(a, e.textEncoder) }).then(e => (void 0 !== e.statusCode && (e.statusCode < 200 || e.statusCode >= 300) && es && Fa.warn(`Sentry responded with status code ${e.statusCode} to sent event.`), r = nf(r, e), e), e => { throw s("network_error"), e })).then(e => e, e => { if (e instanceof zu) return es && Fa.error("Skipped sending event because buffer is full."), s("queue_overflow"), hs(); throw e }) } return o.__sentry__baseTransport__ = !0, { send: o, flush: e => n.drain(e) } } function af(e, t) { if ("event" === t || "transaction" === t) return Array.isArray(e) ? e[1] : void 0 } function sf(e, t) { let n; return Tu(e, (e, r) => (t.includes(r) && (n = Array.isArray(e) ? e[1] : void 0), !!n)), n } function cf(e, t) { return n => { const r = e(n), o = new Map; function i(t, r) { const i = r ? `${t}:${r}` : t; let a = o.get(i); if (!a) { const s = Su(t); if (!s) return; const c = Yu(s, n.tunnel); a = r ? function(e, t) { return n => { const r = e(n); return { ...r, send: async e => { const n = sf(e, ["event", "transaction", "profile", "replay_event"]); return n && (n.release = t), r.send(e) } } } }(e, r)({ ...n, url: c }) : e({ ...n, url: c }), o.set(i, a) } return [t, a] } return { send: async function(e) { const n = t({ envelope: e, getEvent: function(t) { const n = t && t.length ? t : ["event"]; return sf(e, n) } }).map(e => "string" == typeof e ? i(e, void 0) : i(e.dsn, e.release)).filter(e => !!e); 0 === n.length && n.push(["", r]); return (await Promise.all(n.map(([t, n]) => n.send(function(e, t) { return Eu(t ? { ...e[0], dsn: t } : e[0], e[1]) }(e, t)))))[0] }, flush: async function(e) { const t = [await r.flush(e)]; for (const [, n] of o) t.push(await n.flush(e)); return t.every(e => e) } } } } const uf = "c", lf = "g", ff = "s", df = "d"; const pf = { [uf]: class { constructor(e) { this._value = e } get weight() { return 1 } add(e) { this._value += e } toString() { return `${this._value}` } }, [lf]: class { constructor(e) { this._last = e, this._min = e, this._max = e, this._sum = e, this._count = 1 } get weight() { return 5 } add(e) { this._last = e, e < this._min && (this._min = e), e > this._max && (this._max = e), this._sum += e, this._count++ } toString() { return `${this._last}:${this._min}:${this._max}:${this._sum}:${this._count}` } }, [df]: class { constructor(e) { this._value = [e] } get weight() { return this._value.length } add(e) { this._value.push(e) } toString() { return this._value.join(":") } }, [ff]: class { constructor(e) { this.first = e, this._value = new Set([e]) } get weight() { return this._value.size } add(e) { this._value.add(e) } toString() { return Array.from(this._value).map(e => "string" == typeof e ? function(e) { let t = 0; for (let n = 0; n < e.length; n++) t = (t << 5) - t + e.charCodeAt(n), t &= t; return t >>> 0 }(e) : e).join(":") } } }; class hf { constructor(e) { this._client = e, this._buckets = new Map, this._interval = setInterval(() => this.flush(), 5e3) } add(e, t, n, r = "none", o = {}, i = ls()) { const a = Math.floor(i), s = t.replace(/[^\w\-.]+/gi, "_"); const c = function(e) { const t = {}; for (const n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[Ku(n)] = Xu(String(e[n]))); return t }(o), u = function(e) { return e.replace(/[^\w]+/gi, "_") }(r), l = function(e, t, n, r) { return `${e}${t}${n}${Object.entries(Qa(r)).sort((e,t)=>e[0].localeCompare(t[0]))}` }(e, s, u, c); let f = this._buckets.get(l); const d = f && "s" === e ? f.metric.weight : 0; f ? (f.metric.add(n), f.timestamp < a && (f.timestamp = a)) : (f = { metric: new pf[e](n), timestamp: a, metricType: e, name: s, unit: u, tags: c }, this._buckets.set(l, f)); ! function(e, t, n, r, o, i) { const a = Tl(); if (a) { const s = Rl(a) || new Map, c = `${e}:${t}@${r}`, u = s.get(i); if (u) { const [, e] = u; s.set(i, [c, { min: Math.min(e.min, n), max: Math.max(e.max, n), count: e.count += 1, sum: e.sum += n, tags: e.tags }]) } else s.set(i, [c, { min: n, max: n, count: 1, sum: n, tags: o }]); jl || (jl = new WeakMap), jl.set(a, s) } }(e, s, "string" == typeof n ? f.metric.weight - d : n, u, o, l) } flush() { if (0 !== this._buckets.size) { if (this._client.captureAggregateMetrics) { const e = Array.from(this._buckets).map(([, e]) => e); this._client.captureAggregateMetrics(e) } this._buckets.clear() } } close() { clearInterval(this._interval), this.flush() } } const mf = "MetricsAggregator", gf = () => ({ name: mf, setupOnce() {}, setup(e) { e.metricsAggregator = new hf(e) } }); function yf(e, t, n, r = {}) { const o = Uc(), i = $c(); if (o) { if (!o.metricsAggregator) return void(es && Fa.warn("No metrics aggregator enabled. Please add the MetricsAggregator integration to use metrics APIs")); const { unit: a, tags: s, timestamp: c } = r, { release: u, environment: l } = o.getOptions(), f = i.getTransaction(), d = {}; u && (d.release = u), l && (d.environment = l), f && (d.transaction = Us(f).description || ""), es && Fa.log(`Adding value of ${n} to ${e} metric ${t}`), o.metricsAggregator.add(e, t, n, a, { ...d, ...s }, c) } } const vf = { increment: function(e, t = 1, n) { yf("c", e, t, n) }, distribution: function(e, t, n) { yf("d", e, t, n) }, set: function(e, t, n) { yf("s", e, t, n) }, gauge: function(e, t, n) { yf("g", e, t, n) }, MetricsAggregator: Xc(mf, gf), metricsAggregatorIntegration: gf }; function bf(e, ...t) { const n = new String(String.raw(e, ...t)); return n.__sentry_template_string__ = e.join("\0").replace(/%/g, "%%").replace(/\0/g, "%s"), n.__sentry_template_values__ = t, n } function _f(e) { const t = nc().getStackTop(); t.client = e, t.scope.setClient(e) } function Sf(e, t, n) { const r = gl(); r && r.setMeasurement(e, t, n) } const wf = Ea; let Of = 0; function Ef() { return Of > 0 } function kf(e, t = {}, n) { if ("function" != typeof e) return e; try { const t = e.__sentry_wrapped__; if (t) return "function" == typeof t ? t : e; if (Va(e)) return e } catch (t) { return e } const r = function() { const r = Array.prototype.slice.call(arguments); try { n && "function" == typeof n && n.apply(this, arguments); const o = r.map(e => kf(e, t)); return e.apply(this, o) } catch (e) { throw Of++, setTimeout(() => { Of-- }), Rc(n => { n.addEventProcessor(e => (t.mechanism && (os(e, void 0, void 0), is(e, t.mechanism)), e.extra = { ...e.extra, arguments: r }, e)), wc(e) }), e } }; try { for (const t in e) Object.prototype.hasOwnProperty.call(e, t) && (r[t] = e[t]) } catch (e) {} Wa(r, e), qa(e, "__sentry_wrapped__", r); try { Object.getOwnPropertyDescriptor(r, "name").configurable && Object.defineProperty(r, "name", { get: () => e.name }) } catch (e) {} return r } var Tf = n(49651); const xf = "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__; function If(e, t) { const n = Af(e, t), r = { type: t && t.name, value: jf(t) }; return n.length && (r.stacktrace = { frames: n }), void 0 === r.type && "" === r.value && (r.value = "Unrecoverable error caught"), r } function Pf(e, t) { return { exception: { values: [If(e, t)] } } } function Af(e, t) { const n = t.stacktrace || t.stack || "", r = function(e) { if (e) { if ("number" == typeof e.framesToPop) return e.framesToPop; if (Cf.test(e.message)) return 1 } return 0 }(t); try { return e(n, r) } catch (e) {} return [] } const Cf = /Minified React error #\d+;/i; function jf(e) { const t = e && e.message; return t ? t.error && "string" == typeof t.error.message ? t.error.message : t : "No error message" } function Rf(e, t, n, r) { const o = Df(e, t, n && n.syntheticException || void 0, r); return is(o), o.level = "error", n && n.event_id && (o.event_id = n.event_id), hs(o) } function Mf(e, t, n = "info", r, o) { const i = Nf(e, t, r && r.syntheticException || void 0, o); return i.level = n, r && r.event_id && (i.event_id = r.event_id), hs(i) } function Df(e, t, n, r, o) { let i; if (da(t) && t.error) { return Pf(e, t.error) } if (pa(t) || fa(t, "DOMException")) { const o = t; if ("stack" in t) i = Pf(e, t); else { const t = o.name || (pa(o) ? "DOMError" : "DOMException"), a = o.message ? `${t}: ${o.message}` : t; i = Nf(e, a, n, r), os(i, a) } return "code" in o && (i.tags = { ...i.tags, "DOMException.code": `${o.code}` }), i } if (la(t)) return Pf(e, t); if (ya(t) || va(t)) { return i = function(e, t, n, r) { const o = Uc(), i = o && o.getOptions().normalizeDepth, a = { exception: { values: [{ type: va(t) ? t.constructor.name : r ? "UnhandledRejection" : "Error", value: Lf(t, { isUnhandledRejection: r }) }] }, extra: { __serialized__: gc(t, i) } }; if (n) { const t = Af(e, n); t.length && (a.exception.values[0].stacktrace = { frames: t }) } return a }(e, t, n, o), is(i, { synthetic: !0 }), i } return i = Nf(e, t, n, r), os(i, `${t}`, void 0), is(i, { synthetic: !0 }), i } function Nf(e, t, n, r) { const o = {}; if (r && n) { const r = Af(e, n); r.length && (o.exception = { values: [{ value: t, stacktrace: { frames: r } }] }) } if (ma(t)) { const { __sentry_template_string__: e, __sentry_template_values__: n } = t; return o.logentry = { message: e, params: n }, o } return o.message = t, o } function Lf(e, { isUnhandledRejection: t }) { const n = function(e, t = 40) { const n = Object.keys(Ya(e)); if (n.sort(), !n.length) return "[object has no keys]"; if (n[0].length >= t) return Ba(n[0], t); for (let e = n.length; e > 0; e--) { const r = n.slice(0, e).join(", "); if (!(r.length > t)) return e === n.length ? r : Ba(r, t) } return "" }(e), r = t ? "promise rejection" : "exception"; if (da(e)) return `Event \`ErrorEvent\` captured as ${r} with message \`${e.message}\``; if (va(e)) { return `Event \`${function(e){try{const t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch(e){}}(e)}\` (type=${e.type}) captured as ${r}` } return `Object captured as ${r} with keys: ${n}` } function Ff(e, { metadata: t, tunnel: n, dsn: r }) { const o = { event_id: e.event_id, sent_at: (new Date).toISOString(), ...t && t.sdk && { sdk: { name: t.sdk.name, version: t.sdk.version } }, ...!!n && !!r && { dsn: _u(r) } }, i = function(e) { return [{ type: "user_report" }, e] }(e); return Eu(o, [i]) } class Bf extends tl { constructor(e) { ! function(e, t, n = [t], r = "npm") { const o = e._metadata || {}; o.sdk || (o.sdk = { name: `sentry.javascript.${t}`, packages: n.map(e => ({ name: `${r}:@sentry/${e}`, version: Ks })), version: Ks }), e._metadata = o }(e, "browser", ["browser"], wf.SENTRY_SDK_SOURCE || (0, Tf.e)()), super(e), e.sendClientReports && wf.document && wf.document.addEventListener("visibilitychange", () => { "hidden" === wf.document.visibilityState && this._flushOutcomes() }) } eventFromException(e, t) { return Rf(this._options.stackParser, e, t, this._options.attachStacktrace) } eventFromMessage(e, t = "info", n) { return Mf(this._options.stackParser, e, t, n, this._options.attachStacktrace) } captureUserFeedback(e) { if (!this._isEnabled()) return void(xf && Fa.warn("SDK not enabled, will not capture user feedback.")); const t = Ff(e, { metadata: this.getSdkMetadata(), dsn: this.getDsn(), tunnel: this.getOptions().tunnel }); this._sendEnvelope(t) } _prepareEvent(e, t, n) { return e.platform = e.platform || "javascript", super._prepareEvent(e, t, n) } _flushOutcomes() { const e = this._clearOutcomes(); if (0 === e.length) return void(xf && Fa.log("No outcomes to send")); if (!this._dsn) return void(xf && Fa.log("No dsn provided, will not send outcomes")); xf && Fa.log("Sending outcomes:", e); const t = (n = e, Eu((r = this._options.tunnel && _u(this._dsn)) ? { dsn: r } : {}, [ [{ type: "client_report" }, { timestamp: o || us(), discarded_events: n }] ])); var n, r, o; this._sendEnvelope(t) } } const Uf = ka(); function Gf() { if (!("fetch" in Uf)) return !1; try { return new Headers, new Request("http://www.example.com"), new Response, !0 } catch (e) { return !1 } } function $f(e) { return e && /^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString()) } function Hf() { if ("string" == typeof EdgeRuntime) return !0; if (!Gf()) return !1; if ($f(Uf.fetch)) return !0; let e = !1; const t = Uf.document; if (t && "function" == typeof t.createElement) try { const n = t.createElement("iframe"); n.hidden = !0, t.head.appendChild(n), n.contentWindow && n.contentWindow.fetch && (e = $f(n.contentWindow.fetch)), t.head.removeChild(n) } catch (e) { Ma && Fa.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ", e) } return e } let zf; function qf(e, t = function() { if (zf) return zf; if ($f(wf.fetch)) return zf = wf.fetch.bind(wf); const e = wf.document; let t = wf.fetch; if (e && "function" == typeof e.createElement) try { const n = e.createElement("iframe"); n.hidden = !0, e.head.appendChild(n); const r = n.contentWindow; r && r.fetch && (t = r.fetch), e.head.removeChild(n) } catch (e) { xf && Fa.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ", e) } return zf = t.bind(wf) }()) { let n = 0, r = 0; return of(e, function(o) { const i = o.body.length; n += i, r++; const a = { body: o.body, method: "POST", referrerPolicy: "origin", headers: e.headers, keepalive: n <= 6e4 && r < 15, ...e.fetchOptions }; try { return t(e.url, a).then(e => (n -= i, r--, { statusCode: e.status, headers: { "x-sentry-rate-limits": e.headers.get("X-Sentry-Rate-Limits"), "retry-after": e.headers.get("Retry-After") } })) } catch (e) { return zf = void 0, n -= i, r--, ms(e) } }) } const Wf = 4; function Vf(e) { return of(e, function(t) { return new gs((n, r) => { const o = new XMLHttpRequest; o.onerror = r, o.onreadystatechange = () => { o.readyState === Wf && n({ statusCode: o.status, headers: { "x-sentry-rate-limits": o.getResponseHeader("X-Sentry-Rate-Limits"), "retry-after": o.getResponseHeader("Retry-After") } }) }, o.open("POST", e.url); for (const t in e.headers) Object.prototype.hasOwnProperty.call(e.headers, t) && o.setRequestHeader(t, e.headers[t]); o.send(t.body) }) }) } const Yf = "?"; function Jf(e, t, n, r) { const o = { filename: e, function: t, in_app: !0 }; return void 0 !== n && (o.lineno = n), void 0 !== r && (o.colno = r), o } const Kf = /^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, Qf = /\((\S*)(?::(\d+))(?::(\d+))\)/, Xf = [30, e => { const t = Kf.exec(e); if (t) { if (t[2] && 0 === t[2].indexOf("eval")) { const e = Qf.exec(t[2]); e && (t[2] = e[1], t[3] = e[2], t[4] = e[3]) } const [e, n] = ld(t[1] || Yf, t[2]); return Jf(n, e, t[3] ? +t[3] : void 0, t[4] ? +t[4] : void 0) } }], Zf = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i, ed = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i, td = [50, e => { const t = Zf.exec(e); if (t) { if (t[3] && t[3].indexOf(" > eval") > -1) { const e = ed.exec(t[3]); e && (t[1] = t[1] || "eval", t[3] = e[1], t[4] = e[2], t[5] = "") } let e = t[3], n = t[1] || Yf; return [n, e] = ld(n, e), Jf(e, n, t[4] ? +t[4] : void 0, t[5] ? +t[5] : void 0) } }], nd = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i, rd = [40, e => { const t = nd.exec(e); return t ? Jf(t[2], t[1] || Yf, +t[3], t[4] ? +t[4] : void 0) : void 0 }], od = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i, id = [10, e => { const t = od.exec(e); return t ? Jf(t[2], t[3] || Yf, +t[1]) : void 0 }], ad = / line (\d+), column (\d+)\s*(?:in (?:]+)>|([^)]+))\(.*\))? in (.*):\s*$/i, sd = [20, e => { const t = ad.exec(e); return t ? Jf(t[5], t[3] || t[4] || Yf, +t[1], +t[2]) : void 0 }], cd = [Xf, td, rd], ud = dc(...cd), ld = (e, t) => { const n = -1 !== e.indexOf("safari-extension"), r = -1 !== e.indexOf("safari-web-extension"); return n || r ? [-1 !== e.indexOf("@") ? e.split("@")[0] : Yf, n ? `safari-extension:${t}` : `safari-web-extension:${t}`] : [e, t] }, fd = ka(); const dd = Ea; let pd; function hd(e) { const t = "history"; sl(t, e), cl(t, md) } function md() { if (! function() { const e = fd.chrome, t = e && e.app && e.app.runtime, n = "history" in fd && !!fd.history.pushState && !!fd.history.replaceState; return !t && n }()) return; const e = dd.onpopstate; function t(e) { return function(...t) { const n = t.length > 2 ? t[2] : void 0; if (n) { const e = pd, t = String(n); pd = t; ul("history", { from: e, to: t }) } return e.apply(this, t) } } dd.onpopstate = function(...t) { const n = dd.location.href, r = pd; pd = n; if (ul("history", { from: r, to: n }), e) try { return e.apply(this, t) } catch (e) {} }, za(dd.history, "pushState", t), za(dd.history, "replaceState", t) } function gd(e) { const t = "console"; sl(t, e), cl(t, yd) } function yd() { "console" in Ea && Da.forEach(function(e) { e in Ea.console && za(Ea.console, e, function(t) { return Na[e] = t, function(...t) { ul("console", { args: t, level: e }); const n = Na[e]; n && n.apply(Ea.console, t) } }) }) } const vd = Ea; let bd, _d, Sd; function wd(e) { sl("dom", e), cl("dom", Od) } function Od() { if (!vd.document) return; const e = ul.bind(null, "dom"), t = Ed(e, !0); vd.document.addEventListener("click", t, !1), vd.document.addEventListener("keypress", t, !1), ["EventTarget", "Node"].forEach(t => { const n = vd[t] && vd[t].prototype; n && n.hasOwnProperty && n.hasOwnProperty("addEventListener") && (za(n, "addEventListener", function(t) { return function(n, r, o) { if ("click" === n || "keypress" == n) try { const r = this, i = r.__sentry_instrumentation_handlers__ = r.__sentry_instrumentation_handlers__ || {}, a = i[n] = i[n] || { refCount: 0 }; if (!a.handler) { const r = Ed(e); a.handler = r, t.call(this, n, r, o) } a.refCount++ } catch (e) {} return t.call(this, n, r, o) } }), za(n, "removeEventListener", function(e) { return function(t, n, r) { if ("click" === t || "keypress" == t) try { const n = this, o = n.__sentry_instrumentation_handlers__ || {}, i = o[t]; i && (i.refCount--, i.refCount <= 0 && (e.call(this, t, i.handler, r), i.handler = void 0, delete o[t]), 0 === Object.keys(o).length && delete n.__sentry_instrumentation_handlers__) } catch (e) {} return e.call(this, t, n, r) } })) }) } function Ed(e, t = !1) { return n => { if (!n || n._sentryCaptured) return; const r = function(e) { try { return e.target } catch (e) { return null } }(n); if (function(e, t) { return "keypress" === e && (!t || !t.tagName || "INPUT" !== t.tagName && "TEXTAREA" !== t.tagName && !t.isContentEditable) }(n.type, r)) return; qa(n, "_sentryCaptured", !0), r && !r._sentryId && qa(r, "_sentryId", ts()); const o = "keypress" === n.type ? "input" : n.type; if (! function(e) { if (e.type !== _d) return !1; try { if (!e.target || e.target._sentryId !== Sd) return !1 } catch (e) {} return !0 }(n)) { e({ event: n, name: o, global: t }), _d = n.type, Sd = r ? r._sentryId : void 0 } clearTimeout(bd), bd = vd.setTimeout(() => { Sd = void 0, _d = void 0 }, 1e3) } } const kd = Ea, Td = "__sentry_xhr_v3__"; function xd(e) { sl("xhr", e), cl("xhr", Id) } function Id() { if (!kd.XMLHttpRequest) return; const e = XMLHttpRequest.prototype; za(e, "open", function(e) { return function(...t) { const n = Date.now(), r = ha(t[0]) ? t[0].toUpperCase() : void 0, o = function(e) { if (ha(e)) return e; try { return e.toString() } catch (e) {} return }(t[1]); if (!r || !o) return e.apply(this, t); this[Td] = { method: r, url: o, request_headers: {} }, "POST" === r && o.match(/sentry_key/) && (this.__sentry_own_request__ = !0); const i = () => { const e = this[Td]; if (e && 4 === this.readyState) { try { e.status_code = this.status } catch (e) {} ul("xhr", { args: [r, o], endTimestamp: Date.now(), startTimestamp: n, xhr: this }) } }; return "onreadystatechange" in this && "function" == typeof this.onreadystatechange ? za(this, "onreadystatechange", function(e) { return function(...t) { return i(), e.apply(this, t) } }) : this.addEventListener("readystatechange", i), za(this, "setRequestHeader", function(e) { return function(...t) { const [n, r] = t, o = this[Td]; return o && ha(n) && ha(r) && (o.request_headers[n.toLowerCase()] = r), e.apply(this, t) } }), e.apply(this, t) } }), za(e, "send", function(e) { return function(...t) { const n = this[Td]; if (!n) return e.apply(this, t); void 0 !== t[0] && (n.body = t[0]); return ul("xhr", { args: [n.method, n.url], startTimestamp: Date.now(), xhr: this }), e.apply(this, t) } }) } function Pd(e) { const t = "fetch"; sl(t, e), cl(t, Ad) } function Ad() { Hf() && za(Ea, "fetch", function(e) { return function(...t) { const { method: n, url: r } = function(e) { if (0 === e.length) return { method: "GET", url: "" }; if (2 === e.length) { const [t, n] = e; return { url: jd(t), method: Cd(n, "method") ? String(n.method).toUpperCase() : "GET" } } const t = e[0]; return { url: jd(t), method: Cd(t, "method") ? String(t.method).toUpperCase() : "GET" } }(t), o = { args: t, fetchData: { method: n, url: r }, startTimestamp: Date.now() }; return ul("fetch", { ...o }), e.apply(Ea, t).then(e => (ul("fetch", { ...o, endTimestamp: Date.now(), response: e }), e), e => { throw ul("fetch", { ...o, endTimestamp: Date.now(), error: e }), e }) } }) } function Cd(e, t) { return !!e && "object" == typeof e && !!e[t] } function jd(e) { return "string" == typeof e ? e : e ? Cd(e, "url") ? e.url : e.toString ? e.toString() : "" : "" } const Rd = ["fatal", "error", "warning", "log", "info", "debug"]; function Md(e) { return "warn" === e ? "warning" : Rd.includes(e) ? e : "log" } function Dd(e) { if (!e) return {}; const t = e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/); if (!t) return {}; const n = t[6] || "", r = t[8] || ""; return { host: t[4], path: t[5], protocol: t[2], search: n, hash: r, relative: t[5] + n + r } } const Nd = 1024, Ld = "Breadcrumbs", Fd = (e = {}) => { const t = { console: !0, dom: !0, fetch: !0, history: !0, sentry: !0, xhr: !0, ...e }; return { name: Ld, setupOnce() {}, setup(e) { t.console && gd(function(e) { return function(t) { if (Uc() !== e) return; const n = { category: "console", data: { arguments: t.args, logger: "console" }, level: Md(t.level), message: Ga(t.args, " ") }; if ("assert" === t.level) { if (!1 !== t.args[0]) return; n.message = `Assertion failed: ${Ga(t.args.slice(1)," ")||"console.assert"}`, n.data.arguments = t.args.slice(1) } Tc(n, { input: t.args, level: t.level }) } }(e)), t.dom && wd(function(e, t) { return function(n) { if (Uc() !== e) return; let r, o, i = "object" == typeof t ? t.serializeAttribute : void 0, a = "object" == typeof t && "number" == typeof t.maxStringLength ? t.maxStringLength : void 0; a && a > Nd && (xf && Fa.warn(`\`dom.maxStringLength\` cannot exceed 1024, but a value of ${a} was configured. Sentry will use 1024 instead.`), a = Nd), "string" == typeof i && (i = [i]); try { const e = n.event, t = function(e) { return !!e && !!e.target }(e) ? e.target : e; r = Pa(t, { keyAttrs: i, maxStringLength: a }), o = Ra(t) } catch (e) { r = "" } if (0 === r.length) return; const s = { category: `ui.${n.name}`, message: r }; o && (s.data = { "ui.component_name": o }), Tc(s, { event: n.event, name: n.name, global: n.global }) } }(e, t.dom)), t.xhr && xd(function(e) { return function(t) { if (Uc() !== e) return; const { startTimestamp: n, endTimestamp: r } = t, o = t.xhr[Td]; if (!n || !r || !o) return; const { method: i, url: a, status_code: s, body: c } = o; Tc({ category: "xhr", data: { method: i, url: a, status_code: s }, type: "http" }, { xhr: t.xhr, input: c, startTimestamp: n, endTimestamp: r }) } }(e)), t.fetch && Pd(function(e) { return function(t) { if (Uc() !== e) return; const { startTimestamp: n, endTimestamp: r } = t; if (r && (!t.fetchData.url.match(/sentry_key/) || "POST" !== t.fetchData.method)) if (t.error) { Tc({ category: "fetch", data: t.fetchData, level: "error", type: "http" }, { data: t.error, input: t.args, startTimestamp: n, endTimestamp: r }) } else { const e = t.response; Tc({ category: "fetch", data: { ...t.fetchData, status_code: e && e.status }, type: "http" }, { input: t.args, response: e, startTimestamp: n, endTimestamp: r }) } } }(e)), t.history && hd(function(e) { return function(t) { if (Uc() !== e) return; let n = t.from, r = t.to; const o = Dd(wf.location.href); let i = n ? Dd(n) : void 0; const a = Dd(r); i && i.path || (i = o), o.protocol === a.protocol && o.host === a.host && (r = a.relative), o.protocol === i.protocol && o.host === i.host && (n = i.relative), Tc({ category: "navigation", data: { from: n, to: r } }) } }(e)), t.sentry && e.on && e.on("beforeSendEvent", function(e) { return function(t) { Uc() === e && Tc({ category: "sentry." + ("transaction" === t.type ? "transaction" : "event"), event_id: t.event_id, level: t.level, message: rs(t) }, { event: t }) } }(e)) } } }, Bd = Xc(Ld, Fd); const Ud = "Dedupe", Gd = () => { let e; return { name: Ud, setupOnce() {}, processEvent(t) { if (t.type) return t; try { if (function(e, t) { if (!t) return !1; if (function(e, t) { const n = e.message, r = t.message; if (!n && !r) return !1; if (n && !r || !n && r) return !1; if (n !== r) return !1; if (!zd(e, t)) return !1; if (!Hd(e, t)) return !1; return !0 }(e, t)) return !0; if (function(e, t) { const n = qd(t), r = qd(e); if (!n || !r) return !1; if (n.type !== r.type || n.value !== r.value) return !1; if (!zd(e, t)) return !1; if (!Hd(e, t)) return !1; return !0 }(e, t)) return !0; return !1 }(t, e)) return xf && Fa.warn("Event dropped due to being a duplicate of previously captured event."), null } catch (e) {} return e = t } } }, $d = Xc(Ud, Gd); function Hd(e, t) { let n = Wd(e), r = Wd(t); if (!n && !r) return !0; if (n && !r || !n && r) return !1; if (r.length !== n.length) return !1; for (let e = 0; e < r.length; e++) { const t = r[e], o = n[e]; if (t.filename !== o.filename || t.lineno !== o.lineno || t.colno !== o.colno || t.function !== o.function) return !1 } return !0 } function zd(e, t) { let n = e.fingerprint, r = t.fingerprint; if (!n && !r) return !0; if (n && !r || !n && r) return !1; try { return !(n.join("") !== r.join("")) } catch (e) { return !1 } } function qd(e) { return e.exception && e.exception.values && e.exception.values[0] } function Wd(e) { const t = e.exception; if (t) try { return t.values[0].stacktrace.frames } catch (e) { return } } const Vd = "GlobalHandlers", Yd = (e = {}) => { const t = { onerror: !0, onunhandledrejection: !0, ...e }; return { name: Vd, setupOnce() { Error.stackTraceLimit = 50 }, setup(e) { t.onerror && (! function(e) { fl(t => { const { stackParser: n, attachStacktrace: r } = Xd(); if (Uc() !== e || Ef()) return; const { msg: o, url: i, line: a, column: s, error: c } = t, u = void 0 === c && ha(o) ? function(e, t, n, r) { const o = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i; let i = da(e) ? e.message : e, a = "Error"; const s = i.match(o); s && (a = s[1], i = s[2]); const c = { exception: { values: [{ type: a, value: i }] } }; return Kd(c, t, n, r) }(o, i, a, s) : Kd(Df(n, c || o, void 0, r, !1), i, a, s); u.level = "error", Ec(u, { originalException: c, mechanism: { handled: !1, type: "onerror" } }) }) }(e), Qd("onerror")), t.onunhandledrejection && (! function(e) { hl(t => { const { stackParser: n, attachStacktrace: r } = Xd(); if (Uc() !== e || Ef()) return; const o = function(e) { if (ga(e)) return e; const t = e; try { if ("reason" in t) return t.reason; if ("detail" in t && "reason" in t.detail) return t.detail.reason } catch (e) {} return e }(t), i = ga(o) ? { exception: { values: [{ type: "UnhandledRejection", value: `Non-Error promise rejection captured with value: ${String(o)}` }] } } : Df(n, o, void 0, r, !0); i.level = "error", Ec(i, { originalException: o, mechanism: { handled: !1, type: "onunhandledrejection" } }) }) }(e), Qd("onunhandledrejection")) } } }, Jd = Xc(Vd, Yd); function Kd(e, t, n, r) { const o = e.exception = e.exception || {}, i = o.values = o.values || [], a = i[0] = i[0] || {}, s = a.stacktrace = a.stacktrace || {}, c = s.frames = s.frames || [], u = isNaN(parseInt(r, 10)) ? void 0 : r, l = isNaN(parseInt(n, 10)) ? void 0 : n, f = ha(t) && t.length > 0 ? t : Ca(); return 0 === c.length && c.push({ colno: u, filename: f, function: "?", in_app: !0, lineno: l }), e } function Qd(e) { xf && Fa.log(`Global Handler attached: ${e}`) } function Xd() { const e = Uc(); return e && e.getOptions() || { stackParser: () => [], attachStacktrace: !1 } } const Zd = "HttpContext", ep = () => ({ name: Zd, setupOnce() {}, preprocessEvent(e) { if (!wf.navigator && !wf.location && !wf.document) return; const t = e.request && e.request.url || wf.location && wf.location.href, { referrer: n } = wf.document || {}, { userAgent: r } = wf.navigator || {}, o = { ...e.request && e.request.headers, ...n && { Referer: n }, ...r && { "User-Agent": r } }, i = { ...e.request, ...t && { url: t }, headers: o }; e.request = i } }), tp = Xc(Zd, ep), np = "LinkedErrors", rp = (e = {}) => { const t = e.limit || 5, n = e.key || "cause"; return { name: np, setupOnce() {}, preprocessEvent(e, r, o) { const i = o.getOptions(); lu(If, i.stackParser, i.maxValueLength, n, t, e, r) } } }, op = Xc(np, rp), ip = ["EventTarget", "Window", "Node", "ApplicationCache", "AudioTrackList", "BroadcastChannel", "ChannelMergerNode", "CryptoOperation", "EventSource", "FileReader", "HTMLUnknownElement", "IDBDatabase", "IDBRequest", "IDBTransaction", "KeyOperation", "MediaController", "MessagePort", "ModalWindow", "Notification", "SVGElementInstance", "Screen", "SharedWorker", "TextTrack", "TextTrackCue", "TextTrackList", "WebSocket", "WebSocketWorker", "Worker", "XMLHttpRequest", "XMLHttpRequestEventTarget", "XMLHttpRequestUpload"], ap = "TryCatch", sp = (e = {}) => { const t = { XMLHttpRequest: !0, eventTarget: !0, requestAnimationFrame: !0, setInterval: !0, setTimeout: !0, ...e }; return { name: ap, setupOnce() { t.setTimeout && za(wf, "setTimeout", up), t.setInterval && za(wf, "setInterval", up), t.requestAnimationFrame && za(wf, "requestAnimationFrame", lp), t.XMLHttpRequest && "XMLHttpRequest" in wf && za(XMLHttpRequest.prototype, "send", fp); const e = t.eventTarget; if (e) { (Array.isArray(e) ? e : ip).forEach(dp) } } } }, cp = Xc(ap, sp); function up(e) { return function(...t) { const n = t[0]; return t[0] = kf(n, { mechanism: { data: { function: hc(e) }, handled: !1, type: "instrument" } }), e.apply(this, t) } } function lp(e) { return function(t) { return e.apply(this, [kf(t, { mechanism: { data: { function: "requestAnimationFrame", handler: hc(e) }, handled: !1, type: "instrument" } })]) } } function fp(e) { return function(...t) { const n = this; return ["onload", "onerror", "onprogress", "onreadystatechange"].forEach(e => { e in n && "function" == typeof n[e] && za(n, e, function(t) { const n = { mechanism: { data: { function: e, handler: hc(t) }, handled: !1, type: "instrument" } }, r = Va(t); return r && (n.mechanism.data.handler = hc(r)), kf(t, n) }) }), e.apply(this, t) } } function dp(e) { const t = wf, n = t[e] && t[e].prototype; n && n.hasOwnProperty && n.hasOwnProperty("addEventListener") && (za(n, "addEventListener", function(t) { return function(n, r, o) { try { "function" == typeof r.handleEvent && (r.handleEvent = kf(r.handleEvent, { mechanism: { data: { function: "handleEvent", handler: hc(r), target: e }, handled: !1, type: "instrument" } })) } catch (e) {} return t.apply(this, [n, kf(r, { mechanism: { data: { function: "addEventListener", handler: hc(r), target: e }, handled: !1, type: "instrument" } }), o]) } }), za(n, "removeEventListener", function(e) { return function(t, n, r) { const o = n; try { const n = o && o.__sentry_wrapped__; n && e.call(this, t, n, r) } catch (e) {} return e.call(this, t, o, r) } })) } const pp = [su(), nu(), sp(), Fd(), Yd(), rp(), Gd(), ep()]; function hp(e) { return [...pp] } function mp(e = {}) { void 0 === e.defaultIntegrations && (e.defaultIntegrations = hp()), void 0 === e.release && ("string" == typeof __SENTRY_RELEASE__ && (e.release = __SENTRY_RELEASE__), wf.SENTRY_RELEASE && wf.SENTRY_RELEASE.id && (e.release = wf.SENTRY_RELEASE.id)), void 0 === e.autoSessionTracking && (e.autoSessionTracking = !0), void 0 === e.sendClientReports && (e.sendClientReports = !0); const t = { ...e, stackParser: (n = e.stackParser || ud, Array.isArray(n) ? dc(...n) : n), integrations: Yc(e), transport: e.transport || (Gf() ? qf : Vf) }; var n; ! function(e, t) { !0 === t.debug && (es ? Fa.enable() : La(() => { console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.") })), $c().update(t.initialScope); const n = new e(t); _f(n), function(e) { e.init ? e.init() : e.setupIntegrations && e.setupIntegrations() }(n) }(Bf, t), e.autoSessionTracking && function() { if (void 0 === wf.document) return void(xf && Fa.warn("Session tracking in non-browser environment with @sentry/browser is not supported.")); Hc({ ignoreDuration: !0 }), Wc(), hd(({ from: e, to: t }) => { void 0 !== e && e !== t && (Hc({ ignoreDuration: !0 }), Wc()) }) }() } const gp = (e = {}, t = nc()) => { if (!wf.document) return void(xf && Fa.error("Global document not defined in showReportDialog call")); const { client: n, scope: r } = t.getStackTop(), o = e.dsn || n && n.getDsn(); if (!o) return void(xf && Fa.error("DSN not configured for showReportDialog call")); r && (e.user = { ...r.getUser(), ...e.user }), e.eventId || (e.eventId = t.lastEventId()); const i = wf.document.createElement("script"); i.async = !0, i.crossOrigin = "anonymous", i.src = function(e, t) { const n = Ou(e); if (!n) return ""; const r = `${Wu(n)}embed/error-page/`; let o = `dsn=${_u(n)}`; for (const e in t) if ("dsn" !== e && "onClose" !== e) if ("user" === e) { const e = t.user; if (!e) continue; e.name && (o += `&name=${encodeURIComponent(e.name)}`), e.email && (o += `&email=${encodeURIComponent(e.email)}`) } else o += `&${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`; return `${r}?${o}` }(o, e), e.onLoad && (i.onload = e.onLoad); const { onClose: a } = e; if (a) { const e = t => { if ("__sentry_reportdialog_closed__" === t.data) try { a() } finally { wf.removeEventListener("message", e) } }; wf.addEventListener("message", e) } const s = wf.document.head || wf.document.body; s ? s.appendChild(i) : xf && Fa.error("Not injecting report dialog. No injection point found in HTML") }; function yp() {} function vp(e) { e() } function bp(e) { return kf(e)() } function _p(e) { const t = Uc(); t && t.captureUserFeedback(e) } function Sp(e) { let t, n = e[0], r = 1; for (; r < e.length;) { const o = e[r], i = e[r + 1]; if (r += 2, ("optionalAccess" === o || "optionalCall" === o) && null == n) return; "access" === o || "optionalAccess" === o ? (t = n, n = i(n)) : "call" !== o && "optionalCall" !== o || (n = i((...e) => n.call(t, ...e)), t = void 0) } return n } function wp(e, t) { const n = t && function(e) { return void 0 !== e.getClient }(t) ? t.getClient() : t, r = n && n.getDsn(), o = n && n.getOptions().tunnel; return function(e, t) { return !!t && e.includes(t.host) }(e, r) || function(e, t) { if (!t) return !1; return Op(e) === Op(t) }(e, o) } function Op(e) { return "/" === e[e.length - 1] ? e.slice(0, -1) : e } var Ep = n(76176); function kp() { return "undefined" != typeof window && (!(0, Ep.wD)() || void 0 !== Ea.process && "renderer" === Ea.process.type) } const Tp = "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__, xp = (e, t, n) => { let r, o; return i => { t.value >= 0 && (i || n) && (o = t.value - (r || 0), (o || void 0 === r) && (r = t.value, t.delta = o, e(t))) } }, Ip = Ea, Pp = () => Ip.__WEB_VITALS_POLYFILL__ ? Ip.performance && (performance.getEntriesByType && performance.getEntriesByType("navigation")[0] || (() => { const e = Ip.performance.timing, t = Ip.performance.navigation.type, n = { entryType: "navigation", startTime: 0, type: 2 == t ? "back_forward" : 1 === t ? "reload" : "navigate" }; for (const t in e) "navigationStart" !== t && "toJSON" !== t && (n[t] = Math.max(e[t] - e.navigationStart, 0)); return n })()) : Ip.performance && performance.getEntriesByType && performance.getEntriesByType("navigation")[0], Ap = () => { const e = Pp(); return e && e.activationStart || 0 }, Cp = (e, t) => { const n = Pp(); let r = "navigate"; return n && (r = Ip.document && Ip.document.prerendering || Ap() > 0 ? "prerender" : n.type.replace(/_/g, "-")), { name: e, value: void 0 === t ? -1 : t, rating: "good", delta: 0, entries: [], id: `v3-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`, navigationType: r } }, jp = (e, t, n) => { try { if (PerformanceObserver.supportedEntryTypes.includes(e)) { const r = new PerformanceObserver(e => { t(e.getEntries()) }); return r.observe({ type: e, buffered: !0, ...n }), r } } catch (e) {} }, Rp = (e, t) => { const n = r => { "pagehide" !== r.type && "hidden" !== Ip.document.visibilityState || (e(r), t && (removeEventListener("visibilitychange", n, !0), removeEventListener("pagehide", n, !0))) }; Ip.document && (addEventListener("visibilitychange", n, !0), addEventListener("pagehide", n, !0)) }; let Mp = -1; const Dp = () => (Mp < 0 && (Ip.document && Ip.document.visibilityState && (Mp = "hidden" !== Ip.document.visibilityState || Ip.document.prerendering ? 1 / 0 : 0), Rp(({ timeStamp: e }) => { Mp = e }, !0)), { get firstHiddenTime() { return Mp } }); let Np = 0, Lp = 1 / 0, Fp = 0; const Bp = e => { e.forEach(e => { e.interactionId && (Lp = Math.min(Lp, e.interactionId), Fp = Math.max(Fp, e.interactionId), Np = Fp ? (Fp - Lp) / 7 + 1 : 0) }) }; let Up; const Gp = () => { "interactionCount" in performance || Up || (Up = jp("event", Bp, { type: "event", buffered: !0, durationThreshold: 0 })) }, $p = () => Up ? Np : performance.interactionCount || 0, Hp = [], zp = {}, qp = e => { const t = Hp[Hp.length - 1], n = zp[e.interactionId]; if (n || Hp.length < 10 || e.duration > t.latency) { if (n) n.entries.push(e), n.latency = Math.max(n.latency, e.duration); else { const t = { id: e.interactionId, latency: e.duration, entries: [e] }; zp[t.id] = t, Hp.push(t) } Hp.sort((e, t) => t.latency - e.latency), Hp.splice(10).forEach(e => { delete zp[e.id] }) } }, Wp = (e, t) => { t = t || {}, Gp(); const n = Cp("INP"); let r; const o = e => { e.forEach(e => { if (e.interactionId && qp(e), "first-input" === e.entryType) { !Hp.some(t => t.entries.some(t => e.duration === t.duration && e.startTime === t.startTime)) && qp(e) } }); const t = (() => { const e = Math.min(Hp.length - 1, Math.floor($p() / 50)); return Hp[e] })(); t && t.latency !== n.value && (n.value = t.latency, n.entries = t.entries, r()) }, i = jp("event", o, { durationThreshold: t.durationThreshold || 40 }); r = xp(e, n, t.reportAllChanges), i && (i.observe({ type: "first-input", buffered: !0 }), Rp(() => { o(i.takeRecords()), n.value < 0 && $p() > 0 && (n.value = 0, n.entries = []), r(!0) })) }, Vp = {}, Yp = e => { Ip.document && (Ip.document.prerendering ? addEventListener("prerenderingchange", () => Yp(e), !0) : "complete" !== Ip.document.readyState ? addEventListener("load", () => Yp(e), !0) : setTimeout(e, 0)) }, Jp = {}, Kp = {}; let Qp, Xp, Zp, eh, th; function nh(e, t = !1) { return lh("lcp", e, sh, Zp, t) } function rh(e, t) { return fh(e, t), Kp[e] || (! function(e) { const t = {}; "event" === e && (t.durationThreshold = 0); jp(e, t => { oh(e, { entries: t }) }, t) }(e), Kp[e] = !0), dh(e, t) } function oh(e, t) { const n = Jp[e]; if (n && n.length) for (const r of n) try { r(t) } catch (t) { Tp && Fa.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${hc(r)}\nError:`, t) } } function ih() { return ((e, t = {}) => { const n = Cp("CLS", 0); let r, o = 0, i = []; const a = e => { e.forEach(e => { if (!e.hadRecentInput) { const t = i[0], a = i[i.length - 1]; o && 0 !== i.length && e.startTime - a.startTime < 1e3 && e.startTime - t.startTime < 5e3 ? (o += e.value, i.push(e)) : (o = e.value, i = [e]), o > n.value && (n.value = o, n.entries = i, r && r()) } }) }, s = jp("layout-shift", a); if (s) { r = xp(e, n, t.reportAllChanges); const o = () => { a(s.takeRecords()), r(!0) }; return Rp(o), o } })(e => { oh("cls", { metric: e }), Qp = e }, { reportAllChanges: !0 }) } function ah() { return (e => { const t = Dp(), n = Cp("FID"); let r; const o = e => { e.startTime < t.firstHiddenTime && (n.value = e.processingStart - e.startTime, n.entries.push(e), r(!0)) }, i = e => { e.forEach(o) }, a = jp("first-input", i); r = xp(e, n), a && Rp(() => { i(a.takeRecords()), a.disconnect() }, !0) })(e => { oh("fid", { metric: e }), Xp = e }) } function sh() { return (e => { const t = Dp(), n = Cp("LCP"); let r; const o = e => { const o = e[e.length - 1]; if (o) { const e = Math.max(o.startTime - Ap(), 0); e < t.firstHiddenTime && (n.value = e, n.entries = [o], r()) } }, i = jp("largest-contentful-paint", o); if (i) { r = xp(e, n); const t = () => { Vp[n.id] || (o(i.takeRecords()), i.disconnect(), Vp[n.id] = !0, r(!0)) }; return ["keydown", "click"].forEach(e => { Ip.document && addEventListener(e, t, { once: !0, capture: !0 }) }), Rp(t, !0), t } })(e => { oh("lcp", { metric: e }), Zp = e }) } function ch() { return ((e, t) => { t = t || {}; const n = Cp("TTFB"), r = xp(e, n, t.reportAllChanges); Yp(() => { const e = Pp(); if (e) { if (n.value = Math.max(e.responseStart - Ap(), 0), n.value < 0 || n.value > performance.now()) return; n.entries = [e], r(!0) } }) })(e => { oh("ttfb", { metric: e }), eh = e }) } function uh() { return Wp(e => { oh("inp", { metric: e }), th = e }) } function lh(e, t, n, r, o = !1) { let i; return fh(e, t), Kp[e] || (i = n(), Kp[e] = !0), r && t({ metric: r }), dh(e, t, o ? i : void 0) } function fh(e, t) { Jp[e] = Jp[e] || [], Jp[e].push(t) } function dh(e, t, n) { return () => { n && n(); const r = Jp[e]; if (!r) return; const o = r.indexOf(t); - 1 !== o && r.splice(o, 1) } } const ph = Ea, hh = "sentryReplaySession", mh = "Unable to send Replay", gh = 15e4, yh = 5e3, vh = 2e7, bh = 36e5; function _h(e) { let t, n = e[0], r = 1; for (; r < e.length;) { const o = e[r], i = e[r + 1]; if (r += 2, ("optionalAccess" === o || "optionalCall" === o) && null == n) return; "access" === o || "optionalAccess" === o ? (t = n, n = i(n)) : "call" !== o && "optionalCall" !== o || (n = i((...e) => n.call(t, ...e)), t = void 0) } return n } var Sh; function wh(e) { const t = _h([e, "optionalAccess", e => e.host]); return Boolean(_h([t, "optionalAccess", e => e.shadowRoot]) === e) } function Oh(e) { return "[object ShadowRoot]" === Object.prototype.toString.call(e) } function Eh(e) { try { const n = e.rules || e.cssRules; return n ? ((t = Array.from(n, kh).join("")).includes(" background-clip: text;") && !t.includes(" -webkit-background-clip: text;") && (t = t.replace(" background-clip: text;", " -webkit-background-clip: text; background-clip: text;")), t) : null } catch (e) { return null } var t } function kh(e) { let t; if (function(e) { return "styleSheet" in e }(e)) try { t = Eh(e.styleSheet) || function(e) { const { cssText: t } = e; if (t.split('"').length < 3) return t; const n = ["@import", `url(${JSON.stringify(e.href)})`]; return "" === e.layerName ? n.push("layer") : e.layerName && n.push(`layer(${e.layerName})`), e.supportsText && n.push(`supports(${e.supportsText})`), e.media.length && n.push(e.media.mediaText), n.join(" ") + ";" }(e) } catch (e) {} else if (function(e) { return "selectorText" in e }(e) && e.selectorText.includes(":")) return function(e) { const t = /(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm; return e.replace(t, "$1\\$2") }(e.cssText); return t || e.cssText }! function(e) { e[e.Document = 0] = "Document", e[e.DocumentType = 1] = "DocumentType", e[e.Element = 2] = "Element", e[e.Text = 3] = "Text", e[e.CDATA = 4] = "CDATA", e[e.Comment = 5] = "Comment" }(Sh || (Sh = {})); class Th { constructor() { this.idNodeMap = new Map, this.nodeMetaMap = new WeakMap } getId(e) { if (!e) return -1; const t = _h([this, "access", e => e.getMeta, "call", t => t(e), "optionalAccess", e => e.id]); return r = () => -1, null != (n = t) ? n : r(); var n, r } getNode(e) { return this.idNodeMap.get(e) || null } getIds() { return Array.from(this.idNodeMap.keys()) } getMeta(e) { return this.nodeMetaMap.get(e) || null } removeNodeFromMap(e) { const t = this.getId(e); this.idNodeMap.delete(t), e.childNodes && e.childNodes.forEach(e => this.removeNodeFromMap(e)) } has(e) { return this.idNodeMap.has(e) } hasNode(e) { return this.nodeMetaMap.has(e) } add(e, t) { const n = t.id; this.idNodeMap.set(n, e), this.nodeMetaMap.set(e, t) } replace(e, t) { const n = this.getNode(e); if (n) { const e = this.nodeMetaMap.get(n); e && this.nodeMetaMap.set(t, e) } this.idNodeMap.set(e, t) } reset() { this.idNodeMap = new Map, this.nodeMetaMap = new WeakMap } } function xh({ maskInputOptions: e, tagName: t, type: n }) { return "OPTION" === t && (t = "SELECT"), Boolean(e[t.toLowerCase()] || n && e[n] || "password" === n || "INPUT" === t && !n && e.text) } function Ih({ isMasked: e, element: t, value: n, maskInputFn: r }) { let o = n || ""; return e ? (r && (o = r(o, t)), "*".repeat(o.length)) : o } function Ph(e) { return e.toLowerCase() } function Ah(e) { return e.toUpperCase() } const Ch = "__rrweb_original__"; function jh(e) { const t = e.type; return e.hasAttribute("data-rr-is-password") ? "password" : t ? Ph(t) : null } function Rh(e, t, n) { return "INPUT" !== t || "radio" !== n && "checkbox" !== n ? e.value : e.getAttribute("value") || "" } let Mh = 1; const Dh = new RegExp("[^a-z0-9-_:]"); function Nh() { return Mh++ } let Lh, Fh; const Bh = /url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm, Uh = /^(?:[a-z+]+:)?\/\//i, Gh = /^www\..*/i, $h = /^(data:)([^,]*),(.*)/i; function Hh(e, t) { return (e || "").replace(Bh, (e, n, r, o, i, a) => { const s = r || i || a, c = n || o || ""; if (!s) return e; if (Uh.test(s) || Gh.test(s)) return `url(${c}${s}${c})`; if ($h.test(s)) return `url(${c}${s}${c})`; if ("/" === s[0]) return `url(${c}${function(e){let t="";return t=e.indexOf("//")>-1?e.split("/").slice(0,3).join("/"):e.split("/")[0],t=t.split("?")[0],t}(t)+s}${c})`; const u = t.split("/"), l = s.split("/"); u.pop(); for (const e of l) "." !== e && (".." === e ? u.pop() : u.push(e)); return `url(${c}${u.join("/")}${c})` }) } const zh = /^[^ \t\n\r\u000c]+/, qh = /^[, \t\n\r\u000c]+/; function Wh(e, t) { if (!t || "" === t.trim()) return t; const n = e.createElement("a"); return n.href = t, n.href } function Vh(e) { return Boolean("svg" === e.tagName || e.ownerSVGElement) } function Yh() { const e = document.createElement("a"); return e.href = "", e.href } function Jh(e, t, n, r, o, i) { return r ? "src" === n || "href" === n && ("use" !== t || "#" !== r[0]) || "xlink:href" === n && "#" !== r[0] ? Wh(e, r) : "background" !== n || "table" !== t && "td" !== t && "th" !== t ? "srcset" === n ? function(e, t) { if ("" === t.trim()) return t; let n = 0; function r(e) { let r; const o = e.exec(t.substring(n)); return o ? (r = o[0], n += r.length, r) : "" } const o = []; for (; r(qh), !(n >= t.length);) { let i = r(zh); if ("," === i.slice(-1)) i = Wh(e, i.substring(0, i.length - 1)), o.push(i); else { let r = ""; i = Wh(e, i); let a = !1; for (;;) { const e = t.charAt(n); if ("" === e) { o.push((i + r).trim()); break } if (a) ")" === e && (a = !1); else { if ("," === e) { n += 1, o.push((i + r).trim()); break } "(" === e && (a = !0) } r += e, n += 1 } } } return o.join(", ") }(e, r) : "style" === n ? Hh(r, Yh()) : "object" === t && "data" === n ? Wh(e, r) : "function" == typeof i ? i(n, r, o) : r : Wh(e, r) : r } function Kh(e, t, n) { return ("video" === e || "audio" === e) && "autoplay" === t } function Qh(e, t, n = 1 / 0, r = 0) { return e ? e.nodeType !== e.ELEMENT_NODE || r > n ? -1 : t(e) ? r : Qh(e.parentNode, t, n, r + 1) : -1 } function Xh(e, t) { return n => { const r = n; if (null === r) return !1; try { if (e) if ("string" == typeof e) { if (r.matches(`.${e}`)) return !0 } else if (function(e, t) { for (let n = e.classList.length; n--;) { const r = e.classList[n]; if (t.test(r)) return !0 } return !1 }(r, e)) return !0; return !(!t || !r.matches(t)) } catch (e) { return !1 } } } function Zh(e, t, n, r, o, i) { try { const a = e.nodeType === e.ELEMENT_NODE ? e : e.parentElement; if (null === a) return !1; if ("INPUT" === a.tagName) { const e = a.getAttribute("autocomplete"); if (["current-password", "new-password", "cc-number", "cc-exp", "cc-exp-month", "cc-exp-year", "cc-csc"].includes(e)) return !0 } let s = -1, c = -1; if (i) { if (c = Qh(a, Xh(r, o)), c < 0) return !0; s = Qh(a, Xh(t, n), c >= 0 ? c : 1 / 0) } else { if (s = Qh(a, Xh(t, n)), s < 0) return !1; c = Qh(a, Xh(r, o), s >= 0 ? s : 1 / 0) } return s >= 0 ? !(c >= 0) || s <= c : !(c >= 0) && !!i } catch (e) {} return !!i } function em(e, t) { const { doc: n, mirror: r, blockClass: o, blockSelector: i, unblockSelector: a, maskAllText: s, maskAttributeFn: c, maskTextClass: u, unmaskTextClass: l, maskTextSelector: f, unmaskTextSelector: d, inlineStylesheet: p, maskInputOptions: h = {}, maskTextFn: m, maskInputFn: g, dataURLOptions: y = {}, inlineImages: v, recordCanvas: b, keepIframeSrcFn: _, newlyAddedElement: S = !1 } = t, w = function(e, t) { if (!t.hasNode(e)) return; const n = t.getId(e); return 1 === n ? void 0 : n }(n, r); switch (e.nodeType) { case e.DOCUMENT_NODE: return "CSS1Compat" !== e.compatMode ? { type: Sh.Document, childNodes: [], compatMode: e.compatMode } : { type: Sh.Document, childNodes: [] }; case e.DOCUMENT_TYPE_NODE: return { type: Sh.DocumentType, name: e.name, publicId: e.publicId, systemId: e.systemId, rootId: w }; case e.ELEMENT_NODE: return function(e, t) { const { doc: n, blockClass: r, blockSelector: o, unblockSelector: i, inlineStylesheet: a, maskInputOptions: s = {}, maskAttributeFn: c, maskInputFn: u, dataURLOptions: l = {}, inlineImages: f, recordCanvas: d, keepIframeSrcFn: p, newlyAddedElement: h = !1, rootId: m, maskAllText: g, maskTextClass: y, unmaskTextClass: v, maskTextSelector: b, unmaskTextSelector: _ } = t, S = function(e, t, n, r) { try { if (r && e.matches(r)) return !1; if ("string" == typeof t) { if (e.classList.contains(t)) return !0 } else for (let n = e.classList.length; n--;) { const r = e.classList[n]; if (t.test(r)) return !0 } if (n) return e.matches(n) } catch (e) {} return !1 }(e, r, o, i), w = function(e) { if (e instanceof HTMLFormElement) return "form"; const t = Ph(e.tagName); return Dh.test(t) ? "div" : t }(e); let O = {}; const E = e.attributes.length; for (let t = 0; t < E; t++) { const r = e.attributes[t]; r.name && !Kh(w, r.name, r.value) && (O[r.name] = Jh(n, w, Ph(r.name), r.value, e, c)) } if ("link" === w && a) { const t = Array.from(n.styleSheets).find(t => t.href === e.href); let r = null; t && (r = Eh(t)), r && (delete O.rel, delete O.href, O._cssText = Hh(r, t.href)) } if ("style" === w && e.sheet && !(e.innerText || e.textContent || "").trim().length) { const t = Eh(e.sheet); t && (O._cssText = Hh(t, Yh())) } if ("input" === w || "textarea" === w || "select" === w || "option" === w) { const t = e, n = jh(t), r = Rh(t, Ah(w), n), o = t.checked; if ("submit" !== n && "button" !== n && r) { const e = Zh(t, y, b, v, _, xh({ type: n, tagName: Ah(w), maskInputOptions: s })); O.value = Ih({ isMasked: e, element: t, value: r, maskInputFn: u }) } o && (O.checked = o) } "option" === w && (e.selected && !s.select ? O.selected = !0 : delete O.selected); if ("canvas" === w && d) if ("2d" === e.__context)(function(e) { const t = e.getContext("2d"); if (!t) return !0; for (let n = 0; n < e.width; n += 50) for (let r = 0; r < e.height; r += 50) { const o = t.getImageData, i = Ch in o ? o[Ch] : o; if (new Uint32Array(i.call(t, n, r, Math.min(50, e.width - n), Math.min(50, e.height - r)).data.buffer).some(e => 0 !== e)) return !1 } return !0 })(e) || (O.rr_dataURL = e.toDataURL(l.type, l.quality)); else if (!("__context" in e)) { const t = e.toDataURL(l.type, l.quality), n = document.createElement("canvas"); n.width = e.width, n.height = e.height; t !== n.toDataURL(l.type, l.quality) && (O.rr_dataURL = t) } if ("img" === w && f) { Lh || (Lh = n.createElement("canvas"), Fh = Lh.getContext("2d")); const t = e, r = t.crossOrigin; t.crossOrigin = "anonymous"; const o = () => { t.removeEventListener("load", o); try { Lh.width = t.naturalWidth, Lh.height = t.naturalHeight, Fh.drawImage(t, 0, 0), O.rr_dataURL = Lh.toDataURL(l.type, l.quality) } catch (e) { console.warn(`Cannot inline img src=${t.currentSrc}! Error: ${e}`) } r ? O.crossOrigin = r : t.removeAttribute("crossorigin") }; t.complete && 0 !== t.naturalWidth ? o() : t.addEventListener("load", o) } "audio" !== w && "video" !== w || (O.rr_mediaState = e.paused ? "paused" : "played", O.rr_mediaCurrentTime = e.currentTime); h || (e.scrollLeft && (O.rr_scrollLeft = e.scrollLeft), e.scrollTop && (O.rr_scrollTop = e.scrollTop)); if (S) { const { width: t, height: n } = e.getBoundingClientRect(); O = { class: O.class, rr_width: `${t}px`, rr_height: `${n}px` } } "iframe" !== w || p(O.src) || (e.contentDocument || (O.rr_src = O.src), delete O.src); let k; try { customElements.get(w) && (k = !0) } catch (e) {} return { type: Sh.Element, tagName: w, attributes: O, childNodes: [], isSVG: Vh(e) || void 0, needBlock: S, rootId: m, isCustom: k } }(e, { doc: n, blockClass: o, blockSelector: i, unblockSelector: a, inlineStylesheet: p, maskAttributeFn: c, maskInputOptions: h, maskInputFn: g, dataURLOptions: y, inlineImages: v, recordCanvas: b, keepIframeSrcFn: _, newlyAddedElement: S, rootId: w, maskAllText: s, maskTextClass: u, unmaskTextClass: l, maskTextSelector: f, unmaskTextSelector: d }); case e.TEXT_NODE: return function(e, t) { const { maskAllText: n, maskTextClass: r, unmaskTextClass: o, maskTextSelector: i, unmaskTextSelector: a, maskTextFn: s, maskInputOptions: c, maskInputFn: u, rootId: l } = t, f = e.parentNode && e.parentNode.tagName; let d = e.textContent; const p = "STYLE" === f || void 0, h = "SCRIPT" === f || void 0, m = "TEXTAREA" === f || void 0; if (p && d) { try { e.nextSibling || e.previousSibling || _h([e, "access", e => e.parentNode, "access", e => e.sheet, "optionalAccess", e => e.cssRules]) && (d = Eh(e.parentNode.sheet)) } catch (t) { console.warn(`Cannot get CSS styles from text's parentNode. Error: ${t}`, e) } d = Hh(d, Yh()) } h && (d = "SCRIPT_PLACEHOLDER"); const g = Zh(e, r, i, o, a, n); p || h || m || !d || !g || (d = s ? s(d, e.parentElement) : d.replace(/[\S]/g, "*")); m && d && (c.textarea || g) && (d = u ? u(d, e.parentNode) : d.replace(/[\S]/g, "*")); if ("OPTION" === f && d) { d = Ih({ isMasked: Zh(e, r, i, o, a, xh({ type: null, tagName: f, maskInputOptions: c })), element: e, value: d, maskInputFn: u }) } return { type: Sh.Text, textContent: d || "", isStyle: p, rootId: l } }(e, { maskAllText: s, maskTextClass: u, unmaskTextClass: l, maskTextSelector: f, unmaskTextSelector: d, maskTextFn: m, maskInputOptions: h, maskInputFn: g, rootId: w }); case e.CDATA_SECTION_NODE: return { type: Sh.CDATA, textContent: "", rootId: w }; case e.COMMENT_NODE: return { type: Sh.Comment, textContent: e.textContent || "", rootId: w }; default: return !1 } } function tm(e) { return null == e ? "" : e.toLowerCase() } function nm(e, t) { const { doc: n, mirror: r, blockClass: o, blockSelector: i, unblockSelector: a, maskAllText: s, maskTextClass: c, unmaskTextClass: u, maskTextSelector: l, unmaskTextSelector: f, skipChild: d = !1, inlineStylesheet: p = !0, maskInputOptions: h = {}, maskAttributeFn: m, maskTextFn: g, maskInputFn: y, slimDOMOptions: v, dataURLOptions: b = {}, inlineImages: _ = !1, recordCanvas: S = !1, onSerialize: w, onIframeLoad: O, iframeLoadTimeout: E = 5e3, onStylesheetLoad: k, stylesheetLoadTimeout: T = 5e3, keepIframeSrcFn: x = () => !1, newlyAddedElement: I = !1 } = t; let { preserveWhiteSpace: P = !0 } = t; const A = em(e, { doc: n, mirror: r, blockClass: o, blockSelector: i, maskAllText: s, unblockSelector: a, maskTextClass: c, unmaskTextClass: u, maskTextSelector: l, unmaskTextSelector: f, inlineStylesheet: p, maskInputOptions: h, maskAttributeFn: m, maskTextFn: g, maskInputFn: y, dataURLOptions: b, inlineImages: _, recordCanvas: S, keepIframeSrcFn: x, newlyAddedElement: I }); if (!A) return console.warn(e, "not serialized"), null; let C; C = r.hasNode(e) ? r.getId(e) : ! function(e, t) { if (t.comment && e.type === Sh.Comment) return !0; if (e.type === Sh.Element) { if (t.script && ("script" === e.tagName || "link" === e.tagName && ("preload" === e.attributes.rel || "modulepreload" === e.attributes.rel) && "script" === e.attributes.as || "link" === e.tagName && "prefetch" === e.attributes.rel && "string" == typeof e.attributes.href && e.attributes.href.endsWith(".js"))) return !0; if (t.headFavicon && ("link" === e.tagName && "shortcut icon" === e.attributes.rel || "meta" === e.tagName && (tm(e.attributes.name).match(/^msapplication-tile(image|color)$/) || "application-name" === tm(e.attributes.name) || "icon" === tm(e.attributes.rel) || "apple-touch-icon" === tm(e.attributes.rel) || "shortcut icon" === tm(e.attributes.rel)))) return !0; if ("meta" === e.tagName) { if (t.headMetaDescKeywords && tm(e.attributes.name).match(/^description|keywords$/)) return !0; if (t.headMetaSocial && (tm(e.attributes.property).match(/^(og|twitter|fb):/) || tm(e.attributes.name).match(/^(og|twitter):/) || "pinterest" === tm(e.attributes.name))) return !0; if (t.headMetaRobots && ("robots" === tm(e.attributes.name) || "googlebot" === tm(e.attributes.name) || "bingbot" === tm(e.attributes.name))) return !0; if (t.headMetaHttpEquiv && void 0 !== e.attributes["http-equiv"]) return !0; if (t.headMetaAuthorship && ("author" === tm(e.attributes.name) || "generator" === tm(e.attributes.name) || "framework" === tm(e.attributes.name) || "publisher" === tm(e.attributes.name) || "progid" === tm(e.attributes.name) || tm(e.attributes.property).match(/^article:/) || tm(e.attributes.property).match(/^product:/))) return !0; if (t.headMetaVerification && ("google-site-verification" === tm(e.attributes.name) || "yandex-verification" === tm(e.attributes.name) || "csrf-token" === tm(e.attributes.name) || "p:domain_verify" === tm(e.attributes.name) || "verify-v1" === tm(e.attributes.name) || "verification" === tm(e.attributes.name) || "shopify-checkout-api-token" === tm(e.attributes.name))) return !0 } } return !1 }(A, v) && (P || A.type !== Sh.Text || A.isStyle || A.textContent.replace(/^\s+|\s+$/gm, "").length) ? Nh() : -2; const j = Object.assign(A, { id: C }); if (r.add(e, j), -2 === C) return null; w && w(e); let R = !d; if (j.type === Sh.Element) { R = R && !j.needBlock, delete j.needBlock; const t = e.shadowRoot; t && Oh(t) && (j.isShadowHost = !0) } if ((j.type === Sh.Document || j.type === Sh.Element) && R) { v.headWhitespace && j.type === Sh.Element && "head" === j.tagName && (P = !1); const t = { doc: n, mirror: r, blockClass: o, blockSelector: i, maskAllText: s, unblockSelector: a, maskTextClass: c, unmaskTextClass: u, maskTextSelector: l, unmaskTextSelector: f, skipChild: d, inlineStylesheet: p, maskInputOptions: h, maskAttributeFn: m, maskTextFn: g, maskInputFn: y, slimDOMOptions: v, dataURLOptions: b, inlineImages: _, recordCanvas: S, preserveWhiteSpace: P, onSerialize: w, onIframeLoad: O, iframeLoadTimeout: E, onStylesheetLoad: k, stylesheetLoadTimeout: T, keepIframeSrcFn: x }; for (const n of Array.from(e.childNodes)) { const e = nm(n, t); e && j.childNodes.push(e) } if (function(e) { return e.nodeType === e.ELEMENT_NODE }(e) && e.shadowRoot) for (const n of Array.from(e.shadowRoot.childNodes)) { const r = nm(n, t); r && (Oh(e.shadowRoot) && (r.isShadow = !0), j.childNodes.push(r)) } } return e.parentNode && wh(e.parentNode) && Oh(e.parentNode) && (j.isShadow = !0), j.type === Sh.Element && "iframe" === j.tagName && function(e, t, n) { const r = e.contentWindow; if (!r) return; let o, i = !1; try { o = r.document.readyState } catch (e) { return } if ("complete" !== o) { const r = setTimeout(() => { i || (t(), i = !0) }, n); return void e.addEventListener("load", () => { clearTimeout(r), i = !0, t() }) } const a = "about:blank"; if (r.location.href !== a || e.src === a || "" === e.src) return setTimeout(t, 0), e.addEventListener("load", t); e.addEventListener("load", t) }(e, () => { const t = e.contentDocument; if (t && O) { const n = nm(t, { doc: t, mirror: r, blockClass: o, blockSelector: i, unblockSelector: a, maskAllText: s, maskTextClass: c, unmaskTextClass: u, maskTextSelector: l, unmaskTextSelector: f, skipChild: !1, inlineStylesheet: p, maskInputOptions: h, maskAttributeFn: m, maskTextFn: g, maskInputFn: y, slimDOMOptions: v, dataURLOptions: b, inlineImages: _, recordCanvas: S, preserveWhiteSpace: P, onSerialize: w, onIframeLoad: O, iframeLoadTimeout: E, onStylesheetLoad: k, stylesheetLoadTimeout: T, keepIframeSrcFn: x }); n && O(e, n) } }, E), j.type === Sh.Element && "link" === j.tagName && "stylesheet" === j.attributes.rel && function(e, t, n) { let r, o = !1; try { r = e.sheet } catch (e) { return } if (r) return; const i = setTimeout(() => { o || (t(), o = !0) }, n); e.addEventListener("load", () => { clearTimeout(i), o = !0, t() }) }(e, () => { if (k) { const t = nm(e, { doc: n, mirror: r, blockClass: o, blockSelector: i, unblockSelector: a, maskAllText: s, maskTextClass: c, unmaskTextClass: u, maskTextSelector: l, unmaskTextSelector: f, skipChild: !1, inlineStylesheet: p, maskInputOptions: h, maskAttributeFn: m, maskTextFn: g, maskInputFn: y, slimDOMOptions: v, dataURLOptions: b, inlineImages: _, recordCanvas: S, preserveWhiteSpace: P, onSerialize: w, onIframeLoad: O, iframeLoadTimeout: E, onStylesheetLoad: k, stylesheetLoadTimeout: T, keepIframeSrcFn: x }); t && k(e, t) } }, T), j } function rm(e) { let t, n = e[0], r = 1; for (; r < e.length;) { const o = e[r], i = e[r + 1]; if (r += 2, ("optionalAccess" === o || "optionalCall" === o) && null == n) return; "access" === o || "optionalAccess" === o ? (t = n, n = i(n)) : "call" !== o && "optionalCall" !== o || (n = i((...e) => n.call(t, ...e)), t = void 0) } return n } function om(e, t, n = document) { const r = { capture: !0, passive: !0 }; return n.addEventListener(e, t, r), () => n.removeEventListener(e, t, r) } const im = "Please stop import mirror directly. Instead of that,\r\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\r\nor you can use record.mirror to access the mirror instance during recording."; let am = { map: {}, getId: () => (console.error(im), -1), getNode: () => (console.error(im), null), removeNodeFromMap() { console.error(im) }, has: () => (console.error(im), !1), reset() { console.error(im) } }; function sm(e, t, n = {}) { let r = null, o = 0; return function(...i) { const a = Date.now(); o || !1 !== n.leading || (o = a); const s = t - (a - o), c = this; s <= 0 || s > t ? (r && (! function(...e) { xm("clearTimeout")(...e) }(r), r = null), o = a, e.apply(c, i)) : r || !1 === n.trailing || (r = Im(() => { o = !1 === n.leading ? 0 : Date.now(), r = null, e.apply(c, i) }, s)) } } function cm(e, t, n, r, o = window) { const i = o.Object.getOwnPropertyDescriptor(e, t); return o.Object.defineProperty(e, t, r ? n : { set(e) { Im(() => { n.set.call(this, e) }, 0), i && i.set && i.set.call(this, e) } }), () => cm(e, t, i || {}, !0) } function um(e, t, n) { try { if (!(t in e)) return () => {}; const r = e[t], o = n(r); return "function" == typeof o && (o.prototype = o.prototype || {}, Object.defineProperties(o, { __rrweb_original__: { enumerable: !1, value: r } })), e[t] = o, () => { e[t] = r } } catch (e) { return () => {} } } "undefined" != typeof window && window.Proxy && window.Reflect && (am = new Proxy(am, { get: (e, t, n) => ("map" === t && console.error(im), Reflect.get(e, t, n)) })); let lm = Date.now; function fm(e) { const t = e.document; return { left: t.scrollingElement ? t.scrollingElement.scrollLeft : void 0 !== e.pageXOffset ? e.pageXOffset : rm([t, "optionalAccess", e => e.documentElement, "access", e => e.scrollLeft]) || rm([t, "optionalAccess", e => e.body, "optionalAccess", e => e.parentElement, "optionalAccess", e => e.scrollLeft]) || rm([t, "optionalAccess", e => e.body, "optionalAccess", e => e.scrollLeft]) || 0, top: t.scrollingElement ? t.scrollingElement.scrollTop : void 0 !== e.pageYOffset ? e.pageYOffset : rm([t, "optionalAccess", e => e.documentElement, "access", e => e.scrollTop]) || rm([t, "optionalAccess", e => e.body, "optionalAccess", e => e.parentElement, "optionalAccess", e => e.scrollTop]) || rm([t, "optionalAccess", e => e.body, "optionalAccess", e => e.scrollTop]) || 0 } } function dm() { return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight } function pm() { return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth } function hm(e) { if (!e) return null; return e.nodeType === e.ELEMENT_NODE ? e : e.parentElement } function mm(e, t, n, r, o) { if (!e) return !1; const i = hm(e); if (!i) return !1; const a = Xh(t, n); if (!o) { const e = r && i.matches(r); return a(i) && !e } const s = Qh(i, a); let c = -1; return !(s < 0) && (r && (c = Qh(i, Xh(null, r))), s > -1 && c < 0 || s < c) } function gm(e, t) { return -2 === t.getId(e) } function ym(e, t) { if (wh(e)) return !1; const n = t.getId(e); return !t.has(n) || (!e.parentNode || e.parentNode.nodeType !== e.DOCUMENT_NODE) && (!e.parentNode || ym(e.parentNode, t)) } function vm(e) { return Boolean(e.changedTouches) } function bm(e, t) { return Boolean("IFRAME" === e.nodeName && t.getMeta(e)) } function _m(e, t) { return Boolean("LINK" === e.nodeName && e.nodeType === e.ELEMENT_NODE && e.getAttribute && "stylesheet" === e.getAttribute("rel") && t.getMeta(e)) } function Sm(e) { return Boolean(rm([e, "optionalAccess", e => e.shadowRoot])) } /[1-9][0-9]{12}/.test(Date.now().toString()) || (lm = () => (new Date).getTime()); class wm { constructor() { this.id = 1, this.styleIDMap = new WeakMap, this.idStyleMap = new Map } getId(e) { return t = this.styleIDMap.get(e), n = () => -1, null != t ? t : n(); var t, n } has(e) { return this.styleIDMap.has(e) } add(e, t) { if (this.has(e)) return this.getId(e); let n; return n = void 0 === t ? this.id++ : t, this.styleIDMap.set(e, n), this.idStyleMap.set(n, e), n } getStyle(e) { return this.idStyleMap.get(e) || null } reset() { this.styleIDMap = new WeakMap, this.idStyleMap = new Map, this.id = 1 } generateId() { return this.id++ } } function Om(e) { let t = null; return rm([e, "access", e => e.getRootNode, "optionalCall", e => e(), "optionalAccess", e => e.nodeType]) === Node.DOCUMENT_FRAGMENT_NODE && e.getRootNode().host && (t = e.getRootNode().host), t } function Em(e) { const t = e.ownerDocument; if (!t) return !1; const n = function(e) { let t, n = e; for (; t = Om(n);) n = t; return n }(e); return t.contains(n) } function km(e) { const t = e.ownerDocument; return !!t && (t.contains(e) || Em(e)) } const Tm = {}; function xm(e) { const t = Tm[e]; if (t) return t; const n = window.document; let r = window[e]; if (n && "function" == typeof n.createElement) try { const t = n.createElement("iframe"); t.hidden = !0, n.head.appendChild(t); const o = t.contentWindow; o && o[e] && (r = o[e]), n.head.removeChild(t) } catch (e) {} return Tm[e] = r.bind(window) } function Im(...e) { return xm("setTimeout")(...e) } var Pm = (e => (e[e.DomContentLoaded = 0] = "DomContentLoaded", e[e.Load = 1] = "Load", e[e.FullSnapshot = 2] = "FullSnapshot", e[e.IncrementalSnapshot = 3] = "IncrementalSnapshot", e[e.Meta = 4] = "Meta", e[e.Custom = 5] = "Custom", e[e.Plugin = 6] = "Plugin", e))(Pm || {}), Am = (e => (e[e.Mutation = 0] = "Mutation", e[e.MouseMove = 1] = "MouseMove", e[e.MouseInteraction = 2] = "MouseInteraction", e[e.Scroll = 3] = "Scroll", e[e.ViewportResize = 4] = "ViewportResize", e[e.Input = 5] = "Input", e[e.TouchMove = 6] = "TouchMove", e[e.MediaInteraction = 7] = "MediaInteraction", e[e.StyleSheetRule = 8] = "StyleSheetRule", e[e.CanvasMutation = 9] = "CanvasMutation", e[e.Font = 10] = "Font", e[e.Log = 11] = "Log", e[e.Drag = 12] = "Drag", e[e.StyleDeclaration = 13] = "StyleDeclaration", e[e.Selection = 14] = "Selection", e[e.AdoptedStyleSheet = 15] = "AdoptedStyleSheet", e[e.CustomElement = 16] = "CustomElement", e))(Am || {}), Cm = (e => (e[e.MouseUp = 0] = "MouseUp", e[e.MouseDown = 1] = "MouseDown", e[e.Click = 2] = "Click", e[e.ContextMenu = 3] = "ContextMenu", e[e.DblClick = 4] = "DblClick", e[e.Focus = 5] = "Focus", e[e.Blur = 6] = "Blur", e[e.TouchStart = 7] = "TouchStart", e[e.TouchMove_Departed = 8] = "TouchMove_Departed", e[e.TouchEnd = 9] = "TouchEnd", e[e.TouchCancel = 10] = "TouchCancel", e))(Cm || {}), jm = (e => (e[e.Mouse = 0] = "Mouse", e[e.Pen = 1] = "Pen", e[e.Touch = 2] = "Touch", e))(jm || {}); function Rm(e) { let t, n = e[0], r = 1; for (; r < e.length;) { const o = e[r], i = e[r + 1]; if (r += 2, ("optionalAccess" === o || "optionalCall" === o) && null == n) return; "access" === o || "optionalAccess" === o ? (t = n, n = i(n)) : "call" !== o && "optionalCall" !== o || (n = i((...e) => n.call(t, ...e)), t = void 0) } return n } function Mm(e) { return "__ln" in e } class Dm { constructor() { this.length = 0, this.head = null, this.tail = null } get(e) { if (e >= this.length) throw new Error("Position outside of list range"); let t = this.head; for (let n = 0; n < e; n++) t = Rm([t, "optionalAccess", e => e.next]) || null; return t } addNode(e) { const t = { value: e, previous: null, next: null }; if (e.__ln = t, e.previousSibling && Mm(e.previousSibling)) { const n = e.previousSibling.__ln.next; t.next = n, t.previous = e.previousSibling.__ln, e.previousSibling.__ln.next = t, n && (n.previous = t) } else if (e.nextSibling && Mm(e.nextSibling) && e.nextSibling.__ln.previous) { const n = e.nextSibling.__ln.previous; t.previous = n, t.next = e.nextSibling.__ln, e.nextSibling.__ln.previous = t, n && (n.next = t) } else this.head && (this.head.previous = t), t.next = this.head, this.head = t; null === t.next && (this.tail = t), this.length++ } removeNode(e) { const t = e.__ln; this.head && (t.previous ? (t.previous.next = t.next, t.next ? t.next.previous = t.previous : this.tail = t.previous) : (this.head = t.next, this.head ? this.head.previous = null : this.tail = null), e.__ln && delete e.__ln, this.length--) } } const Nm = (e, t) => `${e}@${t}`; class Lm { constructor() { this.frozen = !1, this.locked = !1, this.texts = [], this.attributes = [], this.attributeMap = new WeakMap, this.removes = [], this.mapRemoves = [], this.movedMap = {}, this.addedSet = new Set, this.movedSet = new Set, this.droppedSet = new Set, this.processMutations = e => { e.forEach(this.processMutation), this.emit() }, this.emit = () => { if (this.frozen || this.locked) return; const e = [], t = new Set, n = new Dm, r = e => { let t = e, n = -2; for (; - 2 === n;) t = t && t.nextSibling, n = t && this.mirror.getId(t); return n }, o = o => { if (!o.parentNode || !km(o)) return; const i = wh(o.parentNode) ? this.mirror.getId(Om(o)) : this.mirror.getId(o.parentNode), a = r(o); if (-1 === i || -1 === a) return n.addNode(o); const s = nm(o, { doc: this.doc, mirror: this.mirror, blockClass: this.blockClass, blockSelector: this.blockSelector, maskAllText: this.maskAllText, unblockSelector: this.unblockSelector, maskTextClass: this.maskTextClass, unmaskTextClass: this.unmaskTextClass, maskTextSelector: this.maskTextSelector, unmaskTextSelector: this.unmaskTextSelector, skipChild: !0, newlyAddedElement: !0, inlineStylesheet: this.inlineStylesheet, maskInputOptions: this.maskInputOptions, maskAttributeFn: this.maskAttributeFn, maskTextFn: this.maskTextFn, maskInputFn: this.maskInputFn, slimDOMOptions: this.slimDOMOptions, dataURLOptions: this.dataURLOptions, recordCanvas: this.recordCanvas, inlineImages: this.inlineImages, onSerialize: e => { bm(e, this.mirror) && this.iframeManager.addIframe(e), _m(e, this.mirror) && this.stylesheetManager.trackLinkElement(e), Sm(o) && this.shadowDomManager.addShadowRoot(o.shadowRoot, this.doc) }, onIframeLoad: (e, t) => { this.iframeManager.attachIframe(e, t), this.shadowDomManager.observeAttachShadow(e) }, onStylesheetLoad: (e, t) => { this.stylesheetManager.attachLinkElement(e, t) } }); s && (e.push({ parentId: i, nextId: a, node: s }), t.add(s.id)) }; for (; this.mapRemoves.length;) this.mirror.removeNodeFromMap(this.mapRemoves.shift()); for (const e of this.movedSet) Bm(this.removes, e, this.mirror) && !this.movedSet.has(e.parentNode) || o(e); for (const e of this.addedSet) Gm(this.droppedSet, e) || Bm(this.removes, e, this.mirror) ? Gm(this.movedSet, e) ? o(e) : this.droppedSet.add(e) : o(e); let i = null; for (; n.length;) { let e = null; if (i) { const t = this.mirror.getId(i.value.parentNode), n = r(i.value); - 1 !== t && -1 !== n && (e = i) } if (!e) { let t = n.tail; for (; t;) { const n = t; if (t = t.previous, n) { const t = this.mirror.getId(n.value.parentNode); if (-1 === r(n.value)) continue; if (-1 !== t) { e = n; break } { const t = n.value; if (t.parentNode && t.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) { const r = t.parentNode.host; if (-1 !== this.mirror.getId(r)) { e = n; break } } } } } } if (!e) { for (; n.head;) n.removeNode(n.head.value); break } i = e.previous, n.removeNode(e.value), o(e.value) } const a = { texts: this.texts.map(e => ({ id: this.mirror.getId(e.node), value: e.value })).filter(e => !t.has(e.id)).filter(e => this.mirror.has(e.id)), attributes: this.attributes.map(e => { const { attributes: t } = e; if ("string" == typeof t.style) { const n = JSON.stringify(e.styleDiff), r = JSON.stringify(e._unchangedStyles); n.length < t.style.length && (n + r).split("var(").length === t.style.split("var(").length && (t.style = e.styleDiff) } return { id: this.mirror.getId(e.node), attributes: t } }).filter(e => !t.has(e.id)).filter(e => this.mirror.has(e.id)), removes: this.removes, adds: e }; (a.texts.length || a.attributes.length || a.removes.length || a.adds.length) && (this.texts = [], this.attributes = [], this.attributeMap = new WeakMap, this.removes = [], this.addedSet = new Set, this.movedSet = new Set, this.droppedSet = new Set, this.movedMap = {}, this.mutationCb(a)) }, this.processMutation = e => { if (!gm(e.target, this.mirror)) switch (e.type) { case "characterData": { const t = e.target.textContent; mm(e.target, this.blockClass, this.blockSelector, this.unblockSelector, !1) || t === e.oldValue || this.texts.push({ value: Zh(e.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, this.maskAllText) && t ? this.maskTextFn ? this.maskTextFn(t, hm(e.target)) : t.replace(/[\S]/g, "*") : t, node: e.target }); break } case "attributes": { const t = e.target; let n = e.attributeName, r = e.target.getAttribute(n); if ("value" === n) { const n = jh(t), o = t.tagName; r = Rh(t, o, n); const i = xh({ maskInputOptions: this.maskInputOptions, tagName: o, type: n }); r = Ih({ isMasked: Zh(e.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, i), element: t, value: r, maskInputFn: this.maskInputFn }) } if (mm(e.target, this.blockClass, this.blockSelector, this.unblockSelector, !1) || r === e.oldValue) return; let o = this.attributeMap.get(e.target); if ("IFRAME" === t.tagName && "src" === n && !this.keepIframeSrcFn(r)) { if (t.contentDocument) return; n = "rr_src" } if (o || (o = { node: e.target, attributes: {}, styleDiff: {}, _unchangedStyles: {} }, this.attributes.push(o), this.attributeMap.set(e.target, o)), "type" === n && "INPUT" === t.tagName && "password" === (e.oldValue || "").toLowerCase() && t.setAttribute("data-rr-is-password", "true"), !Kh(t.tagName, n) && (o.attributes[n] = Jh(this.doc, Ph(t.tagName), Ph(n), r, t, this.maskAttributeFn), "style" === n)) { if (!this.unattachedDoc) try { this.unattachedDoc = document.implementation.createHTMLDocument() } catch (e) { this.unattachedDoc = this.doc } const n = this.unattachedDoc.createElement("span"); e.oldValue && n.setAttribute("style", e.oldValue); for (const e of Array.from(t.style)) { const r = t.style.getPropertyValue(e), i = t.style.getPropertyPriority(e); r !== n.style.getPropertyValue(e) || i !== n.style.getPropertyPriority(e) ? o.styleDiff[e] = "" === i ? r : [r, i] : o._unchangedStyles[e] = [r, i] } for (const e of Array.from(n.style)) "" === t.style.getPropertyValue(e) && (o.styleDiff[e] = !1) } break } case "childList": if (mm(e.target, this.blockClass, this.blockSelector, this.unblockSelector, !0)) return; e.addedNodes.forEach(t => this.genAdds(t, e.target)), e.removedNodes.forEach(t => { const n = this.mirror.getId(t), r = wh(e.target) ? this.mirror.getId(e.target.host) : this.mirror.getId(e.target); mm(e.target, this.blockClass, this.blockSelector, this.unblockSelector, !1) || gm(t, this.mirror) || ! function(e, t) { return -1 !== t.getId(e) }(t, this.mirror) || (this.addedSet.has(t) ? (Fm(this.addedSet, t), this.droppedSet.add(t)) : this.addedSet.has(e.target) && -1 === n || ym(e.target, this.mirror) || (this.movedSet.has(t) && this.movedMap[Nm(n, r)] ? Fm(this.movedSet, t) : this.removes.push({ parentId: r, id: n, isShadow: !(!wh(e.target) || !Oh(e.target)) || void 0 })), this.mapRemoves.push(t)) }) } }, this.genAdds = (e, t) => { if (!this.processedNodeManager.inOtherBuffer(e, this) && !this.addedSet.has(e) && !this.movedSet.has(e)) { if (this.mirror.hasNode(e)) { if (gm(e, this.mirror)) return; this.movedSet.add(e); let n = null; t && this.mirror.hasNode(t) && (n = this.mirror.getId(t)), n && -1 !== n && (this.movedMap[Nm(this.mirror.getId(e), n)] = !0) } else this.addedSet.add(e), this.droppedSet.delete(e); mm(e, this.blockClass, this.blockSelector, this.unblockSelector, !1) || (e.childNodes.forEach(e => this.genAdds(e)), Sm(e) && e.shadowRoot.childNodes.forEach(t => { this.processedNodeManager.add(t, this), this.genAdds(t, e) })) } } } init(e) { ["mutationCb", "blockClass", "blockSelector", "unblockSelector", "maskAllText", "maskTextClass", "unmaskTextClass", "maskTextSelector", "unmaskTextSelector", "inlineStylesheet", "maskInputOptions", "maskAttributeFn", "maskTextFn", "maskInputFn", "keepIframeSrcFn", "recordCanvas", "inlineImages", "slimDOMOptions", "dataURLOptions", "doc", "mirror", "iframeManager", "stylesheetManager", "shadowDomManager", "canvasManager", "processedNodeManager"].forEach(t => { this[t] = e[t] }) } freeze() { this.frozen = !0, this.canvasManager.freeze() } unfreeze() { this.frozen = !1, this.canvasManager.unfreeze(), this.emit() } isFrozen() { return this.frozen } lock() { this.locked = !0, this.canvasManager.lock() } unlock() { this.locked = !1, this.canvasManager.unlock(), this.emit() } reset() { this.shadowDomManager.reset(), this.canvasManager.reset() } } function Fm(e, t) { e.delete(t), t.childNodes.forEach(t => Fm(e, t)) } function Bm(e, t, n) { return 0 !== e.length && Um(e, t, n) } function Um(e, t, n) { const { parentNode: r } = t; if (!r) return !1; const o = n.getId(r); return !!e.some(e => e.id === o) || Um(e, r, n) } function Gm(e, t) { return 0 !== e.size && $m(e, t) } function $m(e, t) { const { parentNode: n } = t; return !!n && (!!e.has(n) || $m(e, n)) } let Hm; function zm(e) { Hm = e } function qm() { Hm = void 0 } const Wm = e => { if (!Hm) return e; return (...t) => { try { return e(...t) } catch (e) { if (Hm && !0 === Hm(e)) return () => {}; throw e } } }; function Vm(e) { let t, n = e[0], r = 1; for (; r < e.length;) { const o = e[r], i = e[r + 1]; if (r += 2, ("optionalAccess" === o || "optionalCall" === o) && null == n) return; "access" === o || "optionalAccess" === o ? (t = n, n = i(n)) : "call" !== o && "optionalCall" !== o || (n = i((...e) => n.call(t, ...e)), t = void 0) } return n } const Ym = []; function Jm(e) { try { if ("composedPath" in e) { const t = e.composedPath(); if (t.length) return t[0] } else if ("path" in e && e.path.length) return e.path[0] } catch (e) {} return e && e.target } function Km(e, t) { const n = new Lm; Ym.push(n), n.init(e); let r = window.MutationObserver || window.__rrMutationObserver; const o = Vm([window, "optionalAccess", e => e.Zone, "optionalAccess", e => e.__symbol__, "optionalCall", e => e("MutationObserver")]); o && window[o] && (r = window[o]); const i = new r(Wm(t => { e.onMutation && !1 === e.onMutation(t) || n.processMutations.bind(n)(t) })); return i.observe(t, { attributes: !0, attributeOldValue: !0, characterData: !0, characterDataOldValue: !0, childList: !0, subtree: !0 }), i } function Qm({ mouseInteractionCb: e, doc: t, mirror: n, blockClass: r, blockSelector: o, unblockSelector: i, sampling: a }) { if (!1 === a.mouseInteraction) return () => {}; const s = !0 === a.mouseInteraction || void 0 === a.mouseInteraction ? {} : a.mouseInteraction, c = []; let u = null; return Object.keys(Cm).filter(e => Number.isNaN(Number(e)) && !e.endsWith("_Departed") && !1 !== s[e]).forEach(a => { let s = Ph(a); const l = (t => a => { const s = Jm(a); if (mm(s, r, o, i, !0)) return; let c = null, l = t; if ("pointerType" in a) { switch (a.pointerType) { case "mouse": c = jm.Mouse; break; case "touch": c = jm.Touch; break; case "pen": c = jm.Pen } c === jm.Touch ? Cm[t] === Cm.MouseDown ? l = "TouchStart" : Cm[t] === Cm.MouseUp && (l = "TouchEnd") : jm.Pen } else vm(a) && (c = jm.Touch); null !== c ? (u = c, (l.startsWith("Touch") && c === jm.Touch || l.startsWith("Mouse") && c === jm.Mouse) && (c = null)) : Cm[t] === Cm.Click && (c = u, u = null); const f = vm(a) ? a.changedTouches[0] : a; if (!f) return; const d = n.getId(s), { clientX: p, clientY: h } = f; Wm(e)({ type: Cm[l], id: d, x: p, y: h, ...null !== c && { pointerType: c } }) })(a); if (window.PointerEvent) switch (Cm[a]) { case Cm.MouseDown: case Cm.MouseUp: s = s.replace("mouse", "pointer"); break; case Cm.TouchStart: case Cm.TouchEnd: return } c.push(om(s, l, t)) }), Wm(() => { c.forEach(e => e()) }) } function Xm({ scrollCb: e, doc: t, mirror: n, blockClass: r, blockSelector: o, unblockSelector: i, sampling: a }) { return om("scroll", Wm(sm(Wm(a => { const s = Jm(a); if (!s || mm(s, r, o, i, !0)) return; const c = n.getId(s); if (s === t && t.defaultView) { const n = fm(t.defaultView); e({ id: c, x: n.left, y: n.top }) } else e({ id: c, x: s.scrollLeft, y: s.scrollTop }) }), a.scroll || 100)), t) } const Zm = ["INPUT", "TEXTAREA", "SELECT"], eg = new WeakMap; function tg({ inputCb: e, doc: t, mirror: n, blockClass: r, blockSelector: o, unblockSelector: i, ignoreClass: a, ignoreSelector: s, maskInputOptions: c, maskInputFn: u, sampling: l, userTriggeredOnInput: f, maskTextClass: d, unmaskTextClass: p, maskTextSelector: h, unmaskTextSelector: m }) { function g(e) { let n = Jm(e); const l = e.isTrusted, g = n && Ah(n.tagName); if ("OPTION" === g && (n = n.parentElement), !n || !g || Zm.indexOf(g) < 0 || mm(n, r, o, i, !0)) return; const v = n; if (v.classList.contains(a) || s && v.matches(s)) return; const b = jh(n); let _ = Rh(v, g, b), S = !1; const w = xh({ maskInputOptions: c, tagName: g, type: b }), O = Zh(n, d, h, p, m, w); "radio" !== b && "checkbox" !== b || (S = n.checked), _ = Ih({ isMasked: O, element: n, value: _, maskInputFn: u }), y(n, f ? { text: _, isChecked: S, userTriggered: l } : { text: _, isChecked: S }); const E = n.name; "radio" === b && E && S && t.querySelectorAll(`input[type="radio"][name="${E}"]`).forEach(e => { if (e !== n) { const t = Ih({ isMasked: O, element: e, value: Rh(e, g, b), maskInputFn: u }); y(e, f ? { text: t, isChecked: !S, userTriggered: !1 } : { text: t, isChecked: !S }) } }) } function y(t, r) { const o = eg.get(t); if (!o || o.text !== r.text || o.isChecked !== r.isChecked) { eg.set(t, r); const o = n.getId(t); Wm(e)({ ...r, id: o }) } } const v = ("last" === l.input ? ["change"] : ["input", "change"]).map(e => om(e, Wm(g), t)), b = t.defaultView; if (!b) return () => { v.forEach(e => e()) }; const _ = b.Object.getOwnPropertyDescriptor(b.HTMLInputElement.prototype, "value"), S = [ [b.HTMLInputElement.prototype, "value"], [b.HTMLInputElement.prototype, "checked"], [b.HTMLSelectElement.prototype, "value"], [b.HTMLTextAreaElement.prototype, "value"], [b.HTMLSelectElement.prototype, "selectedIndex"], [b.HTMLOptionElement.prototype, "selected"] ]; return _ && _.set && v.push(...S.map(e => cm(e[0], e[1], { set() { Wm(g)({ target: this, isTrusted: !1 }) } }, !1, b))), Wm(() => { v.forEach(e => e()) }) } function ng(e) { return function(e, t) { if (ag("CSSGroupingRule") && e.parentRule instanceof CSSGroupingRule || ag("CSSMediaRule") && e.parentRule instanceof CSSMediaRule || ag("CSSSupportsRule") && e.parentRule instanceof CSSSupportsRule || ag("CSSConditionRule") && e.parentRule instanceof CSSConditionRule) { const n = Array.from(e.parentRule.cssRules).indexOf(e); t.unshift(n) } else if (e.parentStyleSheet) { const n = Array.from(e.parentStyleSheet.cssRules).indexOf(e); t.unshift(n) } return t }(e, []) } function rg(e, t, n) { let r, o; return e ? (e.ownerNode ? r = t.getId(e.ownerNode) : o = n.getId(e), { styleId: o, id: r }) : {} } function og({ mirror: e, stylesheetManager: t }, n) { let r = null; r = "#document" === n.nodeName ? e.getId(n) : e.getId(n.host); const o = "#document" === n.nodeName ? Vm([n, "access", e => e.defaultView, "optionalAccess", e => e.Document]) : Vm([n, "access", e => e.ownerDocument, "optionalAccess", e => e.defaultView, "optionalAccess", e => e.ShadowRoot]), i = Vm([o, "optionalAccess", e => e.prototype]) ? Object.getOwnPropertyDescriptor(Vm([o, "optionalAccess", e => e.prototype]), "adoptedStyleSheets") : void 0; return null !== r && -1 !== r && o && i ? (Object.defineProperty(n, "adoptedStyleSheets", { configurable: i.configurable, enumerable: i.enumerable, get() { return Vm([i, "access", e => e.get, "optionalAccess", e => e.call, "call", e => e(this)]) }, set(e) { const n = Vm([i, "access", e => e.set, "optionalAccess", e => e.call, "call", t => t(this, e)]); if (null !== r && -1 !== r) try { t.adoptStyleSheets(e, r) } catch (e) {} return n } }), Wm(() => { Object.defineProperty(n, "adoptedStyleSheets", { configurable: i.configurable, enumerable: i.enumerable, get: i.get, set: i.set }) })) : () => {} } function ig(e, t = {}) { const n = e.doc.defaultView; if (!n) return () => {}; const r = Km(e, e.doc), o = function({ mousemoveCb: e, sampling: t, doc: n, mirror: r }) { if (!1 === t.mousemove) return () => {}; const o = "number" == typeof t.mousemove ? t.mousemove : 50, i = "number" == typeof t.mousemoveCallback ? t.mousemoveCallback : 500; let a, s = []; const c = sm(Wm(t => { const n = Date.now() - a; e(s.map(e => (e.timeOffset -= n, e)), t), s = [], a = null }), i), u = Wm(sm(Wm(e => { const t = Jm(e), { clientX: n, clientY: o } = vm(e) ? e.changedTouches[0] : e; a || (a = lm()), s.push({ x: n, y: o, id: r.getId(t), timeOffset: lm() - a }), c("undefined" != typeof DragEvent && e instanceof DragEvent ? Am.Drag : e instanceof MouseEvent ? Am.MouseMove : Am.TouchMove) }), o, { trailing: !1 })), l = [om("mousemove", u, n), om("touchmove", u, n), om("drag", u, n)]; return Wm(() => { l.forEach(e => e()) }) }(e), i = Qm(e), a = Xm(e), s = function({ viewportResizeCb: e }, { win: t }) { let n = -1, r = -1; return om("resize", Wm(sm(Wm(() => { const t = dm(), o = pm(); n === t && r === o || (e({ width: Number(o), height: Number(t) }), n = t, r = o) }), 200)), t) }(e, { win: n }), c = tg(e), u = function({ mediaInteractionCb: e, blockClass: t, blockSelector: n, unblockSelector: r, mirror: o, sampling: i, doc: a }) { const s = Wm(a => sm(Wm(i => { const s = Jm(i); if (!s || mm(s, t, n, r, !0)) return; const { currentTime: c, volume: u, muted: l, playbackRate: f } = s; e({ type: a, id: o.getId(s), currentTime: c, volume: u, muted: l, playbackRate: f }) }), i.media || 500)), c = [om("play", s(0), a), om("pause", s(1), a), om("seeked", s(2), a), om("volumechange", s(3), a), om("ratechange", s(4), a)]; return Wm(() => { c.forEach(e => e()) }) }(e), l = function({ styleSheetRuleCb: e, mirror: t, stylesheetManager: n }, { win: r }) { if (!r.CSSStyleSheet || !r.CSSStyleSheet.prototype) return () => {}; const o = r.CSSStyleSheet.prototype.insertRule; r.CSSStyleSheet.prototype.insertRule = new Proxy(o, { apply: Wm((r, o, i) => { const [a, s] = i, { id: c, styleId: u } = rg(o, t, n.styleMirror); return (c && -1 !== c || u && -1 !== u) && e({ id: c, styleId: u, adds: [{ rule: a, index: s }] }), r.apply(o, i) }) }); const i = r.CSSStyleSheet.prototype.deleteRule; let a, s; r.CSSStyleSheet.prototype.deleteRule = new Proxy(i, { apply: Wm((r, o, i) => { const [a] = i, { id: s, styleId: c } = rg(o, t, n.styleMirror); return (s && -1 !== s || c && -1 !== c) && e({ id: s, styleId: c, removes: [{ index: a }] }), r.apply(o, i) }) }), r.CSSStyleSheet.prototype.replace && (a = r.CSSStyleSheet.prototype.replace, r.CSSStyleSheet.prototype.replace = new Proxy(a, { apply: Wm((r, o, i) => { const [a] = i, { id: s, styleId: c } = rg(o, t, n.styleMirror); return (s && -1 !== s || c && -1 !== c) && e({ id: s, styleId: c, replace: a }), r.apply(o, i) }) })), r.CSSStyleSheet.prototype.replaceSync && (s = r.CSSStyleSheet.prototype.replaceSync, r.CSSStyleSheet.prototype.replaceSync = new Proxy(s, { apply: Wm((r, o, i) => { const [a] = i, { id: s, styleId: c } = rg(o, t, n.styleMirror); return (s && -1 !== s || c && -1 !== c) && e({ id: s, styleId: c, replaceSync: a }), r.apply(o, i) }) })); const c = {}; sg("CSSGroupingRule") ? c.CSSGroupingRule = r.CSSGroupingRule : (sg("CSSMediaRule") && (c.CSSMediaRule = r.CSSMediaRule), sg("CSSConditionRule") && (c.CSSConditionRule = r.CSSConditionRule), sg("CSSSupportsRule") && (c.CSSSupportsRule = r.CSSSupportsRule)); const u = {}; return Object.entries(c).forEach(([r, o]) => { u[r] = { insertRule: o.prototype.insertRule, deleteRule: o.prototype.deleteRule }, o.prototype.insertRule = new Proxy(u[r].insertRule, { apply: Wm((r, o, i) => { const [a, s] = i, { id: c, styleId: u } = rg(o.parentStyleSheet, t, n.styleMirror); return (c && -1 !== c || u && -1 !== u) && e({ id: c, styleId: u, adds: [{ rule: a, index: [...ng(o), s || 0] }] }), r.apply(o, i) }) }), o.prototype.deleteRule = new Proxy(u[r].deleteRule, { apply: Wm((r, o, i) => { const [a] = i, { id: s, styleId: c } = rg(o.parentStyleSheet, t, n.styleMirror); return (s && -1 !== s || c && -1 !== c) && e({ id: s, styleId: c, removes: [{ index: [...ng(o), a] }] }), r.apply(o, i) }) }) }), Wm(() => { r.CSSStyleSheet.prototype.insertRule = o, r.CSSStyleSheet.prototype.deleteRule = i, a && (r.CSSStyleSheet.prototype.replace = a), s && (r.CSSStyleSheet.prototype.replaceSync = s), Object.entries(c).forEach(([e, t]) => { t.prototype.insertRule = u[e].insertRule, t.prototype.deleteRule = u[e].deleteRule }) }) }(e, { win: n }), f = og(e, e.doc), d = function({ styleDeclarationCb: e, mirror: t, ignoreCSSAttributes: n, stylesheetManager: r }, { win: o }) { const i = o.CSSStyleDeclaration.prototype.setProperty; o.CSSStyleDeclaration.prototype.setProperty = new Proxy(i, { apply: Wm((o, a, s) => { const [c, u, l] = s; if (n.has(c)) return i.apply(a, [c, u, l]); const { id: f, styleId: d } = rg(Vm([a, "access", e => e.parentRule, "optionalAccess", e => e.parentStyleSheet]), t, r.styleMirror); return (f && -1 !== f || d && -1 !== d) && e({ id: f, styleId: d, set: { property: c, value: u, priority: l }, index: ng(a.parentRule) }), o.apply(a, s) }) }); const a = o.CSSStyleDeclaration.prototype.removeProperty; return o.CSSStyleDeclaration.prototype.removeProperty = new Proxy(a, { apply: Wm((o, i, s) => { const [c] = s; if (n.has(c)) return a.apply(i, [c]); const { id: u, styleId: l } = rg(Vm([i, "access", e => e.parentRule, "optionalAccess", e => e.parentStyleSheet]), t, r.styleMirror); return (u && -1 !== u || l && -1 !== l) && e({ id: u, styleId: l, remove: { property: c }, index: ng(i.parentRule) }), o.apply(i, s) }) }), Wm(() => { o.CSSStyleDeclaration.prototype.setProperty = i, o.CSSStyleDeclaration.prototype.removeProperty = a }) }(e, { win: n }), p = e.collectFonts ? function({ fontCb: e, doc: t }) { const n = t.defaultView; if (!n) return () => {}; const r = [], o = new WeakMap, i = n.FontFace; n.FontFace = function(e, t, n) { const r = new i(e, t, n); return o.set(r, { family: e, buffer: "string" != typeof t, descriptors: n, fontSource: "string" == typeof t ? t : JSON.stringify(Array.from(new Uint8Array(t))) }), r }; const a = um(t.fonts, "add", function(t) { return function(n) { return Im(Wm(() => { const t = o.get(n); t && (e(t), o.delete(n)) }), 0), t.apply(this, [n]) } }); return r.push(() => { n.FontFace = i }), r.push(a), Wm(() => { r.forEach(e => e()) }) }(e) : () => {}, h = function(e) { const { doc: t, mirror: n, blockClass: r, blockSelector: o, unblockSelector: i, selectionCb: a } = e; let s = !0; const c = Wm(() => { const e = t.getSelection(); if (!e || s && Vm([e, "optionalAccess", e => e.isCollapsed])) return; s = e.isCollapsed || !1; const c = [], u = e.rangeCount || 0; for (let t = 0; t < u; t++) { const a = e.getRangeAt(t), { startContainer: s, startOffset: u, endContainer: l, endOffset: f } = a; mm(s, r, o, i, !0) || mm(l, r, o, i, !0) || c.push({ start: n.getId(s), startOffset: u, end: n.getId(l), endOffset: f }) } a({ ranges: c }) }); return c(), om("selectionchange", c) }(e), m = function({ doc: e, customElementCb: t }) { const n = e.defaultView; return n && n.customElements ? um(n.customElements, "define", function(e) { return function(n, r, o) { try { t({ define: { name: n } }) } catch (e) {} return e.apply(this, [n, r, o]) } }) : () => {} }(e), g = []; for (const t of e.plugins) g.push(t.observer(t.callback, n, t.options)); return Wm(() => { Ym.forEach(e => e.reset()), r.disconnect(), o(), i(), a(), s(), c(), u(), l(), f(), d(), p(), h(), m(), g.forEach(e => e()) }) } function ag(e) { return void 0 !== window[e] } function sg(e) { return Boolean(void 0 !== window[e] && window[e].prototype && "insertRule" in window[e].prototype && "deleteRule" in window[e].prototype) } class cg { constructor(e) { this.generateIdFn = e, this.iframeIdToRemoteIdMap = new WeakMap, this.iframeRemoteIdToIdMap = new WeakMap } getId(e, t, n, r) { const o = n || this.getIdToRemoteIdMap(e), i = r || this.getRemoteIdToIdMap(e); let a = o.get(t); return a || (a = this.generateIdFn(), o.set(t, a), i.set(a, t)), a } getIds(e, t) { const n = this.getIdToRemoteIdMap(e), r = this.getRemoteIdToIdMap(e); return t.map(t => this.getId(e, t, n, r)) } getRemoteId(e, t, n) { const r = n || this.getRemoteIdToIdMap(e); if ("number" != typeof t) return t; const o = r.get(t); return o || -1 } getRemoteIds(e, t) { const n = this.getRemoteIdToIdMap(e); return t.map(t => this.getRemoteId(e, t, n)) } reset(e) { if (!e) return this.iframeIdToRemoteIdMap = new WeakMap, void(this.iframeRemoteIdToIdMap = new WeakMap); this.iframeIdToRemoteIdMap.delete(e), this.iframeRemoteIdToIdMap.delete(e) } getIdToRemoteIdMap(e) { let t = this.iframeIdToRemoteIdMap.get(e); return t || (t = new Map, this.iframeIdToRemoteIdMap.set(e, t)), t } getRemoteIdToIdMap(e) { let t = this.iframeRemoteIdToIdMap.get(e); return t || (t = new Map, this.iframeRemoteIdToIdMap.set(e, t)), t } } function ug(e) { let t, n = e[0], r = 1; for (; r < e.length;) { const o = e[r], i = e[r + 1]; if (r += 2, ("optionalAccess" === o || "optionalCall" === o) && null == n) return; "access" === o || "optionalAccess" === o ? (t = n, n = i(n)) : "call" !== o && "optionalCall" !== o || (n = i((...e) => n.call(t, ...e)), t = void 0) } return n } class lg { constructor() { this.crossOriginIframeMirror = new cg(Nh), this.crossOriginIframeRootIdMap = new WeakMap } addIframe() {} addLoadListener() {} attachIframe() {} } class fg { constructor(e) { this.iframes = new WeakMap, this.crossOriginIframeMap = new WeakMap, this.crossOriginIframeMirror = new cg(Nh), this.crossOriginIframeRootIdMap = new WeakMap, this.mutationCb = e.mutationCb, this.wrappedEmit = e.wrappedEmit, this.stylesheetManager = e.stylesheetManager, this.recordCrossOriginIframes = e.recordCrossOriginIframes, this.crossOriginIframeStyleMirror = new cg(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)), this.mirror = e.mirror, this.recordCrossOriginIframes && window.addEventListener("message", this.handleMessage.bind(this)) } addIframe(e) { this.iframes.set(e, !0), e.contentWindow && this.crossOriginIframeMap.set(e.contentWindow, e) } addLoadListener(e) { this.loadListener = e } attachIframe(e, t) { this.mutationCb({ adds: [{ parentId: this.mirror.getId(e), nextId: null, node: t }], removes: [], texts: [], attributes: [], isAttachIframe: !0 }), ug([this, "access", e => e.loadListener, "optionalCall", t => t(e)]), e.contentDocument && e.contentDocument.adoptedStyleSheets && e.contentDocument.adoptedStyleSheets.length > 0 && this.stylesheetManager.adoptStyleSheets(e.contentDocument.adoptedStyleSheets, this.mirror.getId(e.contentDocument)) } handleMessage(e) { const t = e; if ("rrweb" !== t.data.type || t.origin !== t.data.origin) return; if (!e.source) return; const n = this.crossOriginIframeMap.get(e.source); if (!n) return; const r = this.transformCrossOriginEvent(n, t.data.event); r && this.wrappedEmit(r, t.data.isCheckout) } transformCrossOriginEvent(e, t) { switch (t.type) { case Pm.FullSnapshot: { this.crossOriginIframeMirror.reset(e), this.crossOriginIframeStyleMirror.reset(e), this.replaceIdOnNode(t.data.node, e); const n = t.data.node.id; return this.crossOriginIframeRootIdMap.set(e, n), this.patchRootIdOnNode(t.data.node, n), { timestamp: t.timestamp, type: Pm.IncrementalSnapshot, data: { source: Am.Mutation, adds: [{ parentId: this.mirror.getId(e), nextId: null, node: t.data.node }], removes: [], texts: [], attributes: [], isAttachIframe: !0 } } } case Pm.Meta: case Pm.Load: case Pm.DomContentLoaded: return !1; case Pm.Plugin: return t; case Pm.Custom: return this.replaceIds(t.data.payload, e, ["id", "parentId", "previousId", "nextId"]), t; case Pm.IncrementalSnapshot: switch (t.data.source) { case Am.Mutation: return t.data.adds.forEach(t => { this.replaceIds(t, e, ["parentId", "nextId", "previousId"]), this.replaceIdOnNode(t.node, e); const n = this.crossOriginIframeRootIdMap.get(e); n && this.patchRootIdOnNode(t.node, n) }), t.data.removes.forEach(t => { this.replaceIds(t, e, ["parentId", "id"]) }), t.data.attributes.forEach(t => { this.replaceIds(t, e, ["id"]) }), t.data.texts.forEach(t => { this.replaceIds(t, e, ["id"]) }), t; case Am.Drag: case Am.TouchMove: case Am.MouseMove: return t.data.positions.forEach(t => { this.replaceIds(t, e, ["id"]) }), t; case Am.ViewportResize: return !1; case Am.MediaInteraction: case Am.MouseInteraction: case Am.Scroll: case Am.CanvasMutation: case Am.Input: return this.replaceIds(t.data, e, ["id"]), t; case Am.StyleSheetRule: case Am.StyleDeclaration: return this.replaceIds(t.data, e, ["id"]), this.replaceStyleIds(t.data, e, ["styleId"]), t; case Am.Font: return t; case Am.Selection: return t.data.ranges.forEach(t => { this.replaceIds(t, e, ["start", "end"]) }), t; case Am.AdoptedStyleSheet: return this.replaceIds(t.data, e, ["id"]), this.replaceStyleIds(t.data, e, ["styleIds"]), ug([t, "access", e => e.data, "access", e => e.styles, "optionalAccess", e => e.forEach, "call", t => t(t => { this.replaceStyleIds(t, e, ["styleId"]) })]), t } } return !1 } replace(e, t, n, r) { for (const o of r)(Array.isArray(t[o]) || "number" == typeof t[o]) && (Array.isArray(t[o]) ? t[o] = e.getIds(n, t[o]) : t[o] = e.getId(n, t[o])); return t } replaceIds(e, t, n) { return this.replace(this.crossOriginIframeMirror, e, t, n) } replaceStyleIds(e, t, n) { return this.replace(this.crossOriginIframeStyleMirror, e, t, n) } replaceIdOnNode(e, t) { this.replaceIds(e, t, ["id", "rootId"]), "childNodes" in e && e.childNodes.forEach(e => { this.replaceIdOnNode(e, t) }) } patchRootIdOnNode(e, t) { e.type === Sh.Document || e.rootId || (e.rootId = t), "childNodes" in e && e.childNodes.forEach(e => { this.patchRootIdOnNode(e, t) }) } } class dg { init() {} addShadowRoot() {} observeAttachShadow() {} reset() {} } class pg { constructor(e) { this.shadowDoms = new WeakSet, this.restoreHandlers = [], this.mutationCb = e.mutationCb, this.scrollCb = e.scrollCb, this.bypassOptions = e.bypassOptions, this.mirror = e.mirror, this.init() } init() { this.reset(), this.patchAttachShadow(Element, document) } addShadowRoot(e, t) { if (!Oh(e)) return; if (this.shadowDoms.has(e)) return; this.shadowDoms.add(e); const n = Km({ ...this.bypassOptions, doc: t, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }, e); this.restoreHandlers.push(() => n.disconnect()), this.restoreHandlers.push(Xm({ ...this.bypassOptions, scrollCb: this.scrollCb, doc: e, mirror: this.mirror })), Im(() => { e.adoptedStyleSheets && e.adoptedStyleSheets.length > 0 && this.bypassOptions.stylesheetManager.adoptStyleSheets(e.adoptedStyleSheets, this.mirror.getId(e.host)), this.restoreHandlers.push(og({ mirror: this.mirror, stylesheetManager: this.bypassOptions.stylesheetManager }, e)) }, 0) } observeAttachShadow(e) { e.contentWindow && e.contentDocument && this.patchAttachShadow(e.contentWindow.Element, e.contentDocument) } patchAttachShadow(e, t) { const n = this; this.restoreHandlers.push(um(e.prototype, "attachShadow", function(e) { return function(r) { const o = e.call(this, r); return this.shadowRoot && km(this) && n.addShadowRoot(this.shadowRoot, t), o } })) } reset() { this.restoreHandlers.forEach(e => { try { e() } catch (e) {} }), this.restoreHandlers = [], this.shadowDoms = new WeakSet } } class hg { reset() {} freeze() {} unfreeze() {} lock() {} unlock() {} snapshot() {} } class mg { constructor(e) { this.trackedLinkElements = new WeakSet, this.styleMirror = new wm, this.mutationCb = e.mutationCb, this.adoptedStyleSheetCb = e.adoptedStyleSheetCb } attachLinkElement(e, t) { "_cssText" in t.attributes && this.mutationCb({ adds: [], removes: [], texts: [], attributes: [{ id: t.id, attributes: t.attributes }] }), this.trackLinkElement(e) } trackLinkElement(e) { this.trackedLinkElements.has(e) || (this.trackedLinkElements.add(e), this.trackStylesheetInLinkElement(e)) } adoptStyleSheets(e, t) { if (0 === e.length) return; const n = { id: t, styleIds: [] }, r = []; for (const t of e) { let e; this.styleMirror.has(t) ? e = this.styleMirror.getId(t) : (e = this.styleMirror.add(t), r.push({ styleId: e, rules: Array.from(t.rules || CSSRule, (e, t) => ({ rule: kh(e), index: t })) })), n.styleIds.push(e) } r.length > 0 && (n.styles = r), this.adoptedStyleSheetCb(n) } reset() { this.styleMirror.reset(), this.trackedLinkElements = new WeakSet } trackStylesheetInLinkElement(e) {} } class gg { constructor() { this.nodeMap = new WeakMap, this.loop = !0, this.periodicallyClear() } periodicallyClear() { ! function(...e) { xm("requestAnimationFrame")(...e) }(() => { this.clear(), this.loop && this.periodicallyClear() }) } inOtherBuffer(e, t) { const n = this.nodeMap.get(e); return n && Array.from(n).some(e => e !== t) } add(e, t) { this.nodeMap.set(e, (this.nodeMap.get(e) || new Set).add(t)) } clear() { this.nodeMap = new WeakMap } destroy() { this.loop = !1 } } let yg, vg; const bg = new Th; function _g(e = {}) { const { emit: t, checkoutEveryNms: n, checkoutEveryNth: r, blockClass: o = "rr-block", blockSelector: i = null, unblockSelector: a = null, ignoreClass: s = "rr-ignore", ignoreSelector: c = null, maskAllText: u = !1, maskTextClass: l = "rr-mask", unmaskTextClass: f = null, maskTextSelector: d = null, unmaskTextSelector: p = null, inlineStylesheet: h = !0, maskAllInputs: m, maskInputOptions: g, slimDOMOptions: y, maskAttributeFn: v, maskInputFn: b, maskTextFn: _, maxCanvasSize: S = null, packFn: w, sampling: O = {}, dataURLOptions: E = {}, mousemoveWait: k, recordCanvas: T = !1, recordCrossOriginIframes: x = !1, recordAfter: I = ("DOMContentLoaded" === e.recordAfter ? e.recordAfter : "load"), userTriggeredOnInput: P = !1, collectFonts: A = !1, inlineImages: C = !1, plugins: j, keepIframeSrcFn: R = () => !1, ignoreCSSAttributes: M = new Set([]), errorHandler: D, onMutation: N, getCanvasManager: L } = e; zm(D); const F = !x || window.parent === window; let B = !1; if (!F) try { window.parent.document && (B = !1) } catch (e) { B = !0 } if (F && !t) throw new Error("emit function is required"); void 0 !== k && void 0 === O.mousemove && (O.mousemove = k), bg.reset(); const U = !0 === m ? { color: !0, date: !0, "datetime-local": !0, email: !0, month: !0, number: !0, range: !0, search: !0, tel: !0, text: !0, time: !0, url: !0, week: !0, textarea: !0, select: !0, radio: !0, checkbox: !0 } : void 0 !== g ? g : {}, G = !0 === y || "all" === y ? { script: !0, comment: !0, headFavicon: !0, headWhitespace: !0, headMetaSocial: !0, headMetaRobots: !0, headMetaHttpEquiv: !0, headMetaVerification: !0, headMetaAuthorship: "all" === y, headMetaDescKeywords: "all" === y } : y || {}; let $; ! function(e = window) { "NodeList" in e && !e.NodeList.prototype.forEach && (e.NodeList.prototype.forEach = Array.prototype.forEach), "DOMTokenList" in e && !e.DOMTokenList.prototype.forEach && (e.DOMTokenList.prototype.forEach = Array.prototype.forEach), Node.prototype.contains || (Node.prototype.contains = (...e) => { let t = e[0]; if (!(0 in e)) throw new TypeError("1 argument is required"); do { if (this === t) return !0 } while (t = t && t.parentNode); return !1 }) }(); let H = 0; const z = e => { for (const t of j || []) t.eventProcessor && (e = t.eventProcessor(e)); return w && !B && (e = w(e)), e }; yg = (e, o) => { const i = e; if (i.timestamp = lm(), !Sp([Ym, "access", e => e[0], "optionalAccess", e => e.isFrozen, "call", e => e()]) || i.type === Pm.FullSnapshot || i.type === Pm.IncrementalSnapshot && i.data.source === Am.Mutation || Ym.forEach(e => e.unfreeze()), F) Sp([t, "optionalCall", e => e(z(i), o)]); else if (B) { const e = { type: "rrweb", event: z(i), origin: window.location.origin, isCheckout: o }; window.parent.postMessage(e, "*") } if (i.type === Pm.FullSnapshot) $ = i, H = 0; else if (i.type === Pm.IncrementalSnapshot) { if (i.data.source === Am.Mutation && i.data.isAttachIframe) return; H++; const e = r && H >= r, t = n && $ && i.timestamp - $.timestamp > n; (e || t) && Z(!0) } }; const q = e => { yg({ type: Pm.IncrementalSnapshot, data: { source: Am.Mutation, ...e } }) }, W = e => yg({ type: Pm.IncrementalSnapshot, data: { source: Am.Scroll, ...e } }), V = e => yg({ type: Pm.IncrementalSnapshot, data: { source: Am.CanvasMutation, ...e } }), Y = new mg({ mutationCb: q, adoptedStyleSheetCb: e => yg({ type: Pm.IncrementalSnapshot, data: { source: Am.AdoptedStyleSheet, ...e } }) }), J = "boolean" == typeof __RRWEB_EXCLUDE_IFRAME__ && __RRWEB_EXCLUDE_IFRAME__ ? new lg : new fg({ mirror: bg, mutationCb: q, stylesheetManager: Y, recordCrossOriginIframes: x, wrappedEmit: yg }); for (const e of j || []) e.getMirror && e.getMirror({ nodeMirror: bg, crossOriginIframeMirror: J.crossOriginIframeMirror, crossOriginIframeStyleMirror: J.crossOriginIframeStyleMirror }); const K = new gg, Q = function(e, t) { try { return e ? e(t) : new hg } catch (e) { return console.warn("Unable to initialize CanvasManager"), new hg } }(L, { mirror: bg, win: window, mutationCb: e => yg({ type: Pm.IncrementalSnapshot, data: { source: Am.CanvasMutation, ...e } }), recordCanvas: T, blockClass: o, blockSelector: i, unblockSelector: a, maxCanvasSize: S, sampling: O.canvas, dataURLOptions: E, errorHandler: D }), X = "boolean" == typeof __RRWEB_EXCLUDE_SHADOW_DOM__ && __RRWEB_EXCLUDE_SHADOW_DOM__ ? new dg : new pg({ mutationCb: q, scrollCb: W, bypassOptions: { onMutation: N, blockClass: o, blockSelector: i, unblockSelector: a, maskAllText: u, maskTextClass: l, unmaskTextClass: f, maskTextSelector: d, unmaskTextSelector: p, inlineStylesheet: h, maskInputOptions: U, dataURLOptions: E, maskAttributeFn: v, maskTextFn: _, maskInputFn: b, recordCanvas: T, inlineImages: C, sampling: O, slimDOMOptions: G, iframeManager: J, stylesheetManager: Y, canvasManager: Q, keepIframeSrcFn: R, processedNodeManager: K }, mirror: bg }), Z = (e = !1) => { yg({ type: Pm.Meta, data: { href: window.location.href, width: pm(), height: dm() } }, e), Y.reset(), X.init(), Ym.forEach(e => e.lock()); const t = function(e, t) { const { mirror: n = new Th, blockClass: r = "rr-block", blockSelector: o = null, unblockSelector: i = null, maskAllText: a = !1, maskTextClass: s = "rr-mask", unmaskTextClass: c = null, maskTextSelector: u = null, unmaskTextSelector: l = null, inlineStylesheet: f = !0, inlineImages: d = !1, recordCanvas: p = !1, maskAllInputs: h = !1, maskAttributeFn: m, maskTextFn: g, maskInputFn: y, slimDOM: v = !1, dataURLOptions: b, preserveWhiteSpace: _, onSerialize: S, onIframeLoad: w, iframeLoadTimeout: O, onStylesheetLoad: E, stylesheetLoadTimeout: k, keepIframeSrcFn: T = () => !1 } = t || {}; return nm(e, { doc: e, mirror: n, blockClass: r, blockSelector: o, unblockSelector: i, maskAllText: a, maskTextClass: s, unmaskTextClass: c, maskTextSelector: u, unmaskTextSelector: l, skipChild: !1, inlineStylesheet: f, maskInputOptions: !0 === h ? { color: !0, date: !0, "datetime-local": !0, email: !0, month: !0, number: !0, range: !0, search: !0, tel: !0, text: !0, time: !0, url: !0, week: !0, textarea: !0, select: !0 } : !1 === h ? {} : h, maskAttributeFn: m, maskTextFn: g, maskInputFn: y, slimDOMOptions: !0 === v || "all" === v ? { script: !0, comment: !0, headFavicon: !0, headWhitespace: !0, headMetaDescKeywords: "all" === v, headMetaSocial: !0, headMetaRobots: !0, headMetaHttpEquiv: !0, headMetaAuthorship: !0, headMetaVerification: !0 } : !1 === v ? {} : v, dataURLOptions: b, inlineImages: d, recordCanvas: p, preserveWhiteSpace: _, onSerialize: S, onIframeLoad: w, iframeLoadTimeout: O, onStylesheetLoad: E, stylesheetLoadTimeout: k, keepIframeSrcFn: T, newlyAddedElement: !1 }) }(document, { mirror: bg, blockClass: o, blockSelector: i, unblockSelector: a, maskAllText: u, maskTextClass: l, unmaskTextClass: f, maskTextSelector: d, unmaskTextSelector: p, inlineStylesheet: h, maskAllInputs: U, maskAttributeFn: v, maskInputFn: b, maskTextFn: _, slimDOM: G, dataURLOptions: E, recordCanvas: T, inlineImages: C, onSerialize: e => { bm(e, bg) && J.addIframe(e), _m(e, bg) && Y.trackLinkElement(e), Sm(e) && X.addShadowRoot(e.shadowRoot, document) }, onIframeLoad: (e, t) => { J.attachIframe(e, t), X.observeAttachShadow(e) }, onStylesheetLoad: (e, t) => { Y.attachLinkElement(e, t) }, keepIframeSrcFn: R }); if (!t) return console.warn("Failed to snapshot the document"); yg({ type: Pm.FullSnapshot, data: { node: t, initialOffset: fm(window) } }), Ym.forEach(e => e.unlock()), document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0 && Y.adoptStyleSheets(document.adoptedStyleSheets, bg.getId(document)) }; vg = Z; try { const e = [], t = e => Wm(ig)({ onMutation: N, mutationCb: q, mousemoveCb: (e, t) => yg({ type: Pm.IncrementalSnapshot, data: { source: t, positions: e } }), mouseInteractionCb: e => yg({ type: Pm.IncrementalSnapshot, data: { source: Am.MouseInteraction, ...e } }), scrollCb: W, viewportResizeCb: e => yg({ type: Pm.IncrementalSnapshot, data: { source: Am.ViewportResize, ...e } }), inputCb: e => yg({ type: Pm.IncrementalSnapshot, data: { source: Am.Input, ...e } }), mediaInteractionCb: e => yg({ type: Pm.IncrementalSnapshot, data: { source: Am.MediaInteraction, ...e } }), styleSheetRuleCb: e => yg({ type: Pm.IncrementalSnapshot, data: { source: Am.StyleSheetRule, ...e } }), styleDeclarationCb: e => yg({ type: Pm.IncrementalSnapshot, data: { source: Am.StyleDeclaration, ...e } }), canvasMutationCb: V, fontCb: e => yg({ type: Pm.IncrementalSnapshot, data: { source: Am.Font, ...e } }), selectionCb: e => { yg({ type: Pm.IncrementalSnapshot, data: { source: Am.Selection, ...e } }) }, customElementCb: e => { yg({ type: Pm.IncrementalSnapshot, data: { source: Am.CustomElement, ...e } }) }, blockClass: o, ignoreClass: s, ignoreSelector: c, maskAllText: u, maskTextClass: l, unmaskTextClass: f, maskTextSelector: d, unmaskTextSelector: p, maskInputOptions: U, inlineStylesheet: h, sampling: O, recordCanvas: T, inlineImages: C, userTriggeredOnInput: P, collectFonts: A, doc: e, maskAttributeFn: v, maskInputFn: b, maskTextFn: _, keepIframeSrcFn: R, blockSelector: i, unblockSelector: a, slimDOMOptions: G, dataURLOptions: E, mirror: bg, iframeManager: J, stylesheetManager: Y, shadowDomManager: X, processedNodeManager: K, canvasManager: Q, ignoreCSSAttributes: M, plugins: Sp([j, "optionalAccess", e => e.filter, "call", e => e(e => e.observer), "optionalAccess", e => e.map, "call", e => e(e => ({ observer: e.observer, options: e.options, callback: t => yg({ type: Pm.Plugin, data: { plugin: e.name, payload: t } }) }))]) || [] }, {}); J.addLoadListener(n => { try { e.push(t(n.contentDocument)) } catch (e) { console.warn(e) } }); const n = () => { Z(), e.push(t(document)) }; return "interactive" === document.readyState || "complete" === document.readyState ? n() : (e.push(om("DOMContentLoaded", () => { yg({ type: Pm.DomContentLoaded, data: {} }), "DOMContentLoaded" === I && n() })), e.push(om("load", () => { yg({ type: Pm.Load, data: {} }), "load" === I && n() }, window))), () => { e.forEach(e => e()), K.destroy(), vg = void 0, qm() } } catch (e) { console.warn(e) } } _g.mirror = bg, _g.takeFullSnapshot = function(e) { if (!vg) throw new Error("please take full snapshot after start recording"); vg(e) }; function Sg(e) { return e > 9999999999 ? e : 1e3 * e } function wg(e) { return e > 9999999999 ? e / 1e3 : e } function Og(e, t) { "sentry.transaction" !== t.category && (["ui.click", "ui.input"].includes(t.category) ? e.triggerUserActivity() : e.checkAndHandleExpiredSession(), e.addUpdate(() => (e.throttledAddEvent({ type: Pm.Custom, timestamp: 1e3 * (t.timestamp || 0), data: { tag: "breadcrumb", payload: mc(t, 10, 1e3) } }), "console" === t.category))) } function Eg(e) { return e.closest("button,a") || e } function kg(e) { const t = Tg(e); return t && t instanceof Element ? Eg(t) : t } function Tg(e) { return function(e) { return "object" == typeof e && !!e && "target" in e }(e) ? e.target : e } let xg; function Ig(e) { return xg || (xg = [], za(ph, "open", function(e) { return function(...t) { if (xg) try { xg.forEach(e => e()) } catch (e) {} return e.apply(ph, t) } })), xg.push(e), () => { const t = xg ? xg.indexOf(e) : -1; t > -1 && xg.splice(t, 1) } } class Pg { constructor(e, t, n = Og) { this._lastMutation = 0, this._lastScroll = 0, this._clicks = [], this._timeout = t.timeout / 1e3, this._threshold = t.threshold / 1e3, this._scollTimeout = t.scrollTimeout / 1e3, this._replay = e, this._ignoreSelector = t.ignoreSelector, this._addBreadcrumbEvent = n } addListeners() { const e = Ig(() => { this._lastMutation = Cg() }); this._teardown = () => { e(), this._clicks = [], this._lastMutation = 0, this._lastScroll = 0 } } removeListeners() { this._teardown && this._teardown(), this._checkClickTimeout && clearTimeout(this._checkClickTimeout) } handleClick(e, t) { if (function(e, t) { if (!Ag.includes(e.tagName)) return !0; if ("INPUT" === e.tagName && !["submit", "button"].includes(e.getAttribute("type") || "")) return !0; if ("A" === e.tagName && (e.hasAttribute("download") || e.hasAttribute("target") && "_self" !== e.getAttribute("target"))) return !0; if (t && e.matches(t)) return !0; return !1 }(t, this._ignoreSelector) || ! function(e) { return !(!e.data || "number" != typeof e.data.nodeId || !e.timestamp) }(e)) return; const n = { timestamp: wg(e.timestamp), clickBreadcrumb: e, clickCount: 0, node: t }; this._clicks.some(e => e.node === n.node && Math.abs(e.timestamp - n.timestamp) < 1) || (this._clicks.push(n), 1 === this._clicks.length && this._scheduleCheckClicks()) } registerMutation(e = Date.now()) { this._lastMutation = wg(e) } registerScroll(e = Date.now()) { this._lastScroll = wg(e) } registerClick(e) { const t = Eg(e); this._handleMultiClick(t) } _handleMultiClick(e) { this._getClicks(e).forEach(e => { e.clickCount++ }) } _getClicks(e) { return this._clicks.filter(t => t.node === e) } _checkClicks() { const e = [], t = Cg(); this._clicks.forEach(n => { !n.mutationAfter && this._lastMutation && (n.mutationAfter = n.timestamp <= this._lastMutation ? this._lastMutation - n.timestamp : void 0), !n.scrollAfter && this._lastScroll && (n.scrollAfter = n.timestamp <= this._lastScroll ? this._lastScroll - n.timestamp : void 0), n.timestamp + this._timeout <= t && e.push(n) }); for (const t of e) { const e = this._clicks.indexOf(t); e > -1 && (this._generateBreadcrumbs(t), this._clicks.splice(e, 1)) } this._clicks.length && this._scheduleCheckClicks() } _generateBreadcrumbs(e) { const t = this._replay, n = e.scrollAfter && e.scrollAfter <= this._scollTimeout, r = e.mutationAfter && e.mutationAfter <= this._threshold, o = !n && !r, { clickCount: i, clickBreadcrumb: a } = e; if (o) { const n = 1e3 * Math.min(e.mutationAfter || this._timeout, this._timeout), r = n < 1e3 * this._timeout ? "mutation" : "timeout", o = { type: "default", message: a.message, timestamp: a.timestamp, category: "ui.slowClickDetected", data: { ...a.data, url: ph.location.href, route: t.getCurrentRoute(), timeAfterClickMs: n, endReason: r, clickCount: i || 1 } }; return void this._addBreadcrumbEvent(t, o) } if (i > 1) { const e = { type: "default", message: a.message, timestamp: a.timestamp, category: "ui.multiClick", data: { ...a.data, url: ph.location.href, route: t.getCurrentRoute(), clickCount: i, metric: !0 } }; this._addBreadcrumbEvent(t, e) } } _scheduleCheckClicks() { this._checkClickTimeout && clearTimeout(this._checkClickTimeout), this._checkClickTimeout = setTimeout(() => this._checkClicks(), 1e3) } } const Ag = ["A", "BUTTON", "INPUT"]; function Cg() { return Date.now() / 1e3 } function jg(e, t) { try { if (! function(e) { return 3 === e.type }(t)) return; const { source: n } = t.data; if (n === Am.Mutation && e.registerMutation(t.timestamp), n === Am.Scroll && e.registerScroll(t.timestamp), function(e) { return e.data.source === Am.MouseInteraction }(t)) { const { type: n, id: r } = t.data, o = _g.mirror.getNode(r); o instanceof HTMLElement && n === Cm.Click && e.registerClick(o) } } catch (e) {} } function Rg(e) { return { timestamp: Date.now() / 1e3, type: "default", ...e } } var Mg; ! function(e) { e[e.Document = 0] = "Document", e[e.DocumentType = 1] = "DocumentType", e[e.Element = 2] = "Element", e[e.Text = 3] = "Text", e[e.CDATA = 4] = "CDATA", e[e.Comment = 5] = "Comment" }(Mg || (Mg = {})); const Dg = new Set(["id", "class", "aria-label", "role", "name", "alt", "title", "data-test-id", "data-testid", "disabled", "aria-disabled", "data-sentry-component"]); function Ng(e) { const t = {}; for (const n in e) if (Dg.has(n)) { let r = n; "data-testid" !== n && "data-test-id" !== n || (r = "testId"), t[r] = e[n] } return t } const Lg = e => t => { if (!e.isEnabled()) return; const n = function(e) { const { target: t, message: n } = function(e) { const t = "click" === e.name; let n, r = null; try { r = t ? kg(e.event) : Tg(e.event), n = Pa(r, { maxStringLength: 200 }) || "" } catch (e) { n = "" } return { target: r, message: n } }(e); return Rg({ category: `ui.${e.name}`, ...Fg(t, n) }) }(t); if (!n) return; const r = "click" === t.name, o = r ? t.event : void 0; !(r && e.clickDetector && o && o.target) || o.altKey || o.metaKey || o.ctrlKey || o.shiftKey || function(e, t, n) { e.handleClick(t, n) }(e.clickDetector, n, kg(t.event)), Og(e, n) }; function Fg(e, t) { const n = _g.mirror.getId(e), r = n && _g.mirror.getNode(n), o = r && _g.mirror.getMeta(r), i = o && function(e) { return e.type === Mg.Element }(o) ? o : null; return { message: t, data: i ? { nodeId: n, node: { id: n, tagName: i.tagName, textContent: Array.from(i.childNodes).map(e => e.type === Mg.Text && e.textContent).filter(Boolean).map(e => e.trim()).join(""), attributes: Ng(i.attributes) } } : {} } } function Bg(e, t) { if (!e.isEnabled()) return; e.updateUserActivity(); const n = function(e) { const { metaKey: t, shiftKey: n, ctrlKey: r, altKey: o, key: i, target: a } = e; if (!a || function(e) { return "INPUT" === e.tagName || "TEXTAREA" === e.tagName || e.isContentEditable }(a) || !i) return null; const s = t || r || o, c = 1 === i.length; if (!s && c) return null; const u = Pa(a, { maxStringLength: 200 }) || "", l = Fg(a, u); return Rg({ category: "ui.keyDown", message: u, data: { ...l.data, metaKey: t, shiftKey: n, ctrlKey: r, altKey: o, key: i } }) }(t); n && Og(e, n) } const Ug = { resource: function(e) { const { entryType: t, initiatorType: n, name: r, responseEnd: o, startTime: i, decodedBodySize: a, encodedBodySize: s, responseStatus: c, transferSize: u } = e; if (["fetch", "xmlhttprequest"].includes(n)) return null; return { type: `${t}.${n}`, start: $g(i), end: $g(o), name: r, data: { size: u, statusCode: c, decodedBodySize: a, encodedBodySize: s } } }, paint: function(e) { const { duration: t, entryType: n, name: r, startTime: o } = e, i = $g(o); return { type: n, name: r, start: i, end: i + t, data: void 0 } }, navigation: function(e) { const { entryType: t, name: n, decodedBodySize: r, duration: o, domComplete: i, encodedBodySize: a, domContentLoadedEventStart: s, domContentLoadedEventEnd: c, domInteractive: u, loadEventStart: l, loadEventEnd: f, redirectCount: d, startTime: p, transferSize: h, type: m } = e; if (0 === o) return null; return { type: `${t}.${m}`, start: $g(p), end: $g(i), name: n, data: { size: h, decodedBodySize: r, encodedBodySize: a, duration: o, domInteractive: u, domContentLoadedEventStart: s, domContentLoadedEventEnd: c, loadEventStart: l, loadEventEnd: f, domComplete: i, redirectCount: d } } } }; function Gg(e) { return Ug[e.entryType] ? Ug[e.entryType](e) : null } function $g(e) { return ((ds || ph.performance.timeOrigin) + e) / 1e3 } function Hg(e) { function t(t) { e.performanceEntries.includes(t) || e.performanceEntries.push(t) } function n({ entries: e }) { e.forEach(t) } const r = []; return ["navigation", "paint", "resource"].forEach(e => { r.push(rh(e, n)) }), r.push(nh(({ metric: t }) => { e.replayPerformanceEntries.push(function(e) { const t = e.entries, n = t[t.length - 1], r = n ? n.element : void 0, o = e.value, i = $g(o); return { type: "largest-contentful-paint", name: "largest-contentful-paint", start: i, end: i, data: { value: o, size: o, nodeId: r ? _g.mirror.getId(r) : void 0 } } }(t)) })), () => { r.forEach(e => e()) } } const zg = "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__; function qg(e, t) { zg && (Fa.info(e), t && Vg(e)) } function Wg(e, t) { zg && (Fa.info(e), t && setTimeout(() => { Vg(e) }, 0)) } function Vg(e) { Tc({ category: "console", data: { logger: "replay" }, level: "info", message: e }, { level: "info" }) } class Yg extends Error { constructor() { super("Event buffer exceeded maximum size of 20000000.") } } class Jg { constructor() { this.events = [], this._totalSize = 0, this.hasCheckout = !1 } get hasEvents() { return this.events.length > 0 } get type() { return "sync" } destroy() { this.events = [] } async addEvent(e) { const t = JSON.stringify(e).length; if (this._totalSize += t, this._totalSize > vh) throw new Yg; this.events.push(e) } finish() { return new Promise(e => { const t = this.events; this.clear(), e(JSON.stringify(t)) }) } clear() { this.events = [], this._totalSize = 0, this.hasCheckout = !1 } getEarliestTimestamp() { const e = this.events.map(e => e.timestamp).sort()[0]; return e ? Sg(e) : null } } class Kg { constructor(e) { this._worker = e, this._id = 0 } ensureReady() { return this._ensureReadyPromise || (this._ensureReadyPromise = new Promise((e, t) => { this._worker.addEventListener("message", ({ data: n }) => { n.success ? e() : t() }, { once: !0 }), this._worker.addEventListener("error", e => { t(e) }, { once: !0 }) })), this._ensureReadyPromise } destroy() { qg("[Replay] Destroying compression worker"), this._worker.terminate() } postMessage(e, t) { const n = this._getAndIncrementId(); return new Promise((r, o) => { const i = ({ data: t }) => { const a = t; if (a.method === e && a.id === n) { if (this._worker.removeEventListener("message", i), !a.success) return zg && Fa.error("[Replay]", a.response), void o(new Error("Error in compression worker")); r(a.response) } }; this._worker.addEventListener("message", i), this._worker.postMessage({ id: n, method: e, arg: t }) }) } _getAndIncrementId() { return this._id++ } } class Qg { constructor(e) { this._worker = new Kg(e), this._earliestTimestamp = null, this._totalSize = 0, this.hasCheckout = !1 } get hasEvents() { return !!this._earliestTimestamp } get type() { return "worker" } ensureReady() { return this._worker.ensureReady() } destroy() { this._worker.destroy() } addEvent(e) { const t = Sg(e.timestamp); (!this._earliestTimestamp || t < this._earliestTimestamp) && (this._earliestTimestamp = t); const n = JSON.stringify(e); return this._totalSize += n.length, this._totalSize > vh ? Promise.reject(new Yg) : this._sendEventToWorker(n) } finish() { return this._finishRequest() } clear() { this._earliestTimestamp = null, this._totalSize = 0, this.hasCheckout = !1, this._worker.postMessage("clear").then(null, e => { zg && Fa.warn('[Replay] Sending "clear" message to worker failed', e) }) } getEarliestTimestamp() { return this._earliestTimestamp } _sendEventToWorker(e) { return this._worker.postMessage("addEvent", e) } async _finishRequest() { const e = await this._worker.postMessage("finish"); return this._earliestTimestamp = null, this._totalSize = 0, e } } class Xg { constructor(e) { this._fallback = new Jg, this._compression = new Qg(e), this._used = this._fallback, this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded() } get type() { return this._used.type } get hasEvents() { return this._used.hasEvents } get hasCheckout() { return this._used.hasCheckout } set hasCheckout(e) { this._used.hasCheckout = e } destroy() { this._fallback.destroy(), this._compression.destroy() } clear() { return this._used.clear() } getEarliestTimestamp() { return this._used.getEarliestTimestamp() } addEvent(e) { return this._used.addEvent(e) } async finish() { return await this.ensureWorkerIsLoaded(), this._used.finish() } ensureWorkerIsLoaded() { return this._ensureWorkerIsLoadedPromise } async _ensureWorkerIsLoaded() { try { await this._compression.ensureReady() } catch (e) { return void qg("[Replay] Failed to load the compression worker, falling back to simple buffer") } await this._switchToCompressionWorker() } async _switchToCompressionWorker() { const { events: e, hasCheckout: t } = this._fallback, n = []; for (const t of e) n.push(this._compression.addEvent(t)); this._compression.hasCheckout = t, this._used = this._compression; try { await Promise.all(n) } catch (e) { zg && Fa.warn("[Replay] Failed to add events when switching buffers.", e) } } } function Zg({ useCompression: e, workerUrl: t }) { if (e && window.Worker) { const e = function(e) { try { const t = e || function() { if ("undefined" == typeof __SENTRY_EXCLUDE_REPLAY_WORKER__ || !__SENTRY_EXCLUDE_REPLAY_WORKER__) return function() { const e = new Blob(['var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),a=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=function(t,e){for(var i=new n(31),a=0;a<31;++a)i[a]=e+=1<>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,a=0,s=new n(r);a>h]=l}else for(o=new n(i),a=0;a>15-t[a]);return o},g=new t(288);for(c=0;c<144;++c)g[c]=8;for(c=144;c<256;++c)g[c]=9;for(c=256;c<280;++c)g[c]=7;for(c=280;c<288;++c)g[c]=8;var w=new t(32);for(c=0;c<32;++c)w[c]=5;var p=d(g,9,0),y=d(w,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==r||r<0)&&(r=0),(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},A=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},_=function(r,e){for(var i=[],a=0;ad&&(d=o[a].s);var g=new n(d+1),w=x(i[c-1],g,0);if(w>e){a=0;var p=0,y=w-e,m=1<e))break;p+=m-(1<>=y;p>0;){var M=o[a].s;g[M]=0&&p;--a){var E=o[a].s;g[E]==e&&(--g[E],++p)}w=e}return{t:new t(g),l:w}},x=function(t,n,r){return-1==t.s?Math.max(x(t.l,n,r+1),x(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,a=t[0],s=1,o=function(t){e[i++]=t},f=1;f<=r;++f)if(t[f]==a&&f!=r)++s;else{if(!a&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(a),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(a);s=1,a=t[f]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var a=0;a4&&!H[a[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(f,g)+T(h,w)+l,X=T(f,M)+T(h,C)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=p,P=g,Q=y,R=w;for(B=0;B255){A(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;A(r,m,Q[et]),m+=R[et],et>3&&(A(r,m,rt>>5&8191),m+=i[et])}else A(r,m,N[rt]),m+=P[rt]}return A(r,m,N[256]),m+P[256]},U=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,a=0|r.length,s=0;s!=a;){for(var o=Math.min(s+2655,a);s>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(a,s,o,f,u){if(!u&&(u={l:1},s.dictionary)){var c=s.dictionary.subarray(-32768),v=new t(c.length+a.length);v.set(c),v.set(a,c.length),a=v,u.w=c.length}return function(a,s,o,f,u,c){var v=c.z||a.length,d=new t(f+v+5*(1+Math.ceil(v/7e3))+u),g=d.subarray(f,d.length-u),w=c.l,p=7&(c.r||0);if(s){p&&(g[0]=c.r>>3);for(var y=U[s-1],M=y>>13,E=8191&y,z=(1<7e3||q>24576)&&(N>423||!w)){p=C(a,g,0,F,I,S,O,q,G,j-G,p),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(a[j+Q]==a[j+Q-W]){for(var $=0;$Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;Pnt&&(nt=et,K=rt)}}}W+=(J=K)-(K=A[J])&32767}if(R){F[q++]=268435456|h[Q]<<18|l[R];var it=31&h[Q],at=31&l[R];O+=e[it]+i[at],++I[257+it],++S[at],B=j+Q,++L}else F[q++]=a[j],++I[a[j]]}}for(j=Math.max(j,B);j=v&&(g[p/8|0]=w,st=v),p=k(g,p+1,a.subarray(j,st))}c.i=v}return b(d,0,f+m(p)+u)}(a,null==s.level?6:s.level,null==s.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(a.length)))):12+s.mem,o,f,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if("function"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var a=this.b.length-this.s.z;a&&(this.b.set(n.subarray(0,a),this.s.z),this.s.z=this.b.length,this.p(this.b,!1)),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(a),32768),this.s.z=n.length-a+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,a=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),s=a.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(a,n),O(a,s-8,r.d()),O(a,s-4,e),a}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t}(),G="undefined"!=typeof TextEncoder&&new TextEncoder,H="undefined"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(r){for(var e=new t(n.length),i=0;i>1)),o=0,f=function(t){s[o++]=t};for(i=0;is.length){var h=new t(o+8+(a-i<<1));h.set(s),s=h}var l=n.charCodeAt(i);l<128||r?f(l):l<2048?(f(192|l>>6),f(128|63&l)):l>55295&&l<57344?(f(240|(l=65536+(1047552&l)|1023&n.charCodeAt(++i))>>18),f(128|l>>12&63),f(128|l>>6&63),f(128|63&l)):(f(224|l>>12),f(128|l>>6&63),f(128|63&l))}return b(s,0,o)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error("Adding invalid event");const n=this._hasEvents?",":"";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push("]",!0);const t=function(t){let n=0;for(let r=0,e=t.length;r{this._deflatedData.push(t)},this.stream=new J(((t,n)=>{this.deflate.push(t,n)})),this.stream.push("[")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener("message",(function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&"function"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}})),postMessage({id:void 0,method:"init",success:!0,response:void 0});']); return URL.createObjectURL(e) }(); return "" }(); if (!t) return; qg("[Replay] Using compression worker" + (e ? ` from ${e}` : "")); const n = new Worker(t); return new Xg(n) } catch (e) { qg("[Replay] Failed to create compression worker") } }(t); if (e) return e } return qg("[Replay] Using simple buffer"), new Jg } function ey() { try { return "sessionStorage" in ph && !!ph.sessionStorage } catch (e) { return !1 } } function ty(e) { ! function() { if (!ey()) return; try { ph.sessionStorage.removeItem(hh) } catch (e) {} }(), e.session = void 0 } function ny(e) { return void 0 !== e && Math.random() < e } function ry(e) { const t = Date.now(); return { id: e.id || ts(), started: e.started || t, lastActivity: e.lastActivity || t, segmentId: e.segmentId || 0, sampled: e.sampled, previousSessionId: e.previousSessionId } } function oy(e) { if (ey()) try { ph.sessionStorage.setItem(hh, JSON.stringify(e)) } catch (e) {} } function iy({ sessionSampleRate: e, allowBuffering: t, stickySession: n = !1 }, { previousSessionId: r } = {}) { const o = function(e, t) { return ny(e) ? "session" : !!t && "buffer" }(e, t), i = ry({ sampled: o, previousSessionId: r }); return n && oy(i), i } function ay(e, t, n = +new Date) { return null === e || void 0 === t || t < 0 || 0 !== t && e + t <= n } function sy(e, { maxReplayDuration: t, sessionIdleExpire: n, targetTime: r = Date.now() }) { return ay(e.started, t, r) || ay(e.lastActivity, n, r) } function cy(e, { sessionIdleExpire: t, maxReplayDuration: n }) { return !!sy(e, { sessionIdleExpire: t, maxReplayDuration: n }) && ("buffer" !== e.sampled || 0 !== e.segmentId) } function uy({ traceInternals: e, sessionIdleExpire: t, maxReplayDuration: n, previousSessionId: r }, o) { const i = o.stickySession && function(e) { if (!ey()) return null; try { const t = ph.sessionStorage.getItem(hh); if (!t) return null; const n = JSON.parse(t); return Wg("[Replay] Loading existing session", e), ry(n) } catch (e) { return null } }(e); return i ? cy(i, { sessionIdleExpire: t, maxReplayDuration: n }) ? (Wg("[Replay] Session in sessionStorage is expired, creating new one..."), iy(o, { previousSessionId: i.id })) : i : (Wg("[Replay] Creating new session", e), iy(o, { previousSessionId: r })) } function ly(e, t, n) { return !!dy(e, t) && (fy(e, t, n), !0) } async function fy(e, t, n) { if (!e.eventBuffer) return null; try { n && "buffer" === e.recordingMode && e.eventBuffer.clear(), n && (e.eventBuffer.hasCheckout = !0); const r = function(e, t) { try { if ("function" == typeof t && function(e) { return e.type === Pm.Custom }(e)) return t(e) } catch (e) { return zg && Fa.error("[Replay] An error occured in the `beforeAddRecordingEvent` callback, skipping the event...", e), null } return e }(t, e.getOptions().beforeAddRecordingEvent); if (!r) return; return await e.eventBuffer.addEvent(r) } catch (t) { const n = t && t instanceof Yg ? "addEventSizeExceeded" : "addEvent"; zg && Fa.error(t), await e.stop({ reason: n }); const r = Uc(); r && r.recordDroppedEvent("internal_sdk_error", "replay") } } function dy(e, t) { if (!e.eventBuffer || e.isPaused() || !e.isEnabled()) return !1; const n = Sg(t.timestamp); return !(n + e.timeouts.sessionIdlePause < Date.now()) && (!(n > e.getContext().initialTimestamp + e.getOptions().maxReplayDuration) || (qg(`[Replay] Skipping event with timestamp ${n} because it is after maxReplayDuration`, e.getOptions()._experiments.traceInternals), !1)) } function py(e) { return !e.type } function hy(e) { return "transaction" === e.type } function my(e) { return "feedback" === e.type } function gy(e) { const t = function() { const e = Uc(); if (!e) return !1; const t = e.getTransport(); if (!t) return !1; return t.send.__sentry__baseTransport__ || !1 }(); return (n, r) => { if (!e.isEnabled() || !py(n) && !hy(n)) return; const o = r && r.statusCode; t && (!o || o < 200 || o >= 300) || (hy(n) ? function(e, t) { const n = e.getContext(); t.contexts && t.contexts.trace && t.contexts.trace.trace_id && n.traceIds.size < 100 && n.traceIds.add(t.contexts.trace.trace_id) }(e, n) : function(e, t) { const n = e.getContext(); t.event_id && n.errorIds.size < 100 && n.errorIds.add(t.event_id); if ("buffer" !== e.recordingMode || !t.tags || !t.tags.replayId) return; const { beforeErrorSampling: r } = e.getOptions(); if ("function" == typeof r && !r(t)) return; setTimeout(() => { e.sendBufferedReplayOrFlush() }) }(e, n)) } } function yy(e) { return t => { e.isEnabled() && py(t) && function(e, t) { const n = t.exception && t.exception.values && t.exception.values[0].value; if ("string" != typeof n) return; if (n.match(/reactjs\.org\/docs\/error-decoder\.html\?invariant=(418|419|422|423|425)/) || n.match(/(does not match server-rendered HTML|Hydration failed because)/i)) { Og(e, Rg({ category: "replay.hydrate-error" })) } }(e, t) } } function vy(e, t = !1) { const n = t ? gy(e) : void 0; return Object.assign((t, r) => { if (!e.isEnabled()) return t; if (function(e) { return "replay_event" === e.type }(t)) return delete t.breadcrumbs, t; if (!py(t) && !hy(t) && !my(t)) return t; if (!e.checkAndHandleExpiredSession()) return t; if (my(t)) return e.flush(), t.contexts.feedback.replay_id = e.getSessionId(), function(e, t) { e.triggerUserActivity(), e.addUpdate(() => !t.timestamp || (e.throttledAddEvent({ type: Pm.Custom, timestamp: 1e3 * t.timestamp, data: { tag: "breadcrumb", payload: { timestamp: t.timestamp, type: "default", category: "sentry.feedback", data: { feedbackId: t.event_id } } } }), !1)) }(e, t), t; if (function(e, t) { return !(e.type || !e.exception || !e.exception.values || !e.exception.values.length || !t.originalException || !t.originalException.__rrweb__) }(t, r) && !e.getOptions()._experiments.captureExceptions) return zg && Fa.log("[Replay] Ignoring error from rrweb internals", t), null; const o = function(e, t) { return "buffer" === e.recordingMode && t.message !== mh && !(!t.exception || t.type) && ny(e.getOptions().errorSampleRate) }(e, t); return (o || "session" === e.recordingMode) && (t.tags = { ...t.tags, replayId: e.getSessionId() }), n && n(t, { statusCode: 200 }), t }, { id: "Replay" }) } function by(e, t) { return t.map(({ type: t, start: n, end: r, name: o, data: i }) => { const a = e.throttledAddEvent({ type: Pm.Custom, timestamp: n, data: { tag: "performanceSpan", payload: { op: t, description: o, startTimestamp: n, endTimestamp: r, data: i } } }); return "string" == typeof a ? Promise.resolve(null) : a }) } function _y(e) { return t => { if (!e.isEnabled()) return; const n = function(e) { const { from: t, to: n } = e, r = Date.now() / 1e3; return { type: "navigation.push", start: r, end: r, name: n, data: { previous: t } } }(t); null !== n && (e.getContext().urls.push(n.name), e.triggerUserActivity(), e.addUpdate(() => (by(e, [n]), !1))) } } function Sy(e, t) { e.isEnabled() && null !== t && (function(e, t) { return (!zg || !e.getOptions()._experiments.traceInternals) && wp(t, Uc()) }(e, t.name) || e.addUpdate(() => (by(e, [t]), !0))) } function wy(e) { return t => { if (!e.isEnabled()) return; const n = function(e) { const { startTimestamp: t, endTimestamp: n, xhr: r } = e, o = r[Td]; if (!t || !n || !o) return null; const { method: i, url: a, status_code: s } = o; return void 0 === a ? null : { type: "resource.xhr", name: a, start: t / 1e3, end: n / 1e3, data: { method: i, statusCode: s } } }(t); Sy(e, n) } } function Oy(e, t) { if (e) try { if ("string" == typeof e) return t.encode(e).length; if (e instanceof URLSearchParams) return t.encode(e.toString()).length; if (e instanceof FormData) { const n = Cy(e); return t.encode(n).length } if (e instanceof Blob) return e.size; if (e instanceof ArrayBuffer) return e.byteLength } catch (e) {} } function Ey(e) { if (!e) return; const t = parseInt(e, 10); return isNaN(t) ? void 0 : t } function ky(e) { try { if ("string" == typeof e) return [e]; if (e instanceof URLSearchParams) return [e.toString()]; if (e instanceof FormData) return [Cy(e)]; if (!e) return [void 0] } catch (t) { return zg && Fa.warn("[Replay] Failed to serialize body", e), [void 0, "BODY_PARSE_ERROR"] } return zg && Fa.info("[Replay] Skipping network body because of body type", e), [void 0, "UNPARSEABLE_BODY_TYPE"] } function Ty(e, t) { if (!e) return { headers: {}, size: void 0, _meta: { warnings: [t] } }; const n = { ...e._meta }, r = n.warnings || []; return n.warnings = [...r, t], e._meta = n, e } function xy(e, t) { if (!t) return null; const { startTimestamp: n, endTimestamp: r, url: o, method: i, statusCode: a, request: s, response: c } = t; return { type: e, start: n / 1e3, end: r / 1e3, name: o, data: Qa({ method: i, statusCode: a, request: s, response: c }) } } function Iy(e) { return { headers: {}, size: e, _meta: { warnings: ["URL_SKIPPED"] } } } function Py(e, t, n) { if (!t && 0 === Object.keys(e).length) return; if (!t) return { headers: e }; if (!n) return { headers: e, size: t }; const r = { headers: e, size: t }, { body: o, warnings: i } = function(e) { if (!e || "string" != typeof e) return { body: e }; const t = e.length > gh, n = function(e) { const t = e[0], n = e[e.length - 1]; return "[" === t && "]" === n || "{" === t && "}" === n }(e); if (t) { const t = e.slice(0, gh); return n ? { body: t, warnings: ["MAYBE_JSON_TRUNCATED"] } : { body: `${t}\u2026`, warnings: ["TEXT_TRUNCATED"] } } if (n) try { return { body: JSON.parse(e) } } catch (e) {} return { body: e } }(n); return r.body = o, i && i.length > 0 && (r._meta = { warnings: i }), r } function Ay(e, t) { return Object.keys(e).reduce((n, r) => { const o = r.toLowerCase(); return t.includes(o) && e[r] && (n[o] = e[r]), n }, {}) } function Cy(e) { return new URLSearchParams(e).toString() } function jy(e, t) { const n = function(e, t = ph.document.baseURI) { if (e.startsWith("http://") || e.startsWith("https://") || e.startsWith(ph.location.origin)) return e; const n = new URL(e, t); if (n.origin !== new URL(t).origin) return e; const r = n.href; if (!e.endsWith("/") && r.endsWith("/")) return r.slice(0, -1); return r }(e); return Ha(n, t) } async function Ry(e, t, n) { try { const r = await async function(e, t, n) { const r = Date.now(), { startTimestamp: o = r, endTimestamp: i = r } = t, { url: a, method: s, status_code: c = 0, request_body_size: u, response_body_size: l } = e.data, f = jy(a, n.networkDetailAllowUrls) && !jy(a, n.networkDetailDenyUrls), d = f ? function({ networkCaptureBodies: e, networkRequestHeaders: t }, n, r) { const o = n ? function(e, t) { if (1 === e.length && "string" != typeof e[0]) return Ny(e[0], t); if (2 === e.length) return Ny(e[1], t); return {} }(n, t) : {}; if (!e) return Py(o, r, void 0); const i = My(n), [a, s] = ky(i), c = Py(o, r, a); if (s) return Ty(c, s); return c }(n, t.input, u) : Iy(u), p = await async function(e, { networkCaptureBodies: t, textEncoder: n, networkResponseHeaders: r }, o, i) { if (!e && void 0 !== i) return Iy(i); const a = o ? Dy(o.headers, r) : {}; if (!o || !t && void 0 !== i) return Py(a, i, void 0); const [s, c] = await async function(e) { const t = function(e) { try { return e.clone() } catch (e) { zg && Fa.warn("[Replay] Failed to clone response body", e) } }(e); if (!t) return [void 0, "BODY_PARSE_ERROR"]; try { const e = await function(e) { return new Promise((t, n) => { const r = setTimeout(() => n(new Error("Timeout while trying to read response body")), 500); (async function(e) { return await e.text() })(e).then(e => t(e), e => n(e)).finally(() => clearTimeout(r)) }) }(t); return [e] } catch (e) { return zg && Fa.warn("[Replay] Failed to get text body from response", e), [void 0, "BODY_PARSE_ERROR"] } }(o), u = function(e, { networkCaptureBodies: t, textEncoder: n, responseBodySize: r, captureDetails: o, headers: i }) { try { const a = e && e.length && void 0 === r ? Oy(e, n) : r; return o ? Py(i, a, t ? e : void 0) : Iy(a) } catch (e) { return zg && Fa.warn("[Replay] Failed to serialize response body", e), Py(i, r, void 0) } }(s, { networkCaptureBodies: t, textEncoder: n, responseBodySize: i, captureDetails: e, headers: a }); if (c) return Ty(u, c); return u }(f, n, t.response, l); return { startTimestamp: o, endTimestamp: i, url: a, method: s, statusCode: c, request: d, response: p } }(e, t, n), o = xy("resource.fetch", r); Sy(n.replay, o) } catch (e) { zg && Fa.error("[Replay] Failed to capture fetch breadcrumb", e) } } function My(e = []) { if (2 === e.length && "object" == typeof e[1]) return e[1].body } function Dy(e, t) { const n = {}; return t.forEach(t => { e.get(t) && (n[t] = e.get(t)) }), n } function Ny(e, t) { if (!e) return {}; const n = e.headers; return n ? n instanceof Headers ? Dy(n, t) : Array.isArray(n) ? {} : Ay(n, t) : {} } async function Ly(e, t, n) { try { const r = function(e, t, n) { const r = Date.now(), { startTimestamp: o = r, endTimestamp: i = r, input: a, xhr: s } = t, { url: c, method: u, status_code: l = 0, request_body_size: f, response_body_size: d } = e.data; if (!c) return null; if (!s || !jy(c, n.networkDetailAllowUrls) || jy(c, n.networkDetailDenyUrls)) { return { startTimestamp: o, endTimestamp: i, url: c, method: u, statusCode: l, request: Iy(f), response: Iy(d) } } const p = s[Td], h = p ? Ay(p.request_headers, n.networkRequestHeaders) : {}, m = Ay(function(e) { const t = e.getAllResponseHeaders(); if (!t) return {}; return t.split("\r\n").reduce((e, t) => { const [n, r] = t.split(": "); return e[n.toLowerCase()] = r, e }, {}) }(s), n.networkResponseHeaders), [g, y] = n.networkCaptureBodies ? ky(a) : [void 0], [v, b] = n.networkCaptureBodies ? function(e) { const t = []; try { return [e.responseText] } catch (e) { t.push(e) } try { return function(e, t) { try { if ("string" == typeof e) return [e]; if (e instanceof Document) return [e.body.outerHTML]; if ("json" === t && e && "object" == typeof e) return [JSON.stringify(e)]; if (!e) return [void 0] } catch (t) { return zg && Fa.warn("[Replay] Failed to serialize body", e), [void 0, "BODY_PARSE_ERROR"] } return zg && Fa.info("[Replay] Skipping network body because of body type", e), [void 0, "UNPARSEABLE_BODY_TYPE"] }(e.response, e.responseType) } catch (e) { t.push(e) } return zg && Fa.warn("[Replay] Failed to get xhr response body", ...t), [void 0] }(s) : [void 0], _ = Py(h, f, g), S = Py(m, d, v); return { startTimestamp: o, endTimestamp: i, url: c, method: u, statusCode: l, request: y ? Ty(_, y) : _, response: b ? Ty(S, b) : S } }(e, t, n), o = xy("resource.xhr", r); Sy(n.replay, o) } catch (e) { zg && Fa.error("[Replay] Failed to capture xhr breadcrumb", e) } } function Fy(e, t, n) { const { xhr: r, input: o } = t; if (!r) return; const i = Oy(o, n.textEncoder), a = r.getResponseHeader("content-length") ? Ey(r.getResponseHeader("content-length")) : function(e, t, n) { try { return Oy("json" === t && e && "object" == typeof e ? JSON.stringify(e) : e, n) } catch (e) { return } }(r.response, r.responseType, n.textEncoder); void 0 !== i && (e.data.request_body_size = i), void 0 !== a && (e.data.response_body_size = a) } function By(e) { const t = Uc(); try { const n = new TextEncoder, { networkDetailAllowUrls: r, networkDetailDenyUrls: o, networkCaptureBodies: i, networkRequestHeaders: a, networkResponseHeaders: s } = e.getOptions(), c = { replay: e, textEncoder: n, networkDetailAllowUrls: r, networkDetailDenyUrls: o, networkCaptureBodies: i, networkRequestHeaders: a, networkResponseHeaders: s }; t && t.on ? t.on("beforeAddBreadcrumb", (e, t) => function(e, t, n) { if (!t.data) return; try { (function(e) { return "xhr" === e.category })(t) && function(e) { return e && e.xhr }(n) && (Fy(t, n, e), Ly(t, n, e)), function(e) { return "fetch" === e.category }(t) && function(e) { return e && e.response }(n) && (! function(e, t, n) { const { input: r, response: o } = t, i = Oy(r ? My(r) : void 0, n.textEncoder), a = o ? Ey(o.headers.get("content-length")) : void 0; void 0 !== i && (e.data.request_body_size = i), void 0 !== a && (e.data.response_body_size = a) }(t, n, e), Ry(t, n, e)) } catch (e) { zg && Fa.warn("Error when enriching network breadcrumb") } }(c, e, t)) : (Pd(function(e) { return t => { if (!e.isEnabled()) return; const n = function(e) { const { startTimestamp: t, endTimestamp: n, fetchData: r, response: o } = e; if (!n) return null; const { method: i, url: a } = r; return { type: "resource.fetch", start: t / 1e3, end: n / 1e3, name: a, data: { method: i, statusCode: o ? o.status : void 0 } } }(t); Sy(e, n) } }(e)), xd(wy(e))) } catch (e) {} } let Uy = null; const Gy = e => t => { if (!e.isEnabled()) return; const n = function(e) { const t = e.getLastBreadcrumb && e.getLastBreadcrumb(); if (Uy === t || !t) return null; if (Uy = t, ! function(e) { return !!e.category }(t) || ["fetch", "xhr", "sentry.event", "sentry.transaction"].includes(t.category) || t.category.startsWith("ui.")) return null; if ("console" === t.category) return function(e) { const t = e.data && e.data.arguments; if (!Array.isArray(t) || 0 === t.length) return Rg(e); let n = !1; const r = t.map(e => { if (!e) return e; if ("string" == typeof e) return e.length > yh ? (n = !0, `${e.slice(0,yh)}\u2026`) : e; if ("object" == typeof e) try { const t = mc(e, 7); return JSON.stringify(t).length > yh ? (n = !0, `${JSON.stringify(t,null,2).slice(0,yh)}\u2026`) : t } catch (e) {} return e }); return Rg({ ...e, data: { ...e.data, arguments: r, ...n ? { _meta: { warnings: ["CONSOLE_ARG_TRUNCATED"] } } : {} } }) }(t); return Rg(t) }(t); n && Og(e, n) }; function $y(e) { return !(!e || !e.on) } function Hy(e) { const { jsHeapSizeLimit: t, totalJSHeapSize: n, usedJSHeapSize: r } = e, o = Date.now() / 1e3; return { type: "memory", name: "memory", start: o, end: o, data: { memory: { jsHeapSizeLimit: t, totalJSHeapSize: n, usedJSHeapSize: r } } } } function zy(e) { let t = !1; return (n, r) => { if (!e.checkAndHandleExpiredSession()) return void(zg && Fa.warn("[Replay] Received replay event after session expired.")); const o = r || !t; t = !0, e.clickDetector && jg(e.clickDetector, n), e.addUpdate(() => { if ("buffer" === e.recordingMode && o && e.setInitialState(), !ly(e, n, o)) return !0; if (!o) return !1; if (function(e, t) { if (!t || !e.session || 0 !== e.session.segmentId) return; ly(e, function(e) { const t = e.getOptions(); return { type: Pm.Custom, timestamp: Date.now(), data: { tag: "options", payload: { shouldRecordCanvas: e.isRecordingCanvas(), sessionSampleRate: t.sessionSampleRate, errorSampleRate: t.errorSampleRate, useCompressionOption: t.useCompression, blockAllMedia: t.blockAllMedia, maskAllText: t.maskAllText, maskAllInputs: t.maskAllInputs, useCompression: !!e.eventBuffer && "worker" === e.eventBuffer.type, networkDetailHasUrls: t.networkDetailAllowUrls.length > 0, networkCaptureBodies: t.networkCaptureBodies, networkRequestHasHeaders: t.networkRequestHeaders.length > 0, networkResponseHasHeaders: t.networkResponseHeaders.length > 0 } } } }(e), !1) }(e, o), e.session && e.session.previousSessionId) return !0; if ("buffer" === e.recordingMode && e.session && e.eventBuffer) { const t = e.eventBuffer.getEarliestTimestamp(); t && (qg(`[Replay] Updating session start time to earliest event in buffer to ${new Date(t)}`, e.getOptions()._experiments.traceInternals), e.session.started = t, e.getOptions().stickySession && oy(e.session)) } return "session" === e.recordingMode && e.flush(), !0 }) } } async function qy({ recordingData: e, replayId: t, segmentId: n, eventContext: r, timestamp: o, session: i }) { const a = function({ recordingData: e, headers: t }) { let n; const r = `${JSON.stringify(t)}\n`; if ("string" == typeof e) n = `${r}${e}`; else { const t = (new TextEncoder).encode(r); n = new Uint8Array(t.length + e.length), n.set(t), n.set(e, t.length) } return n }({ recordingData: e, headers: { segment_id: n } }), { urls: s, errorIds: c, traceIds: u, initialTimestamp: l } = r, f = Uc(), d = $c(), p = f && f.getTransport(), h = f && f.getDsn(); if (!(f && p && h && i.sampled)) return; const m = { type: "replay_event", replay_start_timestamp: l / 1e3, timestamp: o / 1e3, error_ids: c, trace_ids: u, urls: s, replay_id: t, segment_id: n, replay_type: i.sampled }, g = await async function({ client: e, scope: t, replayId: n, event: r }) { const o = { event_id: n, integrations: "object" != typeof e._integrations || null === e._integrations || Array.isArray(e._integrations) ? void 0 : Object.keys(e._integrations) }; e.emit && e.emit("preprocessEvent", r, o); const i = await vc(e.getOptions(), r, o, t, e, rc()); if (!i) return null; i.platform = i.platform || "javascript"; const a = e.getSdkMetadata && e.getSdkMetadata(), { name: s, version: c } = a && a.sdk || {}; return i.sdk = { ...i.sdk, name: s || "sentry.javascript.unknown", version: c || "0.0.0" }, i }({ scope: d, client: f, replayId: t, event: m }); if (!g) return f.recordDroppedEvent("event_processor", "replay", m), void qg("An event processor returned `null`, will not send event."); delete g.sdkProcessingMetadata; const y = function(e, t, n, r) { return Eu(Ru(e, ju(e), r, n), [ [{ type: "replay_event" }, e], [{ type: "replay_recording", length: "string" == typeof t ? (new TextEncoder).encode(t).length : t.length }, t] ]) }(g, a, h, f.getOptions().tunnel); let v; try { v = await p.send(y) } catch (e) { const t = new Error(mh); try { t.cause = e } catch (e) {} throw t } if (!v) return v; if ("number" == typeof v.statusCode && (v.statusCode < 200 || v.statusCode >= 300)) throw new Wy(v.statusCode); const b = nf({}, v); if (tf(b, "replay")) throw new Vy(b); return v } class Wy extends Error { constructor(e) { super(`Transport returned status code ${e}`) } } class Vy extends Error { constructor(e) { super("Rate limit hit"), this.rateLimits = e } } async function Yy(e, t = { count: 0, interval: 5e3 }) { const { recordingData: n, options: r } = e; if (n.length) try { return await qy(e), !0 } catch (n) { if (n instanceof Wy || n instanceof Vy) throw n; if (xc("Replays", { _retryCount: t.count }), zg && r._experiments && r._experiments.captureExceptions && wc(n), t.count >= 3) { const e = new Error(`${mh} - max retries exceeded`); try { e.cause = n } catch (e) {} throw e } return t.interval *= ++t.count, new Promise((n, r) => { setTimeout(async () => { try { await Yy(e, t), n(!0) } catch (e) { r(e) } }, t.interval) }) } } const Jy = "__THROTTLED"; function Ky(e, t, n) { const r = new Map; let o = !1; return (...i) => { const a = Math.floor(Date.now() / 1e3); if ((e => { const t = e - n; r.forEach((e, n) => { n < t && r.delete(n) }) })(a), [...r.values()].reduce((e, t) => e + t, 0) >= t) { const e = o; return o = !0, e ? "__SKIPPED" : Jy } o = !1; const s = r.get(a) || 0; return r.set(a, s + 1), e(...i) } } class Qy { constructor({ options: e, recordingOptions: t }) { Qy.prototype.__init.call(this), Qy.prototype.__init2.call(this), Qy.prototype.__init3.call(this), Qy.prototype.__init4.call(this), Qy.prototype.__init5.call(this), Qy.prototype.__init6.call(this), this.eventBuffer = null, this.performanceEntries = [], this.replayPerformanceEntries = [], this.recordingMode = "session", this.timeouts = { sessionIdlePause: 3e5, sessionIdleExpire: 9e5 }, this._lastActivity = Date.now(), this._isEnabled = !1, this._isPaused = !1, this._hasInitializedCoreListeners = !1, this._context = { errorIds: new Set, traceIds: new Set, urls: [], initialTimestamp: Date.now(), initialUrl: "" }, this._recordingOptions = t, this._options = e, this._debouncedFlush = function(e, t, n) { let r, o, i; const a = n && n.maxWait ? Math.max(n.maxWait, t) : 0; function s() { return c(), r = e(), r } function c() { void 0 !== o && clearTimeout(o), void 0 !== i && clearTimeout(i), o = i = void 0 } function u() { return o && clearTimeout(o), o = setTimeout(s, t), a && void 0 === i && (i = setTimeout(s, a)), r } return u.cancel = c, u.flush = function() { return void 0 !== o || void 0 !== i ? s() : r }, u }(() => this._flush(), this._options.flushMinDelay, { maxWait: this._options.flushMaxDelay }), this._throttledAddEvent = Ky((e, t) => function(e, t, n) { return dy(e, t) ? fy(e, t, n) : Promise.resolve(null) }(this, e, t), 300, 5); const { slowClickTimeout: n, slowClickIgnoreSelectors: r } = this.getOptions(), o = n ? { threshold: Math.min(3e3, n), timeout: n, scrollTimeout: 300, ignoreSelector: r ? r.join(",") : "" } : void 0; o && (this.clickDetector = new Pg(this, o)) } getContext() { return this._context } isEnabled() { return this._isEnabled } isPaused() { return this._isPaused } isRecordingCanvas() { return Boolean(this._canvas) } getOptions() { return this._options } initializeSampling(e) { const { errorSampleRate: t, sessionSampleRate: n } = this._options; t <= 0 && n <= 0 || (this._initializeSessionForSampling(e), this.session ? !1 !== this.session.sampled && (this.recordingMode = "buffer" === this.session.sampled && 0 === this.session.segmentId ? "buffer" : "session", Wg(`[Replay] Starting replay in ${this.recordingMode} mode`, this._options._experiments.traceInternals), this._initializeRecording()) : this._handleException(new Error("Unable to initialize and create session"))) } start() { if (this._isEnabled && "session" === this.recordingMode) throw new Error("Replay recording is already in progress"); if (this._isEnabled && "buffer" === this.recordingMode) throw new Error("Replay buffering is in progress, call `flush()` to save the replay"); Wg("[Replay] Starting replay in session mode", this._options._experiments.traceInternals), this._updateUserActivity(); const e = uy({ maxReplayDuration: this._options.maxReplayDuration, sessionIdleExpire: this.timeouts.sessionIdleExpire, traceInternals: this._options._experiments.traceInternals }, { stickySession: this._options.stickySession, sessionSampleRate: 1, allowBuffering: !1 }); this.session = e, this._initializeRecording() } startBuffering() { if (this._isEnabled) throw new Error("Replay recording is already in progress"); Wg("[Replay] Starting replay in buffer mode", this._options._experiments.traceInternals); const e = uy({ sessionIdleExpire: this.timeouts.sessionIdleExpire, maxReplayDuration: this._options.maxReplayDuration, traceInternals: this._options._experiments.traceInternals }, { stickySession: this._options.stickySession, sessionSampleRate: 0, allowBuffering: !0 }); this.session = e, this.recordingMode = "buffer", this._initializeRecording() } startRecording() { try { const e = this._canvas; this._stopRecording = _g({ ...this._recordingOptions, ..."buffer" === this.recordingMode && { checkoutEveryNms: 6e4 }, emit: zy(this), onMutation: this._onMutationHandler, ...e ? { recordCanvas: e.recordCanvas, getCanvasManager: e.getCanvasManager, sampling: e.sampling, dataURLOptions: e.dataURLOptions } : {} }) } catch (e) { this._handleException(e) } } stopRecording() { try { return this._stopRecording && (this._stopRecording(), this._stopRecording = void 0), !0 } catch (e) { return this._handleException(e), !1 } } async stop({ forceFlush: e = !1, reason: t } = {}) { if (this._isEnabled) { this._isEnabled = !1; try { qg("[Replay] Stopping Replay" + (t ? ` triggered by ${t}` : ""), this._options._experiments.traceInternals), this._removeListeners(), this.stopRecording(), this._debouncedFlush.cancel(), e && await this._flush({ force: !0 }), this.eventBuffer && this.eventBuffer.destroy(), this.eventBuffer = null, ty(this) } catch (e) { this._handleException(e) } } } pause() { this._isPaused || (this._isPaused = !0, this.stopRecording(), qg("[Replay] Pausing replay", this._options._experiments.traceInternals)) } resume() { this._isPaused && this._checkSession() && (this._isPaused = !1, this.startRecording(), qg("[Replay] Resuming replay", this._options._experiments.traceInternals)) } async sendBufferedReplayOrFlush({ continueRecording: e = !0 } = {}) { if ("session" === this.recordingMode) return this.flushImmediate(); const t = Date.now(); qg("[Replay] Converting buffer to session", this._options._experiments.traceInternals), await this.flushImmediate(); const n = this.stopRecording(); e && n && "session" !== this.recordingMode && (this.recordingMode = "session", this.session && (this._updateUserActivity(t), this._updateSessionActivity(t), this._maybeSaveSession()), this.startRecording()) } addUpdate(e) { const t = e(); "buffer" !== this.recordingMode && !0 !== t && this._debouncedFlush() } triggerUserActivity() { if (this._updateUserActivity(), this._stopRecording) this.checkAndHandleExpiredSession(), this._updateSessionActivity(); else { if (!this._checkSession()) return; this.resume() } } updateUserActivity() { this._updateUserActivity(), this._updateSessionActivity() } conditionalFlush() { return "buffer" === this.recordingMode ? Promise.resolve() : this.flushImmediate() } flush() { return this._debouncedFlush() } flushImmediate() { return this._debouncedFlush(), this._debouncedFlush.flush() } cancelFlush() { this._debouncedFlush.cancel() } getSessionId() { return this.session && this.session.id } checkAndHandleExpiredSession() { if (!(this._lastActivity && ay(this._lastActivity, this.timeouts.sessionIdlePause) && this.session && "session" === this.session.sampled)) return !!this._checkSession(); this.pause() } setInitialState() { const e = `${ph.location.pathname}${ph.location.hash}${ph.location.search}`, t = `${ph.location.origin}${e}`; this.performanceEntries = [], this.replayPerformanceEntries = [], this._clearContext(), this._context.initialUrl = t, this._context.initialTimestamp = Date.now(), this._context.urls.push(t) } throttledAddEvent(e, t) { const n = this._throttledAddEvent(e, t); if (n === Jy) { const e = Rg({ category: "replay.throttled" }); this.addUpdate(() => !ly(this, { type: 5, timestamp: e.timestamp || 0, data: { tag: "breadcrumb", payload: e, metric: !0 } })) } return n } getCurrentRoute() { const e = this.lastTransaction || $c().getTransaction(), t = (e && Us(e).data || {})[Uu]; if (e && t && ["route", "custom"].includes(t)) return Us(e).description } _initializeRecording() { this.setInitialState(), this._updateSessionActivity(), this.eventBuffer = Zg({ useCompression: this._options.useCompression, workerUrl: this._options.workerUrl }), this._removeListeners(), this._addListeners(), this._isEnabled = !0, this._isPaused = !1, this.startRecording() } _handleException(e) { zg && Fa.error("[Replay]", e), zg && this._options._experiments && this._options._experiments.captureExceptions && wc(e) } _initializeSessionForSampling(e) { const t = this._options.errorSampleRate > 0, n = uy({ sessionIdleExpire: this.timeouts.sessionIdleExpire, maxReplayDuration: this._options.maxReplayDuration, traceInternals: this._options._experiments.traceInternals, previousSessionId: e }, { stickySession: this._options.stickySession, sessionSampleRate: this._options.sessionSampleRate, allowBuffering: t }); this.session = n } _checkSession() { if (!this.session) return !1; const e = this.session; return !cy(e, { sessionIdleExpire: this.timeouts.sessionIdleExpire, maxReplayDuration: this._options.maxReplayDuration }) || (this._refreshSession(e), !1) } async _refreshSession(e) { this._isEnabled && (await this.stop({ reason: "refresh session" }), this.initializeSampling(e.id)) } _addListeners() { try { ph.document.addEventListener("visibilitychange", this._handleVisibilityChange), ph.addEventListener("blur", this._handleWindowBlur), ph.addEventListener("focus", this._handleWindowFocus), ph.addEventListener("keydown", this._handleKeyboardEvent), this.clickDetector && this.clickDetector.addListeners(), this._hasInitializedCoreListeners || (! function(e) { const t = $c(), n = Uc(); t.addScopeListener(Gy(e)), wd(Lg(e)), hd(_y(e)), By(e); const r = vy(e, !$y(n)); n && n.addEventProcessor ? n.addEventProcessor(r) : ol(r), $y(n) && (n.on("beforeSendEvent", yy(e)), n.on("afterSendEvent", gy(e)), n.on("createDsc", t => { const n = e.getSessionId(); n && e.isEnabled() && "session" === e.recordingMode && e.checkAndHandleExpiredSession() && (t.replay_id = n) }), n.on("startTransaction", t => { e.lastTransaction = t }), n.on("finishTransaction", t => { e.lastTransaction = t }), n.on("beforeSendFeedback", (t, n) => { const r = e.getSessionId(); n && n.includeReplay && e.isEnabled() && r && t.contexts && t.contexts.feedback && (t.contexts.feedback.replay_id = r) })) }(this), this._hasInitializedCoreListeners = !0) } catch (e) { this._handleException(e) } this._performanceCleanupCallback = Hg(this) } _removeListeners() { try { ph.document.removeEventListener("visibilitychange", this._handleVisibilityChange), ph.removeEventListener("blur", this._handleWindowBlur), ph.removeEventListener("focus", this._handleWindowFocus), ph.removeEventListener("keydown", this._handleKeyboardEvent), this.clickDetector && this.clickDetector.removeListeners(), this._performanceCleanupCallback && this._performanceCleanupCallback() } catch (e) { this._handleException(e) } } __init() { this._handleVisibilityChange = () => { "visible" === ph.document.visibilityState ? this._doChangeToForegroundTasks() : this._doChangeToBackgroundTasks() } } __init2() { this._handleWindowBlur = () => { const e = Rg({ category: "ui.blur" }); this._doChangeToBackgroundTasks(e) } } __init3() { this._handleWindowFocus = () => { const e = Rg({ category: "ui.focus" }); this._doChangeToForegroundTasks(e) } } __init4() { this._handleKeyboardEvent = e => { Bg(this, e) } } _doChangeToBackgroundTasks(e) { if (!this.session) return; sy(this.session, { maxReplayDuration: this._options.maxReplayDuration, sessionIdleExpire: this.timeouts.sessionIdleExpire }) || (e && this._createCustomBreadcrumb(e), this.conditionalFlush()) } _doChangeToForegroundTasks(e) { if (!this.session) return; this.checkAndHandleExpiredSession() ? e && this._createCustomBreadcrumb(e) : qg("[Replay] Document has become active, but session has expired") } _updateUserActivity(e = Date.now()) { this._lastActivity = e } _updateSessionActivity(e = Date.now()) { this.session && (this.session.lastActivity = e, this._maybeSaveSession()) } _createCustomBreadcrumb(e) { this.addUpdate(() => { this.throttledAddEvent({ type: Pm.Custom, timestamp: e.timestamp || 0, data: { tag: "breadcrumb", payload: e } }) }) } _addPerformanceEntries() { const e = (t = this.performanceEntries, t.map(Gg).filter(Boolean)).concat(this.replayPerformanceEntries); var t; return this.performanceEntries = [], this.replayPerformanceEntries = [], Promise.all(by(this, e)) } _clearContext() { this._context.errorIds.clear(), this._context.traceIds.clear(), this._context.urls = [] } _updateInitialTimestampFromEventBuffer() { const { session: e, eventBuffer: t } = this; if (!e || !t) return; if (e.segmentId) return; const n = t.getEarliestTimestamp(); n && n < this._context.initialTimestamp && (this._context.initialTimestamp = n) } _popEventContext() { const e = { initialTimestamp: this._context.initialTimestamp, initialUrl: this._context.initialUrl, errorIds: Array.from(this._context.errorIds), traceIds: Array.from(this._context.traceIds), urls: this._context.urls }; return this._clearContext(), e } async _runFlush() { const e = this.getSessionId(); if (this.session && this.eventBuffer && e) { if (await this._addPerformanceEntries(), this.eventBuffer && this.eventBuffer.hasEvents && (await async function(e) { try { return Promise.all(by(e, [Hy(ph.performance.memory)])) } catch (e) { return [] } }(this), this.eventBuffer && e === this.getSessionId())) try { this._updateInitialTimestampFromEventBuffer(); const t = Date.now(); if (t - this._context.initialTimestamp > this._options.maxReplayDuration + 3e4) throw new Error("Session is too long, not sending replay"); const n = this._popEventContext(), r = this.session.segmentId++; this._maybeSaveSession(); const o = await this.eventBuffer.finish(); await Yy({ replayId: e, recordingData: o, segmentId: r, eventContext: n, session: this.session, options: this.getOptions(), timestamp: t }) } catch (e) { this._handleException(e), this.stop({ reason: "sendReplay" }); const t = Uc(); t && t.recordDroppedEvent("send_error", "replay") } } else zg && Fa.error("[Replay] No session or eventBuffer found to flush.") } __init5() { this._flush = async ({ force: e = !1 } = {}) => { if (!this._isEnabled && !e) return; if (!this.checkAndHandleExpiredSession()) return void(zg && Fa.error("[Replay] Attempting to finish replay event after session expired.")); if (!this.session) return; const t = this.session.started, n = Date.now() - t; this._debouncedFlush.cancel(); const r = n < this._options.minReplayDuration, o = n > this._options.maxReplayDuration + 5e3; if (r || o) return qg(`[Replay] Session duration (${Math.floor(n/1e3)}s) is too ${r?"short":"long"}, not sending replay.`, this._options._experiments.traceInternals), void(r && this._debouncedFlush()); const i = this.eventBuffer; if (i && 0 === this.session.segmentId && !i.hasCheckout && qg("[Replay] Flushing initial segment without checkout.", this._options._experiments.traceInternals), !this._flushLock) return this._flushLock = this._runFlush(), await this._flushLock, void(this._flushLock = void 0); try { await this._flushLock } catch (e) { zg && Fa.error(e) } finally { this._debouncedFlush() } } } _maybeSaveSession() { this.session && this._options.stickySession && oy(this.session) } __init6() { this._onMutationHandler = e => { const t = e.length, n = this._options.mutationLimit, r = n && t > n; if (t > this._options.mutationBreadcrumbLimit || r) { const e = Rg({ category: "replay.mutations", data: { count: t, limit: r } }); this._createCustomBreadcrumb(e) } return !r || (this.stop({ reason: "mutationLimit", forceFlush: "session" === this.recordingMode }), !1) } } } function Xy(e, t, n, r) { const o = [...e, ..."string" == typeof r ? r.split(",") : [], ...t]; return void 0 !== n && ("string" == typeof n && o.push(`.${n}`), La(() => { console.warn("[Replay] You are using a deprecated configuration item for privacy. Read the documentation on how to use the new privacy configuration.") })), o.join(",") } const Zy = 'img,image,svg,video,object,picture,embed,map,audio,link[rel="icon"],link[rel="apple-touch-icon"]', ev = ["content-length", "content-type", "accept"]; let tv = !1; const nv = e => new rv(e); class rv { static __initStatic() { this.id = "Replay" } constructor({ flushMinDelay: e = 5e3, flushMaxDelay: t = 5500, minReplayDuration: n = 4999, maxReplayDuration: r = 36e5, stickySession: o = !0, useCompression: i = !0, workerUrl: a, _experiments: s = {}, sessionSampleRate: c, errorSampleRate: u, maskAllText: l = !0, maskAllInputs: f = !0, blockAllMedia: d = !0, mutationBreadcrumbLimit: p = 750, mutationLimit: h = 1e4, slowClickTimeout: m = 7e3, slowClickIgnoreSelectors: g = [], networkDetailAllowUrls: y = [], networkDetailDenyUrls: v = [], networkCaptureBodies: b = !0, networkRequestHeaders: _ = [], networkResponseHeaders: S = [], mask: w = [], maskAttributes: O = ["title", "placeholder"], unmask: E = [], block: k = [], unblock: T = [], ignore: x = [], maskFn: I, beforeAddRecordingEvent: P, beforeErrorSampling: A, blockClass: C, blockSelector: j, maskInputOptions: R, maskTextClass: M, maskTextSelector: D, ignoreClass: N } = {}) { this.name = rv.id; const L = function({ mask: e, unmask: t, block: n, unblock: r, ignore: o, blockClass: i, blockSelector: a, maskTextClass: s, maskTextSelector: c, ignoreClass: u }) { const l = { maskTextSelector: Xy(e, [".sentry-mask", "[data-sentry-mask]"], s, c), unmaskTextSelector: Xy(t, [".sentry-unmask", "[data-sentry-unmask]"]), blockSelector: Xy(n, [".sentry-block", "[data-sentry-block]", 'base[href="/"]'], i, a), unblockSelector: Xy(r, [".sentry-unblock", "[data-sentry-unblock]"]), ignoreSelector: Xy(o, [".sentry-ignore", "[data-sentry-ignore]", 'input[type="file"]'], u) }; return i instanceof RegExp && (l.blockClass = i), s instanceof RegExp && (l.maskTextClass = s), l }({ mask: w, unmask: E, block: k, unblock: T, ignore: x, blockClass: C, blockSelector: j, maskTextClass: M, maskTextSelector: D, ignoreClass: N }); if (this._recordingOptions = { maskAllInputs: f, maskAllText: l, maskInputOptions: { ...R || {}, password: !0 }, maskTextFn: I, maskInputFn: I, maskAttributeFn: (e, t, n) => function({ el: e, key: t, maskAttributes: n, maskAllText: r, privacyOptions: o, value: i }) { return r ? o.unmaskTextSelector && e.matches(o.unmaskTextSelector) ? i : n.includes(t) || "value" === t && "INPUT" === e.tagName && ["submit", "button"].includes(e.getAttribute("type") || "") ? i.replace(/[\S]/g, "*") : i : i }({ maskAttributes: O, maskAllText: l, privacyOptions: L, key: e, value: t, el: n }), ...L, slimDOMOptions: "all", inlineStylesheet: !0, inlineImages: !1, collectFonts: !0, errorHandler: e => { try { e.__rrweb__ = !0 } catch (e) {} } }, this._initialOptions = { flushMinDelay: e, flushMaxDelay: t, minReplayDuration: Math.min(n, 15e3), maxReplayDuration: Math.min(r, bh), stickySession: o, sessionSampleRate: c, errorSampleRate: u, useCompression: i, workerUrl: a, blockAllMedia: d, maskAllInputs: f, maskAllText: l, mutationBreadcrumbLimit: p, mutationLimit: h, slowClickTimeout: m, slowClickIgnoreSelectors: g, networkDetailAllowUrls: y, networkDetailDenyUrls: v, networkCaptureBodies: b, networkRequestHeaders: ov(_), networkResponseHeaders: ov(S), beforeAddRecordingEvent: P, beforeErrorSampling: A, _experiments: s }, "number" == typeof c && (console.warn(`[Replay] You are passing \`sessionSampleRate\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \`replaysSessionSampleRate\` directly in the SDK init options, e.g.:\nSentry.init({ replaysSessionSampleRate: ${c} })`), this._initialOptions.sessionSampleRate = c), "number" == typeof u && (console.warn(`[Replay] You are passing \`errorSampleRate\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \`replaysOnErrorSampleRate\` directly in the SDK init options, e.g.:\nSentry.init({ replaysOnErrorSampleRate: ${u} })`), this._initialOptions.errorSampleRate = u), this._initialOptions.blockAllMedia && (this._recordingOptions.blockSelector = this._recordingOptions.blockSelector ? `${this._recordingOptions.blockSelector},${Zy}` : Zy), this._isInitialized && kp()) throw new Error("Multiple Sentry Session Replay instances are not supported"); this._isInitialized = !0 } get _isInitialized() { return tv } set _isInitialized(e) { tv = e } setupOnce() { kp() && (this._setup(), setTimeout(() => this._initialize())) } start() { this._replay && this._replay.start() } startBuffering() { this._replay && this._replay.startBuffering() } stop() { return this._replay ? this._replay.stop({ forceFlush: "session" === this._replay.recordingMode }) : Promise.resolve() } flush(e) { return this._replay && this._replay.isEnabled() ? this._replay.sendBufferedReplayOrFlush(e) : Promise.resolve() } getReplayId() { if (this._replay && this._replay.isEnabled()) return this._replay.getSessionId() } _initialize() { this._replay && (this._maybeLoadFromReplayCanvasIntegration(), this._replay.initializeSampling()) } _setup() { const e = function(e) { const t = Uc(), n = t && t.getOptions(), r = { sessionSampleRate: 0, errorSampleRate: 0, ...Qa(e) }; if (!n) return La(() => { console.warn("SDK client is not available.") }), r; null == e.sessionSampleRate && null == e.errorSampleRate && null == n.replaysSessionSampleRate && null == n.replaysOnErrorSampleRate && La(() => { console.warn("Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.") }); "number" == typeof n.replaysSessionSampleRate && (r.sessionSampleRate = n.replaysSessionSampleRate); "number" == typeof n.replaysOnErrorSampleRate && (r.errorSampleRate = n.replaysOnErrorSampleRate); return r }(this._initialOptions); this._replay = new Qy({ options: e, recordingOptions: this._recordingOptions }) } _maybeLoadFromReplayCanvasIntegration() { try { const e = Uc().getIntegrationByName("ReplayCanvas"); if (!e) return; this._replay._canvas = e.getOptions() } catch (e) {} } } function ov(e) { return [...ev, ...e.map(e => e.toLowerCase())] } function iv() { const e = Uc(); return e && e.getIntegrationByName && e.getIntegrationByName("Replay") } rv.__initStatic(); var av; function sv(e, t, n = 1 / 0, r = 0) { return e ? e.nodeType !== e.ELEMENT_NODE || r > n ? -1 : t(e) ? r : sv(e.parentNode, t, n, r + 1) : -1 } function cv(e, t) { return n => { const r = n; if (null === r) return !1; try { if (e) if ("string" == typeof e) { if (r.matches(`.${e}`)) return !0 } else if (function(e, t) { for (let n = e.classList.length; n--;) { const r = e.classList[n]; if (t.test(r)) return !0 } return !1 }(r, e)) return !0; return !(!t || !r.matches(t)) } catch (e) { return !1 } } }! function(e) { e[e.Document = 0] = "Document", e[e.DocumentType = 1] = "DocumentType", e[e.Element = 2] = "Element", e[e.Text = 3] = "Text", e[e.CDATA = 4] = "CDATA", e[e.Comment = 5] = "Comment" }(av || (av = {})); const uv = "Please stop import mirror directly. Instead of that,\r\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\r\nor you can use record.mirror to access the mirror instance during recording."; let lv = { map: {}, getId: () => (console.error(uv), -1), getNode: () => (console.error(uv), null), removeNodeFromMap() { console.error(uv) }, has: () => (console.error(uv), !1), reset() { console.error(uv) } }; function fv(e, t, n, r, o = window) { const i = o.Object.getOwnPropertyDescriptor(e, t); return o.Object.defineProperty(e, t, r ? n : { set(e) { yv(() => { n.set.call(this, e) }, 0), i && i.set && i.set.call(this, e) } }), () => fv(e, t, i || {}, !0) } function dv(e, t, n) { try { if (!(t in e)) return () => {}; const r = e[t], o = n(r); return "function" == typeof o && (o.prototype = o.prototype || {}, Object.defineProperties(o, { __rrweb_original__: { enumerable: !1, value: r } })), e[t] = o, () => { e[t] = r } } catch (e) { return () => {} } } function pv(e, t, n, r, o) { if (!e) return !1; const i = function(e) { return e ? e.nodeType === e.ELEMENT_NODE ? e : e.parentElement : null }(e); if (!i) return !1; const a = cv(t, n); if (!o) { const e = r && i.matches(r); return a(i) && !e } const s = sv(i, a); let c = -1; return !(s < 0) && (r && (c = sv(i, cv(null, r))), s > -1 && c < 0 || s < c) } "undefined" != typeof window && window.Proxy && window.Reflect && (lv = new Proxy(lv, { get: (e, t, n) => ("map" === t && console.error(uv), Reflect.get(e, t, n)) })), /[1-9][0-9]{12}/.test(Date.now().toString()); const hv = {}; function mv(e) { const t = hv[e]; if (t) return t; const n = window.document; let r = window[e]; if (n && "function" == typeof n.createElement) try { const t = n.createElement("iframe"); t.hidden = !0, n.head.appendChild(t); const o = t.contentWindow; o && o[e] && (r = o[e]), n.head.removeChild(t) } catch (e) {} return hv[e] = r.bind(window) } function gv(...e) { return mv("requestAnimationFrame")(...e) } function yv(...e) { return mv("setTimeout")(...e) } var vv = (e => (e[e["2D"] = 0] = "2D", e[e.WebGL = 1] = "WebGL", e[e.WebGL2 = 2] = "WebGL2", e))(vv || {}); let bv; const _v = e => { if (!bv) return e; return (...t) => { try { return e(...t) } catch (e) { if (bv && !0 === bv(e)) return () => {}; throw e } } }; for (var Sv = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", wv = "undefined" == typeof Uint8Array ? [] : new Uint8Array(256), Ov = 0; Ov < 64; Ov++) wv[Sv.charCodeAt(Ov)] = Ov; const Ev = new Map; const kv = (e, t, n) => { if (!e || !Iv(e, t) && "object" != typeof e) return; const r = function(e, t) { let n = Ev.get(e); return n || (n = new Map, Ev.set(e, n)), n.has(t) || n.set(t, []), n.get(t) }(n, e.constructor.name); let o = r.indexOf(e); return -1 === o && (o = r.length, r.push(e)), o }; function Tv(e, t, n) { if (e instanceof Array) return e.map(e => Tv(e, t, n)); if (null === e) return e; if (e instanceof Float32Array || e instanceof Float64Array || e instanceof Int32Array || e instanceof Uint32Array || e instanceof Uint8Array || e instanceof Uint16Array || e instanceof Int16Array || e instanceof Int8Array || e instanceof Uint8ClampedArray) { return { rr_type: e.constructor.name, args: [Object.values(e)] } } if (e instanceof ArrayBuffer) { const t = e.constructor.name, n = function(e) { var t, n = new Uint8Array(e), r = n.length, o = ""; for (t = 0; t < r; t += 3) o += Sv[n[t] >> 2], o += Sv[(3 & n[t]) << 4 | n[t + 1] >> 4], o += Sv[(15 & n[t + 1]) << 2 | n[t + 2] >> 6], o += Sv[63 & n[t + 2]]; return r % 3 == 2 ? o = o.substring(0, o.length - 1) + "=" : r % 3 == 1 && (o = o.substring(0, o.length - 2) + "=="), o }(e); return { rr_type: t, base64: n } } if (e instanceof DataView) { return { rr_type: e.constructor.name, args: [Tv(e.buffer, t, n), e.byteOffset, e.byteLength] } } if (e instanceof HTMLImageElement) { const t = e.constructor.name, { src: n } = e; return { rr_type: t, src: n } } if (e instanceof HTMLCanvasElement) { return { rr_type: "HTMLImageElement", src: e.toDataURL() } } if (e instanceof ImageData) { return { rr_type: e.constructor.name, args: [Tv(e.data, t, n), e.width, e.height] } } if (Iv(e, t) || "object" == typeof e) { return { rr_type: e.constructor.name, index: kv(e, t, n) } } return e } const xv = (e, t, n) => e.map(e => Tv(e, t, n)), Iv = (e, t) => { const n = ["WebGLActiveInfo", "WebGLBuffer", "WebGLFramebuffer", "WebGLProgram", "WebGLRenderbuffer", "WebGLShader", "WebGLShaderPrecisionFormat", "WebGLTexture", "WebGLUniformLocation", "WebGLVertexArrayObject", "WebGLVertexArrayObjectOES"].filter(e => "function" == typeof t[e]); return Boolean(n.find(n => e instanceof t[n])) }; function Pv(e, t, n, r, o) { const i = []; try { const a = dv(e.HTMLCanvasElement.prototype, "getContext", function(e) { return function(i, ...a) { if (!pv(this, t, n, r, !0)) { const e = function(e) { return "experimental-webgl" === e ? "webgl" : e }(i); if ("__context" in this || (this.__context = e), o && ["webgl", "webgl2"].includes(e)) if (a[0] && "object" == typeof a[0]) { const e = a[0]; e.preserveDrawingBuffer || (e.preserveDrawingBuffer = !0) } else a.splice(0, 1, { preserveDrawingBuffer: !0 }) } return e.apply(this, [i, ...a]) } }); i.push(a) } catch (e) { console.error("failed to patch HTMLCanvasElement.prototype.getContext") } return () => { i.forEach(e => e()) } } function Av(e, t, n, r, o, i, a, s) { const c = [], u = Object.getOwnPropertyNames(e); for (const a of u) if (!["isContextLost", "canvas", "drawingBufferWidth", "drawingBufferHeight"].includes(a)) try { if ("function" != typeof e[a]) continue; const u = dv(e, a, function(e) { return function(...c) { const u = e.apply(this, c); if (kv(u, s, this), "tagName" in this.canvas && !pv(this.canvas, r, o, i, !0)) { const e = xv(c, s, this), r = { type: t, property: a, args: e }; n(this.canvas, r) } return u } }); c.push(u) } catch (r) { const o = fv(e, a, { set(e) { n(this.canvas, { type: t, property: a, args: [e], setter: !0 }) } }); c.push(o) } return c } class Cv { reset() { this.pendingCanvasMutations.clear(), this.resetObservers && this.resetObservers() } freeze() { this.frozen = !0 } unfreeze() { this.frozen = !1 } lock() { this.locked = !0 } unlock() { this.locked = !1 } constructor(e) { this.pendingCanvasMutations = new Map, this.rafStamps = { latestId: 0, invokeId: null }, this.frozen = !1, this.locked = !1, this.processMutation = (e, t) => { !(this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId) && this.rafStamps.invokeId || (this.rafStamps.invokeId = this.rafStamps.latestId), this.pendingCanvasMutations.has(e) || this.pendingCanvasMutations.set(e, []), this.pendingCanvasMutations.get(e).push(t) }; const { sampling: t = "all", win: n, blockClass: r, blockSelector: o, unblockSelector: i, maxCanvasSize: a, recordCanvas: s, dataURLOptions: c, errorHandler: u } = e; this.mutationCb = e.mutationCb, this.mirror = e.mirror, this.options = e, u && (bv = u), e.enableManualSnapshot || _v(() => { s && "all" === t && this.initCanvasMutationObserver(n, r, o, i), s && "number" == typeof t && this.initCanvasFPSObserver(t, n, r, o, i, a, { dataURLOptions: c }) })() } initCanvasFPSObserver(e, t, n, r, o, i, a) { const s = Pv(t, n, r, o, !0), c = this.takeSnapshot(!1, e, t, n, r, o, i, a.dataURLOptions); this.resetObservers = () => { s(), cancelAnimationFrame(c) } } initCanvasMutationObserver(e, t, n, r) { this.startRAFTimestamping(), this.startPendingCanvasMutationFlusher(); const o = Pv(e, t, n, r, !1), i = function(e, t, n, r, o) { const i = [], a = Object.getOwnPropertyNames(t.CanvasRenderingContext2D.prototype); for (const s of a) try { if ("function" != typeof t.CanvasRenderingContext2D.prototype[s]) continue; const a = dv(t.CanvasRenderingContext2D.prototype, s, function(i) { return function(...a) { return pv(this.canvas, n, r, o, !0) || yv(() => { const n = xv(a, t, this); e(this.canvas, { type: vv["2D"], property: s, args: n }) }, 0), i.apply(this, a) } }); i.push(a) } catch (n) { const r = fv(t.CanvasRenderingContext2D.prototype, s, { set(t) { e(this.canvas, { type: vv["2D"], property: s, args: [t], setter: !0 }) } }); i.push(r) } return () => { i.forEach(e => e()) } }(this.processMutation.bind(this), e, t, n, r), a = function(e, t, n, r, o) { const i = []; return i.push(...Av(t.WebGLRenderingContext.prototype, vv.WebGL, e, n, r, o, 0, t)), void 0 !== t.WebGL2RenderingContext && i.push(...Av(t.WebGL2RenderingContext.prototype, vv.WebGL2, e, n, r, o, 0, t)), () => { i.forEach(e => e()) } }(this.processMutation.bind(this), e, t, n, r, this.mirror); this.resetObservers = () => { o(), i(), a() } } snapshot(e) { const { options: t } = this, n = this.takeSnapshot(!0, "all" === t.sampling ? 2 : t.sampling || 2, t.win, t.blockClass, t.blockSelector, t.unblockSelector, t.maxCanvasSize, t.dataURLOptions, e); this.resetObservers = () => { cancelAnimationFrame(n) } } takeSnapshot(e, t, n, r, o, i, a, s, c) { const u = new Map, l = new Worker(function() { const e = new Blob(['for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t="undefined"==typeof Uint8Array?[]:new Uint8Array(256),a=0;a<64;a++)t[e.charCodeAt(a)]=a;var n=function(t){var a,n=new Uint8Array(t),r=n.length,s="";for(a=0;a>2],s+=e[(3&n[a])<<4|n[a+1]>>4],s+=e[(15&n[a+1])<<2|n[a+2]>>6],s+=e[63&n[a+2]];return r%3==2?s=s.substring(0,s.length-1)+"=":r%3==1&&(s=s.substring(0,s.length-2)+"=="),s};const r=new Map,s=new Map;const i=self;i.onmessage=async function(e){if(!("OffscreenCanvas"in globalThis))return i.postMessage({id:e.data.id});{const{id:t,bitmap:a,width:o,height:f,maxCanvasSize:c,dataURLOptions:g}=e.data,u=async function(e,t,a){const r=e+"-"+t;if("OffscreenCanvas"in globalThis){if(s.has(r))return s.get(r);const i=new OffscreenCanvas(e,t);i.getContext("2d");const o=await i.convertToBlob(a),f=await o.arrayBuffer(),c=n(f);return s.set(r,c),c}return""}(o,f,g),[h,d]=function(e,t,a){if(!a)return[e,t];const[n,r]=a;if(e<=n&&t<=r)return[e,t];let s=e,i=t;return s>n&&(i=Math.floor(n*t/e),s=n),i>r&&(s=Math.floor(r*e/t),i=r),[s,i]}(o,f,c),l=new OffscreenCanvas(h,d),w=l.getContext("bitmaprenderer"),p=h===o&&d===f?a:await createImageBitmap(a,{resizeWidth:h,resizeHeight:d,resizeQuality:"low"});w.transferFromImageBitmap(p),a.close();const y=await l.convertToBlob(g),v=y.type,b=await y.arrayBuffer(),m=n(b);if(p.close(),!r.has(t)&&await u===m)return r.set(t,m),i.postMessage({id:t});if(r.get(t)===m)return i.postMessage({id:t});i.postMessage({id:t,type:v,base64:m,width:o,height:f}),r.set(t,m)}};']); return URL.createObjectURL(e) }()); l.onmessage = e => { const t = e.data, { id: n } = t; if (u.set(n, !1), !("base64" in t)) return; const { base64: r, type: o, width: i, height: a } = t; this.mutationCb({ id: n, type: vv["2D"], commands: [{ property: "clearRect", args: [0, 0, i, a] }, { property: "drawImage", args: [{ rr_type: "ImageBitmap", args: [{ rr_type: "Blob", data: [{ rr_type: "ArrayBuffer", base64: r }], type: o }] }, 0, 0, i, a] }] }) }; const f = 1e3 / t; let d, p = 0; const h = t => { p && t - p < f || (p = t, (e => { if (e) return [e]; const t = []; return n.document.querySelectorAll("canvas").forEach(e => { pv(e, r, o, i, !0) || t.push(e) }), t })(c).forEach(t => { const n = this.mirror.getId(t); if (!u.get(n) && t.width && t.height) { if (u.set(n, !0), !e && ["webgl", "webgl2"].includes(t.__context)) { const e = t.getContext(t.__context); !1 === Sp([e, "optionalAccess", e => e.getContextAttributes, "call", e => e(), "optionalAccess", e => e.preserveDrawingBuffer]) && e.clear(e.COLOR_BUFFER_BIT) } createImageBitmap(t).then(e => { l.postMessage({ id: n, bitmap: e, width: t.width, height: t.height, dataURLOptions: s, maxCanvasSize: a }, [e]) }).catch(e => { _v(() => { throw e })() }) } })), d = gv(h) }; return d = gv(h), d } startPendingCanvasMutationFlusher() { gv(() => this.flushPendingCanvasMutations()) } startRAFTimestamping() { const e = t => { this.rafStamps.latestId = t, gv(e) }; gv(e) } flushPendingCanvasMutations() { this.pendingCanvasMutations.forEach((e, t) => { const n = this.mirror.getId(t); this.flushPendingCanvasMutationFor(t, n) }), gv(() => this.flushPendingCanvasMutations()) } flushPendingCanvasMutationFor(e, t) { if (this.frozen || this.locked) return; const n = this.pendingCanvasMutations.get(e); if (!n || -1 === t) return; const r = n.map(e => { const { type: t, ...n } = e; return n }), { type: o } = n[0]; this.mutationCb({ id: t, type: o, commands: r }), this.pendingCanvasMutations.delete(e) } } const jv = { low: { sampling: { canvas: 1 }, dataURLOptions: { type: "image/webp", quality: .25 } }, medium: { sampling: { canvas: 2 }, dataURLOptions: { type: "image/webp", quality: .4 } }, high: { sampling: { canvas: 4 }, dataURLOptions: { type: "image/webp", quality: .5 } } }, Rv = "ReplayCanvas", Mv = 1280, Dv = (e = {}) => { const [t, n] = e.maxCanvasSize || [], r = { quality: e.quality || "medium", enableManualSnapshot: e.enableManualSnapshot, maxCanvasSize: [t ? Math.min(t, Mv) : Mv, n ? Math.min(n, Mv) : Mv] }; let o; const i = new Promise(e => o = e); return { name: Rv, setupOnce() {}, getOptions() { const { quality: e, enableManualSnapshot: t, maxCanvasSize: n } = r; return { enableManualSnapshot: t, recordCanvas: !0, getCanvasManager: e => { const r = new Cv({ ...e, enableManualSnapshot: t, maxCanvasSize: n, errorHandler: e => { try { "object" == typeof e && (e.__rrweb__ = !0) } catch (e) {} } }); return o(r), r }, ...jv[e || "medium"] || jv.medium } }, async snapshot(e) { (await i).snapshot(e) } } }, Nv = Xc(Rv, Dv), Lv = Ea, Fv = "#ffffff", Bv = "inherit", Uv = "rgba(108, 95, 199, 1)", Gv = { fontFamily: "system-ui, 'Helvetica Neue', Arial, sans-serif", fontSize: "14px", background: Fv, backgroundHover: "#f6f6f7", foreground: "#2b2233", border: "1.5px solid rgba(41, 35, 47, 0.13)", borderRadius: "25px", boxShadow: "0px 4px 24px 0px rgba(43, 34, 51, 0.12)", success: "#268d75", error: "#df3338", submitBackground: "rgba(88, 74, 192, 1)", submitBackgroundHover: Uv, submitBorder: Uv, submitOutlineFocus: "#29232f", submitForeground: Fv, submitForegroundHover: Fv, cancelBackground: "transparent", cancelBackgroundHover: "var(--background-hover)", cancelBorder: "var(--border)", cancelOutlineFocus: "var(--input-outline-focus)", cancelForeground: "var(--foreground)", cancelForegroundHover: "var(--foreground)", inputBackground: Bv, inputForeground: Bv, inputBorder: "var(--border)", inputOutlineFocus: Uv, formBorderRadius: "20px", formContentBorderRadius: "6px" }, $v = Gv, Hv = { ...Gv, background: "#29232f", backgroundHover: "#352f3b", foreground: "#ebe6ef", border: "1.5px solid rgba(235, 230, 239, 0.15)", success: "#2da98c", error: "#f55459" }, zv = "widget", qv = "api"; async function Wv({ feedback: { message: e, email: t, name: n, source: r, url: o } }, { includeReplay: i = !0 } = {}) { const a = Uc(), s = a && a.getTransport(), c = a && a.getDsn(); if (!a || !s || !c) return; const u = { contexts: { feedback: { contact_email: t, name: n, message: e, url: o, source: r } }, type: "feedback" }; return Rc(async e => { e.clearBreadcrumbs(), [qv, zv].includes(String(r)) && e.setLevel("info"); const t = await async function({ client: e, scope: t, event: n }) { const r = {}; e.emit && e.emit("preprocessEvent", n, r); const o = await vc(e.getOptions(), n, r, t, e, rc()); return null === o ? (e.recordDroppedEvent("event_processor", "feedback", n), null) : (o.platform = o.platform || "javascript", o) }({ scope: e, client: a, event: u }); if (!t) return; a.emit && a.emit("beforeSendFeedback", t, { includeReplay: Boolean(i) }); const n = Ju(t, c, a.getOptions()._metadata, a.getOptions().tunnel); let o; try { o = await s.send(n) } catch (e) { const t = new Error("Unable to send Feedback"); try { t.cause = e } catch (e) {} throw t } if (o) { if ("number" == typeof o.statusCode && (o.statusCode < 200 || o.statusCode >= 300)) throw new Error("Unable to send Feedback"); return o } }) } function Vv({ name: e, email: t, message: n, source: r = qv, url: o = Ca() }, i = {}) { if (!n) throw new Error("Unable to submit feedback with empty message"); return Wv({ feedback: { name: e, email: t, message: n, url: o, source: r } }, i) } const Yv = "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__; function Jv(e, t) { return { ...e, ...t, themeDark: { ...e.themeDark, ...t.themeDark }, themeLight: { ...e.themeLight, ...t.themeLight } } } function Kv(e) { return `\n --background: ${e.background};\n --background-hover: ${e.backgroundHover};\n --foreground: ${e.foreground};\n --error: ${e.error};\n --success: ${e.success};\n --border: ${e.border};\n --border-radius: ${e.borderRadius};\n --box-shadow: ${e.boxShadow};\n\n --submit-background: ${e.submitBackground};\n --submit-background-hover: ${e.submitBackgroundHover};\n --submit-border: ${e.submitBorder};\n --submit-outline-focus: ${e.submitOutlineFocus};\n --submit-foreground: ${e.submitForeground};\n --submit-foreground-hover: ${e.submitForegroundHover};\n\n --cancel-background: ${e.cancelBackground};\n --cancel-background-hover: ${e.cancelBackgroundHover};\n --cancel-border: ${e.cancelBorder};\n --cancel-outline-focus: ${e.cancelOutlineFocus};\n --cancel-foreground: ${e.cancelForeground};\n --cancel-foreground-hover: ${e.cancelForegroundHover};\n\n --input-background: ${e.inputBackground};\n --input-foreground: ${e.inputForeground};\n --input-border: ${e.inputBorder};\n --input-outline-focus: ${e.inputOutlineFocus};\n\n --form-border-radius: ${e.formBorderRadius};\n --form-content-border-radius: ${e.formContentBorderRadius};\n ` } function Qv({ id: e, colorScheme: t, themeDark: n, themeLight: r }) { try { const o = Lv.document, i = o.createElement("div"); i.id = e; const a = i.attachShadow({ mode: "open" }); return a.appendChild(function(e, t, n) { const r = e.createElement("style"); return r.textContent = `\n:host {\n --bottom: 1rem;\n --right: 1rem;\n --top: auto;\n --left: auto;\n --z-index: 100000;\n --font-family: ${n.light.fontFamily};\n --font-size: ${n.light.fontSize};\n\n position: fixed;\n left: var(--left);\n right: var(--right);\n bottom: var(--bottom);\n top: var(--top);\n z-index: var(--z-index);\n\n font-family: var(--font-family);\n font-size: var(--font-size);\n\n ${Kv("dark"===t?n.dark:n.light)}\n}\n\n${"system"===t?`\n@media (prefers-color-scheme: dark) {\n :host {\n ${Kv(n.dark)}\n }\n}`:""}\n}`, r }(o, t, { dark: n, light: r })), a.appendChild(function(e) { const t = e.createElement("style"); return t.textContent = "\n.dialog {\n line-height: 25px;\n background-color: rgba(0, 0, 0, 0.05);\n border: none;\n position: fixed;\n inset: 0;\n z-index: 10000;\n width: 100vw;\n height: 100vh;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 1;\n transition: opacity 0.2s ease-in-out;\n}\n\n.dialog:not([open]) {\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n}\n.dialog:not([open]) .dialog__content {\n transform: translate(0, -16px) scale(0.98);\n}\n\n.dialog__content {\n position: fixed;\n left: var(--left);\n right: var(--right);\n bottom: var(--bottom);\n top: var(--top);\n\n border: var(--border);\n border-radius: var(--form-border-radius);\n background-color: var(--background);\n color: var(--foreground);\n\n width: 320px;\n max-width: 100%;\n max-height: calc(100% - 2rem);\n display: flex;\n flex-direction: column;\n box-shadow: var(--box-shadow);\n transition: transform 0.2s ease-in-out;\n transform: translate(0, 0) scale(1);\n}\n\n.dialog__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 20px;\n font-weight: 600;\n padding: 24px 24px 0 24px;\n margin: 0;\n margin-bottom: 16px;\n}\n\n.brand-link {\n display: inline-flex;\n}\n\n.error {\n color: var(--error);\n margin-bottom: 16px;\n}\n\n.form {\n display: grid;\n overflow: auto;\n flex-direction: column;\n gap: 16px;\n padding: 0 24px 24px;\n}\n\n.form__error-container {\n color: var(--error);\n}\n\n.form__error-container--hidden {\n display: none;\n}\n\n.form__label {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin: 0px;\n}\n\n.form__label__text {\n display: grid;\n gap: 4px;\n align-items: center;\n grid-auto-flow: column;\n grid-auto-columns: max-content;\n}\n\n.form__label__text--required {\n font-size: 0.85em;\n}\n\n.form__input {\n line-height: inherit;\n background-color: var(--input-background);\n box-sizing: border-box;\n border: var(--input-border);\n border-radius: var(--form-content-border-radius);\n color: var(--input-foreground);\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: 500;\n padding: 6px 12px;\n}\n\n.form__input::placeholder {\n color: var(--input-foreground);\n opacity: 0.65;\n}\n\n.form__input:focus-visible {\n outline: 1px auto var(--input-outline-focus);\n}\n\n.form__input--textarea {\n font-family: inherit;\n resize: vertical;\n}\n\n.btn-group {\n display: grid;\n gap: 8px;\n margin-top: 8px;\n}\n\n.btn {\n line-height: inherit;\n border: var(--cancel-border);\n border-radius: var(--form-content-border-radius);\n cursor: pointer;\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: 600;\n padding: 6px 16px;\n}\n.btn[disabled] {\n opacity: 0.6;\n pointer-events: none;\n}\n\n.btn--primary {\n background-color: var(--submit-background);\n border-color: var(--submit-border);\n color: var(--submit-foreground);\n}\n.btn--primary:hover {\n background-color: var(--submit-background-hover);\n color: var(--submit-foreground-hover);\n}\n.btn--primary:focus-visible {\n outline: 1px auto var(--submit-outline-focus);\n}\n\n.btn--default {\n background-color: var(--cancel-background);\n color: var(--cancel-foreground);\n font-weight: 500;\n}\n.btn--default:hover {\n background-color: var(--cancel-background-hover);\n color: var(--cancel-foreground-hover);\n}\n.btn--default:focus-visible {\n outline: 1px auto var(--cancel-outline-focus);\n}\n\n.success-message {\n background-color: var(--background);\n border: var(--border);\n border-radius: var(--border-radius);\n box-shadow: var(--box-shadow);\n font-weight: 600;\n color: var(--success);\n padding: 12px 24px;\n line-height: 25px;\n display: grid;\n align-items: center;\n grid-auto-flow: column;\n gap: 6px;\n cursor: default;\n}\n\n.success-icon path {\n fill: var(--success);\n}\n", t }(o)), { shadow: a, host: i } } catch (e) { throw Fa.warn("[Feedback] Browser does not support shadow DOM API"), new Error("Browser does not support shadow DOM API.") } } async function Xv(e, t, n) { if (!e) return; e.hideError(); try { return await Vv({ ...t, source: zv }, n) } catch (t) { Yv && Fa.error(t), e && e.showError("There was a problem submitting feedback, please wait and try again.") } } function Zv(e, t) { return Object.entries(t).forEach(([t, n]) => { e.setAttributeNS(null, t, n) }), e } function eb(e, t, ...n) { const r = Lv.document.createElement(e); t && Object.entries(t).forEach(([e, t]) => { "className" === e && "string" == typeof t ? r.setAttribute("class", t) : "boolean" == typeof t && t ? r.setAttribute(e, "") : "string" == typeof t ? r.setAttribute(e, t) : e.startsWith("on") && "function" == typeof t && r.addEventListener(e.substring(2).toLowerCase(), t) }); for (const e of n) tb(r, e); return r } function tb(e, t) { const n = Lv.document; if (null != t) if (Array.isArray(t)) for (const n of t) tb(e, n); else !1 === t || ("string" == typeof t ? e.appendChild(n.createTextNode(t)) : t instanceof Node ? e.appendChild(t) : e.appendChild(n.createTextNode(String(t)))) } function nb({ buttonLabel: e, onClick: t }) { const n = eb("button", { type: "button", className: "widget__actor", "aria-label": e, "aria-hidden": "false" }, function() { const e = e => Lv.document.createElementNS("http://www.w3.org/2000/svg", e), t = Zv(e("svg"), { class: "feedback-icon", width: "20", height: "20", viewBox: "0 0 20 20", fill: "none" }), n = Zv(e("g"), { clipPath: "url(#clip0_57_80)" }), r = Zv(e("path"), { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M15.6622 15H12.3997C12.2129 14.9959 12.031 14.9396 11.8747 14.8375L8.04965 12.2H7.49956V19.1C7.4875 19.3348 7.3888 19.5568 7.22256 19.723C7.05632 19.8892 6.83435 19.9879 6.59956 20H2.04956C1.80193 19.9968 1.56535 19.8969 1.39023 19.7218C1.21511 19.5467 1.1153 19.3101 1.11206 19.0625V12.2H0.949652C0.824431 12.2017 0.700142 12.1783 0.584123 12.1311C0.468104 12.084 0.362708 12.014 0.274155 11.9255C0.185602 11.8369 0.115689 11.7315 0.0685419 11.6155C0.0213952 11.4995 -0.00202913 11.3752 -0.00034808 11.25V3.75C-0.00900498 3.62067 0.0092504 3.49095 0.0532651 3.36904C0.0972798 3.24712 0.166097 3.13566 0.255372 3.04168C0.344646 2.94771 0.452437 2.87327 0.571937 2.82307C0.691437 2.77286 0.82005 2.74798 0.949652 2.75H8.04965L11.8747 0.1625C12.031 0.0603649 12.2129 0.00407221 12.3997 0H15.6622C15.9098 0.00323746 16.1464 0.103049 16.3215 0.278167C16.4966 0.453286 16.5964 0.689866 16.5997 0.9375V3.25269C17.3969 3.42959 18.1345 3.83026 18.7211 4.41679C19.5322 5.22788 19.9878 6.32796 19.9878 7.47502C19.9878 8.62209 19.5322 9.72217 18.7211 10.5333C18.1345 11.1198 17.3969 11.5205 16.5997 11.6974V14.0125C16.6047 14.1393 16.5842 14.2659 16.5395 14.3847C16.4948 14.5035 16.4268 14.6121 16.3394 14.7042C16.252 14.7962 16.147 14.8698 16.0307 14.9206C15.9144 14.9714 15.7891 14.9984 15.6622 15ZM1.89695 10.325H1.88715V4.625H8.33715C8.52423 4.62301 8.70666 4.56654 8.86215 4.4625L12.6872 1.875H14.7247V13.125H12.6872L8.86215 10.4875C8.70666 10.3835 8.52423 10.327 8.33715 10.325H2.20217C2.15205 10.3167 2.10102 10.3125 2.04956 10.3125C1.9981 10.3125 1.94708 10.3167 1.89695 10.325ZM2.98706 12.2V18.1625H5.66206V12.2H2.98706ZM16.5997 9.93612V5.01393C16.6536 5.02355 16.7072 5.03495 16.7605 5.04814C17.1202 5.13709 17.4556 5.30487 17.7425 5.53934C18.0293 5.77381 18.2605 6.06912 18.4192 6.40389C18.578 6.73866 18.6603 7.10452 18.6603 7.47502C18.6603 7.84552 18.578 8.21139 18.4192 8.54616C18.2605 8.88093 18.0293 9.17624 17.7425 9.41071C17.4556 9.64518 17.1202 9.81296 16.7605 9.90191C16.7072 9.91509 16.6536 9.9265 16.5997 9.93612Z" }); t.appendChild(n).appendChild(r); const o = e("defs"), i = Zv(e("clipPath"), { id: "clip0_57_80" }), a = Zv(e("rect"), { width: "20", height: "20", fill: "white" }); return i.appendChild(a), o.appendChild(i), t.appendChild(o).appendChild(i).appendChild(a), { get el() { return t } } }().el, e ? eb("span", { className: "widget__actor__text" }, e) : null); return n.addEventListener("click", function(e) { t && t(e) }), { get el() { return n }, show: () => { n.classList.remove("widget__actor--hidden"), n.setAttribute("aria-hidden", "false") }, hide: () => { n.classList.add("widget__actor--hidden"), n.setAttribute("aria-hidden", "true") } } } function rb(e, t) { const n = e.get(t); return "string" == typeof n ? n.trim() : "" } function ob({ nameLabel: e, namePlaceholder: t, emailLabel: n, emailPlaceholder: r, messageLabel: o, messagePlaceholder: i, isRequiredLabel: a, cancelButtonLabel: s, submitButtonLabel: c, showName: u, showEmail: l, isNameRequired: f, isEmailRequired: d, defaultName: p, defaultEmail: h, onCancel: m, onSubmit: g }) { const { el: y } = function({ label: e }) { return { el: eb("button", { type: "submit", className: "btn btn--primary", "aria-label": e }, e) } }({ label: c }); const v = eb("div", { className: "form__error-container form__error-container--hidden", "aria-hidden": "true" }); const b = eb("input", { id: "name", type: u ? "text" : "hidden", "aria-hidden": u ? "false" : "true", name: "name", required: f, className: "form__input", placeholder: t, value: p }), _ = eb("input", { id: "email", type: l ? "text" : "hidden", "aria-hidden": l ? "false" : "true", name: "email", required: d, className: "form__input", placeholder: r, value: h }), S = eb("textarea", { id: "message", autoFocus: "true", rows: "5", name: "message", required: !0, className: "form__input form__input--textarea", placeholder: i }), w = eb("button", { type: "button", className: "btn btn--default", "aria-label": s, onClick: e => { m && m(e) } }, s), O = eb("form", { className: "form", onSubmit: function(e) { if (e.preventDefault(), e.target instanceof HTMLFormElement) try { if (g) { const t = new FormData(e.target), n = { name: rb(t, "name"), email: rb(t, "email"), message: rb(t, "message") }; g(n) } } catch (e) {} } }, [v, u && eb("label", { htmlFor: "name", className: "form__label" }, [eb("span", { className: "form__label__text" }, e, f && eb("span", { className: "form__label__text--required" }, ` ${a}`)), b]), !u && b, l && eb("label", { htmlFor: "email", className: "form__label" }, [eb("span", { className: "form__label__text" }, n, d && eb("span", { className: "form__label__text--required" }, ` ${a}`)), _]), !l && _, eb("label", { htmlFor: "message", className: "form__label" }, [eb("span", { className: "form__label__text" }, o, eb("span", { className: "form__label__text--required" }, ` ${a}`)), S]), eb("div", { className: "btn-group" }, [y, w])]); return { get el() { return O }, showError: function(e) { v.textContent = e, v.classList.remove("form__error-container--hidden"), v.setAttribute("aria-hidden", "false") }, hideError: function() { v.textContent = "", v.classList.add("form__error-container--hidden"), v.setAttribute("aria-hidden", "true") } } } function ib({ formTitle: e, showBranding: t, showName: n, showEmail: r, isNameRequired: o, isEmailRequired: i, colorScheme: a, defaultName: s, defaultEmail: c, onClosed: u, onCancel: l, onSubmit: f, ...d }) { let p = null; function h() { p && (p.open = !1) } const { el: m, showError: g, hideError: y } = ob({ showEmail: r, showName: n, isEmailRequired: i, isNameRequired: o, defaultName: s, defaultEmail: c, onSubmit: f, onCancel: l, ...d }); return p = eb("dialog", { className: "dialog", open: !0, onClick: function() { h(), u && u() } }, eb("div", { className: "dialog__content", onClick: e => { e.stopPropagation() } }, eb("h2", { className: "dialog__header" }, e, t && eb("a", { className: "brand-link", target: "_blank", href: "https://sentry.io/welcome/", title: "Powered by Sentry", rel: "noopener noreferrer" }, function({ colorScheme: e }) { const t = e => Lv.document.createElementNS("http://www.w3.org/2000/svg", e), n = Zv(t("svg"), { class: "sentry-logo", width: "32", height: "30", viewBox: "0 0 72 66", fill: "none" }), r = Zv(t("path"), { transform: "translate(11, 11)", d: "M29,2.26a4.67,4.67,0,0,0-8,0L14.42,13.53A32.21,32.21,0,0,1,32.17,40.19H27.55A27.68,27.68,0,0,0,12.09,17.47L6,28a15.92,15.92,0,0,1,9.23,12.17H4.62A.76.76,0,0,1,4,39.06l2.94-5a10.74,10.74,0,0,0-3.36-1.9l-2.91,5a4.54,4.54,0,0,0,1.69,6.24A4.66,4.66,0,0,0,4.62,44H19.15a19.4,19.4,0,0,0-8-17.31l2.31-4A23.87,23.87,0,0,1,23.76,44H36.07a35.88,35.88,0,0,0-16.41-31.8l4.67-8a.77.77,0,0,1,1.05-.27c.53.29,20.29,34.77,20.66,35.17a.76.76,0,0,1-.68,1.13H40.6q.09,1.91,0,3.81h4.78A4.59,4.59,0,0,0,50,39.43a4.49,4.49,0,0,0-.62-2.28Z" }); n.append(r); const o = t("defs"), i = t("style"); return i.textContent = `\n path {\n fill: ${"dark"===e?"#fff":"#362d59"};\n }`, "system" === e && (i.textContent += "\n @media (prefers-color-scheme: dark) {\n path: {\n fill: '#fff';\n }\n }\n "), o.append(i), n.append(o), { get el() { return n } } }({ colorScheme: a }).el)), m)), { get el() { return p }, showError: g, hideError: y, open: function() { p && (p.open = !0) }, close: h, checkIsOpen: function() { return p && !0 === p.open || !1 } } } function ab({ message: e, onRemove: t }) { function n() { r && (r.remove(), t && t()) } const r = eb("div", { className: "success-message", onClick: n }, function() { const e = e => Lv.document.createElementNS("http://www.w3.org/2000/svg", e), t = Zv(e("svg"), { class: "success-icon", width: "16", height: "17", viewBox: "0 0 16 17", fill: "none" }), n = Zv(e("g"), { clipPath: "url(#clip0_57_156)" }), r = Zv(e("path"), { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M3.55544 15.1518C4.87103 16.0308 6.41775 16.5 8 16.5C10.1217 16.5 12.1566 15.6571 13.6569 14.1569C15.1571 12.6566 16 10.6217 16 8.5C16 6.91775 15.5308 5.37103 14.6518 4.05544C13.7727 2.73985 12.5233 1.71447 11.0615 1.10897C9.59966 0.503466 7.99113 0.34504 6.43928 0.653721C4.88743 0.962403 3.46197 1.72433 2.34315 2.84315C1.22433 3.96197 0.462403 5.38743 0.153721 6.93928C-0.15496 8.49113 0.00346625 10.0997 0.608967 11.5615C1.21447 13.0233 2.23985 14.2727 3.55544 15.1518ZM4.40546 3.1204C5.46945 2.40946 6.72036 2.03 8 2.03C9.71595 2.03 11.3616 2.71166 12.575 3.92502C13.7883 5.13838 14.47 6.78405 14.47 8.5C14.47 9.77965 14.0905 11.0306 13.3796 12.0945C12.6687 13.1585 11.6582 13.9878 10.476 14.4775C9.29373 14.9672 7.99283 15.0953 6.73777 14.8457C5.48271 14.596 4.32987 13.9798 3.42502 13.075C2.52018 12.1701 1.90397 11.0173 1.65432 9.76224C1.40468 8.50718 1.5328 7.20628 2.0225 6.02404C2.5122 4.8418 3.34148 3.83133 4.40546 3.1204Z" }), o = Zv(e("path"), { d: "M6.68775 12.4297C6.78586 12.4745 6.89218 12.4984 7 12.5C7.11275 12.4955 7.22315 12.4664 7.32337 12.4145C7.4236 12.3627 7.51121 12.2894 7.58 12.2L12 5.63999C12.0848 5.47724 12.1071 5.28902 12.0625 5.11098C12.0178 4.93294 11.9095 4.77744 11.7579 4.67392C11.6064 4.57041 11.4221 4.52608 11.24 4.54931C11.0579 4.57254 10.8907 4.66173 10.77 4.79999L6.88 10.57L5.13 8.56999C5.06508 8.49566 4.98613 8.43488 4.89768 8.39111C4.80922 8.34735 4.713 8.32148 4.61453 8.31498C4.51605 8.30847 4.41727 8.32147 4.32382 8.35322C4.23038 8.38497 4.14413 8.43484 4.07 8.49999C3.92511 8.63217 3.83692 8.81523 3.82387 9.01092C3.81083 9.2066 3.87393 9.39976 4 9.54999L6.43 12.24C6.50187 12.3204 6.58964 12.385 6.68775 12.4297Z" }); t.appendChild(n).append(o, r); const i = e("defs"), a = Zv(e("clipPath"), { id: "clip0_57_156" }), s = Zv(e("rect"), { width: "16", height: "16", fill: "white", transform: "translate(0 0.5)" }); return a.appendChild(s), i.appendChild(a), t.appendChild(i).appendChild(a).appendChild(s), { get el() { return t } } }().el, e); return { el: r, remove: n } } function sb({ shadow: e, options: { shouldCreateActor: t = !0, ...n }, attachTo: r }) { let o, i, a = !1; async function s(t) { if (!i) return; const r = []; if (n.isNameRequired && !t.name && r.push(n.nameLabel), n.isEmailRequired && !t.email && r.push(n.emailLabel), t.message || r.push(n.messageLabel), r.length > 0) return void i.showError(`Please enter in the following required fields: ${r.join(", ")}`); await Xv(i, t) ? (p(), function() { if (e) try { const t = ab({ message: n.successMessageText, onRemove: () => { r && clearTimeout(r), u() } }); if (!t.el) throw new Error("Unable to show success message"); e.appendChild(t.el); const r = setTimeout(() => { t && t.remove() }, 5e3) } catch (e) { Fa.error(e) } }(), n.onSubmitSuccess && n.onSubmitSuccess()) : n.onSubmitError && n.onSubmitError() } function c() { const e = Uc(), t = e && e.getIntegrationByName && e.getIntegrationByName("Replay"); t && t.flush().catch(e => { Yv && Fa.error(e) }) } function u() { o && o.show() } function l() { o && o.hide() } function f() { try { if (i) return i.open(), a = !0, n.onFormOpen && n.onFormOpen(), void c(); const t = n.useSentryUser, r = $c(), o = r && r.getUser(); if (i = ib({ colorScheme: n.colorScheme, showBranding: n.showBranding, showName: n.showName || n.isNameRequired, showEmail: n.showEmail || n.isEmailRequired, isNameRequired: n.isNameRequired, isEmailRequired: n.isEmailRequired, formTitle: n.formTitle, cancelButtonLabel: n.cancelButtonLabel, submitButtonLabel: n.submitButtonLabel, emailLabel: n.emailLabel, emailPlaceholder: n.emailPlaceholder, messageLabel: n.messageLabel, messagePlaceholder: n.messagePlaceholder, nameLabel: n.nameLabel, namePlaceholder: n.namePlaceholder, isRequiredLabel: n.isRequiredLabel, defaultName: t && o && o[t.name] || "", defaultEmail: t && o && o[t.email] || "", onClosed: () => { u(), a = !1, n.onFormClose && n.onFormClose() }, onCancel: () => { d(), u() }, onSubmit: s }), !i.el) throw new Error("Unable to open Feedback dialog"); e.appendChild(i.el), l(), n.onFormOpen && n.onFormOpen(), c() } catch (e) { Fa.error(e) } } function d() { i && (i.close(), a = !1, n.onFormClose && n.onFormClose()) } function p() { if (i) { d(); const e = i.el; e && e.remove(), i = void 0 } } function h() { a || f(), l() } return r ? r.addEventListener("click", h) : t && (o = nb({ buttonLabel: n.buttonLabel, onClick: h }), o.el && e.appendChild(o.el)), { get actor() { return o }, get dialog() { return i }, showActor: u, hideActor: l, removeActor: function() { o && o.el && o.el.remove() }, openDialog: f, closeDialog: d, removeDialog: p } } const cb = Lv.document, ub = e => new lb(e); class lb { static __initStatic() { this.id = "Feedback" } constructor({ autoInject: e = !0, id: t = "sentry-feedback", isEmailRequired: n = !1, isNameRequired: r = !1, showBranding: o = !0, showEmail: i = !0, showName: a = !0, useSentryUser: s = { email: "email", name: "username" }, themeDark: c, themeLight: u, colorScheme: l = "system", buttonLabel: f = "Report a Bug", cancelButtonLabel: d = "Cancel", submitButtonLabel: p = "Send Bug Report", formTitle: h = "Report a Bug", emailPlaceholder: m = "your.email@example.org", emailLabel: g = "Email", messagePlaceholder: y = "What's the bug? What did you expect?", messageLabel: v = "Description", namePlaceholder: b = "Your Name", nameLabel: _ = "Name", isRequiredLabel: S = "(required)", successMessageText: w = "Thank you for your report!", onFormClose: O, onFormOpen: E, onSubmitError: k, onSubmitSuccess: T } = {}) { this.name = lb.id, this._host = null, this._shadow = null, this._widget = null, this._widgets = new Set, this._hasInsertedActorStyles = !1, this.options = { autoInject: e, showBranding: o, id: t, isEmailRequired: n, isNameRequired: r, showEmail: i, showName: a, useSentryUser: s, colorScheme: l, themeDark: { ...Hv, ...c }, themeLight: { ...$v, ...u }, buttonLabel: f, cancelButtonLabel: d, submitButtonLabel: p, formTitle: h, emailLabel: g, emailPlaceholder: m, messageLabel: v, messagePlaceholder: y, nameLabel: _, namePlaceholder: b, isRequiredLabel: S, successMessageText: w, onFormClose: O, onFormOpen: E, onSubmitError: k, onSubmitSuccess: T } } setupOnce() { if (kp()) try { this._cleanupWidgetIfExists(); const { autoInject: e } = this.options; if (!e) return; this._createWidget(this.options) } catch (e) { Yv && Fa.error(e) } } openDialog() { this._widget || this._createWidget({ ...this.options, shouldCreateActor: !1 }), this._widget && this._widget.openDialog() } closeDialog() { this._widget && this._widget.closeDialog() } attachTo(e, t) { try { const n = Jv(this.options, t || {}); return this._ensureShadowHost(n, ({ shadow: t }) => { const r = "string" == typeof e ? cb.querySelector(e) : "function" == typeof e.addEventListener ? e : null; if (!r) return Yv && Fa.error("[Feedback] Unable to attach to target element"), null; const o = sb({ shadow: t, options: n, attachTo: r }); return this._widgets.add(o), this._widget || (this._widget = o), o }) } catch (e) { return Yv && Fa.error(e), null } } createWidget(e) { try { return this._createWidget(Jv(this.options, e || {})) } catch (e) { return Yv && Fa.error(e), null } } removeWidget(e) { if (!e) return !1; try { if (this._widgets.has(e)) return e.removeActor(), e.removeDialog(), this._widgets.delete(e), this._widget === e && (this._widget = null), !0 } catch (e) { Yv && Fa.error(e) } return !1 } getWidget() { return this._widget } remove() { this._host && this._host.remove(), this._initialize() } _initialize() { this._host = null, this._shadow = null, this._widget = null, this._widgets = new Set, this._hasInsertedActorStyles = !1 } _cleanupWidgetIfExists() { this._host && this.remove(); const e = cb.querySelector(`#${this.options.id}`); e && e.remove() } _createWidget(e) { return this._ensureShadowHost(e, ({ shadow: t }) => { const n = sb({ shadow: t, options: e }); return !this._hasInsertedActorStyles && n.actor && (t.appendChild(function(e) { const t = e.createElement("style"); return t.textContent = "\n.widget__actor {\n position: fixed;\n left: var(--left);\n right: var(--right);\n bottom: var(--bottom);\n top: var(--top);\n z-index: var(--z-index);\n\n line-height: 16px;\n\n display: flex;\n align-items: center;\n gap: 8px;\n\n border-radius: var(--border-radius);\n cursor: pointer;\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: 600;\n padding: 16px;\n text-decoration: none;\n z-index: 9000;\n\n color: var(--foreground);\n background-color: var(--background);\n border: var(--border);\n box-shadow: var(--box-shadow);\n opacity: 1;\n transition: opacity 0.1s ease-in-out;\n}\n\n.widget__actor:hover {\n background-color: var(--background-hover);\n}\n\n.widget__actor svg {\n width: 16px;\n height: 16px;\n}\n\n.widget__actor--hidden {\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n}\n\n.widget__actor__text {\n}\n\n@media (max-width: 600px) {\n .widget__actor__text {\n display: none;\n }\n}\n\n.feedback-icon path {\n fill: var(--foreground);\n}\n", t }(cb)), this._hasInsertedActorStyles = !0), this._widgets.add(n), this._widget || (this._widget = n), n }) } _ensureShadowHost(e, t) { let n = !1; if (!this._shadow || !this._host) { const { id: t, colorScheme: r, themeLight: o, themeDark: i } = e, { shadow: a, host: s } = Qv({ id: t, colorScheme: r, themeLight: o, themeDark: i }); this._shadow = a, this._host = s, n = !0 } this._host.dataset.sentryFeedbackColorscheme = e.colorScheme; const r = t({ shadow: this._shadow, host: this._host }); return n && cb.body.appendChild(this._host), r } } lb.__initStatic(); const fb = "CaptureConsole", db = (e = {}) => { const t = e.levels || Da; return { name: fb, setupOnce() {}, setup(e) { "console" in Ea && gd(({ args: n, level: r }) => { Uc() === e && t.includes(r) && function(e, t) { const n = { level: Md(t), extra: { arguments: e } }; Rc(r => { if (r.addEventProcessor(e => (e.logger = "console", is(e, { handled: !1, type: "console" }), e)), "assert" === t && !1 === e[0]) { const t = `Assertion failed: ${Ga(e.slice(1)," ")||"console.assert"}`; return r.setExtra("arguments", e.slice(1)), void Oc(t, n) } const o = e.find(e => e instanceof Error); if ("error" === t && o) return void wc(o, n); Oc(Ga(e, " "), n) }) }(n, r) }) } } }; Xc(fb, db); const pb = Ea, hb = "ContextLines", mb = (e = {}) => { const t = null != e.frameContextLines ? e.frameContextLines : 7; return { name: hb, setupOnce() {}, processEvent: e => function(e, t) { const n = pb.document, r = pb.location && (o = pb.location.href, o.split(/[\?#]/, 1)[0]); var o; if (!n || !r) return e; const i = e.exception && e.exception.values; if (!i || !i.length) return e; const a = n.documentElement.innerHTML; if (!a) return e; const s = ["", "", ...a.split("\n"), ""]; return i.forEach(e => { const n = e.stacktrace; n && n.frames && (n.frames = n.frames.map(e => function(e, t, n, r) { if (e.filename !== n || !e.lineno || !t.length) return e; return function(e, t, n = 5) { if (void 0 === t.lineno) return; const r = e.length, o = Math.max(Math.min(r - 1, t.lineno - 1), 0); t.pre_context = e.slice(Math.max(0, o - n), o).map(e => Ua(e, 0)), t.context_line = Ua(e[Math.min(r - 1, o)], t.colno || 0), t.post_context = e.slice(Math.min(o + 1, r), o + 1 + n).map(e => Ua(e, 0)) }(t, e, r), e }(e, s, r, t))) }), e }(e, t) } }; Xc(hb, mb); const gb = "Debug", yb = (e = {}) => { const t = { debugger: !1, stringify: !1, ...e }; return { name: gb, setupOnce() {}, setup(e) { e.on && e.on("beforeSendEvent", (e, n) => { t.debugger, La(() => { t.stringify ? (console.log(JSON.stringify(e, null, 2)), n && Object.keys(n).length && console.log(JSON.stringify(n, null, 2))) : (console.log(e), n && Object.keys(n).length && console.log(n)) }) }) } } }, vb = (Xc(gb, yb), "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__), bb = "Dedupe", _b = () => { let e; return { name: bb, setupOnce() {}, processEvent(t) { if (t.type) return t; try { if (function(e, t) { if (!t) return !1; if (function(e, t) { const n = e.message, r = t.message; if (!n && !r) return !1; if (n && !r || !n && r) return !1; if (n !== r) return !1; if (!wb(e, t)) return !1; if (!Sb(e, t)) return !1; return !0 }(e, t)) return !0; if (function(e, t) { const n = Ob(t), r = Ob(e); if (!n || !r) return !1; if (n.type !== r.type || n.value !== r.value) return !1; if (!wb(e, t)) return !1; if (!Sb(e, t)) return !1; return !0 }(e, t)) return !0; return !1 }(t, e)) return vb && Fa.warn("Event dropped due to being a duplicate of previously captured event."), null } catch (e) {} return e = t } } }; Xc(bb, _b); function Sb(e, t) { let n = Eb(e), r = Eb(t); if (!n && !r) return !0; if (n && !r || !n && r) return !1; if (r.length !== n.length) return !1; for (let e = 0; e < r.length; e++) { const t = r[e], o = n[e]; if (t.filename !== o.filename || t.lineno !== o.lineno || t.colno !== o.colno || t.function !== o.function) return !1 } return !0 } function wb(e, t) { let n = e.fingerprint, r = t.fingerprint; if (!n && !r) return !0; if (n && !r || !n && r) return !1; try { return !(n.join("") !== r.join("")) } catch (e) { return !1 } } function Ob(e) { return e.exception && e.exception.values && e.exception.values[0] } function Eb(e) { const t = e.exception; if (t) try { return t.values[0].stacktrace.frames } catch (e) { return } } const kb = "ExtraErrorData", Tb = (e = {}) => { const t = e.depth || 3, n = e.captureErrorCause || !1; return { name: kb, setupOnce() {}, processEvent: (e, r) => function(e, t = {}, n, r) { if (!t.originalException || !la(t.originalException)) return e; const o = t.originalException.name || t.originalException.constructor.name, i = function(e, t) { try { const n = ["name", "message", "stack", "line", "column", "fileName", "lineNumber", "columnNumber", "toJSON"], r = {}; for (const t of Object.keys(e)) { if (-1 !== n.indexOf(t)) continue; const o = e[t]; r[t] = la(o) ? o.toString() : o } if (t && void 0 !== e.cause && (r.cause = la(e.cause) ? e.cause.toString() : e.cause), "function" == typeof e.toJSON) { const t = e.toJSON(); for (const e of Object.keys(t)) { const n = t[e]; r[e] = la(n) ? n.toString() : n } } return r } catch (e) { vb && Fa.error("Unable to extract extra data from the Error object:", e) } return null }(t.originalException, r); if (i) { const t = { ...e.contexts }, r = mc(i, n); return ya(r) && (qa(r, "__sentry_skip_normalization__", !0), t[o] = r), { ...e, contexts: t } } return e }(e, r, t, n) } }; Xc(kb, Tb); const xb = "HttpClient", Ib = (e = {}) => { const t = { failedRequestStatusCodes: [ [500, 599] ], failedRequestTargets: [/.*/], ...e }; return { name: xb, setupOnce() {}, setup(e) { ! function(e, t) { if (!Hf()) return; Pd(n => { if (Uc() !== e) return; const { response: r, args: o } = n, [i, a] = o; r && function(e, t, n, r) { if (Cb(e, n.status, n.url)) { const e = function(e, t) { if (!t && e instanceof Request) return e; if (e instanceof Request && e.bodyUsed) return e; return new Request(e, t) }(t, r); let o, i, a, s; Rb() && ([{ headers: o, cookies: a }, { headers: i, cookies: s }] = [{ cookieHeader: "Cookie", obj: e }, { cookieHeader: "Set-Cookie", obj: n }].map(({ cookieHeader: e, obj: t }) => { const n = function(e) { const t = {}; return e.forEach((e, n) => { t[n] = e }), t }(t.headers); let r; try { const t = n[e] || n[e.toLowerCase()] || void 0; t && (r = Ab(t)) } catch (t) { vb && Fa.log(`Could not extract cookies from header ${e}`) } return { headers: n, cookies: r } })); Ec(jb({ url: e.url, method: e.method, status: n.status, requestHeaders: o, responseHeaders: i, requestCookies: a, responseCookies: s })) } }(t, i, r, a) }) }(e, t), function(e, t) { if (!("XMLHttpRequest" in Ea)) return; xd(n => { if (Uc() !== e) return; const r = n.xhr, o = r[Td]; if (!o) return; const { method: i, request_headers: a } = o; try { ! function(e, t, n, r) { if (Cb(e, t.status, t.responseURL)) { let e, o, i; if (Rb()) { try { const e = t.getResponseHeader("Set-Cookie") || t.getResponseHeader("set-cookie") || void 0; e && (o = Ab(e)) } catch (e) { vb && Fa.log("Could not extract cookies from response headers") } try { i = function(e) { const t = e.getAllResponseHeaders(); if (!t) return {}; return t.split("\r\n").reduce((e, t) => { const [n, r] = t.split(": "); return e[n] = r, e }, {}) }(t) } catch (e) { vb && Fa.log("Could not extract headers from response") } e = r } Ec(jb({ url: t.responseURL, method: n, status: t.status, requestHeaders: e, responseHeaders: i, responseCookies: o })) } }(t, r, i, a) } catch (e) { vb && Fa.warn("Error while extracting response event form XHR response", e) } }) }(e, t) } } }; Xc(xb, Ib); function Pb(e) { if (e) { const t = e["Content-Length"] || e["content-length"]; if (t) return parseInt(t, 10) } } function Ab(e) { return e.split("; ").reduce((e, t) => { const [n, r] = t.split("="); return e[n] = r, e }, {}) } function Cb(e, t, n) { return function(e, t) { return e.some(e => "number" == typeof e ? e === t : t >= e[0] && t <= e[1]) }(e.failedRequestStatusCodes, t) && (r = e.failedRequestTargets, o = n, r.some(e => "string" == typeof e ? o.includes(e) : e.test(o))) && !wp(n, Uc()); var r, o } function jb(e) { const t = `HTTP Client Error with status code: ${e.status}`, n = { message: t, exception: { values: [{ type: "Error", value: t }] }, request: { url: e.url, method: e.method, headers: e.requestHeaders, cookies: e.requestCookies }, contexts: { response: { status_code: e.status, headers: e.responseHeaders, cookies: e.responseCookies, body_size: Pb(e.responseHeaders) } } }; return is(n, { type: "http.client", handled: !1 }), n } function Rb() { const e = Uc(); return !!e && Boolean(e.getOptions().sendDefaultPii) } const Mb = Ea, Db = "ReportingObserver", Nb = new WeakMap, Lb = (e = {}) => { const t = e.types || ["crash", "deprecation", "intervention"]; function n(e) { if (Nb.has(Uc())) for (const t of e) Rc(e => { e.setExtra("url", t.url); const n = `ReportingObserver [${t.type}]`; let r = "No details available"; if (t.body) { const n = {}; for (const e in t.body) n[e] = t.body[e]; if (e.setExtra("body", n), "crash" === t.type) { const e = t.body; r = [e.crashId || "", e.reason || ""].join(" ").trim() || r } else { r = t.body.message || r } } Oc(`${n}: ${r}`) }) } return { name: Db, setupOnce() { if (!("ReportingObserver" in Uf)) return; new Mb.ReportingObserver(n, { buffered: !0, types: t }).observe() }, setup(e) { Nb.set(e, !0) } } }; Xc(Db, Lb); function Fb(e, t) { let n = 0; for (let t = e.length - 1; t >= 0; t--) { const r = e[t]; "." === r ? e.splice(t, 1) : ".." === r ? (e.splice(t, 1), n++) : n && (e.splice(t, 1), n--) } if (t) for (; n--; n) e.unshift(".."); return e } const Bb = /^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/; function Ub(e) { const t = e.length > 1024 ? `${e.slice(-1024)}` : e, n = Bb.exec(t); return n ? n.slice(1) : [] } function Gb(...e) { let t = "", n = !1; for (let r = e.length - 1; r >= -1 && !n; r--) { const o = r >= 0 ? e[r] : "/"; o && (t = `${o}/${t}`, n = "/" === o.charAt(0)) } return t = Fb(t.split("/").filter(e => !!e), !n).join("/"), (n ? "/" : "") + t || "." } function $b(e) { let t = 0; for (; t < e.length && "" === e[t]; t++); let n = e.length - 1; for (; n >= 0 && "" === e[n]; n--); return t > n ? [] : e.slice(t, n - t + 1) } const Hb = "RewriteFrames", zb = (e = {}) => { const t = e.root, n = e.prefix || "app:///", r = e.iteratee || (e => { if (!e.filename) return e; const r = /^[a-zA-Z]:\\/.test(e.filename) || e.filename.includes("\\") && !e.filename.includes("/"), o = /^\//.test(e.filename); if (r || o) { const o = r ? e.filename.replace(/^[a-zA-Z]:/, "").replace(/\\/g, "/") : e.filename, i = t ? function(e, t) { e = Gb(e).slice(1), t = Gb(t).slice(1); const n = $b(e.split("/")), r = $b(t.split("/")), o = Math.min(n.length, r.length); let i = o; for (let e = 0; e < o; e++) if (n[e] !== r[e]) { i = e; break } let a = []; for (let e = i; e < n.length; e++) a.push(".."); return a = a.concat(r.slice(i)), a.join("/") }(t, o) : function(e, t) { let n = Ub(e)[2]; return t && n.slice(-1 * t.length) === t && (n = n.slice(0, n.length - t.length)), n }(o); e.filename = `${n}${i}` } return e }); return { name: Hb, setupOnce() {}, processEvent(e) { let t = e; return e.exception && Array.isArray(e.exception.values) && (t = function(e) { try { return { ...e, exception: { ...e.exception, values: e.exception.values.map(e => { return { ...e, ...e.stacktrace && { stacktrace: (t = e.stacktrace, { ...t, frames: t && t.frames && t.frames.map(e => r(e)) }) } }; var t }) } } } catch (t) { return e } }(t)), t } } }, qb = (Xc(Hb, zb), "SessionTiming"), Wb = () => { const e = Date.now(); return { name: qb, setupOnce() {}, processEvent(t) { const n = Date.now(); return { ...t, extra: { ...t.extra, "session:start": e, "session:duration": n - e, "session:end": n } } } } }; Xc(qb, Wb); function Vb() { Ip.document ? Ip.document.addEventListener("visibilitychange", () => { const e = gl(); if (Ip.document.hidden && e) { const t = "cancelled", { op: n, status: r } = Us(e); Tp && Fa.log(`[Tracing] Transaction: ${t} -> since tab moved to the background, op: ${n}`), r || e.setStatus(t), e.setTag("visibilitychange", "document.hidden"), e.end() } }) : Tp && Fa.warn("[Tracing] Could not set up background tab detection due to lack of global document") } function Yb(e) { return [{ type: "span" }, e] } function Jb(e) { return "number" == typeof e && isFinite(e) } function Kb(e, { startTimestamp: t, ...n }) { return t && e.startTimestamp > t && (e.startTimestamp = t), e.startChild({ startTimestamp: t, ...n }) } function Qb(e) { return e / 1e3 } function Xb() { return Ip && Ip.addEventListener && Ip.performance } let Zb, e_, t_ = 0, n_ = {}; function r_() { const e = Xb(); if (e && ds) { e.mark && Ip.performance.mark("sentry-tracing-init"); const t = lh("fid", ({ metric: e }) => { const t = e.entries[e.entries.length - 1]; if (!t) return; const n = Qb(ds), r = Qb(t.startTime); Tp && Fa.log("[Measurements] Adding FID"), n_.fid = { value: e.value, unit: "millisecond" }, n_["mark.fid"] = { value: n + r, unit: "second" } }, ah, Xp), n = function(e, t = !1) { return lh("cls", e, ih, Qp, t) }(({ metric: e }) => { const t = e.entries[e.entries.length - 1]; t && (Tp && Fa.log("[Measurements] Adding CLS"), n_.cls = { value: e.value, unit: "" }, e_ = t) }, !0), r = nh(({ metric: e }) => { const t = e.entries[e.entries.length - 1]; t && (Tp && Fa.log("[Measurements] Adding LCP"), n_.lcp = { value: e.value, unit: "millisecond" }, Zb = t) }, !0), o = function(e) { return lh("ttfb", e, ch, eh) }(({ metric: e }) => { e.entries[e.entries.length - 1] && (Tp && Fa.log("[Measurements] Adding TTFB"), n_.ttfb = { value: e.value, unit: "millisecond" }) }); return () => { t(), n(), r(), o() } } return () => {} } function o_() { rh("longtask", ({ entries: e }) => { for (const t of e) { const e = gl(); if (!e) return; const n = Qb(ds + t.startTime), r = Qb(t.duration); e.startChild({ description: "Main UI thread blocked", op: "ui.long-task", origin: "auto.ui.browser.metrics", startTimestamp: n, endTimestamp: n + r }) } }) } function i_() { rh("event", ({ entries: e }) => { for (const t of e) { const e = gl(); if (!e) return; if ("click" === t.name) { const n = Qb(ds + t.startTime), r = Qb(t.duration), o = { description: Pa(t.target), op: `ui.interaction.${t.name}`, origin: "auto.ui.browser.metrics", startTimestamp: n, endTimestamp: n + r }, i = Ra(t.target); i && (o.attributes = { "ui.component_name": i }), e.startChild(o) } } }) } function a_(e, t) { if (Xb() && ds) { const n = function(e, t) { return n = ({ metric: n }) => { if (void 0 === n.value) return; const r = n.entries.find(e => e.duration === n.value && void 0 !== s_[e.name]), o = Uc(); if (!r || !o) return; const i = s_[r.name], a = o.getOptions(), s = Qb(ds + r.startTime), c = Qb(n.value), u = void 0 !== r.interactionId ? e[r.interactionId] : void 0; if (void 0 === u) return; const { routeName: l, parentContext: f, activeTransaction: d, user: p, replayId: h } = u, m = void 0 !== p ? p.email || p.id || p.ip_address : void 0, g = void 0 !== d ? d.getProfileId() : void 0, y = new Ul({ startTimestamp: s, endTimestamp: s + c, op: `ui.interaction.${i}`, name: Pa(r.target), attributes: { release: a.release, environment: a.environment, transaction: l, ...void 0 !== m && "" !== m ? { user: m } : {}, ...void 0 !== g ? { profile_id: g } : {}, ...void 0 !== h ? { replay_id: h } : {} }, exclusiveTime: n.value, measurements: { inp: { value: n.value, unit: "millisecond" } } }), v = function(e, t, n) { if (!Sl(t)) return !1; let r; return r = void 0 !== e && "function" == typeof t.tracesSampler ? t.tracesSampler({ transactionContext: e, name: e.name, parentSampled: e.parentSampled, attributes: { ...e.data, ...e.attributes }, location: Ip.location }) : void 0 !== e && void 0 !== e.sampled ? e.sampled : void 0 !== t.tracesSampleRate ? t.tracesSampleRate : 1, Vl(r) ? !0 === r ? n : !1 === r ? 0 : r * n : (Tp && Fa.warn("[Tracing] Discarding interaction span because of invalid sample rate."), !1) }(f, a, t); if (v && Math.random() < v) { const e = y ? function(e, t) { const n = { sent_at: (new Date).toISOString() }; return t && (n.dsn = _u(t)), Eu(n, e.map(Yb)) }([y], o.getDsn()) : void 0, t = o && o.getTransport(); return void(t && e && t.send(e).then(null, e => { Tp && Fa.error("Error while sending interaction:", e) })) } }, lh("inp", n, uh, th); var n }(e, t); return () => { n() } } return () => {} } const s_ = { click: "click", pointerdown: "click", pointerup: "click", mousedown: "click", mouseup: "click", touchstart: "click", touchend: "click", mouseover: "hover", mouseout: "hover", mouseenter: "hover", mouseleave: "hover", pointerover: "hover", pointerout: "hover", pointerenter: "hover", pointerleave: "hover", dragstart: "drag", dragend: "drag", drag: "drag", dragenter: "drag", dragleave: "drag", dragover: "drag", drop: "drag", keydown: "press", keyup: "press", keypress: "press", input: "press" }; function c_(e) { const t = Xb(); if (!t || !Ip.performance.getEntries || !ds) return; Tp && Fa.log("[Tracing] Adding & adjusting spans using Performance API"); const n = Qb(ds), r = t.getEntries(), { op: o, start_timestamp: i } = Us(e); if (r.slice(t_).forEach(t => { const r = Qb(t.startTime), o = Qb(t.duration); if (!("navigation" === e.op && i && n + r < i)) switch (t.entryType) { case "navigation": ! function(e, t, n) { ["unloadEvent", "redirect", "domContentLoadedEvent", "loadEvent", "connect"].forEach(r => { u_(e, t, r, n) }), u_(e, t, "secureConnection", n, "TLS/SSL", "connectEnd"), u_(e, t, "fetch", n, "cache", "domainLookupStart"), u_(e, t, "domainLookup", n, "DNS"), function(e, t, n) { t.responseEnd && (Kb(e, { op: "browser", origin: "auto.browser.browser.metrics", description: "request", startTimestamp: n + Qb(t.requestStart), endTimestamp: n + Qb(t.responseEnd) }), Kb(e, { op: "browser", origin: "auto.browser.browser.metrics", description: "response", startTimestamp: n + Qb(t.responseStart), endTimestamp: n + Qb(t.responseEnd) })) }(e, t, n) }(e, t, n); break; case "mark": case "paint": case "measure": { ! function(e, t, n, r, o) { const i = o + n, a = i + r; Kb(e, { description: t.name, endTimestamp: a, op: t.entryType, origin: "auto.resource.browser.metrics", startTimestamp: i }) }(e, t, r, o, n); const i = Dp(), a = t.startTime < i.firstHiddenTime; "first-paint" === t.name && a && (Tp && Fa.log("[Measurements] Adding FP"), n_.fp = { value: t.startTime, unit: "millisecond" }), "first-contentful-paint" === t.name && a && (Tp && Fa.log("[Measurements] Adding FCP"), n_.fcp = { value: t.startTime, unit: "millisecond" }); break } case "resource": ! function(e, t, n, r, o, i) { if ("xmlhttprequest" === t.initiatorType || "fetch" === t.initiatorType) return; const a = Dd(n), s = {}; l_(s, t, "transferSize", "http.response_transfer_size"), l_(s, t, "encodedBodySize", "http.response_content_length"), l_(s, t, "decodedBodySize", "http.decoded_response_content_length"), "renderBlockingStatus" in t && (s["resource.render_blocking_status"] = t.renderBlockingStatus); a.protocol && (s["url.scheme"] = a.protocol.split(":").pop()); a.host && (s["server.address"] = a.host); s["url.same_origin"] = n.includes(Ip.location.origin); const c = i + r, u = c + o; Kb(e, { description: n.replace(Ip.location.origin, ""), endTimestamp: u, op: t.initiatorType ? `resource.${t.initiatorType}` : "resource.other", origin: "auto.resource.browser.metrics", startTimestamp: c, data: s }) }(e, t, t.name, r, o, n) } }), t_ = Math.max(r.length - 1, 0), function(e) { const t = Ip.navigator; if (!t) return; const n = t.connection; n && (n.effectiveType && e.setTag("effectiveConnectionType", n.effectiveType), n.type && e.setTag("connectionType", n.type), Jb(n.rtt) && (n_["connection.rtt"] = { value: n.rtt, unit: "millisecond" })); Jb(t.deviceMemory) && e.setTag("deviceMemory", `${t.deviceMemory} GB`); Jb(t.hardwareConcurrency) && e.setTag("hardwareConcurrency", String(t.hardwareConcurrency)) }(e), "pageload" === o) { ! function(e) { const t = Pp(); if (!t) return; const { responseStart: n, requestStart: r } = t; r <= n && (Tp && Fa.log("[Measurements] Adding TTFB Request Time"), e["ttfb.requestTime"] = { value: n - r, unit: "millisecond" }) }(n_), ["fcp", "fp", "lcp"].forEach(e => { if (!n_[e] || !i || n >= i) return; const t = n_[e].value, r = n + Qb(t), o = Math.abs(1e3 * (r - i)), a = o - t; Tp && Fa.log(`[Measurements] Normalized ${e} from ${t} to ${o} (${a})`), n_[e].value = o }); const t = n_["mark.fid"]; t && n_.fid && (Kb(e, { description: "first input delay", endTimestamp: t.value + Qb(n_.fid.value), op: "ui.action", origin: "auto.ui.browser.metrics", startTimestamp: t.value }), delete n_["mark.fid"]), "fcp" in n_ || delete n_.cls, Object.keys(n_).forEach(e => { Sf(e, n_[e].value, n_[e].unit) }), function(e) { Zb && (Tp && Fa.log("[Measurements] Adding LCP Data"), Zb.element && e.setTag("lcp.element", Pa(Zb.element)), Zb.id && e.setTag("lcp.id", Zb.id), Zb.url && e.setTag("lcp.url", Zb.url.trim().slice(0, 200)), e.setTag("lcp.size", Zb.size)); e_ && e_.sources && (Tp && Fa.log("[Measurements] Adding CLS Data"), e_.sources.forEach((t, n) => e.setTag(`cls.source.${n+1}`, Pa(t.node)))) }(e) } Zb = void 0, e_ = void 0, n_ = {} } function u_(e, t, n, r, o, i) { const a = i ? t[i] : t[`${n}End`], s = t[`${n}Start`]; s && a && Kb(e, { op: "browser", origin: "auto.browser.browser.metrics", description: o || n, startTimestamp: r + Qb(s), endTimestamp: r + Qb(a) }) } function l_(e, t, n, r) { const o = t[n]; null != o && o < 2147483647 && (e[r] = o) } function f_(e, t, n, r, o = "auto.http.browser") { if (!Sl() || !e.fetchData) return; const i = t(e.fetchData.url); if (e.endTimestamp && i) { const t = e.fetchData.__span; if (!t) return; const n = r[t]; return void(n && (! function(e, t) { if (t.response) { Fl(e, t.response.status); const n = t.response && t.response.headers && t.response.headers.get("content-length"); if (n) { const t = parseInt(n); t > 0 && e.setAttribute("http.response_content_length", t) } } else t.error && e.setStatus("internal_error"); e.end() }(n, e), delete r[t])) } const a = $c(), s = Uc(), { method: c, url: u } = e.fetchData, l = function(e) { try { return new URL(e).href } catch (e) { return } }(u), f = l ? Dd(l).host : void 0, d = i ? kl({ name: `${c} ${u}`, onlyIfParent: !0, attributes: { url: u, type: "fetch", "http.method": c, "http.url": l, "server.address": f, [Hu]: o }, op: "http.client" }) : void 0; if (d && (e.fetchData.__span = d.spanContext().spanId, r[d.spanContext().spanId] = d), n(e.fetchData.url) && s) { const t = e.args[0]; e.args[1] = e.args[1] || {}; const n = e.args[1]; n.headers = function(e, t, n, r, o) { const i = o || n.getSpan(), a = rc(), { traceId: s, spanId: c, sampled: u, dsc: l } = { ...a.getPropagationContext(), ...n.getPropagationContext() }, f = i ? Ls(i) : Ms(s, c, u), d = Ps(l || (i ? Hs(i) : $s(s, t, n))), p = r.headers || ("undefined" != typeof Request && Sa(e, Request) ? e.headers : void 0); if (p) { if ("undefined" != typeof Headers && Sa(p, Headers)) { const e = new Headers(p); return e.append("sentry-trace", f), d && e.append(Es, d), e } if (Array.isArray(p)) { const e = [...p, ["sentry-trace", f]]; return d && e.push([Es, d]), e } { const e = "baggage" in p ? p.baggage : void 0, t = []; return Array.isArray(e) ? t.push(...e) : e && t.push(e), d && t.push(d), { ...p, "sentry-trace": f, baggage: t.length > 0 ? t.join(",") : void 0 } } } return { "sentry-trace": f, baggage: d } }(t, s, a, n, d) } return d } const d_ = ["localhost", /^\/(?!\/)/], p_ = { traceFetch: !0, traceXHR: !0, enableHTTPTimings: !0, tracingOrigins: d_, tracePropagationTargets: d_ }; function h_(e) { const { traceFetch: t, traceXHR: n, tracePropagationTargets: r, tracingOrigins: o, shouldCreateSpanForRequest: i, enableHTTPTimings: a } = { traceFetch: p_.traceFetch, traceXHR: p_.traceXHR, ...e }, s = "function" == typeof i ? i : e => !0, c = e => function(e, t) { return Ha(e, t || d_) }(e, r || o), u = {}; t && Pd(e => { const t = f_(e, s, c, u); if (t) { const n = y_(e.fetchData.url), r = n ? Dd(n).host : void 0; t.setAttributes({ "http.url": n, "server.address": r }) } a && t && m_(t) }), n && xd(e => { const t = function(e, t, n, r) { const o = e.xhr, i = o && o[Td]; if (!Sl() || !o || o.__sentry_own_request__ || !i) return; const a = t(i.url); if (e.endTimestamp && a) { const e = o.__sentry_xhr_span_id__; if (!e) return; const t = r[e]; return void(t && void 0 !== i.status_code && (Fl(t, i.status_code), t.end(), delete r[e])) } const s = $c(), c = rc(), u = y_(i.url), l = u ? Dd(u).host : void 0, f = a ? kl({ name: `${i.method} ${i.url}`, onlyIfParent: !0, attributes: { type: "xhr", "http.method": i.method, "http.url": u, url: i.url, "server.address": l, [Hu]: "auto.http.browser" }, op: "http.client" }) : void 0; f && (o.__sentry_xhr_span_id__ = f.spanContext().spanId, r[o.__sentry_xhr_span_id__] = f); const d = Uc(); if (o.setRequestHeader && n(i.url) && d) { const { traceId: e, spanId: t, sampled: n, dsc: r } = { ...c.getPropagationContext(), ...s.getPropagationContext() }; ! function(e, t, n) { try { e.setRequestHeader("sentry-trace", t), n && e.setRequestHeader(Es, n) } catch (e) {} }(o, f ? Ls(f) : Ms(e, t, n), Ps(r || (f ? Hs(f) : $s(e, d, s)))) } return f }(e, s, c, u); a && t && m_(t) }) } function m_(e) { const { url: t } = Us(e).data || {}; if (!t || "string" != typeof t) return; const n = rh("resource", ({ entries: r }) => { r.forEach(r => { if (function(e) { return "resource" === e.entryType && "initiatorType" in e && "string" == typeof e.nextHopProtocol && ("fetch" === e.initiatorType || "xmlhttprequest" === e.initiatorType) }(r) && r.name.endsWith(t)) { (function(e) { const { name: t, version: n } = function(e) { let t = "unknown", n = "unknown", r = ""; for (const o of e) { if ("/" === o) { [t, n] = e.split("/"); break } if (!isNaN(Number(o))) { t = "h" === r ? "http" : r, n = e.split(r)[1]; break } r += o } r === e && (t = r); return { name: t, version: n } }(e.nextHopProtocol), r = []; if (r.push(["network.protocol.version", n], ["network.protocol.name", t]), !ds) return r; return [...r, ["http.request.redirect_start", g_(e.redirectStart)], ["http.request.fetch_start", g_(e.fetchStart)], ["http.request.domain_lookup_start", g_(e.domainLookupStart)], ["http.request.domain_lookup_end", g_(e.domainLookupEnd)], ["http.request.connect_start", g_(e.connectStart)], ["http.request.secure_connection_start", g_(e.secureConnectionStart)], ["http.request.connection_end", g_(e.connectEnd)], ["http.request.request_start", g_(e.requestStart)], ["http.request.response_start", g_(e.responseStart)], ["http.request.response_end", g_(e.responseEnd)] ] })(r).forEach(t => e.setAttribute(...t)), setTimeout(n) } }) }) } function g_(e = 0) { return ((ds || performance.timeOrigin) + e) / 1e3 } function y_(e) { try { return new URL(e, Ip.location.origin).href } catch (e) { return } } const v_ = { ...$l, markBackgroundTransactions: !0, routingInstrumentation: function(e, t = !0, n = !0) { if (!Ip || !Ip.location) return void(Tp && Fa.warn("Could not initialize routing instrumentation due to invalid location")); let r, o = Ip.location.href; t && (r = e({ name: Ip.location.pathname, startTimestamp: ds ? ds / 1e3 : void 0, op: "pageload", origin: "auto.pageload.browser", metadata: { source: "url" } })), n && hd(({ to: t, from: n }) => { void 0 === n && o && -1 !== o.indexOf(t) ? o = void 0 : n !== t && (o = void 0, r && (Tp && Fa.log(`[Tracing] Finishing current transaction with op: ${r.op}`), r.end()), r = e({ name: Ip.location.pathname, op: "navigation", origin: "auto.navigation.browser", metadata: { source: "url" } })) }) }, startTransactionOnLocationChange: !0, startTransactionOnPageLoad: !0, enableLongTask: !0, enableInp: !1, interactionsSampleRate: 1, _experiments: {}, ...p_ }; class b_ { constructor(e) { this.name = "BrowserTracing", this._hasSetTracePropagationTargets = !1, Ql(), Tp && (this._hasSetTracePropagationTargets = !(!e || !e.tracePropagationTargets && !e.tracingOrigins)), this.options = { ...v_, ...e }, void 0 !== this.options._experiments.enableLongTask && (this.options.enableLongTask = this.options._experiments.enableLongTask), e && !e.tracePropagationTargets && e.tracingOrigins && (this.options.tracePropagationTargets = e.tracingOrigins), this._collectWebVitals = r_(), this._interactionIdToRouteNameMapping = {}, this.options.enableInp && a_(this._interactionIdToRouteNameMapping, this.options.interactionsSampleRate), this.options.enableLongTask && o_(), this.options._experiments.enableInteractions && i_(), this._latestRoute = { name: void 0, context: void 0 } } setupOnce(e, t) { this._getCurrentHub = t; const n = t().getClient(), r = n && n.getOptions(), { routingInstrumentation: o, startTransactionOnLocationChange: i, startTransactionOnPageLoad: a, markBackgroundTransactions: s, traceFetch: c, traceXHR: u, shouldCreateSpanForRequest: l, enableHTTPTimings: f, _experiments: d } = this.options, p = r && r.tracePropagationTargets, h = p || this.options.tracePropagationTargets; Tp && this._hasSetTracePropagationTargets && p && Fa.warn("[Tracing] The `tracePropagationTargets` option was set in the BrowserTracing integration and top level `Sentry.init`. The top level `Sentry.init` value is being used."), o(e => { const n = this._createRouteTransaction(e); return this.options._experiments.onStartRouteTransaction && this.options._experiments.onStartRouteTransaction(n, e, t), n }, a, i), s && Vb(), d.enableInteractions && this._registerInteractionListener(), this.options.enableInp && this._registerInpInteractionListener(), h_({ traceFetch: c, traceXHR: u, tracePropagationTargets: h, shouldCreateSpanForRequest: l, enableHTTPTimings: f }) } _createRouteTransaction(e) { if (!this._getCurrentHub) return void(Tp && Fa.warn(`[Tracing] Did not create ${e.op} transaction because _getCurrentHub is invalid.`)); const t = this._getCurrentHub(), { beforeNavigate: n, idleTimeout: r, finalTimeout: o, heartbeatInterval: i } = this.options, a = "pageload" === e.op; let s; if (a) { const t = a ? __("sentry-trace") : "", n = a ? __("baggage") : void 0, { traceId: r, dsc: o, parentSpanId: i, sampled: c } = Rs(t, n); s = { traceId: r, parentSpanId: i, parentSampled: c, ...e, metadata: { ...e.metadata, dynamicSamplingContext: o }, trimEnd: !0 } } else s = { trimEnd: !0, ...e }; const c = "function" == typeof n ? n(s) : s, u = void 0 === c ? { ...s, sampled: !1 } : c; u.metadata = u.name !== s.name ? { ...u.metadata, source: "custom" } : u.metadata, this._latestRoute.name = u.name, this._latestRoute.context = u, !1 === u.sampled && Tp && Fa.log(`[Tracing] Will not send ${u.op} transaction because of beforeNavigate.`), Tp && Fa.log(`[Tracing] Starting ${u.op} transaction on scope`); const { location: l } = Ip, f = Kl(t, u, r, o, !0, { location: l }, i, a); return a && Ip.document && (Ip.document.addEventListener("readystatechange", () => { ["interactive", "complete"].includes(Ip.document.readyState) && f.sendAutoFinishSignal() }), ["interactive", "complete"].includes(Ip.document.readyState) && f.sendAutoFinishSignal()), f.registerBeforeFinishCallback(e => { this._collectWebVitals(), c_(e) }), f } _registerInteractionListener() { let e; const t = () => { const { idleTimeout: t, finalTimeout: n, heartbeatInterval: r } = this.options, o = "ui.action.click", i = gl(); if (i && i.op && ["navigation", "pageload"].includes(i.op)) return void(Tp && Fa.warn(`[Tracing] Did not create ${o} transaction because a pageload or navigation transaction is in progress.`)); if (e && (e.setFinishReason("interactionInterrupted"), e.end(), e = void 0), !this._getCurrentHub) return void(Tp && Fa.warn(`[Tracing] Did not create ${o} transaction because _getCurrentHub is invalid.`)); if (!this._latestRoute.name) return void(Tp && Fa.warn(`[Tracing] Did not create ${o} transaction because _latestRouteName is missing.`)); const a = this._getCurrentHub(), { location: s } = Ip, c = { name: this._latestRoute.name, op: o, trimEnd: !0, data: { [Uu]: this._latestRoute.context ? S_(this._latestRoute.context) : "url" } }; e = Kl(a, c, t, n, !0, { location: s }, r) }; ["click"].forEach(e => { Ip.document && addEventListener(e, t, { once: !1, capture: !0 }) }) } _registerInpInteractionListener() { const e = ({ entries: e }) => { const t = Uc(), n = void 0 !== t && void 0 !== t.getIntegrationByName ? t.getIntegrationByName("Replay") : void 0, r = void 0 !== n ? n.getReplayId() : void 0, o = gl(), i = $c(), a = void 0 !== i ? i.getUser() : void 0; e.forEach(e => { if (function(e) { return "duration" in e }(e)) { const t = e.interactionId; if (void 0 === t) return; const n = this._interactionIdToRouteNameMapping[t], i = e.duration, s = e.startTime, c = Object.keys(this._interactionIdToRouteNameMapping), u = c.length > 0 ? c.reduce((e, t) => this._interactionIdToRouteNameMapping[e].duration < this._interactionIdToRouteNameMapping[t].duration ? e : t) : void 0; if ("first-input" === e.entryType) { if (c.map(e => this._interactionIdToRouteNameMapping[e]).some(e => e.duration === i && e.startTime === s)) return } if (!t) return; if (n) n.duration = Math.max(n.duration, i); else if (c.length < 10 || void 0 === u || i > this._interactionIdToRouteNameMapping[u].duration) { const e = this._latestRoute.name, n = this._latestRoute.context; e && n && (u && Object.keys(this._interactionIdToRouteNameMapping).length >= 10 && delete this._interactionIdToRouteNameMapping[u], this._interactionIdToRouteNameMapping[t] = { routeName: e, duration: i, parentContext: n, user: a, activeTransaction: o, replayId: r, startTime: s }) } } }) }; rh("event", e), rh("first-input", e) } } function __(e) { const t = ja(`meta[name=${e}]`); return t ? t.getAttribute("content") : void 0 } function S_(e) { const t = e.attributes && e.attributes[Uu], n = e.data && e.data[Uu], r = e.metadata && e.metadata.source; return t || n || r } const w_ = { ...$l, instrumentNavigation: !0, instrumentPageLoad: !0, markBackgroundSpan: !0, enableLongTask: !0, enableInp: !1, interactionsSampleRate: 1, _experiments: {}, ...p_ }, O_ = (e = {}) => { const t = !!Tp && !(!e.tracePropagationTargets && !e.tracingOrigins); Ql(), !e.tracePropagationTargets && e.tracingOrigins && (e.tracePropagationTargets = e.tracingOrigins); const n = { ...w_, ...e }, r = r_(), o = {}; n.enableInp && a_(o, n.interactionsSampleRate), n.enableLongTask && o_(), n._experiments.enableInteractions && i_(); const i = { name: void 0, context: void 0 }; function a(e) { const t = nc(), { beforeStartSpan: o, idleTimeout: a, finalTimeout: s, heartbeatInterval: c } = n, u = "pageload" === e.op; let l; if (u) { const t = u ? T_("sentry-trace") : "", n = u ? T_("baggage") : void 0, { traceId: r, dsc: o, parentSpanId: i, sampled: a } = Rs(t, n); l = { traceId: r, parentSpanId: i, parentSampled: a, ...e, metadata: { ...e.metadata, dynamicSamplingContext: o }, trimEnd: !0 } } else l = { trimEnd: !0, ...e }; const f = o ? o(l) : l; f.metadata = f.name !== l.name ? { ...f.metadata, source: "custom" } : f.metadata, i.name = f.name, i.context = f, !1 === f.sampled && Tp && Fa.log(`[Tracing] Will not send ${f.op} transaction because of beforeNavigate.`), Tp && Fa.log(`[Tracing] Starting ${f.op} transaction on scope`); const { location: d } = Ip, p = Kl(t, f, a, s, !0, { location: d }, c, u); return u && Ip.document && (Ip.document.addEventListener("readystatechange", () => { ["interactive", "complete"].includes(Ip.document.readyState) && p.sendAutoFinishSignal() }), ["interactive", "complete"].includes(Ip.document.readyState) && p.sendAutoFinishSignal()), p.registerBeforeFinishCallback(e => { r(), c_(e) }), p } return { name: "BrowserTracing", setupOnce: () => {}, afterAllSetup(e) { const r = e.getOptions(), { markBackgroundSpan: s, traceFetch: c, traceXHR: u, shouldCreateSpanForRequest: l, enableHTTPTimings: f, _experiments: d } = n, p = r && r.tracePropagationTargets, h = p || n.tracePropagationTargets; let m; Tp && t && p && Fa.warn("[Tracing] The `tracePropagationTargets` option was set in the BrowserTracing integration and top level `Sentry.init`. The top level `Sentry.init` value is being used."); let g = Ip.location && Ip.location.href; if (e.on && (e.on("startNavigationSpan", e => { m && (Tp && Fa.log(`[Tracing] Finishing current transaction with op: ${Us(m).op}`), m.end()), m = a({ op: "navigation", ...e }) }), e.on("startPageLoadSpan", e => { m && (Tp && Fa.log(`[Tracing] Finishing current transaction with op: ${Us(m).op}`), m.end()), m = a({ op: "pageload", ...e }) })), n.instrumentPageLoad && e.emit && Ip.location) { const t = { name: Ip.location.pathname, startTimestamp: ds ? ds / 1e3 : void 0, origin: "auto.pageload.browser", attributes: { [Uu]: "url" } }; E_(e, t) } n.instrumentNavigation && e.emit && Ip.location && hd(({ to: t, from: n }) => { if (void 0 === n && g && -1 !== g.indexOf(t)) g = void 0; else if (n !== t) { g = void 0; const t = { name: Ip.location.pathname, origin: "auto.navigation.browser", attributes: { [Uu]: "url" } }; k_(e, t) } }), s && Vb(), d.enableInteractions && function(e, t) { let n; const r = () => { const { idleTimeout: r, finalTimeout: o, heartbeatInterval: i } = e, a = "ui.action.click", s = gl(); if (s && s.op && ["navigation", "pageload"].includes(s.op)) return void(Tp && Fa.warn(`[Tracing] Did not create ${a} transaction because a pageload or navigation transaction is in progress.`)); if (n && (n.setFinishReason("interactionInterrupted"), n.end(), n = void 0), !t.name) return void(Tp && Fa.warn(`[Tracing] Did not create ${a} transaction because _latestRouteName is missing.`)); const { location: c } = Ip, u = { name: t.name, op: a, trimEnd: !0, data: { [Uu]: t.context ? I_(t.context) : "url" } }; n = Kl(nc(), u, r, o, !0, { location: c }, i) }; ["click"].forEach(e => { Ip.document && addEventListener(e, r, { once: !1, capture: !0 }) }) }(n, i), n.enableInp && function(e, t) { const n = ({ entries: n }) => { const r = Uc(), o = void 0 !== r && void 0 !== r.getIntegrationByName ? r.getIntegrationByName("Replay") : void 0, i = void 0 !== o ? o.getReplayId() : void 0, a = gl(), s = $c(), c = void 0 !== s ? s.getUser() : void 0; n.forEach(n => { if (function(e) { return "duration" in e }(n)) { const r = n.interactionId; if (void 0 === r) return; const o = e[r], s = n.duration, u = n.startTime, l = Object.keys(e), f = l.length > 0 ? l.reduce((t, n) => e[t].duration < e[n].duration ? t : n) : void 0; if ("first-input" === n.entryType) { if (l.map(t => e[t]).some(e => e.duration === s && e.startTime === u)) return } if (!r) return; if (o) o.duration = Math.max(o.duration, s); else if (l.length < x_ || void 0 === f || s > e[f].duration) { const n = t.name, o = t.context; n && o && (f && Object.keys(e).length >= x_ && delete e[f], e[r] = { routeName: n, duration: s, parentContext: o, user: c, activeTransaction: a, replayId: i, startTime: u }) } } }) }; rh("event", n), rh("first-input", n) }(o, i), h_({ traceFetch: c, traceXHR: u, tracePropagationTargets: h, shouldCreateSpanForRequest: l, enableHTTPTimings: f }) }, options: n } }; function E_(e, t) { if (!e.emit) return; e.emit("startPageLoadSpan", t); const n = Tl(); return "pageload" === (n && Us(n).op) ? n : void 0 } function k_(e, t) { if (!e.emit) return; e.emit("startNavigationSpan", t); const n = Tl(); return "navigation" === (n && Us(n).op) ? n : void 0 } function T_(e) { const t = ja(`meta[name=${e}]`); return t ? t.getAttribute("content") : void 0 } const x_ = 10; function I_(e) { const t = e.attributes && e.attributes[Uu], n = e.data && e.data[Uu], r = e.metadata && e.metadata.source; return t || n || r } const P_ = 100, A_ = 5e3, C_ = 36e5; function j_(e, t) { es && Fa.info(`[Offline]: ${e}`, t) } function R_(e) { return t => { const n = e(t), r = t.createStore ? t.createStore(t) : void 0; let o, i = A_; function a(e, n, r) { return ! function(e, t) { return Tu(e, (e, n) => t.includes(n)) }(e, ["replay_event", "replay_recording", "client_report"]) && (!t.shouldStore || t.shouldStore(e, n, r)) } function s(e) { r && (o && clearTimeout(o), o = setTimeout(async () => { o = void 0; const e = await r.pop(); e && (j_("Attempting to send previously queued event"), u(e).catch(e => { j_("Failed to retry sending", e) })) }, e), "number" != typeof o && o.unref && o.unref()) } function c() { o || (s(i), i = Math.min(2 * i, C_)) } async function u(e) { try { const t = await n.send(e); let r = P_; if (t) if (t.headers && t.headers["retry-after"]) r = ef(t.headers["retry-after"]); else if ((t.statusCode || 0) >= 400) return t; return s(r), i = A_, t } catch (t) { if (r && await a(e, t, i)) return await r.insert(e), c(), j_("Error sending. Event queued", t), {}; throw t } } return t.flushAtStartup && c(), { send: u, flush: e => n.flush(e) } } } function M_(e) { return new Promise((t, n) => { e.oncomplete = e.onsuccess = () => t(e.result), e.onabort = e.onerror = () => n(e.error) }) } function D_(e) { return M_(e.getAllKeys()) } function N_(e) { let t; function n() { return null == t && (t = function(e, t) { const n = indexedDB.open(e); n.onupgradeneeded = () => n.result.createObjectStore(t); const r = M_(n); return e => r.then(n => e(n.transaction(t, "readwrite").objectStore(t))) }(e.dbName || "sentry-offline", e.storeName || "queue")), t } return { insert: async t => { try { const r = await Iu(t, e.textEncoder); await function(e, t, n) { return e(e => D_(e).then(r => { if (!(r.length >= n)) return e.put(t, Math.max(...r, 0) + 1), M_(e.transaction) })) }(n(), r, e.maxQueueSize || 30) } catch (e) {} }, pop: async () => { try { const t = await function(e) { return e(e => D_(e).then(t => { if (0 !== t.length) return M_(e.get(t[0])).then(n => (e.delete(t[0]), M_(e.transaction).then(() => n))) })) }(n()); if (t) return function(e, t, n) { let r = "string" == typeof e ? t.encode(e) : e; function o(e) { const t = r.subarray(0, e); return r = r.subarray(e + 1), t } function i() { let e = r.indexOf(10); return e < 0 && (e = r.length), JSON.parse(n.decode(o(e))) } const a = i(), s = []; for (; r.length;) { const e = i(), t = "number" == typeof e.length ? e.length : void 0; s.push([e, t ? o(t) : i()]) } return [a, s] }(t, e.textEncoder || new TextEncoder, e.textDecoder || new TextDecoder) } catch (e) {} } } } function L_(e) { return function(e) { return t => e({ ...t, createStore: N_ }) }(R_(e)) } const F_ = 1e6, B_ = String(0), U_ = "main"; let G_ = "", $_ = "", H_ = "", z_ = wf.navigator && wf.navigator.userAgent || "", q_ = ""; const W_ = wf.navigator && wf.navigator.language || wf.navigator && wf.navigator.languages && wf.navigator.languages[0] || ""; const V_ = wf.navigator && wf.navigator.userAgentData; var Y_; function J_(e) { return function(e) { return !("thread_metadata" in e) }(e) ? function(e) { let t, n = 0; const r = { samples: [], stacks: [], frames: [], thread_metadata: { [B_]: { name: U_ } } }; if (!e.samples.length) return r; const o = e.samples[0].timestamp, i = "number" == typeof performance.timeOrigin ? performance.timeOrigin : ds || 0, a = i - (ds || i); for (let i = 0; i < e.samples.length; i++) { const s = e.samples[i]; if (void 0 === s.stackId) { void 0 === t && (t = n, r.stacks[t] = [], n++), r.samples[i] = { elapsed_since_start_ns: ((s.timestamp + a - o) * F_).toFixed(0), stack_id: t, thread_id: B_ }; continue } let c = e.stacks[s.stackId]; const u = []; for (; c;) { u.push(c.frameId); const t = e.frames[c.frameId]; void 0 === r.frames[c.frameId] && (r.frames[c.frameId] = { function: t.name, abs_path: "number" == typeof t.resourceId ? e.resources[t.resourceId] : void 0, lineno: t.line, colno: t.column }), c = void 0 === c.parentId ? void 0 : e.stacks[c.parentId] } const l = { elapsed_since_start_ns: ((s.timestamp + a - o) * F_).toFixed(0), stack_id: n, thread_id: B_ }; r.stacks[n] = u, r.samples[i] = l, n++ } return r }(e) : e } function K_(e, t, n, r) { if ("transaction" !== r.type) throw new TypeError("Profiling events may only be attached to transactions, this should never occur."); if (null == n) throw new TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${n} instead.`); const o = function(e) { const t = e && e.contexts && e.contexts.trace && e.contexts.trace.trace_id; return "string" == typeof t && 32 !== t.length && xf && Fa.log(`[Profiling] Invalid traceId: ${t} on profiled event`), "string" != typeof t ? "" : t }(r), i = J_(n), a = t || ("number" == typeof r.start_timestamp ? 1e3 * r.start_timestamp : Date.now()), s = "number" == typeof r.timestamp ? 1e3 * r.timestamp : Date.now(); return { event_id: e, timestamp: new Date(a).toISOString(), platform: "javascript", version: "1", release: r.release || "", environment: r.environment || Za, runtime: { name: "javascript", version: wf.navigator.userAgent }, os: { name: G_, version: $_, build_number: z_ }, device: { locale: W_, model: q_, manufacturer: z_, architecture: H_, is_emulator: !1 }, debug_meta: { images: Z_(n.resources) }, profile: i, transactions: [{ name: r.transaction || "", id: r.event_id || ts(), trace_id: o, active_thread_id: B_, relative_start_ns: "0", relative_end_ns: (1e6 * (s - a)).toFixed(0) }] } } function Q_(e) { return "pageload" === e.op } "object" == typeof(Y_ = V_) && null !== Y_ && "getHighEntropyValues" in Y_ && V_.getHighEntropyValues(["architecture", "model", "platform", "platformVersion", "fullVersionList"]).then(e => { if (G_ = e.platform || "", H_ = e.architecture || "", q_ = e.model || "", $_ = e.platformVersion || "", e.fullVersionList && e.fullVersionList.length > 0) { const t = e.fullVersionList[e.fullVersionList.length - 1]; z_ = `${t.brand} ${t.version}` } }).catch(e => {}); const X_ = new WeakMap; function Z_(e) { const t = Ea._sentryDebugIds; if (!t) return []; const n = Uc(), r = n && n.getOptions(), o = r && r.stackParser; if (!o) return []; let i; const a = X_.get(o); a ? i = a : (i = new Map, X_.set(o, i)); const s = Object.keys(t).reduce((e, n) => { let r; const a = i.get(n); a ? r = a : (r = o(n), i.set(n, r)); for (let o = r.length - 1; o >= 0; o--) { const i = r[o], a = i && i.filename; if (i && a) { e[a] = t[n]; break } } return e }, {}), c = []; for (const t of e) t && s[t] && c.push({ type: "sourcemap", code_file: t, debug_id: s[t] }); return c } let eS = !1; const tS = 3e4; function nS(e) { if (eS) return xf && Fa.log("[Profiling] Profiling has been disabled for the duration of the current user session."), !1; if (!e.isRecording()) return xf && Fa.log("[Profiling] Discarding profile because transaction was not sampled."), !1; const t = Uc(), n = t && t.getOptions(); if (!n) return xf && Fa.log("[Profiling] Profiling disabled, no options found."), !1; const r = n.profilesSampleRate; if (!("number" != typeof(o = r) && "boolean" != typeof o || "number" == typeof o && isNaN(o) ? (xf && Fa.warn(`[Profiling] Invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(o)} of type ${JSON.stringify(typeof o)}.`), 0) : !0 === o || !1 === o || !(o < 0 || o > 1) || (xf && Fa.warn(`[Profiling] Invalid sample rate. Sample rate must be between 0 and 1. Got ${o}.`), 0))) return xf && Fa.warn("[Profiling] Discarding profile because of invalid sample rate."), !1; var o; if (!r) return xf && Fa.log("[Profiling] Discarding profile because a negative sampling decision was inherited or profileSampleRate is set to 0"), !1; return !!(!0 === r || Math.random() < r) || (xf && Fa.log(`[Profiling] Discarding profile because it's not included in the random sample (sampling rate = ${Number(r)})`), !1) } function rS(e, t, n, r) { return function(e) { return e.samples.length < 2 ? (xf && Fa.log("[Profiling] Discarding profile because it contains less than 2 samples"), !1) : !!e.frames.length || (xf && Fa.log("[Profiling] Discarding profile because it contains no frames"), !1) }(n) ? K_(e, t, n, r) : null } const oS = new Map; function iS(e) { const t = oS.get(e); return t && oS.delete(e), t } function aS(e) { return e ? nS(e) ? sS(e) : e : (xf && Fa.log("[Profiling] Transaction is undefined, skipping profiling"), e) } function sS(e) { let t; Q_(e) && (t = 1e3 * ls()); const n = function() { const e = wf.Profiler; if ("function" != typeof e) return void(xf && Fa.log("[Profiling] Profiling is not supported by this browser, Profiler interface missing on window object.")); const t = Math.floor(tS / 10); try { return new e({ sampleInterval: 10, maxBufferSize: t }) } catch (e) { xf && (Fa.log("[Profiling] Failed to initialize the Profiling constructor, this is likely due to a missing 'Document-Policy': 'js-profiling' header."), Fa.log("[Profiling] Disabling profiling for current user session.")), eS = !0 } }(); if (!n) return e; xf && Fa.log(`[Profiling] started profiling transaction: ${Us(e).description}`); const r = ts(); async function o() { return e && n ? n.stop().then(t => (i && (wf.clearTimeout(i), i = void 0), xf && Fa.log(`[Profiling] stopped profiling of transaction: ${Us(e).description}`), t ? (function(e, t) { if (oS.set(e, t), oS.size > 30) { const e = oS.keys().next().value; oS.delete(e) } }(r, t), null) : (xf && Fa.log(`[Profiling] profiler returned null profile for: ${Us(e).description}`, "this may indicate an overlapping transaction or a call to stopProfiling with a profile title that was never started"), null))).catch(e => (xf && Fa.log("[Profiling] error while stopping profiler:", e), null)) : null } let i = wf.setTimeout(() => { xf && Fa.log("[Profiling] max profile duration elapsed, stopping profiling for:", Us(e).description), o() }, tS); const a = e.end.bind(e); return e.end = function() { return e ? (o().then(() => { e.setContext("profile", { profile_id: r, start_timestamp: t }), a() }, () => { a() }), e) : a() }, e } const cS = "BrowserProfiling", uS = () => ({ name: cS, setupOnce() {}, setup(e) { const t = $c().getTransaction(); t && Q_(t) && nS(t) && sS(t), "function" == typeof e.on ? (e.on("startTransaction", e => { nS(e) && sS(e) }), e.on("beforeEnvelope", e => { if (!oS.size) return; const t = function(e) { const t = []; return Tu(e, (e, n) => { if ("transaction" === n) for (let n = 1; n < e.length; n++) { const r = e[n]; r && r.contexts && r.contexts.profile && r.contexts.profile.profile_id && t.push(e[n]) } }), t }(e); if (!t.length) return; const n = []; for (const e of t) { const t = e && e.contexts, r = t && t.profile && t.profile.profile_id, o = t && t.profile && t.profile.start_timestamp; if ("string" != typeof r) { xf && Fa.log("[Profiling] cannot find profile for a transaction without a profile context"); continue } if (!r) { xf && Fa.log("[Profiling] cannot find profile for a transaction without a profile context"); continue } t && t.profile && delete t.profile; const i = iS(r); if (!i) { xf && Fa.log(`[Profiling] Could not retrieve profile for transaction: ${r}`); continue } const a = rS(r, o, i, e); a && n.push(a) }! function(e, t) { if (!t.length) return e; for (const n of t) e[1].push([{ type: "profile" }, n]) }(e, n) })) : Fa.warn("[Profiling] Client does not support hooks, profiling will be disabled") } }), lS = Xc(cS, uS); let fS = {}; wf.Sentry && wf.Sentry.Integrations && (fS = wf.Sentry.Integrations); const dS = { ...fS, ...vu, ...o }; function pS(e) { return pS = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, pS(e) } function hS(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function mS(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? hS(Object(n), !0).forEach(function(t) { gS(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : hS(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function gS(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != pS(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != pS(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == pS(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var yS; const vS = { beforeSend: function(e, t) { return t.originalException && P.A.send("sentry:action", { action: "sendJSONtoCDN", error: t.originalException.message, stack: t.originalException.stack, name: Object.getPrototypeOf(t.originalException).name, breadcrumbs: e.breadcrumbs, tags: e.tags }, { background: !0 }), null }, initialScope: { tags: { Source: "Content-Script" } } }; function bS() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return _S(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (_S(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, _S(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, _S(f, "constructor", u), _S(u, "constructor", c), c.displayName = "GeneratorFunction", _S(u, o, "GeneratorFunction"), _S(f), _S(f, o, "Generator"), _S(f, r, function() { return this }), _S(f, "toString", function() { return "[object Generator]" }), (bS = function() { return { w: i, m: d } })() } function _S(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } _S = function(e, t, n, r) { function i(t, n) { _S(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, _S(e, t, n, r) } function SS(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function wS() { return wS = function(e) { return function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { SS(i, r, o, a, s, "next", e) } function s(e) { SS(i, r, o, a, s, "throw", e) } a(void 0) }) } }(bS().m(function e(t) { var n; return bS().w(function(e) { for (;;) switch (e.n) { case 0: P.A.send("page:load", { url: t, origin: window.location.origin, hasServiceWorkers: !!((navigator || {}).serviceWorker || {}).controller }, { allTabs: !0, background: !0, ignoreResponse: !0 }).reflect(), I.A.debug("Honey ".concat("18.2.1", " content script is ready. Environment is ").concat("production")), e.n = 2; break; case 1: n = e.v, function() { var e = document.createElement("script"); e.text = "\n (function setSdata() {\n window.sdata = ".concat(JSON.stringify(n), ";\n })();\n "), document.documentElement.appendChild(e) }(); case 2: return e.a(2) } }, e) })), wS.apply(this, arguments) } c().onPossiblyUnhandledRejection(function(e) { return I.A.error(e) }), function() { wS.apply(this, arguments) }(window.location.href), function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; if (yS) throw new Error("Sentry has already been initialized"); e.init(mS(mS({}, t), {}, { dsn: "https://3b4bb33e1dfc432c9ccd9f9ce5a4bd25@o197999.ingest.sentry.io/6008007", release: "".concat("honey-extension", "@").concat("18.2.1"), attachStacktrace: !0, autoSessionTracking: !1 })), yS = e }(i, vS), setTimeout(function() { if ("www.joinhoney.com" === window.location.hostname) { var e = document.querySelector("#messagingEventHandler"); if (e) if (e.getAttribute("si_ext")) P.A.send("si:on", { si_ext: e.getAttribute("si_ext") }, { ignoreResponse: !0, background: !0 }); else new MutationObserver(function() { e.getAttribute("si_ext") && P.A.send("si:on", { si_ext: e.getAttribute("si_ext") }, { ignoreResponse: !0, background: !0 }) }).observe(e, { attributes: !0 }) } }); var OS = { $: l(), acorns: d.A, adbBp: sa.A, ajax: p.A, button: h.A, cartPageFetcher: mi.A, clipboard: m.A, config: g.A, confirmation: S.A, cookies: w.A, device: O.A, experiments: E.A, extensionReview: k.A, i18n: T.A, imageLoader: x.A, honeyPayNow: {}, honeyPayPal: gt.A, launchpad: ca.Ay, logger: I.A, messages: P.A, offers: C.A, optimus: j.A, pageDetector: vt.Ay, popover: yt.A, runtime: _t, savingsController: z.A, stats: he.A, storage: me.A, stores: B.A, tabs: U.A, ui: A.A, user: F.A, userSavingsStats: hi.A, util: f.A, vims: vi.A, websiteComm: aa.A }; P.A.addListener("debug:change", function(e, t) { try { t.active ? window.honey = OS : delete window.honey } catch (e) {} }) }, 70364: (e, t, n) => { var r = n(9144), o = n(82417); e.exports = function(e, t, n) { var i = t && n || 0; "string" == typeof e && (t = "binary" == e ? new Array(16) : null, e = null); var a = (e = e || {}).random || (e.rng || r)(); if (a[6] = 15 & a[6] | 64, a[8] = 63 & a[8] | 128, t) for (var s = 0; s < 16; ++s) t[i + s] = a[s]; return t || o(a) } }, 70481: (e, t, n) => { "use strict"; n.d(t, { Ay: () => d, VH: () => i.A, md: () => f, yo: () => l }); var r = n(25023), o = n(66194), i = n(22195); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = r.o1.update, f = c(c({}, o.A), r.o1); const d = r.Ff }, 70585: (e, t, n) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.default = void 0; var r = s(n(9666)), o = s(n(86146)), i = n(22662), a = n(72097); function s(e) { return e && e.__esModule ? e : { default: e } } const c = { ctaCopy: o.default.string.isRequired, ctaStatus: o.default.string, ctaType: o.default.string, handleCta: o.default.func.isRequired }, u = { footer: { position: "sticky", bottom: 0, padding: "16px 24px", borderTop: `1px solid ${a.Colors.grey400}` } }, l = (0, i.createUseStyles)(u), f = ({ ctaCopy: e, ctaStatus: t, ctaType: n, handleCta: o }) => { const i = l(); return r.default.createElement("div", { className: i.footer }, r.default.createElement(a.Button, { id: "BottomSheetFooterButton", size: 40, buttonType: n, copy: e, isFlexible: !0, status: t, onClick: o })) }; f.propTypes = c, f.defaultProps = { ctaStatus: "", ctaType: "primary" }; t.default = f }, 72097: (e, t, n) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var r = { version: !0, Badge: !0, Button: !0, Breadcrumb: !0, CheckBox: !0, CloseButton: !0, Collapse: !0, Container: !0, Colors: !0, Dropdown: !0, DropdownV2: !0, ActionMenu: !0, DroplistBadge: !0, FlatButton: !0, Footer: !0, FooterLinks: !0, FormInput: !0, FormInputButton: !0, Grid: !0, Gold: !0, HamburgerMenu: !0, Header: !0, HoneyGold: !0, Icon: !0, PayPalToolkitIcon: !0, Image: !0, ListBox: !0, LoadingIcon: !0, Logo: !0, Media: !0, Modal: !0, Notification: !0, NotificationBanner: !0, OptimusBadge: !0, SerpBadge: !0, Popup: !0, Pill: !0, RadioButton: !0, RadioGroup: !0, useScrollToChild: !0, SearchBox: !0, SearchDropdown: !0, SelectionBox: !0, Slider: !0, SkipToContent: !0, StoreLogo: !0, Toggle: !0, Tooltip: !0, ToolTipIcon: !0, useOutsideClick: !0, usePrevious: !0 }; Object.defineProperty(t, "ActionMenu", { enumerable: !0, get: function() { return g.default } }), Object.defineProperty(t, "Badge", { enumerable: !0, get: function() { return a.default } }), Object.defineProperty(t, "Breadcrumb", { enumerable: !0, get: function() { return c.default } }), Object.defineProperty(t, "Button", { enumerable: !0, get: function() { return s.default } }), Object.defineProperty(t, "CheckBox", { enumerable: !0, get: function() { return u.default } }), Object.defineProperty(t, "CloseButton", { enumerable: !0, get: function() { return l.default } }), Object.defineProperty(t, "Collapse", { enumerable: !0, get: function() { return f.default } }), Object.defineProperty(t, "Colors", { enumerable: !0, get: function() { return p.default } }), Object.defineProperty(t, "Container", { enumerable: !0, get: function() { return d.default } }), Object.defineProperty(t, "Dropdown", { enumerable: !0, get: function() { return h.default } }), Object.defineProperty(t, "DropdownV2", { enumerable: !0, get: function() { return m.default } }), Object.defineProperty(t, "DroplistBadge", { enumerable: !0, get: function() { return y.default } }), Object.defineProperty(t, "FlatButton", { enumerable: !0, get: function() { return v.default } }), Object.defineProperty(t, "Footer", { enumerable: !0, get: function() { return b.default } }), Object.defineProperty(t, "FooterLinks", { enumerable: !0, get: function() { return _.default } }), Object.defineProperty(t, "FormInput", { enumerable: !0, get: function() { return S.default } }), Object.defineProperty(t, "FormInputButton", { enumerable: !0, get: function() { return w.default } }), Object.defineProperty(t, "Gold", { enumerable: !0, get: function() { return E.default } }), Object.defineProperty(t, "Grid", { enumerable: !0, get: function() { return O.default } }), Object.defineProperty(t, "HamburgerMenu", { enumerable: !0, get: function() { return k.default } }), Object.defineProperty(t, "Header", { enumerable: !0, get: function() { return T.default } }), Object.defineProperty(t, "HoneyGold", { enumerable: !0, get: function() { return x.default } }), Object.defineProperty(t, "Icon", { enumerable: !0, get: function() { return I.default } }), Object.defineProperty(t, "Image", { enumerable: !0, get: function() { return A.default } }), Object.defineProperty(t, "ListBox", { enumerable: !0, get: function() { return C.default } }), Object.defineProperty(t, "LoadingIcon", { enumerable: !0, get: function() { return j.default } }), Object.defineProperty(t, "Logo", { enumerable: !0, get: function() { return R.default } }), Object.defineProperty(t, "Media", { enumerable: !0, get: function() { return M.default } }), Object.defineProperty(t, "Modal", { enumerable: !0, get: function() { return D.default } }), Object.defineProperty(t, "Notification", { enumerable: !0, get: function() { return N.default } }), Object.defineProperty(t, "NotificationBanner", { enumerable: !0, get: function() { return L.default } }), Object.defineProperty(t, "OptimusBadge", { enumerable: !0, get: function() { return F.default } }), Object.defineProperty(t, "PayPalToolkitIcon", { enumerable: !0, get: function() { return P.default } }), Object.defineProperty(t, "Pill", { enumerable: !0, get: function() { return G.default } }), Object.defineProperty(t, "Popup", { enumerable: !0, get: function() { return U.default } }), Object.defineProperty(t, "RadioButton", { enumerable: !0, get: function() { return $.default } }), Object.defineProperty(t, "RadioGroup", { enumerable: !0, get: function() { return H.default } }), Object.defineProperty(t, "SearchBox", { enumerable: !0, get: function() { return q.default } }), Object.defineProperty(t, "SearchDropdown", { enumerable: !0, get: function() { return W.default } }), Object.defineProperty(t, "SelectionBox", { enumerable: !0, get: function() { return V.default } }), Object.defineProperty(t, "SerpBadge", { enumerable: !0, get: function() { return B.default } }), Object.defineProperty(t, "SkipToContent", { enumerable: !0, get: function() { return J.default } }), Object.defineProperty(t, "Slider", { enumerable: !0, get: function() { return Y.default } }), Object.defineProperty(t, "StoreLogo", { enumerable: !0, get: function() { return K.default } }), Object.defineProperty(t, "Toggle", { enumerable: !0, get: function() { return Q.default } }), Object.defineProperty(t, "ToolTipIcon", { enumerable: !0, get: function() { return Z.default } }), Object.defineProperty(t, "Tooltip", { enumerable: !0, get: function() { return X.default } }), Object.defineProperty(t, "useOutsideClick", { enumerable: !0, get: function() { return ee.default } }), Object.defineProperty(t, "usePrevious", { enumerable: !0, get: function() { return te.default } }), Object.defineProperty(t, "useScrollToChild", { enumerable: !0, get: function() { return z.default } }), t.version = void 0; var o = n(39321), i = n(37597); Object.keys(i).forEach(function(e) { "default" !== e && "__esModule" !== e && (Object.prototype.hasOwnProperty.call(r, e) || e in t && t[e] === i[e] || Object.defineProperty(t, e, { enumerable: !0, get: function() { return i[e] } })) }); var a = ne(n(92900)), s = ne(n(43384)), c = ne(n(25393)), u = ne(n(47925)), l = ne(n(63862)), f = ne(n(88359)), d = ne(n(66665)), p = ne(n(90525)), h = ne(n(12133)), m = ne(n(4421)), g = ne(n(75618)), y = ne(n(28599)), v = ne(n(77983)), b = ne(n(83727)), _ = ne(n(34121)), S = ne(n(23260)), w = ne(n(13028)), O = ne(n(61995)), E = ne(n(1962)), k = ne(n(50990)), T = ne(n(9197)), x = ne(n(12187)), I = ne(n(31371)), P = ne(n(69330)), A = ne(n(24183)), C = ne(n(87347)), j = ne(n(29709)), R = ne(n(4091)), M = ne(n(86461)), D = ne(n(45391)), N = ne(n(74459)), L = ne(n(50453)), F = ne(n(15085)), B = ne(n(60610)), U = ne(n(91416)), G = ne(n(92167)), $ = ne(n(49421)), H = ne(n(46)), z = ne(n(43655)), q = ne(n(24875)), W = ne(n(38453)), V = ne(n(32719)), Y = ne(n(47149)), J = ne(n(10297)), K = ne(n(31432)), Q = ne(n(4948)), X = ne(n(94037)), Z = ne(n(31868)), ee = ne(n(43944)), te = ne(n(83296)); function ne(e) { return e && e.__esModule ? e : { default: e } } t.version = o.version }, 72341: (e, t, n) => { "use strict"; n.d(t, { A: () => s, I: () => a }); var r = n(9666), o = function() {}, i = r.createContext({ scrollToCategory: o }), a = function() { var e = ((0, r.useContext)(i) || {}).scrollToCategory; return { scrollToCategory: void 0 === e ? o : e } }; const s = i }, 73639: (e, t, n) => { "use strict"; t.A = void 0; var r = a(n(9666)), o = n(22662), i = a(n(86146)); function a(e) { return e && e.__esModule ? e : { default: e } } const s = { children: i.default.node, topLeftContainer: i.default.node, topMiddleContainer: i.default.node, topRightContainer: i.default.node }, c = (0, o.createUseStyles)({ root: { width: "80px", minHeight: "64px", borderRadius: "6px 0px 0px 6px", boxShadow: "0px 2px 35px rgba(0, 0, 0, 0.25);", position: "relative", background: "linear-gradient(180deg, #F26C25 0%, #CC4B06 100%);" }, topRow: { position: "absolute", top: 0, width: "100%", display: "flex", justifyContent: "space-between", alignItems: "center" } }), u = ({ children: e, topLeftContainer: t, topMiddleContainer: n, topRightContainer: o }) => { const i = c(); return r.default.createElement("div", { className: i.root }, r.default.createElement("div", { className: i.topRow }, r.default.createElement("div", null, t), r.default.createElement("div", null, n), r.default.createElement("div", null, o)), e) }; u.propTypes = s, u.defaultProps = { children: null, topLeftContainer: null, topMiddleContainer: null, topRightContainer: null }; t.A = u }, 74428: (e, t, n) => { "use strict"; n.d(t, { A: () => i }); var r = n(34778), o = n(59331); const i = function(e) { return function(t) { var n = ((0, r.A)(e) || {}).categoryId; return (0, o.A)(n)(t) } } }, 75606: (e, t, n) => { "use strict"; n.d(t, { A: () => P, C: () => I }); var r = n(69698), o = n.n(r), i = n(262), a = n.n(i), s = n(9921), c = n(24333), u = n(32969), l = n(28974), f = n(68540), d = n(61991); function p(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function h(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? p(Object(n), !0).forEach(function(t) { m(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : p(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function m(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != g(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != g(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == g(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } function g(e) { return g = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, g(e) } function y(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || v(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function v(e, t) { if (e) { if ("string" == typeof e) return b(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? b(e, t) : void 0 } } function b(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } var _ = !1; function S(e) { var t; if (e && e.length < 10 && e.includes("http")) return ""; try { if ("http:" === (t = new URL(e, window.location.href)).protocol || "https:" === t.protocol) return t.href } catch (e) { return s.A.debug("url cannot be validated: ".concat(e)), "" } return "" } function w(e) { var t = ""; return e.text().length > 0 ? t = e.text() : e.attr("src") ? t = e.attr("src") : e.attr("value") ? t = e.attr("value") : e.attr("href") ? t = e.attr("href") : e.attr("content") ? t = e.attr("content") : e.attr("id") && (t = e.attr("id")), t.replace(/\s+/g, " ").trim() } function O() { var e, t = 0; if (o()("html").find("img:visible").each(function(n, r) { var i = o()(r), a = parseFloat(i.width()) * parseFloat(i.height()); return a > t && i.offset().top <= 800 && i.offset().top >= 0 && i.offset().left >= 0 && (e = i, t = a), !0 }), !e) return ""; var n = e.attr("src") ? S(e.attr("src")) : ""; if (!n) { var r = e.attr("srcset") || e.data("srcset"); if (r) n = S(r.split(" ")[0]); else e.data("src") && (n = S(e.data("src"))) } return n } function E(e, t) { var n, r = _ ? {} : "", i = function(e, t) { var n = "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (!n) { if (Array.isArray(e) || (n = v(e)) || t && e && "number" == typeof e.length) { n && (e = n); var r = 0, o = function() {}; return { s: o, n: function() { return r >= e.length ? { done: !0 } : { done: !1, value: e[r++] } }, e: function(e) { throw e }, f: o } } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") } var i, a = !0, s = !1; return { s: function() { n = n.call(e) }, n: function() { var e = n.next(); return a = e.done, e }, e: function(e) { s = !0, i = e }, f: function() { try { a || null == n.return || n.return() } finally { if (s) throw i } } } }(e.entries()); try { for (i.s(); !(n = i.n()).done;) { var a = y(n.value, 2), s = a[0], u = a[1]; if (!_ && r) break; var l = o()(u).first(); if (l.length > 0) { var f = w(l); "url" === t ? f = S(f) : "number" === t && (f = c.A.cleanPrice(f)), _ ? r[s] = f : r = f } else _ && (r[s] = "") } } catch (e) { i.e(e) } finally { i.f() } return r } function k(e, t) { return "number" !== t && e.length > 0 || "number" === t && e > 0 } function T(e, t) { var n = e; return t.number && (n = c.A.cleanPrice(n)), t.array ? n = [n] : Array.isArray(n) && n.length > 0 && (n = n[0]), n || "" } function x() { var e = {}; return Object.keys(d).forEach(function(t) { d[t].ldJson && (e[t] = "") }), e } function I() { var e, t, n, r, o = {}, i = (e = {}, Object.keys(d).forEach(function(t) { var n = d[t], r = n.primaryPageSelectors, o = n.secondaryPageSelectors, i = n.type; if (r || o) { var a = !0, s = E(r, i); if (o && (!s || _ && Object.values(s).every(function(e) { return !k(e, i) })) && (a = !1, s = E(o, i)), s) if (_) { var c; Object.values(s).forEach(function(n, r) { e["".concat(t, ".").concat(r)] = n }); for (var u = 0, l = Object.values(s); u < l.length; u++) { var f = l[u]; if (k(f, i)) { c = f; break } } e[t] = { value: c, isPrimary: a } } else e[t] = { value: s, isPrimary: a }; else e[t] = { value: "" } } }), e), a = function() { var e = {}; try { var t, n = document.querySelectorAll('[type="application/ld+json"]'); if (n.length > 0 && n.forEach(function(e) { try { var n = JSON.parse(e.text.replace(/[\t\n\r]/gm, "").trim()); "Product" === n["@type"] && (t = n) } catch (e) { s.A.debug("failed to parse ld+json: ".concat(e)) } }), !t) return _ ? x() : {}; Object.keys(d).forEach(function(n) { var r = d[n], o = r.ldJson, i = r.type; if (o) { var a = t, s = ""; if (Array.isArray(o)) o.forEach(function(e) { a[e] && (a = a[e]) }), "string" == typeof a && (s = T(a, r)); else { var c = t[o]; s = "object" !== g(c) || Array.isArray(c) ? T(t[o], r) : T(t[o][o], r) } e[n] = "url" === i ? S(s) : s } }); var r = t.offers; Array.isArray(r) ? (e.price_current = c.A.cleanPrice(r[0].price) || e.price_current, e.currency = t.offers[0].priceCurrency || e.currency) : (e.price_current = c.A.cleanPrice(r.price) || e.price_current, e.currency = r.priceCurrency || e.currency, e.canonical_url = r.url || e.canonical_url) } catch (e) { s.A.debug("failed to parse ld+json: ".concat(e)) } return h(h({}, x), e) }(), u = (t = (0, f.A)() || "", n = c.A.cleanPrice(t), r = (t.match(f.t) || [])[0], -1 === Math.sign(n) && (n *= -1), { currency_symbol: r, image_url_primary: O(), price_current: n }); return Object.keys(d).forEach(function(e) { var t = { meta: i[e], ldJson: a[e], custom: u[e] }; o[e] = function(e, t) { var n = t.meta, r = t.ldJson, o = t.custom, i = n || {}, a = i.value, s = i.isPrimary; return a && s ? a : o || r || a }(0, t) }), { prodData: o, meta: i, ldJson: a, customData: u } } const P = function() { return a().delay(2500).then(function() { var e = I(), t = e.prodData, n = e.meta, r = e.ldJson, o = e.customData, i = { url: window.location.href, prodData: t }; if (_) { var a = Object.entries(n).filter(function(e) { return "object" !== g(y(e, 2)[1]) }); i = h(h({}, i), {}, { meta: Object.fromEntries(a), ldJson: r, customData: o }), u.A.send("genericFetcher:debug", { action: l.A.SAVE_FETCHER_DATA, data: i }, { background: !0 }) } return u.A.send("current:product:generic", { data: t }), t }) } }, 76176: (e, t, n) => { "use strict"; n.d(t, { wD: () => i }); var r = n(49651); e = n.hmd(e); var o = n(74620); function i() { return !(0, r.Z)() && "[object process]" === Object.prototype.toString.call(void 0 !== o ? o : 0) } }, 78111: (e, t, n) => { "use strict"; n.d(t, { A: () => b }); var r = n(9666), o = n(9098), i = n(86146), a = n.n(i), s = n(22662), c = n(72097), u = n(31755), l = n(7837), f = n(46946), d = n(25094), p = n(50618), h = n(32372); function m(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return g(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? g(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function g(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } var y = (0, s.createUseStyles)({ href: { textDecoration: "underline", color: c.Colors.white }, main: { display: "flex", justifyContent: "flex-end", paddingRight: "8px" }, tooltip: { textAlign: "left", composes: "body2", width: "176px" } }); function v(e) { var t = e.allowTooltip, n = e.isFollowing, i = e.isHeaderButton, a = e.position, s = e.store, g = s.storeId, v = s.storeName, b = e.storeSessionCount, _ = e.subSrc, S = e.tooltipDirection, w = e.user, O = y(), E = (0, o.wA)(), k = m((0, r.useState)(!1), 2), T = k[0], x = k[1], I = m((0, r.useState)(!1), 2), P = I[0], A = I[1], C = !n && t && T, j = !n && !t && (T || b > 3), R = C || j; (0, r.useEffect)(function() { w && w.isLoggedIn && u.A.getSetting("requestgold-stores-".concat(w.id)).then(function() { (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []).includes(g) && A(!0) }) }, [w, g]); var M = function() { if (P && f.A.sendEvent("ext600000", { page_variant: "done_screen", cta_type: h.ct.NONE, action: "click", action_type: n ? "unfollow" : "follow" }), f.A.sendEvent("ext004015", { sub_src: _, store_id: g, position: a, user_following: n, action: "click", action_type: n ? "unfollow" : "follow", context: j ? "nudge_to_follow" : null }), w.isLoggedIn) { var e = n ? "UNFOLLOW" : "FOLLOW"; E(p.Xp.updateUserFollow({ storeId: g, userId: w.id, action: e })) } else d.A.openEmailAuth("login", "launchpad-ext", !0) }; (0, r.useEffect)(function() { i && f.A.sendEvent("ext004015", { action: "show", action_type: null, position: a, sub_src: _, store_id: g, user_following: n, context: j ? "nudge_to_follow" : null }) }, []); var D, N, L, F, B = 24; "trending_stores" === _ && (B = 32), n && !T && w.isLoggedIn ? (N = l.A.getMessage("Following"), F = l.A.getMessageAndReplace("Following_STORENAME", { STORENAME: v }).join(""), L = "secondary-ghost") : n && T && w.isLoggedIn ? (N = l.A.getMessage("Unfollow"), F = l.A.getMessageAndReplace("Unfollow_STORENAME", { STORENAME: v }).join(""), D = "#FF5252") : (N = l.A.getMessage("Follow"), F = l.A.getMessageAndReplace("Follow_STORENAME", { STORENAME: v }).join(""), L = "secondary"); var U = C && r.createElement("div", { className: O.tooltip }, l.A.getMessage("Follow_your_favorite_stores_to_get_sale_alerts_new_coupons_and_personalized_recommendations_on_your_feed"), r.createElement("a", { href: "https://www.joinhoney.com/feed", className: O.href, rel: "noopener noreferrer", target: "_blank", onClick: function() { f.A.sendEvent("ext004015", { sub_src: _, store_id: g, position: a, user_following: n, action: "click", action_type: "feed" }) } }, l.A.getMessage("Learn_more"))), G = j && r.createElement("div", { className: O.tooltip }, l.A.getMessage("Love_STORENAME_Follow_this_store_to_get_sale_alerts").replace(/{STORENAME}/g, v)); return r.createElement("div", { className: O.main, "data-position": a, "data-store-id": g, "data-sub-src": _, "data-user-following": n, onMouseEnter: function() { f.A.sendEvent("ext004015", { sub_src: _, store_id: g, position: a, user_following: n, action: "hover", action_type: null, context: j ? "nudge_to_follow" : null }), x(!0) }, onMouseLeave: function() { x(!1) } }, R ? r.createElement(c.ToolTipIcon, { forceShow: !0, interactable: !0, dotted: !1, direction: S, component: R && (U || G) || null, customAnchorElement: r.createElement(c.Button, { id: "corner:follow:button", buttonColor: D, buttonType: L, copy: N, onClick: M, size: B, ariaLabel: F }) }) : r.createElement(c.Button, { id: "corner:follow:button", buttonColor: D, buttonType: L, copy: N, onClick: M, size: B, ariaLabel: F })) } v.propTypes = { allowTooltip: a().bool, isFollowing: a().bool, isHeaderButton: a().bool, position: a().number, store: a().shape({ storeId: a().string, storeName: a().string }), storeSessionCount: a().number, subSrc: a().string, tooltipDirection: a().string, user: a().object }, v.defaultProps = { allowTooltip: !1, isFollowing: !1, isHeaderButton: !1, position: null, store: {}, storeSessionCount: 0, subSrc: "", tooltipDirection: "top-right", user: {} }; const b = v }, 78860: (e, t, n) => { "use strict"; n.d(t, { A: () => S, d: () => b }); var r = n(9666), o = n(86146), i = n.n(o), a = n(9098), s = n(22662), c = n(72097), u = n(25094), l = n(78111), f = n(50618), d = n(7837); function p() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, n = "function" == typeof Symbol ? Symbol : {}, r = n.iterator || "@@iterator", o = n.toStringTag || "@@toStringTag"; function i(n, r, o, i) { var c = r && r.prototype instanceof s ? r : s, u = Object.create(c.prototype); return h(u, "_invoke", function(n, r, o) { var i, s, c, u = 0, l = o || [], f = !1, d = { p: 0, n: 0, v: e, a: p, f: p.bind(e, 4), d: function(t, n) { return i = t, s = 0, c = e, d.n = n, a } }; function p(n, r) { for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) { var o, i = l[t], p = d.p, h = i[2]; n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0)) } if (o || n > 1) return a; throw f = !0, r } return function(o, l, h) { if (u > 1) throw TypeError("Generator is already running"); for (f && 1 === l && p(l, h), s = l, c = h; (t = s < 2 ? e : c) || !f;) { i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c); try { if (u = 2, i) { if (s || (o = "next"), t = i[o]) { if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object"); if (!t.done) return t; c = t.value, s < 2 && (s = 0) } else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1); i = e } else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break } catch (t) { i = e, s = 1, c = t } finally { u = 1 } } return { value: t, done: f } } }(n, o, i), !0), u } var a = {}; function s() {} function c() {} function u() {} t = Object.getPrototypeOf; var l = [][r] ? t(t([][r]())) : (h(t = {}, r, function() { return this }), t), f = u.prototype = s.prototype = Object.create(l); function d(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, h(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e } return c.prototype = u, h(f, "constructor", u), h(u, "constructor", c), c.displayName = "GeneratorFunction", h(u, o, "GeneratorFunction"), h(f), h(f, o, "Generator"), h(f, r, function() { return this }), h(f, "toString", function() { return "[object Generator]" }), (p = function() { return { w: i, m: d } })() } function h(e, t, n, r) { var o = Object.defineProperty; try { o({}, "", {}) } catch (e) { o = 0 } h = function(e, t, n, r) { function i(t, n) { h(e, t, function(e) { return this._invoke(t, n, e) }) } t ? o ? o(e, t, { value: n, enumerable: !r, configurable: !r, writable: !r }) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2)) }, h(e, t, n, r) } function m(e, t, n, r, o, i, a) { try { var s = e[i](a), c = s.value } catch (e) { return void n(e) } s.done ? t(c) : Promise.resolve(c).then(r, o) } function g(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return y(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? y(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function y(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } var v = (0, s.createUseStyles)({ storeInfoContainer: { display: "flex", alignItems: "center", backgroundColor: c.Colors.white, height: "55px", width: "100%", borderBottom: "1px solid ".concat(c.Colors.grey300) }, logo: { margin: [11, 24] }, storeInfo: { display: "inline-block", verticalAlign: "middle", width: "160px" }, storeName: { fontSize: "14px", fontWeight: "600", color: c.Colors.grey900, whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, storeCount: { fontSize: "11px", fontWeight: "600", color: c.Colors.grey700 }, storeFollow: { display: "inline-block", verticalAlign: "middle", textAlign: "right", width: function(e) { return e.inPopover ? "87px" : "71px" } } }); var b = function(e) { var t, n = e.store, o = e.storeFollowButton, i = e.inPopover, a = v({ inPopover: i }); return r.createElement("div", { className: a.storeInfoContainer }, r.createElement(c.StoreLogo, { className: a.logo, size: 40, storeId: n.id, storeName: n.name }), r.createElement("div", { className: a.storeInfo }, r.createElement("div", { className: a.storeName }, n.name), r.createElement("div", { className: a.storeCount }, d.A.getMessage("NUMSHOPPERS_shoppers").replace(/{NUMSHOPPERS}/g, (t = n.shoppers) > 999999 ? "".concat(Math.floor(t / 1e5) / 10, "M") : t > 999 ? "".concat(Math.floor(t / 100) / 10, "k") : t))), r.createElement("div", { className: a.storeFollow }, o)) }; b.propTypes = { store: i().object, storeFollowButton: i().node, inPopover: i().bool }, b.defaultProps = { store: {}, storeFollowButton: void 0, inPopover: i().false }; var _ = function(e) { var t = e.inPopover, n = (0, a.d4)(function(e) { return e.user.user }), o = n && n.id, i = n && n.isLoggedIn, s = (0, a.d4)(function(e) { return e.stores }), c = s.stores[s.current], d = (0, a.d4)(function(e) { return e.user.follow }), h = g((0, r.useState)(!1), 2), y = h[0], v = h[1], _ = (0, a.wA)(); (0, r.useEffect)(function() { o && i && _(f.Xp.getUserFollow(o)) }, [_, o, i]), (0, r.useEffect)(function() { d && v(!!d && d.includes(c.id)) }, [_, d, c]); var S = function() { var e, t = (e = p().m(function e() { var t, r; return p().w(function(e) { for (;;) switch (e.n) { case 0: return n && n.isLoggedIn || u.A.openEmailAuth("login", "launchpad-ext", !0), t = y ? "UNFOLLOW" : "FOLLOW", e.n = 1, u.A.updateUserFollow(c.id, n.id, t); case 1: r = e.v, v(r.includes(c.id)); case 2: return e.a(2) } }, e) }), function() { var t = this, n = arguments; return new Promise(function(r, o) { var i = e.apply(t, n); function a(e) { m(i, r, o, a, s, "next", e) } function s(e) { m(i, r, o, a, s, "throw", e) } a(void 0) }) }); return function() { return t.apply(this, arguments) } }(); return r.createElement(b, { inPopover: t, store: c, storeFollowButton: r.createElement(l.A, { isHeaderButton: !0, subSrc: "launchpad", allowTooltip: !1, user: n, store: { storeId: c.id, storeName: c.name }, isFollowing: y, updateUserFollow: S }) }) }; _.propTypes = { inPopover: i().bool }, _.defaultProps = { inPopover: !1 }; const S = _ }, 79973: (e, t, n) => { "use strict"; n.d(t, { A0: () => l, Ay: () => f, v_: () => i.A }); var r = n(73595), o = n(35158), i = n(99735); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 83701: (e, t, n) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), Object.defineProperty(t, "default", { enumerable: !0, get: function() { return r.Typography } }); var r = n(96028) }, 84458: (e, t, n) => { "use strict"; n.d(t, { A: () => i }); var r = n(9098), o = n(36927); const i = function() { return !!((0, r.d4)(o.A) || {}).isAutopop } }, 84993: (e, t, n) => { "use strict"; n.d(t, { Ay: () => u, De: () => o.Ay, an: () => c }); var r = n(65775), o = n(53123); function i(e) { return i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, i(e) } function a(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function s(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != i(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != i(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == i(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var c = function(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? a(Object(n), !0).forEach(function(t) { s(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : a(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e }({}, r.o1); const u = r.Ff }, 85831: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, gE: () => i.A, qg: () => l }); var r = n(57369), o = n(875), i = n(93449); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 87888: (e, t, n) => { "use strict"; n.d(t, { Ay: () => l, j: () => u, cA: () => i }); var r = n(83392), o = function(e) { return function(t) { return t.optimus.productsByPageId[e] } }; const i = { selectProductByPageId: o, selectProductByProductId: function(e) { return function(t) { var n = t.whereAmI.productsByPageId || {}, r = Object.keys(n).find(function(t) { return n[t].productId === e }); return o(r)(t) } } }; function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var u = function(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { c(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e }({}, r.o1); const l = r.Ff }, 89773: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, e5: () => l, n2: () => i.A }); var r = n(27635), o = n(38846), i = n(13263); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 92685: (e, t, n) => { "use strict"; n.d(t, { Ay: () => p, Qm: () => d, XK: () => s }); var r = n(18411), o = n(17542), i = n(35826), a = function(e) { return function(t) { return t && t.productFetcher && t.productFetcher.products && t.productFetcher.products[e] } }; const s = { selectProductByPageId: a, selectCurrentPageProduct: function(e) { var t = i.im.selectCurrentPageId()(e); return a(t)(e) }, selectProductByProductId: function(e) { return function(t) { var n = t.productFetcher.products || {}; return Object.values(n).find(function(t) { return e === t.productId }) } } }; function c(e) { return c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, c(e) } function u(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function l(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? u(Object(n), !0).forEach(function(t) { f(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : u(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function f(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != c(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != c(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == c(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var d = l(l({}, o.A), r.o1); const p = r.Ff }, 94576: (e, t, n) => { var r = n(61735), o = n(24547); e.exports = function(e, t, n) { var i = !0, a = !0; if ("function" != typeof e) throw new TypeError("Expected a function"); return o(n) && (i = "leading" in n ? !!n.leading : i, a = "trailing" in n ? !!n.trailing : a), r(e, t, { leading: i, maxWait: t, trailing: a }) } }, 94861: (e, t, n) => { "use strict"; n.d(t, { t: () => s, x: () => c }); var r = n(2317), o = n(13261), i = n(8004), a = n(64287), s = (0, r.Mz)(i.nU.selectTopCouponForCurrentProduct, a.fN, function(e) { return { coupon: e, product: arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {} } }), c = (0, r.Mz)(s, function(e) { var t = e.coupon; return t && (0, o.A)(t) }) }, 95872: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, eu: () => i.A, f1: () => l }); var r = n(92802), o = n(51515), i = n(29822); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 96161: (e, t, n) => { "use strict"; n.d(t, { A: () => u }); var r = n(9666), o = n(30205), i = n(46946), a = n(323); function s(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return c(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? c(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function c(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } const u = function(e) { var t = s((0, r.useState)(!1), 2), n = t[0], c = t[1]; (0, r.useEffect)(function() { a.A.getFeatureFlag("ext_competitor_move_logic").then(c) }, []); var u = (0, r.useRef)(!1), l = (0, r.useMemo)(function() { return (0, o.A)() }, []), f = s((0, r.useState)(l ? l.clientHeight + 16 : 16), 2), d = f[0], p = f[1], h = s((0, r.useState)(l ? l.clientWidth + 16 : 16), 2), m = h[0], g = h[1]; return (0, r.useEffect)(function() { if (l) { var e = new MutationObserver(function(e) { l && e.length > 0 && (p(l.clientHeight + 16), g(l.clientWidth + 16)) }); l && e.observe(l, { attributes: !0, subtree: !0, childList: !0 }) } }, [l]), !u.current && (d > 16 || m > 16) && (u.current = !0, i.A.sendEvent("ext000013", e)), (0, r.useMemo)(function() { return n ? { topMargin: d, rightMargin: m } : { topMargin: void 0, rightMargin: 16 } }, [n, d, m]) } }, 96532: (e, t, n) => { "use strict"; n.d(t, { x: () => r }); var r = 3e4 }, 97555: (e, t, n) => { "use strict"; n.d(t, { Ay: () => f, fL: () => i.A, ox: () => l }); var r = n(9757), o = n(79888), i = n(45877); function a(e) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, a(e) } function s(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable })), n.push.apply(n, r) } return n } function c(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? s(Object(n), !0).forEach(function(t) { u(e, t, n[t]) }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) }) } return e } function u(e, t, n) { return (t = function(e) { var t = function(e, t) { if ("object" != a(e) || !e) return e; var n = e[Symbol.toPrimitive]; if (void 0 !== n) { var r = n.call(e, t || "default"); if ("object" != a(r)) return r; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === t ? String : Number)(e) }(e, "string"); return "symbol" == a(t) ? t : t + "" }(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var l = c(c({}, o.A), r.o1); const f = r.Ff }, 99459: (e, t, n) => { "use strict"; ! function e() { if ("undefined" != typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" == typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE) try { __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e) } catch (e) { console.error(e) } }(), e.exports = n(58181) }, 99507: (e, t, n) => { "use strict"; n.d(t, { A: () => s }); var r = n(2317), o = n(5735); function i(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != n) { var r, o, i, a, s = [], c = !0, u = !1; try { if (i = (n = n.call(e)).next, 0 === t) { if (Object(n) !== n) return; c = !1 } else for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0); } catch (e) { u = !0, o = e } finally { try { if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return } finally { if (u) throw o } } return s } }(e, t) || function(e, t) { if (e) { if ("string" == typeof e) return a(e, t); var n = {}.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? a(e, t) : void 0 } }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function a(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r } const s = (0, r.Mz)(function(e) { return (0, o.A)(e) }, function(e, t) { return t }, function(e, t) { return i((e || []).filter(function(e) { var n = e.categoryId; return !(t || []).includes(n) }), 1)[0] }) } }, n = {}; function r(e) { var o = n[e]; if (void 0 !== o) return o.exports; var i = n[e] = { id: e, loaded: !1, exports: {} }; return t[e].call(i.exports, i, i.exports, r), i.loaded = !0, i.exports } r.m = t, e = [], r.O = (t, n, o, i) => { if (!n) { var a = 1 / 0; for (l = 0; l < e.length; l++) { for (var [n, o, i] = e[l], s = !0, c = 0; c < n.length; c++)(!1 & i || a >= i) && Object.keys(r.O).every(e => r.O[e](n[c])) ? n.splice(c--, 1) : (s = !1, i < a && (a = i)); if (s) { e.splice(l--, 1); var u = o(); void 0 !== u && (t = u) } } return t } i = i || 0; for (var l = e.length; l > 0 && e[l - 1][2] > i; l--) e[l] = e[l - 1]; e[l] = [n, o, i] }, r.n = e => { var t = e && e.__esModule ? () => e.default : () => e; return r.d(t, { a: t }), t }, r.d = (e, t) => { for (var n in t) r.o(t, n) && !r.o(e, n) && Object.defineProperty(e, n, { enumerable: !0, get: t[n] }) }, r.g = function() { if ("object" == typeof globalThis) return globalThis; try { return this || new Function("return this")() } catch (e) { if ("object" == typeof window) return window } }(), r.hmd = e => ((e = Object.create(e)).children || (e.children = []), Object.defineProperty(e, "exports", { enumerable: !0, set: () => { throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: " + e.id) } }), e), r.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t), r.r = e => { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) }, r.nmd = e => (e.paths = [], e.children || (e.children = []), e), (() => { var e = { 792: 0 }; r.O.j = t => 0 === e[t]; var t = (t, n) => { var o, i, [a, s, c] = n, u = 0; if (a.some(t => 0 !== e[t])) { for (o in s) r.o(s, o) && (r.m[o] = s[o]); if (c) var l = c(r) } for (t && t(n); u < a.length; u++) i = a[u], r.o(e, i) && e[i] && e[i][0](), e[i] = 0; return r.O(l) }, n = self.webpackChunkhoney_extension = self.webpackChunkhoney_extension || []; n.forEach(t.bind(null, 0)), n.push = t.bind(null, n.push.bind(n)) })(); var o = r.O(void 0, [644, 274], () => r(67107)); o = r.O(o) })();