PageSourceSearch

https://www.centerpointarchery.com/checkout/cart/

html centerpointarchery.com collected 2026-10-06 16:26:25 UTC 262,542 bytes, 4,166 lines download raw bytes

1<!doctype html>
2<html lang="en">
3    <head >
4        
4<script>
5    var LOCALE = 'en\u002DUS';
6    var BASE_URL = 'https\u003A\u002F\u002Fwww.centerpointarchery.com\u002F';
7    var require = {
8        'baseUrl': 'https\u003A\u002F\u002Fwww.centerpointarchery.com\u002Fstatic\u002Fversion1790000787\u002Ffrontend\u002FCenterpoint\u002Fdefault\u002Fen_US'
9    };</script>
9        <meta charset="utf-8"/>
9<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1103355215",accountID:"2557132",trustKey:"2557132",xpid:"VgMCVldQChABVFBbAQgEUFYB",licenseKey:"NRJS-aafa228070e6a667a44",applicationID:"1019693620",browserID:"1103355215"};;/*! For license information please see nr-loader-spa-1.323.0.min.js.LICENSE.txt */
10(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.323.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
10e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
10const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>A,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
10if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,w(e,t)}function w(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function R(e,t,r,n,i){if(w(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(R(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(R(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function A(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let w=0,R=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(w=w>0?Math.min(w,e):e),t&&(R=R>0?Math.max(R,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return w>0?Math.min(e,w):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return R>0?Math.max(e,R):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
10o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
10(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
10;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.323.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.323.0.PROD:";r.l=(n,i,s,a)=>
10{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-ORjtmy+nQMgxbu0os8+oTRa5sPzbinyuWSvpZrrstVLIaHofRRlfODdH+oUmkIgeQpM+vPf3vG/4RzvCsFVh1A==",249:"sha512-o7+K6xC0z3TqynjVxpd+jgiSgqy8rrPeRcUSqt5J0Rqg5Su5CycLMYfpwiM3WBCHiNDrG5aZoXJQ6HRc335XYQ==",212:"sha512-kRvBt1IYQDBnClTEWNaE8sDFqbXXM3Vdyf972Uf4MFbJxl7u3KmdO+jdB1H4achPEoT9YtNXHswaESey6sCH0A==",238:"sha512-U5EGmyYbFVR2UMNAuZJ7fTgVVtPa5b8RPMySDwXo7z3frRdkUJ2x1VAQTLQCeBab8VlGVGRV8FiSHIn/pwN72A=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.323.0.PROD"]=self["webpackChunk:NRBA-1.323.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
10ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908),x=r(9752);function O(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var _=r(1863),k=r(4261),N=r(1738);var L=r(1687),M=r(4234),P=r(5289),I=r(5270),j=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
10{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,P.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,I.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}O(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,N.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+k.Fw,[(0,_.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,P.sB)(t=>{e(t,"DOMContentLoaded")}),(0,P.GG)(t=>{e(t,"load")}),(0,P.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),O(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,N.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,N.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,S.p)("docHidden",[(0,_.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,S.p)("winPagehide",[(0,_.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,_.t)()){"string"==typeof e&&(e=new Error(e)),(0,S.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,_.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,_.t)()){(0,S.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,_.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
10null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,S.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,_.t)()){(0,S.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,_.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,_.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,_.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const we=["entry","scripts","all"],Re=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Ae={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Se(e){(0,N.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Ae.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||we.includes(r.timingMethod)||(Ae.invali
10dTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Re.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Ae.disabled),u(r.id)&&u(r.name)||d(()=>Ae.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Ae.duplicateName(r),n===r.id&&t!==r.name&&Ae.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Ae.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,_.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
10imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,_.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,S.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class Oe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,N.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,N.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,N.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Se(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,S.p)("ierr",[ee(t),(0,_.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,S.p)("err",[te(t),(0,_.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,S.p)("err",[re(t),(0,_.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var _e=r(8990);let ke=1;function Ne(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,_e.I)(e,"nr@id",function(){return ke++})}function Le(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Me=r(8139),Pe=r(3434),Ie=r(5732);const je={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(je[n.debugId]++)return n;je[n.debugId]=1,(0,Me.u)(r,t);var i=(0,Pe.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,Ie.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,Ie.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
10return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s,a=(0,ye.ZF)(),o=(0,ye.el)(),c=Date.now();this.agentRef.runtime?.timeKeeper?.ready&&(s=Math.floor(this.agentRef.runtime.timeKeeper.correctAbsoluteTimestamp(c)));var d={spanId:a,traceId:o,timestamp:c,timestampCorrected:s};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,o),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,s??c,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,o,s??c,r,n,i)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,S.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){O(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Le(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
10!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,_.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,_.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,_.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function R(e,t){this.params={},this.metrics={},this.startTime=(0,_.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Le(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,_.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Le(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):O(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Le(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function O(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Le(e.response):"text"===r||""===r||void 0===r?Le(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,S.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Pe.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,N.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,S.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,S.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,N.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,S.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
10if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Me.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,_.t)()}),this.eventsEE.on(pt,function(e,r){(0,S.p)("bst",[e[0],r,this.bstStart,(0,_.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,_.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,S.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,S.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,N.Y)(k.CH,function(){(0,S.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,N.Y)(k.Tb,function(){(0,S.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,I.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,S.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,I.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var wt=r(3962);class Rt extends W{static featureName=wt.TZ;constructor(e){if(super(e,wt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,N.Y)(k.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,S.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,_.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],s),t}finally{r.emit("fn-end",[(0,_.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{N.Y.apply(this,[r,function(){return(0,S.p)(k.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,N.Y)(k.PA,function(){(0,S.p)(k.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=at(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}wt.tC.forEach(e=>{(0,J.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)}
10);const s=()=>(0,S.p)("newURL",[(0,_.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,J.sp)(wt.OV,e=>{c(e),(0,S.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,S.p)("newDom",[(0,_.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,C.s)(e=>{"loading"!==document.readyState&&((0,S.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var Tt=r(981);const At={},St=new Set;function xt(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class Ot{constructor(e,t){this.timestamp=(0,_.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class _t extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,N.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,N.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Se(e),function(e){(0,N.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(At[r.debugId]++)return r;At[r.debugId]=1,(0,V.G)(()=>{const e=(0,_.t)();St.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
10class n extends WebSocket{static name=Tt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Ot(e[0],e[1]),this.targets=(0,Ie.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,_.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),St.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=xt(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,_.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,St.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=xt(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,S.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,S.p)("spv",[kt(e),(0,_.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,S.p)("spv",[kt(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,S.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
10h(e=>{const t=(0,C.s)(e=>{(0,S.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,S.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}function kt(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Nt=r(2646);const Lt=new Map;function Mt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Pe.YM)(a,void 0,s),c=new Nt.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Pe.Jt]||t[r];return Lt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Lt.get(d),void 0,!0),a}var Pt=r(1910);class It extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,N.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,N.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Mt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Se(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Mt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new F({features:[nt,K,G,vt,Et,Y,Oe,_t,It,Rt],loaderType:"spa"})})()})();</script>
10
11<meta name="title" content="Cart"/>
12<meta name="description" content="CenterPoint Archery"/>
13<meta name="robots" content="INDEX,FOLLOW"/>
14<meta name="viewport" content="width=device-width, initial-scale=1"/>
15<meta name="format-detection" content="telephone=no"/>
16<title>Cart</title>
17<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/mage/calendar.css" />
18<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/css/styles-m.css" />
19<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/jquery/uppy/dist/uppy-custom.css" />
20<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/Amasty_Finder/css/chosen.min.css" />
21<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/Amasty_LibFancybox/fancybox/jquery.fancybox.min.css" />
22<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/Amasty_Quickview/css/quickview.css" />
23<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/Amasty_Storelocator/vendor/chosen/chosen.min.css" />
24<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/MageMe_WebForms/css/styles.css" />
25<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/WeltPixel_OwlCarouselSlider/css/owl.carousel.css" />
26<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/Adyen_Payment/css/adyen.css" />
27<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/Adyen_Payment/css/styles.css" />
28<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/Amasty_Base/vendor/slick/amslick.min.css" />
29<link  rel="stylesheet" type="text/css"  media="all" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/Amasty_Rules/css/amrules.css" />
30<link  rel="stylesheet" type="text/css"  media="screen and (min-width: 768px)" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/css/styles-l.css" />
31<link  rel="stylesheet" type="text/css"  media="print" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/css/print.css" />
32<script  type="text/javascript"  src="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/requirejs/require.js"></script>
vendor: 1 bytes, line 32
32
33<script  type="text/javascript"  src="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/mage/requirejs/mixins.js"></script>
vendor: 1 bytes, line 33
33
34<script  type="text/javascript"  src="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/requirejs-config.js"></script>
vendor: 1 bytes, line 34
34
35<script  type="text/javascript"  src="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/Amasty_Promo/js/amastyNoticeDisable.js"></script>
35
36<link rel="preload" as="font" crossorigin="anonymous" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/fonts/opensans/light/opensans-300.woff2" />
37<link rel="preload" as="font" crossorigin="anonymous" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/fonts/opensans/regular/opensans-400.woff2" />
38<link rel="preload" as="font" crossorigin="anonymous" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/fonts/opensans/semibold/opensans-600.woff2" />
39<link rel="preload" as="font" crossorigin="anonymous" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/fonts/opensans/bold/opensans-700.woff2" />
40<link rel="preload" as="font" crossorigin="anonymous" href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/fonts/Luma-Icons.woff2" />
41<link  rel="stylesheet" type="text/css" href="https://use.typekit.net/bep7dmx.css" />
42<link  rel="icon" type="image/x-icon" href="https://www.centerpointarchery.com/media/favicon/stores/4/centerpoint-iso.png" />
43<link  rel="shortcut icon" type="image/x-icon" href="https://www.centerpointarchery.com/media/favicon/stores/4/centerpoint-iso.png" />
44<link  rel="canonical" href="https://www.centerpointarchery.com/checkout/cart" />
45<!-- Google Tag Manager -->
46<script>
vendor: 331 bytes, lines 46-50
46(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
47new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
48j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
49'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
50})(window,document,'script','dataLayer','
50GTM-MRL4BPG
vendor: 3 bytes, line 50
50');
50</script>
50
51<!-- End Google Tag Manager -->
52
53<script data-ad-client="ca-pub-5625941833786964" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
53
54
55<!-- verify domain ownership -->
56        <meta name="google-site-verification" content="stBzJs2ifbtOFoYDHkxNeDDmJiCPCcYyClOD9Ns0sZs" />
57
58        <!-- Global site tag (gtag.js) - Google Ads: 10865119560 -->
vendor: 73 bytes, lines 58-59
58
59        <script async src="https://www.googletagmanager.com/gtag/js?id=
59AW-10865119560
vendor: 21 bytes, lines 59-60
59"></script>
60        
60<script>
61        
vendor: 154 bytes, lines 61-64
61window.dataLayer = window.dataLayer || [];
62        function gtag(){dataLayer.push(arguments);}
63        gtag('js', new Date());
64        gtag('config', '
64AW-10865119560
vendor: 13 bytes, lines 64-65
64');
65        
65</script>
65
66        
67        <!-- Microsoft Advertising -->
68<script>(function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:"187179719", enableAutoSpaTracking: true};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");</script>
68
69
70<!-- Meta Pixel Code -->
71<script>
vendor: 408 bytes, lines 71-80
71
72!function(f,b,e,v,n,t,s)
73{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
74n.callMethod.apply(n,arguments):n.queue.push(arguments)};
75if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
76n.queue=[];t=b.createElement(e);t.async=!0;
77t.src=v;s=b.getElementsByTagName(e)[0];
78s.parentNode.insertBefore(t,s)}(window, document,'script',
79'https://connect.facebook.net/en_US/fbevents.js');
80fbq('init', '
80629864976711991
vendor: 32 bytes, lines 80-81
80');
81fbq('track', 'PageView');
82</script>
82
83<noscript><img height="1" width="1" style="display:none"
84src="https://www.facebook.com/tr?id=629864976711991&ev=PageView&noscript=1"
85/></noscript>
86<!-- End Meta Pixel Code -->
87
88<script type="text/javascript">
89   //DO NOT REMOVE - DRIVES REVENUE
90   var AddShoppersWidgetOptions = { 'loadCss': false, 'pushResponse': false };
91   (!function(){
92       var t=document.createElement("script");
93       t.type="text/javascript",
94       t.async=!0,
95       t.id="AddShoppers",
96       t.src="https://shop.pe/widget/widget_async.js#6879fa91c576f30876d2071e",
97       document.getElementsByTagName("head")[0].appendChild(t)
98   }());
99</script>
99
100
101
102<style>
103.ampromo-overlay.-show .ampromo-popup-container .ampromo-carousel-product .ampromo-gallery .ampromo-options{
104display:block !important;
105}
106.megamenu-container-2__list>.megamenu-container-2__item.accent-color>.megamenu-container-2__link_wapper_title>a {
107    color: #ff2d12;
108}
109.ie-div-position-customer-chat{
110position:fixed;
111}
112
113
114@media screen and (min-width: 1024px){
115    .megamenu-container-2__inner-list {
116        font-size: 1.65rem;
117    }
118
119    ul.megamenu-container-2__inner-list.megamenu-container-2__inner-list--level1 {
120        box-shadow: 0 10px 20px -10px rgba(0, 0, 0, 0.9)
121    }
122    
123    .megamenu-container-2 .subactegory_item.compound {
124        width: 40%;
125        max-width: 40%;
126    }
127    
128    .megamenu-container-2 .subactegory_item {
129        width: 20%;
130        max-width: 20%;
131    }
132}
133
134
135
136li.megamenu-container-2__inner-item .new-product:after {
137    content: 'NEW';
138    font-size: 12px;
139    background: #00c35a;
140    color: #fff;
141    padding: 0px 4px;
142    margin-left: 4px;
143    position: absolute;
144    top: 0;
145    line-height: 18px;
146}
147
148li.megamenu-container-2__inner-item .new-product {
149    position: relative;
150}
151
152.catalog-category-view .toolbar-products { position: relative; }
153
154.video-container {
155    margin-top: 3rem;
156    position: relative;
157    padding-bottom: 56.25%;
158    padding-top: 30px;
159    height: 0;
160    overflow: hidden;
161}
162
163.video-container iframe, .video-container object, .video-container embed {
164    position: absolute;
165    top: 0;
166    left: 0;
167    width: 100%;
168    height: 100%;
169}
170
171.product.info.detailed .amrelated-pack-wrapper {
172    display: none;
173}
174
175.amrelated-pack-wrapper { display: none; }
176.column.main .amrelated-pack-wrapper { display: block !important; }
177.column.main .product.info.detailed .amrelated-pack-wrapper { display: none !important; }
178
179.blog-page .megamenu-container-2 { font-size: 1.4rem; }
180
181.bundle-pack-item h3,
182.bundle-pack-item .amrelated-name a.amrelated-link,
183.bundle-pack-item span.price
184{
185    font-family: 'Akzidenz Grotesk Condensed Bold',sans-serif;
186}
187
188.bundle-pack-item h3 {
189    font-size: 3rem;
190}
191
192.bundle-pack-item .amrelated-name a.amrelated-link {
193    font-size: 1.75rem;
194    line-height: 1.5rem;
195    color: #000;
196    text-transform: uppercase;
197}
198
199.bundle-pack-item .amrelated-discount.-product,
200.bundle-pack-item .amrelated-discount.-summary
201{
202    font-family: 'Akzidenz Grotesk Bold',sans-serif;
203    background: #00c35a;
204}
205
206.bundle-pack-item .product-reviews-summary.short { display: none; }
207
208    .minicart-items-wrapper {
209        margin-top: 0px;
210        padding: 0;
211        max-height: 325px;
212    }
213
214
215@media screen and (max-width: 767px){
216    /* Minicart Overrides */
217
218    .minicart-wrapper .block-minicart .block-content .minicart-footer .subtotal .label {
219        font-size: 1.2rem;
220        text-transform: uppercase;
221    }
222
223    .minicart-wrapper .block-minicart .block-content .minicart-footer .subtotal .price {
224        font-size: 1.75rem;
225    }
226    
227    .minicart-wrapper ul.related-products-list.slick-initialized.slick-slider {
228        margin-bottom: 0;
229    }
230    
231    .minicart-wrapper .block-minicart li.related-product-item.product-item {
232        padding: 0;
233    }
234
235    .minicart-wrapper .minicart-related-products>h3 {
236        margin-bottom: 15px;
237    }
238    
239    .minicart-wrapper .minicart-related-products .slick-slider button.slick-arrow {
240        top: -25px;
241    }
242
243    .minicart-wrapper .block-minicart .block-content .minicart-footer>.actions .action.primary {
244        padding: 0;
245        line-height: 45px;
246    }
247    
248    .minicart-wrapper .block-minicart .action.close {
249        left: 5px;
250        right: unset;
251        z-index: 1;
252        top: 5px;
253    }
254    
255    .minicart-wrapper .minicart-items .product-item .product-item-details .product-item-name a {
256        font-size: 1.4rem;
257        line-height: 1.6rem;
258    }
259    
260    .minicart-wrapper .minicart-items .product-item .product-item-photo {
261        margin-right: 15px;
262        width: 80px !important;
263    }
264    
265    .minicart-wrapper .minicart-items .product-item .product-item-details .product-item-name {
266        width: 170px;
267        font-size: 1.9rem !important;
268    }
269    
270    .minicart-wrapper .minicart-related-products {
271        padding: 0 20px 10px;
272    }
273    
274    .minicart-wrapper .minicart-widgets {
275        margin-top: 10px;
276    }
277
278   .minicart-wrapper button#top-cart-btn-checkout {
279       display: block;
280       line-height: 45px;
281   }
282
283    /* End Minicart Overrides */
284}
285
286@media screen and (min-width: 768px) {
287    .bundle-pack-item .amrelated-pack-wrapper .amrelated-content-wrapper .amrelated-plus,
288    .bundle-pack-item .amrelated-pack-wrapper .amrelated-content-wrapper .amrelated-equal {
289        color: #ddd;
290       font-size: 8rem;
291    }
292}
293
294.bundle-pack-item .amrelated-photo-container .amrelated-checkbox:checked+.amrelated-label {
295    background-color: #f00;
296}
297
298.bundle-pack-item .amrelated-pack-item.-narrow.-discount-applied.-selected {
299    max-width: 160px;
300}
301
302.bundle-pack-item .amrelated-pack-item.-narrow.-discount-applied.-main {
303    width: 160px;
304}
305
306.bundle-pack-item button.action.primary {
307    color: #fff;
308    font-weight: bold;
309    font-family: 'Akzidenz Grotesk Bold',sans-serif;
310}
311
312.warranty-container ul li { font-size: 1.8rem; }
313
314.products-grid .product-item .badge {
315    transform: unset;
316    left: 0;
317    top: 0;
318    letter-spacing: 0.2rem;
319    font-family: 'Akzidenz Grotesk Condensed Medium';
320    font-size: 1.8rem;
321    padding: 8px 15px;
322    background: #00c35a;
323    color: #fff;
324}
325
326/* cleanup */
327.page-footer .footer.content .footer_right .footer--secondary .newsletter-heading {
328    color: #fff;
329    font-family: 'Akzidenz Grotesk Condensed Medium', sans-serif;
330    font-size: 3.5rem;
331    font-weight: 400;
332    margin: 0;
333    margin-top: 20px;
334    text-transform: uppercase;
335}
336
337section.footer-menu-links .links-title
338{
339    margin: 2rem 0;
340}
341
342.page-footer .footer-menu-links .links-title {
343    margin: 1rem 0 2rem 0;
344}
345
346.blog-author-view.page-layout-2columns-right #maincontent .columns .sidebar.sidebar-additional {
347    position: relative;
348    order: 2;
349    min-width: 40%;
350}
351
352.blog-author-view.page-layout-2columns-right #maincontent .columns {
353    display: flex;
354    flex-wrap: nowrap;
355}
356
357.blog-author-view.page-layout-2columns-right #maincontent .columns .column.main {
358    order: 1;
359    min-width: 60%;
360    padding: 3rem 1rem 0 0;
361}
362
363.blog-author-view.page-layout-2columns-right #maincontent .post-description p {
364    font-size: 14px !important;
365}
366
367.blog-author-view.page-layout-2columns-right.blog-page .breadcrumbs {
368    padding: 2rem 2rem 0;
369}
370
371@media screen and (max-width: 1023px){
372    .blog-author-view.page-layout-2columns-right #maincontent .columns {
373        flex-wrap: wrap;
374    }
375
376    .blog-author-view.page-layout-2columns-right.blog-page .breadcrumbs {
377        display: block;
378        margin: 0 0 0 2rem;
379        padding: 2rem 0 0 0;
380    }
381}
382
383/* end cleanup */
384
385/** Minicart start **/
386.minicart-items-wrapper .minicart-items .product-item-data .unit-price { display: none; }
387.minicart-items-wrapper .minicart-items dl.product.options.list { margin-bottom: 0; }
388.minicart-items-wrapper .minicart-items .product-item>.product .product-item-details { padding: 20px 20px 20px 0; }
389.minicart-items-wrapper .minicart-items .product-item-pricing .label { font-size: 1.4rem; }
390.minicart-items-wrapper .minicart-items .product-item>.product .product-item-details .product.options { align-content: center; }
391/** Minicart end **/
392
393/** Current Promotions start **/
394.category-current-promotions .toolbar.toolbar-products { display: none; }
395.category-current-promotions .column.main { flex-direction: column; }
396.category-current-promotions .page-bottom .content { max-width: 1400px; margin: 0 auto; padding: 0 20px; text-align: center; font-size: 1.5rem; }
397/** Current Promotions end **/
398
399
400.catalog-product-view .amrelated-pack .amrelated-details {
401    margin: 20px 0 0 !important;
402}
403
404.catalog-product-view .amrelated-pack .amrelated-info {
405    flex-direction: column !important;
406}
407
408</style>
409        
410<script>
411    window.getWpGA4Cookie = function(name) {
412        match = document.cookie.match(new RegExp(name + '=([^;]+)'));
413        if (match) return decodeURIComponent(match[1].replace(/\+/g, ' ')) ;
414    };
415
416    window.ga4AllowServices = false;
417
418    var isCookieRestrictionModeEnabled = 0,
419        currentWebsiteId = 4,
420        cookieRestrictionName = 'user_allowed_save_cookie';
421
422    if (isCookieRestrictionModeEnabled) {
423        allowedCookies = window.getWpGA4Cookie(cookieRestrictionName);
424
425        if (allowedCookies !== undefined) {
426            allowedWebsites = JSON.parse(allowedCookies);
427
428            if (allowedWebsites[currentWebsiteId] === 1) {
429                window.ga4AllowServices = true;
430            }
431        }
432    } else {
433        window.ga4AllowServices = true;
434    }
435</script>
435
436        
436<script>
437        if (window.ga4AllowServices) {
438            window.dataLayer = window.dataLayer || [];
439                        var dl4Objects = [{"pageName":"Cart","pageType":"cart","event":"view_cart","cart_total":0,"total":0,"ecommerce":{"items":[],"value":0,"currency":"USD"}}];
440            for (var i in dl4Objects) {
441                window.dataLayer.push({ecommerce: null});
442                window.dataLayer.push(dl4Objects[i]);
443            }
444                        var wpGA4Cookies = ['wp_ga4_user_id','wp_ga4_customerGroup'];
445            wpGA4Cookies.map(function (cookieName) {
446                var cookieValue = window.getWpGA4Cookie(cookieName);
447                if (cookieValue) {
448                    var dl4Object = {};
449                    dl4Object[cookieName.replace('wp_ga4_', '')] = cookieValue;
450                    window.dataLayer.push(dl4Object);
451                }
452            });
453        }
454    </script>
454
455
456    <!-- Google Tag Manager -->
457<script>  if (window.ga4AllowServices) {
vendor: 332 bytes, lines 457-461
457 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
458new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
459j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
460'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
461})(window,document,'script','dataLayer','
461GTM-MRL4BPG
vendor: 3 bytes, line 461
461');
461} </script>
461
462<!-- End Google Tag Manager --><!-- BEGIN GOOGLE ANALYTICS CODE -->
463<script type="text/x-magento-init">
464{
465    "*": {
466        "Magento_GoogleAnalytics/js/google-analytics": {
467            "isCookieRestrictionModeEnabled": 0,
468            "currentWebsite": 4,
469            "cookieName": "user_allowed_save_cookie",
470            "ordersTrackingData": [],
471            "pageTrackingData": {"optPageUrl":"","isAnonymizedIpActive":false,"accountId":"UA-321761-14"}        }
472    }
473}
474</script>
474
475<!-- END GOOGLE ANALYTICS CODE -->
476    
476<script type="text/x-magento-init">
477        {
478            "*": {
479                "Magento_PageCache/js/form-key-provider": {
480                    "isPaginationCacheEnabled":
481                        0                }
482            }
483        }
484    </script>
vendor: 1 bytes, line 484
484
485<script type="text/x-magento-init">
486    {
487        "*": {
488            "widgetRenderer": {
489                "price" : "$0.00",
490                "alignment" : "right",
491                "is_cart" : true,
492                "widget_url" : "https://widget.sezzle.com/v1/javascript/price-widget?uuid=8c3f998a-2529-4f3d-8989-f1844cc814bb"
493            }
494        }
495    }
496</script>
496
497    
497<script>
498function init() {
499  'use strict';
500  console.log("DOM ready, run script");
501  
502/*
503  Web Data Collector SDK Clean v2.2.0
504  - Magento-ready: reliable "Checkout Started" with KO/SPA readiness checks
505  - Batching + sendBeacon, retry with jitter, debounced observers
506  - Safer cookie handling (SameSite, Secure, apex domain) + storage fallbacks
507  - Locale-aware price parsing, guarded debug logs
508  - Pluggable selectors with platform defaults + per-merchant overrides
509*/
510
511;(function (window, document) {
512  const VERSION = '1.0.0';
513  
514  // Dynamic API URL construction from current domain
515  function getClickstreamApiUrl() {
516    const { protocol, host } = window.location;
517    return `${protocol}//${host}/.clickstream`;
518  }
519  
520  const CLICKSTREAM_API_URL = getClickstreamApiUrl();
521  
522  const DEFAULTS = {
523    apiBaseUrl: CLICKSTREAM_API_URL,
524    cookie: {
525      uid: 'wbs_uid',
526      session: 'wbs_session',
527      days: 730
528    },
529    // Session management configuration
530    session: {
531      inactivityTimeoutHours: 12,  // Session expires after 12 hours of inactivity
532    },
533    batching: {
534      flushIntervalMs: 5000,
535      maxBatch: 25
536    },
537    retry: {
538      attempts: 3,
539      baseDelayMs: 500,
540      maxDelayMs: 4000
541    }
542  };
543
544
545  // -------------------- tiny utils --------------------
546  const U = {
547    now() { return Date.now(); },
548    iso() { return new Date().toISOString(); },
549    randId(prefix) { return `${prefix}_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`; },
550    uuid() {
551      return crypto.randomUUID();
552    },
553    clamp(n, a, b) { return Math.max(a, Math.min(b, n)); },
554    // Very forgiving number parser using current or provided locale
555    parseMoney(text) {
556      if (!text) return { amount: null, currency: null };
557      const s = String(text).trim();
558
559      // Extract currency code if it's in ISO format (e.g., "USD 19.99", "19.99 USD")
560      const isoCurrencyMatch = s.match(/\b([A-Z]{3})\b/);
561      if (isoCurrencyMatch) {
562        const currency = isoCurrencyMatch[1];
563        const num = s.replace(/[^0-9,.-]/g, '');
564        let normalized = num;
565        const lastComma = num.lastIndexOf(',');
566        const lastDot = num.lastIndexOf('.');
567        if (lastComma > -1 && lastDot > -1) {
568          if (lastComma > lastDot) normalized = num.replace(/\./g, '').replace(',', '.');
569          else normalized = num.replace(/,/g, '');
570        } else {
571          if (lastComma > -1 && /,\d{1,2}$/.test(num)) normalized = num.replace(',', '.');
572          else normalized = num.replace(/,/g, '');
573        }
574        const amount = parseFloat(normalized);
575        return { amount: Number.isFinite(amount) ? amount : null, currency };
576      }
577
578      // Fallback to symbol detection with enhanced currency support
579      const currencyMap = {
580        '$': 'USD', '€': 'EUR', '£': 'GBP', '¥': 'JPY', '₹': 'INR',
581        '₽': 'RUB', '₩': 'KRW', '₪': 'ILS', '₦': 'NGN', '₨': 'PKR',
582        '₱': 'PHP', '₫': 'VND', '₴': 'UAH', '₸': 'KZT', '₺': 'TRY',
583        '₼': 'AZN', '₾': 'GEL', '₿': 'BTC', 'Ξ': 'ETH'
584      };
585
586      const curSym = (s.match(/[A-Za-z]{3}|[€£¥₹$₽₩₪₦₨₱₫₴₸₺₼₾₿Ξ]/) || [null])[0];
587      const num = s.replace(/[^0-9,.-]/g, '');
588      let normalized = num;
589      const lastComma = num.lastIndexOf(',');
590      const lastDot = num.lastIndexOf('.');
591      if (lastComma > -1 && lastDot > -1) {
592        if (lastComma > lastDot) normalized = num.replace(/\./g, '').replace(',', '.');
593        else normalized = num.replace(/,/g, '');
594      } else {
595        if (lastComma > -1 && /,\d{1,2}$/.test(num)) normalized = num.replace(',', '.');
596        else normalized = num.replace(/,/g, '');
597      }
598      const amount = parseFloat(normalized);
599      let currency = null;
600      if (curSym) currency = currencyMap[curSym] || (/[A-Za-z]{3}/.test(curSym) ? curSym.toUpperCase() : null);
601      return { amount: Number.isFinite(amount) ? amount : null, currency };
602    },
603    log(...args){
604        // console.log('[SDK]', ...args);
605    },
606    warn(...args){
607        // console.warn('[SDK]', ...args);
608    }
609  };
610
611  // -------------------- storage (cookie with fallbacks) --------------------
612  const Store = {
613    setCookie(name, value, days) {
614      try {
615        const date = new Date();
616        date.setTime(date.getTime() + days * 864e5);
617        const hostParts = location.hostname.split('.');
618        const apex = hostParts.length > 2 ? hostParts.slice(-2).join('.') : location.hostname;
619        const secure = location.protocol === 'https:' ? ';Secure' : '';
620        const base = `${name}=${encodeURIComponent(value)};expires=${date.toUTCString()};path=/;SameSite=Lax${secure}`;
621        document.cookie = `${base};domain=.${apex}`;
622        if (!Store.getCookie(name)) document.cookie = base; // host-only fallback
623      } catch (e) {
624        try { localStorage.setItem(name, value); } catch {}
625      }
626    },
627    getCookie(name) {
628      try {
629        const m = document.cookie.match(new RegExp('(?:^|; )' + name.replace(/([.$?*|{}()[\]\\/+^])/g, '\\$1') + '=([^;]*)'));
630        return m ? decodeURIComponent(m[1]) : localStorage.getItem(name);
631      } catch { return null; }
632    },
633    setConfig(key, value) {
634      try {
635        localStorage.setItem(key, JSON.stringify(value));
636        return true;
637      } catch (e) {
638        U.warn('Failed to store config in localStorage:', e);
639        return false;
640      }
641    },
642    getConfig(key) {
643      try {
644        const data = localStorage.getItem(key);
645        return data ? JSON.parse(data) : null;
646      } catch (e) {
647        U.warn('Failed to retrieve config from localStorage:', e);
648        return null;
649      }
650    },
651    removeConfig(key) {
652      try {
653        localStorage.removeItem(key);
654        return true;
655      } catch (e) {
656        U.warn('Failed to remove config from localStorage:', e);
657        return false;
658      }
659    }
660  };
661
662  // -------------------- compression utilities --------------------
663  const Compression = {
664    /**
665     * Compress a string using gzip (browser-compatible)
666     * @param {string} data - String data to compress
667     * @returns {Promise<Uint8Array|null>} - Compressed data as Uint8Array or null if failed
668     */
669    async gzip(data) {
670      if (!('CompressionStream' in window)) {
671        U.warn('CompressionStream not supported, sending uncompressed');
672        return null;
673      }
674
675      try {
676        const stream = new CompressionStream('gzip');
677        const writer = stream.writable.getWriter();
678        const reader = stream.readable.getReader();
679
680        // Write data to compression stream
681        const encoder = new TextEncoder();
682        writer.write(encoder.encode(data));
683        writer.close();
684
685        // Read compressed chunks
686        const chunks = [];
687        let done = false;
688        while (!done) {
689          const { value, done: readerDone } = await reader.read();
690          done = readerDone;
691          if (value) chunks.push(value);
692        }
693
694        // Combine chunks into single Uint8Array
695        const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
696        const result = new Uint8Array(totalLength);
697        let offset = 0;
698        for (const chunk of chunks) {
699          result.set(chunk, offset);
700          offset += chunk.length;
701        }
702
703        return result;
704      } catch (error) {
705        U.warn('Gzip compression failed:', error);
706        return null;
707      }
708    },
709
710    /**
711     * Check if compression is beneficial (at least 20% size reduction)
712     * @param {number} originalSize - Original size in bytes
713     * @param {number} compressedSize - Compressed size in bytes
714     * @param {number} threshold - Minimum size to attempt compression (default 1000)
715     * @returns {boolean} - True if compression should be used
716     */
717    shouldUseCompression(originalSize, compressedSize, threshold = 1000) {
718      return originalSize >= threshold && compressedSize < originalSize * 0.8;
719    }
720  };
721
722  // -------------------- transport (queue + flush + retry) --------------------
723  class Transport {
724    constructor(apiBaseUrl, retryCfg, batching) {
725      this.apiBaseUrl = apiBaseUrl;
726      this.retry = retryCfg;
727      this.batchCfg = batching;
728      this.queue = this._loadQueue(); // Load from localStorage
729      this.timer = null;
730      this._bindLifecycle();
731    }
732    enqueue(evt) {
733      // Add to queue
734      this.queue.push(evt);
735
736      // Limit queue to 100 events, dropping older ones
737      if (this.queue.length > 100) {
738        const droppedCount = this.queue.length - 100;
739        this.queue = this.queue.slice(-100); // Keep only the last 100 events
740        U.warn(`Queue limit exceeded (100). Dropped ${droppedCount} older events.`);
741      }
742
743      this._persistQueue(); // Save to localStorage
744
745      // Log the complete event being pushed to queue
746      U.log('Enqueued event (complete):', {
747        ...evt,
748        queue_size: this.queue.length
749      });
750
751      if (this.queue.length >= this.batchCfg.maxBatch) this.flush();
752      else this._ensureTimer();
753    }
754    _ensureTimer(){
755      if (this.timer) return;
756      this.timer = setInterval(() => {
757        if (this.queue.length > 0) {
758          this.flush();
759        }
760      }, this.batchCfg.flushIntervalMs);
761    }
762    _clearTimer(){ if (this.timer) { clearInterval(this.timer); this.timer = null; } }
763    _bindLifecycle(){
764      const flushNow = () => this.flush(true);
765      window.addEventListener('visibilitychange', () => { if (document.visibilityState === 'hidden') flushNow(); });
766      window.addEventListener('pagehide', flushNow);
767      window.addEventListener('beforeunload', flushNow);
768    }
769    async flush(isUnload=false){
770      U.log('Flushing queue:', this.queue.length);
771      if (this.queue.length === 0) return;
772      const batch = this.queue.splice(0, this.batchCfg.maxBatch);
773      this._persistQueue(); // Update localStorage after removing items
774      this._clearTimer();
775
776      const url = `${this.apiBaseUrl}/events/batch`;
777      const payload = JSON.stringify(batch);
778
779      // Try compression for larger payloads
780      let requestBody = payload;
781      let headers = { 'Content-Type': 'application/json', 'X-SDK-Version': VERSION };
782      let compressionUsed = false;
783
784      // Try sendBeacon on unload for reliability (uncompressed)
785      if (isUnload && navigator.sendBeacon) {
786        try {
787          const ok = navigator.sendBeacon(url, new Blob([payload], { type: 'application/json' }));
788          if (ok) {
789            // Log successful sendBeacon with event details
790            U.log('Successfully sent batch via sendBeacon:', {
791              batch_size: batch.length,
792              events: batch.map(evt => ({
793                event_name: evt.event_name,
794                event_id: evt.event_id,
795                page_type: evt.page?.type
796              })),
797              api_url: url,
798              compression: { enabled: false, reason: 'sendBeacon_unload_reliability' }
799            });
800            this._clearPersistedQueue(); // Clear persisted queue on successful flush
801            return; // success
802          }
803        } catch {}
804      }
805
806      // Attempt gzip compression if payload is large enough
807      if (payload.length >= 1000) { // Only compress if >= 1KB
808        try {
809          const compressedData = await Compression.gzip(payload);
810
811          if (compressedData && Compression.shouldUseCompression(payload.length, compressedData.length)) {
812            requestBody = compressedData;
813            headers['Content-Encoding'] = 'gzip';
814            headers['Content-Type'] = 'application/json'; // Keep original content type
815            compressionUsed = true;
816
817            U.log(`Using gzip compression: ${payload.length} → ${compressedData.length} bytes (${(payload.length/compressedData.length).toFixed(1)}x reduction)`);
818          }
819        } catch (error) {
820          U.warn('Compression failed, sending uncompressed:', error);
821          // Continue with uncompressed payload
822        }
823      }
824
825      // Use fetch with compression and retry
826      let attempt = 0;
827      while (attempt < this.retry.attempts) {
828        attempt++;
829        try {
830          const ac = new AbortController();
831          const timeout = setTimeout(() => ac.abort(), U.clamp(3000 * attempt, 3000, 10000));
832
833          const res = await fetch(url, {
834            method: 'POST',
835            headers: headers,
836            body: requestBody,
837            signal: ac.signal
838          });
839
840          clearTimeout(timeout);
841
842          if (res.ok) {
843            U.log('Successfully sent batch:', {
844              batch_size: batch.length,
845              compressed: compressionUsed,
846              original_size: payload.length,
847              sent_size: compressionUsed ? requestBody.length : payload.length
848            });
849            this._clearPersistedQueue();
850            return;
851          }
852          U.log('Failed to flush queue - HTTP status:', res.status, 'URL:', url);
853          throw new Error(`HTTP ${res.status}`);
854        } catch (err) {
855          U.log(`Retry attempt ${attempt}/${this.retry.attempts} failed:`, err.message);
856          if (attempt === this.retry.attempts) {
857            U.log('All retry attempts failed, pushing', batch.length, 'events back to queue');
858          }
859          const jitter = Math.random() * 200;
860          const delay = U.clamp(this.retry.baseDelayMs * Math.pow(2, attempt - 1) + jitter, this.retry.baseDelayMs, this.retry.maxDelayMs);
861          await new Promise(r => setTimeout(r, delay));
862        }
863      }
864      // Don't push back failed events - drop them after all retries are exhausted
865      U.log('Dropping failed batch after all retries exhausted, batch size:', batch.length);
866      U.warn('Failed to send', batch.length, 'events after', this.retry.attempts, 'retry attempts. Events dropped.');
867    }
868
869    // Add these new methods
870    _persistQueue() {
871      try {
872        localStorage.setItem('wbs_event_queue', JSON.stringify(this.queue));
873      } catch (e) {
874        U.warn('Failed to persist queue to localStorage:', e);
875      }
876    }
877
878    _loadQueue() {
879      try {
880        const stored = localStorage.getItem('wbs_event_queue');
881        return stored ? JSON.parse(stored) : [];
882      } catch (e) {
883        U.warn('Failed to load queue from localStorage:', e);
884        return [];
885      }
886    }
887
888    _clearPersistedQueue() {
889      try {
890        localStorage.removeItem('wbs_event_queue');
891      } catch (e) {
892        U.warn('Failed to clear persisted queue:', e);
893      }
894    }
895
896    // Helper method to create a summary of payload for logging
897    _getPayloadSummary(payload) {
898      if (!payload) return null;
899
900      const summary = {};
901
902      // Add key fields based on event type
903      if (payload.product_id) summary.product_id = payload.product_id;
904      if (payload.sku) summary.sku = payload.sku;
905      if (payload.name) summary.name = payload.name?.substring(0, 50) + (payload.name?.length > 50 ? '...' : '');
906      if (payload.query) summary.query = payload.query;
907      if (payload.order_id) summary.order_id = payload.order_id;
908      if (payload.order_number) summary.order_number = payload.order_number;
909      if (payload.value) summary.value = payload.value;
910      if (payload.currency) summary.currency = payload.currency;
911      if (payload.products?.length) summary.product_count = payload.products.length;
912      if (payload.item_count) summary.item_count = payload.item_count;
913
914      return Object.keys(summary).length > 0 ? summary : null;
915    }
916  }
917
918  // -------------------- DOM config --------------------
919  // Global DOM config - will be set once during initialization
920  let domConfig = null;
921
922  // Function to get DOM config with async fetch and caching
923  async function getDomConfig(apiBaseUrl) {
924    const cacheKey = 'clickstream_config';
925    const cacheTTL = 5 * 60 * 1000; // 5 minutes in milliseconds
926
927    // Check cache first
928    try {
929      const cached = localStorage.getItem(cacheKey);
930      if (cached) {
931        const { data, timestamp } = JSON.parse(cached);
932        const isExpired = (Date.now() - timestamp) > cacheTTL;
933
934        if (!isExpired) {
935          U.log(`Using cached DOM config`);
936          return data;
937        } else {
938          U.log(`Cache expired, will fetch from API`);
939          localStorage.removeItem(cacheKey);
940        }
941      }
942    } catch (e) {
943      U.warn(`Cache read error: ${e.message}`);
944    }
945
946    // Cache miss or expired - fetch from API asynchronously
947    U.log(`Fetching DOM config from API`);
948
949    try {
950      const apiUrl = `${apiBaseUrl}/clickstream-config`;
951      const response = await fetch(apiUrl, {
952        method: 'GET',
953        headers: { 'Content-Type': 'application/json' },
954        signal: AbortSignal.timeout(10000) // 10 second timeout
955      });
956
957      if (!response.ok) {
958        throw new Error(`API request failed: ${response.status} ${response.statusText}`);
959      }
960
961      const configData = await response.json();
962
963      if (!configData.dom_config) {
964        throw new Error('No dom_config found in API response');
965      }
966
967      if (!configData.merchant_id || !configData.merchant_code) {
968        throw new Error('Missing merchant_id or merchant_code in API response');
969      }
970
971      // Cache the result
972      const cacheData = {
973        data: configData,
974        timestamp: Date.now()
975      };
976      localStorage.setItem(cacheKey, JSON.stringify(cacheData));
977      U.log('DOM config fetched and cached successfully');
978
979      return configData;
980
981    } catch (error) {
982      U.warn(`Failed to fetch DOM config from API`);
983      throw new Error(`DOM configuration not available. ${error.message}`);
984    }
985  }
986
987
988  // -------------------- page detector (classes first, then heuristics) --------------------
989  class PageDetector {
990    constructor(){
991      this.current = 'OTHER';
992      this.detect = this.detect.bind(this);
993    }
994
995    detect(){
996      const pageConfig = domConfig.pages;
997      U.log('Starting page detection with config:', pageConfig);
998
999      for (const [pageType, methods] of Object.entries(pageConfig)) {
1000        if (!Array.isArray(methods)) continue;
1001
1002        U.log(`Testing page type: ${pageType}`);
1003
1004        for (const method of methods) {
1005          let detected = false;
1006
1007          switch (method.type) {
1008            case 'dom_element':
1009              detected = this._detectPageByDOM(method.selector);
1010              U.log(`DOM detection for ${pageType}:`, method.selector, '→', detected);
1011              break;
1012            case 'url_pattern':
1013              detected = this._detectPageByURL(method.pattern);
1014              U.log(`URL detection for ${pageType}:`, method.pattern, '→', detected);
1015              break;
1016            default:
1017              U.warn(`Unknown page detection method: ${method.type}`);
1018              continue;
1019          }
1020
1021          if (detected) {
1022            U.log(`Page detected as: ${pageType}`);
1023            return (this.current = pageType);
1024          }
1025        }
1026      }
1027
1028      U.log('No page type detected, defaulting to OTHER');
1029      return (this.current = 'OTHER');
1030    }
1031
1032    // Check DOM selector
1033    _detectPageByDOM(selector) {
1034      if (document.querySelector(selector)) {
1035        return true;
1036      }
1037      return false;
1038    }
1039
1040    // Check URL pattern using regex
1041    _detectPageByURL(pattern) {
1042      const currentURL = window.location.href;
1043      const currentPath = window.location.pathname;
1044      const fullURL = currentPath + window.location.search; // Include query params
1045
1046      try {
1047        const regex = new RegExp(pattern);
1048        if (regex.test(fullURL) || regex.test(currentURL)) {
1049          return true;
1050        }
1051      } catch (e) {
1052        U.warn(`[SDK] Invalid regex pattern: ${pattern}`, e);
1053      }
1054      return false;
1055    }
1056  }
1057
1058  // Event names from schema.py - keep in sync with backend
1059  const SUPPORTED_EVENTS = {
1060    PRODUCTS_SEARCHED: 'products_searched',
1061    PRODUCT_VIEWED: 'product_viewed',
1062    PRODUCT_ADDED_TO_CART: 'product_added_to_cart',
1063    CART_VIEWED: 'cart_viewed',
1064    CHECKOUT_STARTED: 'checkout_started',
1065    ORDER_COMPLETED: 'order_completed'
1066  };
1067
1068  /**
1069   * Factory function to extract event data based on event name and page type
1070   * @param {string} eventName - Event name from SUPPORTED_EVENTS
1071   * @param {string} pageType - Page type (PRODUCT, CATEGORY, SEARCH, etc.)
1072   * @param {...any} args - Additional arguments (e.g., element for product_clicked)
1073   * @returns {object|null} - Event payload data or null if extraction fails
1074   */
1075  async function extractEventData(eventName, pageType, sdkInstance = null, ...args) {
1076    if (!Object.values(SUPPORTED_EVENTS).includes(eventName)) {
1077      U.warn(`[SDK] Unsupported event name: ${eventName}`);
1078      return null;
1079    }
1080
1081    try {
1082      switch (eventName) {
1083        case SUPPORTED_EVENTS.PRODUCT_VIEWED:
1084          return sdkInstance ? await sdkInstance._extractProductViewedDataWithRetry(pageType) : null;
1085
1086        case SUPPORTED_EVENTS.PRODUCTS_SEARCHED:
1087          return sdkInstance ? await sdkInstance._extractProductsSearchedDataWithRetry(pageType) : null;
1088
1089        case SUPPORTED_EVENTS.PRODUCT_ADDED_TO_CART:
1090          // This uses a different pattern - handled in _trackProductAddedToCart
1091          U.warn(`[SDK] ${eventName} extraction handled separately in tracking method`);
1092          return null;
1093
1094        case SUPPORTED_EVENTS.CART_VIEWED:
1095          return sdkInstance ? await sdkInstance._extractCartViewedDataWithRetry(pageType) : null;
1096
1097        case SUPPORTED_EVENTS.CHECKOUT_STARTED:
1098          return sdkInstance ? await sdkInstance._extractCheckoutDataWithRetry(pageType) : null;
1099
1100        case SUPPORTED_EVENTS.ORDER_COMPLETED:
1101          return sdkInstance ? await sdkInstance._extractTransactionDataWithRetry(pageType) : null;
1102
1103        default:
1104          U.warn(`[SDK] No extraction handler for event: ${eventName}`);
1105          return null;
1106      }
1107    } catch (error) {
1108      U.warn(`[SDK] Error extracting data for ${eventName}:`, error);
1109      return null;
1110    }
1111  }
1112
1113
1114  // -------------------- core SDK --------------------
1115  class WebDataCollector {
1116    constructor(options={}){
1117      this.cfg = { ...DEFAULTS, ...options };
1118      this.initialized = false;
1119
1120      // Initialize async components
1121      this._initialize();
1122    }
1123
1124    async _initialize() {
1125      try {
1126        U.log('Starting initialization');
1127
1128        // Fetch config from API (no merchant_id parameter needed)
1129        const fullConfig = await getDomConfig(this.cfg.apiBaseUrl);
1130        
1131        // Extract merchant_id and merchant_code from config
1132        this.merchantId = fullConfig.merchant_id;
1133        this.merchantCode = fullConfig.merchant_code;
1134        
1135        // Set global DOM config from the dom_config property
1136        domConfig = fullConfig.dom_config;
1137        
1138        U.log('DOM config loaded successfully from API:', {
1139          merchant_id: this.merchantId,
1140          merchant_code: this.merchantCode,
1141          platform: domConfig.platform,
1142          pages_configured: Object.keys(domConfig.pages || {}),
1143          events_configured: Object.keys(domConfig.events || {})
1144        });
1145
1146        this.platform = domConfig.platform; // Get platform from config instead of detection
1147
1148        this.detector = new PageDetector();
1149        this.currentPageType = this.detector.detect();
1150        U.log('Page detected as:', this.currentPageType, 'URL:', location.href);
1151
1152        this.transport = new Transport(this.cfg.apiBaseUrl, this.cfg.retry, this.cfg.batching);
1153
1154        // identities
1155      this.uid = this._getOrCreateId(this.cfg.cookie.uid, this.cfg.cookie.days);
1156
1157      // Check if this is a new session or continuing existing one
1158      const isNewSession = this._isNewSession();
1159      if (isNewSession) {
1160        // Create new session ID for new sessions
1161        this.sessionId = this._getOrCreateId(this.cfg.cookie.session, this.cfg.cookie.sessionHours/24);
1162        // Reset event sequence for new session
1163        this.eventSeq = 0;
1164        Store.setConfig('wbs_event_seq', 0);
1165        // Session tracking removed - not in schema
1166      } else {
1167        // Use existing session ID
1168        this.sessionId = Store.getCookie(this.cfg.cookie.session);
1169        // Restore event sequence from previous page loads
1170        this.eventSeq = Store.getConfig('wbs_event_seq') || 0;
1171        // Session tracking removed - not in schema
1172        // Refresh session cookie expiration
1173        this._refreshSessionCookie();
1174      }
1175
1176      // fire-once guard per path/session for Checkout Started
1177      this._firedGuards = new Set();
1178
1179      this._bindAddToCartListeners();
1180
1181      U.log('Initialization completed successfully:', {
1182        merchant_id: this.merchantId,
1183        merchant_code: this.merchantCode,
1184        platform: this.platform,
1185        page_type: this.currentPageType,
1186        uid: this.uid,
1187        session_id: this.sessionId,
1188        event_seq: this.eventSeq
1189      });
1190
1191      this.initialized = true;
1192      this.trackPageView();
1193      } catch (error) {
1194        U.warn('[SDK] ❌ Initialization failed:', error);
1195        throw error; // Fail fast - SDK cannot function without DOM config
1196      }
1197    }
1198
1199
1200    // ---------- ids ----------
1201    _getOrCreateId(name, days){ let v = Store.getCookie(name); if (!v){ v = U.uuid(); Store.setCookie(name, v, days); } return v; }
1202
1203    _getNextEventSeq() {
1204      // Increment event sequence and persist it
1205      this.eventSeq += 1;
1206      Store.setConfig('wbs_event_seq', this.eventSeq);
1207      return this.eventSeq;
1208    }
1209
1210    _isNewSession() {
1211      // Check if session cookie exists and hasn't expired
1212      const existingSessionId = Store.getCookie(this.cfg.cookie.session);
1213      if (!existingSessionId) {
1214        return true; // No existing session
1215      }
1216
1217      // Check if we have a stored session start time
1218      const storedSessionStart = Store.getConfig('wbs_session_start');
1219      if (!storedSessionStart) {
1220        return true; // No stored session start time
1221      }
1222
1223      // Check if we have last activity timestamp
1224      const lastActivity = Store.getConfig('wbs_last_activity');
1225      if (!lastActivity) {
1226        return true; // No activity tracking
1227      }
1228
1229      // Check if session has expired based on inactivity (configurable)
1230      const lastActivityTime = new Date(lastActivity).getTime();
1231      const currentTime = Date.now();
1232      const inactivityTimeout = this.cfg.session.inactivityTimeoutHours * 60 * 60 * 1000; // Convert hours to milliseconds
1233      const timeSinceLastActivity = currentTime - lastActivityTime;
1234
1235      if (timeSinceLastActivity > inactivityTimeout) {
1236        // Session expired due to inactivity, clean up old data
1237        Store.removeConfig('wbs_session_start');
1238        Store.removeConfig('wbs_last_activity');
1239        Store.removeConfig('wbs_event_seq'); // Clear event sequence for expired session
1240        // Also remove the expired session cookie so a new one will be created
1241        Store.setCookie(this.cfg.cookie.session, '', -1); // Set to expire immediately
1242        return true;
1243      }
1244
1245      return false; // Session is still valid
1246    }
1247
1248    _refreshSessionCookie() {
1249      // Extend the session cookie expiration to keep the session alive
1250      const existingSessionId = Store.getCookie(this.cfg.cookie.session);
1251      if (existingSessionId) {
1252        Store.setCookie(this.cfg.cookie.session, existingSessionId, this.cfg.cookie.sessionHours/24);
1253      }
1254    }
1255
1256    // ---------- retry helpers ----------
1257
1258    _bindAddToCartListeners(){
1259      // Get add to cart config from the current page type
1260      const pageConfig = domConfig.events[this.currentPageType];
1261      const cfg = pageConfig?.product_added_to_cart;
1262
1263      if (!cfg || !cfg.selectors) return; // No add to cart config for this page type
1264
1265      // Use configuration-based add-to-cart detection with industry standard data attributes
1266      document.addEventListener('click', (e) => {
1267        // Check if clicked element matches any configured add-to-cart selectors
1268        const matchedSelector = cfg.selectors.find(selector => {
1269          return e.target.matches(selector) || e.target.closest(selector);
1270        });
1271
1272        if (matchedSelector) {
1273          const actualElement = e.target.matches(matchedSelector) ? e.target : e.target.closest(matchedSelector);
1274
1275          // Prevent duplicate tracking and handle different element types
1276          if (actualElement.tagName === 'FORM') {
1277            // Handle form submission tracking
1278            actualElement.addEventListener('submit', async (submitEvent) => {
1279              await this._trackProductAddedToCart(actualElement, 'form');
1280            }, { once: true });
1281          } else {
1282            // Handle button/element click tracking (fire and forget)
1283            this._trackProductAddedToCart(actualElement, 'click').catch(error => {
1284              U.warn('Add to cart tracking failed:', error);
1285            });
1286          }
1287        }
1288      }, { capture: true });
1289    }
1290
1291
1292    async _trackProductAddedToCart(element, eventType = 'form'){
1293      try {
1294        // Extract product data based on context
1295        const productData = await this._extractProductDataFromAddToCart(element, eventType);
1296        if (!productData?.product_id && !productData?.sku) {
1297          U.warn('Could not extract product data from element');
1298          return;
1299        }
1300
1301        const payload = this._buildBase(SUPPORTED_EVENTS.PRODUCT_ADDED_TO_CART, {
1302          payload: {
1303            product_id: productData.product_id || productData.sku,
1304            name: productData.name,
1305            sku: productData.sku,
1306            price: productData.price,
1307            currency: productData.currency,
1308            quantity: productData.quantity || null,
1309          }
1310        });
1311
1312        this.transport.enqueue(payload);
1313      } catch (e) {
1314        U.warn('Failed to track product added to cart:', e);
1315      }
1316    }
1317
1318    // Extract product data from add-to-cart interactions (forms or buttons)
1319    async _extractProductDataFromAddToCart(element, eventType){
1320      const productData = {};
1321
1322      try {
1323        // For PDP pages, use the existing working extractProductViewedData() function
1324        if (this.currentPageType === 'PRODUCT') {
1325          const pdpData = await this._extractProductViewedData(this.currentPageType);
1326          productData.product_id = pdpData?.product_id;
1327          productData.name = pdpData?.name;
1328          productData.sku = pdpData?.sku;
1329          productData.price = pdpData?.price;
1330          productData.currency = pdpData?.currency;
1331
1332          // Extract quantity using DOM config
1333          const cfg = domConfig.events[this.currentPageType]?.product_added_to_cart?.extraction;
1334          if (cfg?.quantity) {
1335            const qtyValue = this._extractFieldValue(cfg.quantity, document, 'quantity');
1336            productData.quantity = qtyValue ? parseInt(qtyValue, 10) || null : null;
1337          }
1338        }
1339        // For product list pages (category, search, etc.)
1340        else {
1341          const cfg = domConfig.events[this.currentPageType]?.product_added_to_cart?.extraction;
1342
1343          // Find the product container (form itself, or closest product item)
1344          let container = element;
1345          if (eventType === 'button' && cfg?.container) {
1346            container = element.closest(cfg.container) || element;
1347          }
1348
1349
1350          // Use the generic extraction methods
1351          productData.product_id = cfg.product_id ? this._extractFieldValue(cfg.product_id, container, 'product_id') : null;
1352
1353          productData.sku = cfg.sku ? this._extractFieldValue(cfg.sku, container, 'sku') : null;
1354          productData.name = cfg.name ? this._extractFieldValue(cfg.name, container, 'name') : null;
1355
1356          // Extract price and currency
1357          if (cfg.price) {
1358            const priceValue = this._extractFieldValue(cfg.price, container, 'price');
1359            if (priceValue) {
1360              const { amount, currency } = U.parseMoney(priceValue);
1361              productData.price = amount;
1362              productData.currency = currency;
1363            }
1364          }
1365
1366          // Extract quantity
1367          if (cfg.quantity) {
1368            const qtyValue = this._extractFieldValue(cfg.quantity, container, 'quantity');
1369            productData.quantity = qtyValue ? parseInt(qtyValue, 10) || null : null;
1370          }
1371        }
1372
1373      } catch (e) {
1374        U.warn('Error extracting product data:', e);
1375      }
1376
1377      return productData;
1378    }
1379
1380    async _waitForDomStable(timeout, idleTime) {
1381        return new Promise(resolve => {
1382            let lastChange = Date.now();
1383
1384            const observer = new MutationObserver(() => {
1385                lastChange = Date.now();
1386            });
1387
1388            observer.observe(document.body, {
1389                childList: true,
1390                subtree: true,
1391                attributes: true,
1392                characterData: true
1393            });
1394
1395            const check = () => {
1396                const now = Date.now();
1397
1398                // if DOM idle for idleTime → stable
1399                if (now - lastChange >= idleTime) {
1400                    observer.disconnect();
1401                    //console.log("SDK: DOM stable");
1402                    resolve(true);
1403                    return;
1404                }
1405
1406                // timeout fallback
1407                if (now - startTime >= timeout) {
1408                    observer.disconnect();
1409                    //console.log("SDK: DOM wait timeout");
1410                    resolve(false);
1411                    return;
1412                }
1413
1414                requestAnimationFrame(check);
1415            };
1416
1417            const startTime = Date.now();
1418            check();
1419        });
1420    }
1421
1422
1423    // ---------- page load events ----------
1424    async trackPageView(){
1425
1426      // 🔥 WAIT until Magento DOM stable
1427      await this._waitForDomStable(7000, 800);
1428
1429      // Update last activity timestamp for session management
1430      this._updateLastActivity();
1431
1432      U.log(`Tracking page view for page type: ${this.currentPageType}`);
1433
1434      // chained events by page type
1435      if (this.currentPageType === 'SEARCH') {
1436        U.log('Attempting to track products_searched event');
1437        await this._trackProductsSearched();
1438      }
1439      if (this.currentPageType === 'PRODUCT') {
1440        U.log('Attempting to track product_viewed event');
1441        await this._trackProductViewed();
1442      }
1443      if (this.currentPageType === 'CART') {
1444        U.log('Attempting to track cart_viewed event');
1445        await this._trackCartViewed();
1446      }
1447      if (this.currentPageType === 'CHECKOUT') {
1448        U.log('Attempting to track checkout_started event');
1449        await this._trackCheckoutStarted();
1450      }
1451      if (this.currentPageType === 'ORDER_CONFIRMATION') {
1452        U.log('Attempting to track order_completed event');
1453        await this._trackOrderCompleted();
1454      }
1455
1456      if (this.currentPageType === 'OTHER') {
1457        U.log('Page type is OTHER - no automatic events will be tracked');
1458      }
1459    }
1460
1461
1462    // ---------- builders ----------
1463    _baseCtx(){
1464      return {
1465        merchant_id: this.merchantId,
1466        merchant_code: this.merchantCode,
1467        platform: this.platform,
1468        event_id: U.randId('evt'),
1469        event_seq: this._getNextEventSeq(),
1470        timestamp: U.iso(),
1471        user: (() => {
1472          const userId = this._authedUserId();
1473          const magentoData = this._getMagentoUserData();
1474          return {
1475            user_id: userId,
1476            wbs_id: this.uid,
1477            session_id: this.sessionId,
1478            ...(magentoData && { magento: magentoData })
1479          };
1480        })(),
1481        device: {
1482          screen: {
1483            width: screen.width,
1484            height: screen.height,
1485            color_depth: screen.colorDepth,
1486            pixel_depth: screen.pixelDepth
1487          },
1488          language: navigator.language,
1489          platform: navigator.platform
1490        },
1491        utm: this._utm(),
1492        page: this._pageCtx(),
1493        external_ids: this._externalIds(),
1494        ip: null, // Backend will extract IP from request
1495        sdk: `js-sdk@${VERSION}`
1496      };
1497    }
1498
1499    _pageCtx(){
1500      return {
1501        type: this.currentPageType,
1502        url: location.href,
1503        title: document.title,
1504        path: location.pathname,
1505        referrer: document.referrer || null
1506      };
1507    }
1508
1509    _buildBase(eventName, extra={}) { return { event_name: eventName, ...this._baseCtx(), ...extra }; }
1510
1511
1512    _utm(){
1513      const p = new URLSearchParams(location.search);
1514      return { source: p.get('utm_source'), medium: p.get('utm_medium'), campaign: p.get('utm_campaign'), term: p.get('utm_term'), content: p.get('utm_content') };
1515    }
1516
1517    _externalIds(){
1518      // Extract external platform identifiers from cookies/localStorage
1519      const getCookie = (name) => {
1520        const value = `; ${document.cookie}`;
1521        const parts = value.split(`; ${name}=`);
1522        if (parts.length === 2) return parts.pop().split(';').shift();
1523        return null;
1524      };
1525
1526      return {
1527        google_analytics_browser_id: getCookie('_ga') || null,
1528        meta_pixel_browser_id: getCookie('_fbp') || null,
1529        google_analytics_app_id: null, // Mobile only
1530        meta_sdk_app_id: null // Mobile only
1531      };
1532    }
1533
1534
1535    _authedUserId(){
1536      const userConfig = domConfig.user;
1537
1538      // Debug logging to see what's in the user config
1539      U.log('User config:', userConfig);
1540
1541      // Check for both possible property names and ensure it's an array
1542      const extractionMethods = userConfig?.extraction;
1543
1544      if (!userConfig || !extractionMethods || !Array.isArray(extractionMethods)) {
1545        U.log('No user extraction methods found, using fallback');
1546        return null;
1547      }
1548
1549      // Try each extraction method in order until one succeeds
1550      for (const method of extractionMethods) {
1551        try {
1552          let value = null;
1553
1554          switch (method.type) {
1555            case 'local_storage':
1556              value = this._extractFromLocalStorage(method.key, method.json_path);
1557              break;
1558
1559            case 'cookie':
1560              value = this._extractFromCookie(method.name);
1561              break;
1562
1563            case 'dom_element':
1564              value = this._extractFromDOMElement(method.selector, method.attribute);
1565              break;
1566
1567            default:
1568              U.warn(`[SDK] Unknown user extraction method: ${method.type}`);
1569              continue;
1570          }
1571
1572          // Return first successful extraction
1573          if (value) {
1574            // convert to string and trim
1575            return value.toString().trim();
1576          }
1577        } catch (error) {
1578          U.warn(`[SDK] User extraction method ${method.type} failed:`, error);
1579          continue;
1580        }
1581      }
1582
1583      return null;
1584    }
1585
1586    // User extraction helper methods
1587
1588    _extractFromCookie(name) {
1589      if (!name) return null;
1590
1591      try {
1592        const value = `; ${document.cookie}`;
1593        const parts = value.split(`; ${name}=`);
1594        if (parts.length === 2) {
1595          return parts.pop().split(';').shift();
1596        }
1597        return null;
1598      } catch (error) {
1599        return null;
1600      }
1601    }
1602
1603    _extractFromLocalStorage(key, jsonPath = null) {
1604      try {
1605        const value = localStorage.getItem(key);
1606        if (!value) return null;
1607
1608        if (jsonPath) {
1609          // Parse as JSON and extract specific field
1610          const jsonData = JSON.parse(value);
1611          const parts = jsonPath.split('.');
1612          let current = jsonData;
1613
1614          for (const part of parts) {
1615            current = current[part];
1616            if (current === undefined || current === null) {
1617              return null;
1618            }
1619          }
1620
1621          return current;
1622        } else {
1623          return value;
1624        }
1625      } catch (error) {
1626        return null;
1627      }
1628    }
1629
1630
1631
1632    // Generic field extraction using extraction_methods pattern
1633    _applyExtractionDefaults(method, fieldName = null) {
1634      // Apply intelligent defaults
1635      const normalized = { ...method };
1636
1637      // Default 1: type defaults to 'dom_element' when not specified
1638      if (!normalized.type) {
1639        normalized.type = 'dom_element';
1640      }
1641
1642      // Default 2: Auto-infer attribute from selector when it matches [data-{field-name}] pattern
1643      if (normalized.type === 'dom_element' && !normalized.attribute && fieldName) {
1644        const expectedSelector = `[data-${fieldName.replace('_', '-')}]`;
1645        if (normalized.selector === expectedSelector) {
1646          normalized.attribute = `data-${fieldName.replace('_', '-')}`;
1647        }
1648      }
1649
1650      return normalized;
1651    }
1652
1653
1654    _extractFieldValue(extraction_methods, context = null, fieldName = null) {
1655      if (!extraction_methods || !Array.isArray(extraction_methods)) {
1656        U.log(`No extraction methods for field: ${fieldName}`);
1657        return null;
1658      }
1659
1660      // Handle special case for collection extraction (now in array format)
1661      if (extraction_methods.length >
1661 0 && extraction_methods[0].type === 'dom_collection') {
1662        return this._extractListItems(extraction_methods[0], context, fieldName);
1663      }
1664
1665      for (const method of extraction_methods) {
1666        try {
1667          let value = null;
1668
1669          // Apply intelligent defaults
1670          const normalizedMethod = this._applyExtractionDefaults(method, fieldName);
1671
1672          switch (normalizedMethod.type) {
1673            case 'dom_element':
1674              value = this._extractFromDOMElement(normalizedMethod.selector, normalizedMethod.attribute, context);
1675              break;
1676
1677            case 'url_param':
1678              value = this._extractFromURLParam(normalizedMethod.param_name);
1679              break;
1680
1681            default:
1682              U.warn(`[SDK] Unknown extraction method type: ${normalizedMethod.type}`);
1683              continue;
1684          }
1685
1686          // Return the first successfully extracted value
1687          if (value !== null && value !== undefined && value !== '') {
1688            return value;
1689          }
1690        } catch (error) {
1691          U.warn(`[SDK] Extraction method ${method.type} failed:`, error);
1692          continue;
1693        }
1694      }
1695
1696      return null;
1697    }
1698
1699    // Helper function to extract list items
1700    _extractListItems(listConfig, context = null, fieldName = null) {
1701      try {
1702        const searchContext = context || document;
1703        const { selector, item_fields } = listConfig;
1704
1705        if (!selector || !item_fields) {
1706          U.warn(`[SDK] Invalid list config for field: ${fieldName}`);
1707          return [];
1708        }
1709
1710        // Find all collection elements (cart items, products, etc.)
1711        const containerElements = searchContext.querySelectorAll(selector);
1712
1713        if (containerElements.length === 0) {
1714          return [];
1715        }
1716
1717        // Extract data from each item
1718        const items = [];
1719        containerElements.forEach((item, index) => {
1720          const itemData = this._extractItemData(item, item_fields, index);
1721          if (itemData && (itemData.product_id || itemData.name || itemData.sku)) {
1722            items.push(itemData);
1723          }
1724        });
1725
1726        return items;
1727      } catch (error) {
1728        U.warn(`[SDK] List extraction failed for field: ${fieldName}`, error);
1729        return [];
1730      }
1731    }
1732
1733    // Helper function to extract data from a single list item
1734    _extractItemData(itemElement, itemExtractionConfig, position = 0) {
1735      try {
1736        const itemData = {};
1737
1738        // Extract each field defined in item_extraction config
1739        for (const [fieldName, fieldConfig] of Object.entries(itemExtractionConfig)) {
1740          const value = this._extractFieldValue(fieldConfig, itemElement, fieldName);
1741          if (value !== null && value !== undefined && value !== '') {
1742            itemData[fieldName] = value;
1743          }
1744        }
1745
1746        // Parse monetary values if present - convert to strings for Decimal compatibility
1747        if (itemData.unit_price) {
1748          const { amount, currency } = U.parseMoney(itemData.unit_price);
1749          itemData.unit_price = amount !== null ? String(amount) : null;
1750          if (currency && !itemData.currency) {
1751            itemData.currency = currency;
1752          }
1753        }
1754
1755        // Parse item value (subtotal) if present - convert to strings for Decimal compatibility
1756        if (itemData.value) {
1757          const { amount, currency } = U.parseMoney(itemData.value);
1758          itemData.value = amount !== null ? String(amount) : null;
1759          if (currency && !itemData.currency) {
1760            itemData.currency = currency;
1761          }
1762        }
1763
1764        // Parse currency field if it contains price data instead of currency code
1765        if (itemData.currency && typeof itemData.currency === 'string' && itemData.currency.includes('$')) {
1766          const { currency } = U.parseMoney(itemData.currency);
1767          itemData.currency = currency || null;
1768        }
1769
1770        // Parse quantity as integer
1771        if (itemData.quantity) {
1772          const qty = parseInt(itemData.quantity, 10);
1773          itemData.quantity = isNaN(qty) ? null : qty;
1774        } else {
1775          itemData.quantity = null;
1776        }
1777
1778        return itemData;
1779      } catch (error) {
1780        U.warn('[SDK] Item data extraction failed:', error);
1781        return null;
1782      }
1783    }
1784
1785    // -------------------- Event Data Extraction Methods --------------------
1786
1787    async _extractProductViewedDataWithRetry(pageType = 'PRODUCT', maxRetries = 2) {
1788      for (let attempt = 0; attempt <= maxRetries; attempt++) {
1789        const data = await this._extractProductViewedData(pageType);
1790
1791        // Check if we have minimum required data (product_id or sku)
1792        if (data && (data.product_id || data.sku)) {
1793          return data;
1794        }
1795
1796        if (attempt < maxRetries) {
1797          const delay = Math.min(200 * Math.pow(2, attempt), 1000); // 200ms, 400ms, 800ms max
1798          await new Promise(resolve => setTimeout(resolve, delay));
1799        }
1800      }
1801
1802      U.warn(`[SDK] Failed to extract product data after ${maxRetries + 1} attempts`);
1803      return null;
1804    }
1805
1806    async _extractProductViewedData(pageType = 'PRODUCT') {
1807      const cfg = domConfig.events[pageType]?.product_viewed?.extraction;
1808      if (!cfg) {
1809        U.warn(`[SDK] No product_viewed config found for page type: ${pageType}`);
1810        return null;
1811      }
1812
1813      // Extract all fields in parallel (no individual retries)
1814      const [product_id, name, sku, price, currency, original_price, availabilityRaw] = await Promise.all([
1815        cfg.product_id ? this._extractFieldValue(cfg.product_id, null, 'product_id') : Promise.resolve(null),
1816        cfg.name ? this._extractFieldValue(cfg.name, null, 'name') : Promise.resolve(null),
1817        cfg.sku ? this._extractFieldValue(cfg.sku, null, 'sku') : Promise.resolve(null),
1818        cfg.price ? this._extractFieldValue(cfg.price, null, 'price') : Promise.resolve(null),
1819        cfg.currency ? this._extractFieldValue(cfg.currency, null, 'currency') : Promise.resolve(null),
1820        cfg.original_price ? this._extractFieldValue(cfg.original_price, null, 'original_price') : Promise.resolve(null),
1821        cfg.availability ? this._extractFieldValue(cfg.availability, null, 'availability') : Promise.resolve(null),
1822      ]);
1823
1824      // Process availability with some additional logic
1825      let availability = null;
1826      if (availabilityRaw) {
1827        const availabilityText = String(availabilityRaw).toLowerCase();
1828        availability = /out of stock|unavailable/.test(availabilityText) ? 'out_of_stock' : 'in_stock';
1829      }
1830
1831      return { product_id, name, sku, price, currency, original_price, availability };
1832    }
1833
1834    async _extractProductsSearchedDataWithRetry(pageType = 'SEARCH', maxRetries = 2) {
1835      for (let attempt = 0; attempt <= maxRetries; attempt++) {
1836        const data = await this._extractProductsSearchedData(pageType);
1837
1838        // Check if we have minimum required data (query)
1839        if (data && data.query) {
1840          return data;
1841        }
1842
1843        if (attempt < maxRetries) {
1844          const delay = Math.min(200 * Math.pow(2, attempt), 1000); // 200ms, 400ms, 800ms max
1845          await new Promise(resolve => setTimeout(resolve, delay));
1846        }
1847      }
1848
1849      U.warn(`[SDK] Failed to extract search data after ${maxRetries + 1} attempts`);
1850      return null;
1851    }
1852
1853    async _extractProductsSearchedData(pageType = 'SEARCH') {
1854      const cfg = domConfig.events[pageType]?.products_searched?.extraction;
1855      if (!cfg) {
1856        U.warn(`[SDK] No products_searched config found for page type: ${pageType}`);
1857        return null;
1858      }
1859
1860      // Extract all fields in parallel (no individual retries)
1861      const [query, results_count] = await Promise.all([
1862        cfg.query ? this._extractFieldValue(cfg.query, null, 'query') : Promise.resolve(null),
1863        cfg.results_count ? this._extractFieldValue(cfg.results_count, null, 'results_count') : Promise.resolve(null),
1864      ]);
1865
1866      return { query, results_count };
1867    }
1868
1869    async _extractCartViewedDataWithRetry(pageType = 'CART', maxRetries = 2) {
1870      for (let attempt = 0; attempt <= maxRetries; attempt++) {
1871        const data = await this._extractCartViewedData(pageType);
1872
1873        // Check if we have minimum required data (value or products)
1874        if (data && (data.value || (data.products && data.products.length > 0))) {
1875          return data;
1876        }
1877
1878        if (attempt < maxRetries) {
1879          const delay = Math.min(300 * Math.pow(2, attempt), 1500); // 300ms, 600ms, 1200ms max (longer for cart)
1880          await new Promise(resolve => setTimeout(resolve, delay));
1881        }
1882      }
1883
1884      U.warn(`[SDK] Failed to extract cart data after ${maxRetries + 1} attempts`);
1885      return null;
1886    }
1887
1888    async _extractCartViewedData(pageType = 'CART') {
1889      const cfg = domConfig.events[pageType]?.cart_viewed?.extraction;
1890      if (!cfg) {
1891        U.warn(`[SDK] No cart_viewed config found for page type: ${pageType}`);
1892        return null;
1893      }
1894
1895      // Extract all fields in parallel (no individual retries)
1896      const [totalValue, cartCurrency, products] = await Promise.all([
1897        cfg.value ? this._extractFieldValue(cfg.value, null, 'value') : Promise.resolve(null),
1898        cfg.currency ? this._extractFieldValue(cfg.currency, null, 'currency') : Promise.resolve(null),
1899        cfg.items ? this._extractFieldValue(cfg.items, null, 'items') : Promise.resolve(null),
1900      ]);
1901
1902      // Process total value and currency
1903      let parsedTotal = null;
1904      let currency = null;
1905
1906      if (totalValue) {
1907        const { amount, currency: detectedCurrency } = U.parseMoney(totalValue);
1908        if (amount !== null) parsedTotal = amount;
1909        if (detectedCurrency) currency = detectedCurrency;
1910      }
1911
1912      // Process separate currency field
1913      if (cartCurrency) {
1914        const { currency: detectedCurrency } = U.parseMoney(cartCurrency);
1915        if (detectedCurrency) currency = detectedCurrency;
1916      }
1917
1918      const result = {
1919        value: parsedTotal !== null ? String(parsedTotal) : null,
1920        currency: currency,
1921        item_count: products ? products.length : 0,
1922        products: products || []
1923      };
1924
1925      return result;
1926    }
1927
1928    async _extractCheckoutDataWithRetry(pageType = 'CHECKOUT', maxRetries = 3) {
1929      for (let attempt = 0; attempt <= maxRetries; attempt++) {
1930        const data = await this._extractCheckoutData(pageType);
1931
1932        // Check if we have minimum required data (value, subtotal, or products)
1933        if (data && (data.value || data.subtotal || (data.products && data.products.length > 0))) {
1934          return data;
1935        }
1936
1937        if (attempt < maxRetries) {
1938          const delay = Math.min(500 * Math.pow(2, attempt), 2000); // 500ms, 1s, 2s max (longest for checkout)
1939          await new Promise(resolve => setTimeout(resolve, delay));
1940        }
1941      }
1942
1943      U.warn(`[SDK] Failed to extract checkout data after ${maxRetries + 1} attempts`);
1944      return null;
1945    }
1946
1947    async _extractCheckoutData(pageType = 'CHECKOUT') {
1948      const cfg = domConfig.events[pageType]?.checkout_started?.extraction;
1949      if (!cfg) {
1950        U.warn(`[SDK] No checkout_started config found for page type: ${pageType}`);
1951        return null;
1952      }
1953
1954      // Extract all fields in parallel (no individual retries)
1955      const [total, subtotal, shipping, tax, discount, currency, coupon, products] = await Promise.all([
1956        cfg.total ? this._extractFieldValue(cfg.total, null, 'total') : Promise.resolve(null),
1957        cfg.subtotal ? this._extractFieldValue(cfg.subtotal, null, 'subtotal') : Promise.resolve(null),
1958        cfg.shipping ? this._extractFieldValue(cfg.shipping, null, 'shipping') : Promise.resolve(null),
1959        cfg.tax ? this._extractFieldValue(cfg.tax, null, 'tax') : Promise.resolve(null),
1960        cfg.discount ? this._extractFieldValue(cfg.discount, null, 'discount') : Promise.resolve(null),
1961        cfg.currency ? this._extractFieldValue(cfg.currency, null, 'currency') : Promise.resolve(null),
1962        cfg.coupon ? this._extractFieldValue(cfg.coupon, null, 'coupon') : Promise.resolve(null),
1963        cfg.products ? this._extractFieldValue(cfg.products, null, 'products') : Promise.resolve([]),
1964      ]);
1965
1966      // Parse monetary values
1967      let parsedTotal = null, parsedSubtotal = null, parsedShipping = null, parsedTax = null, parsedDiscount = null, detectedCurrency = null;
1968
1969      if (total) {
1970        const { amount, currency: curr } = U.parseMoney(total);
1971        if (amount !== null) parsedTotal = amount;
1972        if (curr) detectedCurrency = curr;
1973      }
1974
1975      if (subtotal) {
1976        const { amount, currency: curr } = U.parseMoney(subtotal);
1977        if (amount !== null) parsedSubtotal = amount;
1978        if (curr && !detectedCurrency) detectedCurrency = curr;
1979      }
1980
1981      if (shipping) {
1982        const { amount } = U.parseMoney(shipping);
1983        if (amount !== null) parsedShipping = amount;
1984      }
1985
1986      if (tax) {
1987        const { amount } = U.parseMoney(tax);
1988        if (amount !== null) parsedTax = amount;
1989      }
1990
1991      if (discount) {
1992        const { amount } = U.parseMoney(discount);
1993        if (amount !== null) parsedDiscount = amount;
1994      }
1995
1996      if (currency) {
1997        const { currency: curr } = U.parseMoney(currency);
1998        if (curr) detectedCurrency = curr;
1999      }
2000
2001      return {
2002        value: parsedTotal !== null ? String(parsedTotal) : null,
2003        currency: detectedCurrency,
2004        subtotal: parsedSubtotal !== null ? String(parsedSubtotal) : null,
2005        shipping: parsedShipping !== null ? String(parsedShipping) : null,
2006        tax: parsedTax !== null ? String(parsedTax) : null,
2007        discount: parsedDiscount !== null ? String(parsedDiscount) : null,
2008        coupon: coupon,
2009        products: products || []
2010      };
2011    }
2012
2013    async _extractTransactionDataWithRetry(pageType = 'ORDER_CONFIRMATION', maxRetries = 2) {
2014      for (let attempt = 0; attempt <= maxRetries; attempt++) {
2015        const data = await this._extractTransactionData(pageType);
2016
2017        // Check if we have minimum required data (order_id or order_number)
2018        if (data && (data.order_id || data.order_number)) {
2019          return data;
2020        }
2021
2022        if (attempt < maxRetries) {
2023          const delay = Math.min(200 * Math.pow(2, attempt), 800); // 200ms, 400ms, 800ms max (shorter for order confirmation)
2024          await new Promise(resolve => setTimeout(resolve, delay));
2025        }
2026      }
2027
2028      U.warn(`[SDK] Failed to extract transaction data after ${maxRetries + 1} attempts`);
2029      return null;
2030    }
2031
2032    async _extractTransactionData(pageType = 'ORDER_CONFIRMATION') {
2033      const cfg = domConfig.events[pageType]?.order_completed?.extraction;
2034      if (!cfg) {
2035        U.warn(`[SDK] No order_completed config found for page type: ${pageType}`);
2036        return null;
2037      }
2038
2039      // Extract all order fields in parallel (no individual retries)
2040      const [order_id, order_number, payment_method, shipping_method, order_date, order_status, customer_email, value, currency, subtotal, shipping, tax, discount, coupon, products] = await Promise.all([
2041        cfg.order_id ? this._extractFieldValue(cfg.order_id, null, 'order_id') : Promise.resolve(null),
2042        cfg.order_number ? this._extractFieldValue(cfg.order_number, null, 'order_number') : Promise.resolve(null),
2043        cfg.value ? this._extractFieldValue(cfg.value, null, 'value') : Promise.resolve(null),
2044        cfg.currency ? this._extractFieldValue(cfg.currency, null, 'currency') : Promise.resolve(null),
2045        cfg.subtotal ? this._extractFieldValue(cfg.subtotal, null, 'subtotal') : Promise.resolve(null),
2046        cfg.shipping ? this._extractFieldValue(cfg.shipping, null, 'shipping') : Promise.resolve(null),
2047        cfg.tax ? this._extractFieldValue(cfg.tax, null, 'tax') : Promise.resolve(null),
2048        cfg.discount ? this._extractFieldValue(cfg.discount, null, 'discount') : Promise.resolve(null),
2049        cfg.coupon ? this._extractFieldValue(cfg.coupon, null, 'coupon') : Promise.resolve(null),
2050        cfg.products ? this._extractFieldValue(cfg.products, null, 'products') : Promise.resolve([]),
2051      ]);
2052
2053      // Parse monetary values
2054      let parsedValue = null, parsedSubtotal = null, parsedShipping = null, parsedTax = null, parsedDiscount = null, detectedCurrency = null;
2055
2056      if (value) {
2057        const { amount, currency: curr } = U.parseMoney(value);
2058        if (amount !== null) parsedValue = amount;
2059        if (curr) detectedCurrency = curr;
2060      }
2061
2062      if (subtotal) {
2063        const { amount, currency: curr } = U.parseMoney(subtotal);
2064        if (amount !== null) parsedSubtotal = amount;
2065        if (curr && !detectedCurrency) detectedCurrency = curr;
2066      }
2067
2068      if (shipping) {
2069        const { amount }
2069 = U.parseMoney(shipping);
2070        if (amount !== null) parsedShipping = amount;
2071      }
2072
2073      if (tax) {
2074        const { amount } = U.parseMoney(tax);
2075        if (amount !== null) parsedTax = amount;
2076      }
2077
2078      if (discount) {
2079        const { amount } = U.parseMoney(discount);
2080        if (amount !== null) parsedDiscount = amount;
2081      }
2082
2083      if (currency) {
2084        const { currency: curr } = U.parseMoney(currency);
2085        if (curr) detectedCurrency = curr;
2086      }
2087
2088      const result = {
2089        order_id: order_id || null,
2090        order_number: order_number || null,
2091        currency: detectedCurrency,
2092        coupon: coupon,
2093        discount: parsedDiscount !== null ? String(parsedDiscount) : null,
2094        shipping: parsedShipping !== null ? String(parsedShipping) : null,
2095        tax: parsedTax !== null ? String(parsedTax) : null,
2096        subtotal: parsedSubtotal !== null ? String(parsedSubtotal) : null,
2097        value: parsedValue !== null ? String(parsedValue) : null,
2098        products: products || []
2099      };
2100
2101      return result;
2102    }
2103
2104    // Enhanced DOM element extraction with context support
2105    _extractFromDOMElement(selector, attribute = null, context = null) {
2106      if (!selector) return null;
2107
2108      const searchContext = context || document;
2109
2110      try {
2111        const element = searchContext.querySelector(selector);
2112        if (element) {
2113          if (attribute) {
2114            const value = element.getAttribute(attribute);
2115            if (value) return value;
2116          } else {
2117            const value = element.textContent?.trim();
2118            if (value) return value;
2119          }
2120        }
2121      } catch (error) {
2122        return null;
2123      }
2124
2125      return null;
2126    }
2127
2128    _extractFromURLParam(paramName) {
2129      if (!paramName) return null;
2130
2131      try {
2132        const urlParams = new URLSearchParams(window.location.search);
2133        return urlParams.get(paramName);
2134      } catch (error) {
2135        return null;
2136      }
2137    }
2138
2139
2140    _getMagentoUserData(){
2141      if (typeof window.customerData !== 'undefined' && window.customerData.id) {
2142        return {
2143          website_id: window.customerData.website_id || null,
2144          group_id: window.customerData.group_id || null,
2145          store_id: window.customerData.store_id || null
2146        };
2147      }
2148      return null;
2149    }
2150
2151    // ---------- specific events ----------
2152
2153    async _trackProductsSearched(){
2154      const searchData = await extractEventData(SUPPORTED_EVENTS.PRODUCTS_SEARCHED, 'SEARCH', this);
2155      if (!searchData?.query && searchData?.results_count === undefined) {
2156        U.warn('[SDK] ❌ No search query or results count extracted after retries, skipping products_searched event');
2157        return;
2158      }
2159      const payload = this._buildBase(SUPPORTED_EVENTS.PRODUCTS_SEARCHED, { payload: searchData });
2160      this.transport.enqueue(payload);
2161    }
2162
2163    async _trackProductViewed(){
2164      const p = await extractEventData(SUPPORTED_EVENTS.PRODUCT_VIEWED, 'PRODUCT', this);
2165
2166      if (!p?.product_id && !p?.sku) {
2167        U.warn('[SDK] ❌ No product_id or sku extracted after retries, skipping product_viewed event');
2168        return;
2169      }
2170
2171      const discount = p.original_price && p.price && p.original_price > p.price ? p.original_price - p.price : null;
2172      const payload = this._buildBase(SUPPORTED_EVENTS.PRODUCT_VIEWED, { payload: { ...p, discount, discount_type: discount? 'fixed_amount': null } });
2173
2174      this.transport.enqueue(payload);
2175    }
2176
2177
2178    async _trackCartViewed(){
2179      const cartData = await extractEventData(SUPPORTED_EVENTS.CART_VIEWED, 'CART', this);
2180      if (!cartData) {
2181        U.warn('[SDK] No cart data found, skipping cart viewed event');
2182        return;
2183      }
2184      const payload = this._buildBase(SUPPORTED_EVENTS.CART_VIEWED, {
2185        payload: cartData
2186      });
2187      this.transport.enqueue(payload);
2188    }
2189
2190    async _trackCheckoutStarted(){
2191      // fire-once per path+session guard
2192      const guardKey = `checkout:${this.sessionId}:${location.pathname}`;
2193      if (this._firedGuards.has(guardKey)) {
2194        U.log('Checkout already sent for this session+path');
2195        return;
2196      }
2197
2198      const checkoutData = await extractEventData(SUPPORTED_EVENTS.CHECKOUT_STARTED, 'CHECKOUT', this);
2199
2200      if (!checkoutData) {
2201        U.warn('[SDK] No checkout data extracted, skipping checkout started event');
2202        return;
2203      }
2204
2205      const payload = this._buildBase(SUPPORTED_EVENTS.CHECKOUT_STARTED, {
2206        payload: checkoutData
2207      });
2208      this.transport.enqueue(payload);
2209
2210      this._firedGuards.add(guardKey);
2211    }
2212
2213    async _trackOrderCompleted(){
2214      // fire-once per path+session guard
2215      const guardKey = `transaction:${this.sessionId}:${location.pathname}`;
2216      if (this._firedGuards.has(guardKey)) { U.log('Transaction already sent for this session+path'); return; }
2217
2218      const orderData = await extractEventData(SUPPORTED_EVENTS.ORDER_COMPLETED, 'ORDER_CONFIRMATION', this);
2219
2220      if (!orderData) {
2221        U.warn('[SDK] No order data extracted, skipping order completed event');
2222        return;
2223      }
2224
2225      const payload = this._buildBase(SUPPORTED_EVENTS.ORDER_COMPLETED, {
2226        payload: orderData
2227      });
2228      this.transport.enqueue(payload);
2229      this._firedGuards.add(guardKey);
2230    }
2231
2232
2233
2234    _updateLastActivity() {
2235      // Update the last activity timestamp for session management
2236      Store.setConfig('wbs_last_activity', U.iso());
2237    }
2238  }
2239
2240  // auto-init via script tag query
2241  function initFromScript(){
2242    try {
2243      const script = document.currentScript || Array.from(document.scripts).pop();
2244      const url = new URL(script.src, location.href);
2245      const apiBaseUrl = url.searchParams.get('api_base') || DEFAULTS.apiBaseUrl;
2246      window.WebDataCollector = new WebDataCollector({ apiBaseUrl });
2247    } catch (e) { U.warn('init failed', e); }
2248  }
2249
2250  initFromScript();
2251  window.WDC = { WebDataCollector }; // optional named export for manual init/testing
2252
2253})(window, document);
2254}
2255
2256if (document.readyState === "loading") {
2257  document.addEventListener("DOMContentLoaded", init);
2258} else {
2259  init(); // DOM already ready
2260}
2261</script>
2261</head>
2262    <body data-container="body"
2263          data-mage-init='{"loaderAjax": {}, "loader": { "icon": "https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/images/loader-2.gif"}}'
2264        class="transition-transform lg:transition-none checkout-cart-index page-layout-1column" id="html-body">
2265        <!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 2265-2266
2265
2266<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2266GTM-MRL4BPG
vendor: 85 bytes, lines 2266-2267
2266"
2267height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2268<!-- End Google Tag Manager (noscript) -->
2269<script type="text/x-magento-init">
2270    {
2271        "*": {
2272            "Magento_PageBuilder/js/widget-initializer": {
2273                "config": {"[data-content-type=\"slider\"][data-appearance=\"default\"]":{"Magento_PageBuilder\/js\/content-type\/slider\/appearance\/default\/widget":false},"[data-content-type=\"map\"]":{"Magento_PageBuilder\/js\/content-type\/map\/appearance\/default\/widget":false},"[data-content-type=\"row\"]":{"Magento_PageBuilder\/js\/content-type\/row\/appearance\/default\/widget":false},"[data-content-type=\"tabs\"]":{"Magento_PageBuilder\/js\/content-type\/tabs\/appearance\/default\/widget":false},"[data-content-type=\"slide\"]":{"Magento_PageBuilder\/js\/content-type\/slide\/appearance\/default\/widget":{"buttonSelector":".pagebuilder-slide-button","showOverlay":"hover","dataRole":"slide"}},"[data-content-type=\"banner\"]":{"Magento_PageBuilder\/js\/content-type\/banner\/appearance\/default\/widget":{"buttonSelector":".pagebuilder-banner-button","showOverlay":"hover","dataRole":"banner"}},"[data-content-type=\"buttons\"]":{"Magento_PageBuilder\/js\/content-type\/buttons\/appearance\/inline\/widget":false},"[data-content-type=\"products\"][data-appearance=\"carousel\"]":{"Magento_PageBuilder\/js\/content-type\/products\/appearance\/carousel\/widget":false}},
2274                "breakpoints": {"desktop":{"label":"Desktop","stage":true,"default":true,"class":"desktop-switcher","icon":"Magento_PageBuilder::css\/images\/switcher\/switcher-desktop.svg","conditions":{"min-width":"1024px"},"options":{"products":{"default":{"slidesToShow":"5"}}}},"tablet":{"conditions":{"max-width":"1024px","min-width":"768px"},"options":{"products":{"default":{"slidesToShow":"4"},"continuous":{"slidesToShow":"3"}}}},"mobile":{"label":"Mobile","stage":true,"class":"mobile-switcher","icon":"Magento_PageBuilder::css\/images\/switcher\/switcher-mobile.svg","media":"only screen and (max-width: 768px)","conditions":{"max-width":"768px","min-width":"640px"},"options":{"products":{"default":{"slidesToShow":"3"}}}},"mobile-small":{"conditions":{"max-width":"640px"},"options":{"products":{"default":{"slidesToShow":"2"},"continuous":{"slidesToShow":"1"}}}}}            }
2275        }
2276    }
2277</script>
2277
2278
2279<div class="cookie-status-message" id="cookie-status">
2280    The store will not work correctly when cookies are disabled.</div>
2281<script type="text&#x2F;javascript">document.querySelector("#cookie-status").style.display = "none";</script>
vendor: 1 bytes, line 2281
2281
2282<script type="text/x-magento-init">
2283    {
2284        "*": {
2285            "cookieStatus": {}
2286        }
2287    }
2288</script>
2288
2289
2290<script type="text/x-magento-init">
2291    {
2292        "*": {
2293            "mage/cookies": {
2294                "expires": null,
2295                "path": "\u002F",
2296                "domain": ".www.centerpointarchery.com",
2297                "secure": true,
2298                "lifetime": "86400"
2299            }
2300        }
2301    }
2302</script>
2302
2303    <noscript>
2304        <div class="message global noscript">
2305            <div class="content">
2306                <p>
2307                    <strong>JavaScript seems to be disabled in your browser.</strong>
2308                    <span>
2309                        For the best experience on our site, be sure to turn on Javascript in your browser.                    </span>
2310                </p>
2311            </div>
2312        </div>
2313    </noscript>
2314                        <!-- hash_002 -->
2315        
2315<script>    require.config({
2316        paths: {
2317            'extendSdk': 'https\u003A\u002F\u002Fsdk.helloextend.com\u002Fextend\u002Dsdk\u002Dclient\u002Fv1\u002Fextend\u002Dsdk\u002Dclient.min'
2318        },
2319        config: {
2320            mixins: {
2321                'Magento_Checkout/js/view/minicart': {
2322                    'Extend_Warranty/js/view/minicart-mixin': true
2323                },
2324                'Magento_Checkout/js/sidebar': {
2325                    'Extend_Warranty/js/sidebar-mixin': true
2326                }
2327            }
2328        }
2329    });
2330
2331    require(['extendSdk'], function(Extend) {
2332        Extend.config({"storeId":"0658a303-b407-4ad4-8fcd-8262410b599d","environment":"live","region":"US","locale":"en_US"});
2333        window.Extend = Extend;    window.Extend.integration = {"general":{"enableExtend":true,"balancedCart":true,"enableLeads":true,"enableLogging":true},"auth":{"mode":"live","id":"0658a303-b407-4ad4-8fcd-8262410b599d","sandboxId":null,"extendStoreName":"CenterPoint Archery"},"contracts":{"createWarrantyContract":true,"contractEvent":1,"contractCreatingMode":"event-based","cronContractSettings":{"frequency":"*\/5 * * * *","batchSize":25,"storagePeriod":30},"enableRefunds":true,"createRefundAutomatically":true},"offers":{"displayCartOffers":true,"enablePDPOffers":true,"enableProductsListOffers":true,"enableInterstitialCartOffers":true,"enablePostPurchaseModal":true,"enableOrderInformationOffers":true,"displaySettings":{"pdpPlacement":0}},"syncProducts":{"batchSize":100,"lastSyncDate":"2026-04-21 18:55:50","enableSpecialPrice":true,"enableCronSync":false},"syncHistoricalOrders":{"batchSize":10,"lastSendDate":"","enableCronSync":false},"trackingEnabled":true,"versions":{"magentoVersion":"2.4.7-p10","moduleVersion":"1.3.0"}};    });</script>
2333                
2333<script type="text/x-magento-init">
2334        {
2335            "*": {
2336                "Extend_Warranty/js/tracking-service": {}
2337            }
2338        }
2339        </script>
2339
2340            
2341<script>
2342    window.cookiesConfig = window.cookiesConfig || {};
2343    window.cookiesConfig.secure = true;
2344</script>
2344<script>    require.config({
2345        map: {
2346            '*': {
2347                wysiwygAdapter: 'mage/adminhtml/wysiwyg/tiny_mce/tinymceAdapter'
2348            }
2349        }
2350    });</script>
2350<script>    require.config({
2351        paths: {
2352            googleMaps: 'https\u003A\u002F\u002Fmaps.googleapis.com\u002Fmaps\u002Fapi\u002Fjs\u003Fv\u003D3.53\u0026key\u003D'
2353        },
2354        config: {
2355            'Magento_PageBuilder/js/utils/map': {
2356                style: '',
2357            },
2358            'Magento_PageBuilder/js/content-type/map/preview': {
2359                apiKey: '',
2360                apiKeyErrorMessage: 'You\u0020must\u0020provide\u0020a\u0020valid\u0020\u003Ca\u0020href\u003D\u0027https\u003A\u002F\u002Fwww.centerpointarchery.com\u002Fadminhtml\u002Fsystem_config\u002Fedit\u002Fsection\u002Fcms\u002F\u0023cms_pagebuilder\u0027\u0020target\u003D\u0027_blank\u0027\u003EGoogle\u0020Maps\u0020API\u0020key\u003C\u002Fa\u003E\u0020to\u0020use\u0020a\u0020map.'
2361            },
2362            'Magento_PageBuilder/js/form/element/map': {
2363                apiKey: '',
2364                apiKeyErrorMessage: 'You\u0020must\u0020provide\u0020a\u0020valid\u0020\u003Ca\u0020href\u003D\u0027https\u003A\u002F\u002Fwww.centerpointarchery.com\u002Fadminhtml\u002Fsystem_config\u002Fedit\u002Fsection\u002Fcms\u002F\u0023cms_pagebuilder\u0027\u0020target\u003D\u0027_blank\u0027\u003EGoogle\u0020Maps\u0020API\u0020key\u003C\u002Fa\u003E\u0020to\u0020use\u0020a\u0020map.'
2365            },
2366        }
2367    });</script>
2367<script>
2368    require.config({
2369        shim: {
2370            'Magento_PageBuilder/js/utils/map': {
2371                deps: ['googleMaps']
2372            }
2373        }
2374    });</script>
2374
2375
2376
2377
2378
2379<script type="text/x-magento-init">
2380    {
2381        "*": {
2382            "AvantLink_Tracking/js/avantlink_data": {
2383                "orderData": {
2384                    "orderId":"",
2385                    "subTotal":"0",
2386                    "couponCode":"",
2387                    "currencyCode":"",
2388                    "customerId":"",
2389                    "taxAmount": "",
2390                    "countryCode":"",
2391                    "stateCode":"",
2392                    "items": []                },
2393                "merchantId": "35605",
2394                "order_id": []            }
2395        }
2396    }
2397</script>
2397
2398
2399
2400<div class="page-wrapper"><header class="page-header"><div class="header content">
2400<script type="text/javascript">
2401        (function(a,b,c,d){
2402            a='https://www.mczbf.com/tags/249290243492/tag.js?cookieUrl=https%3A%2F%2Fwww.centerpointarchery.com%2Fcookie%2Findex%2Findex';
2403            b=document;c='script';d=b.createElement(c);d.src=a;
2404            d.type='text/java'+c;d.async=true;
2405            d.id='cjapitag';
2406            a=b.getElementsByTagName(c)[0];a.parentNode.insertBefore(d,a)
2407        })();
2408
2409</script>
2409
2410
2411
2412<div class="navigation_top_wrapper"><div class="navigation_top"><div class="left_links"><span data-action="toggle-nav" class="action nav-toggle"><span>Toggle Nav</span></span>
2413<a
2414    class="logo"
2415    href="https://www.centerpointarchery.com/"
2416    title="CenterPoint&#x20;Archery"
2417    aria-label="store logo">
2418    <img src="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/images/centerpoint-logo.svg"
2419         title="CenterPoint&#x20;Archery"
2420         alt="CenterPoint&#x20;Archery"
2421    />
2422</a>
2423</div><div class="right_links"><div class="block block-search">
2424    <div class="block block-title"><strong>Search</strong></div>
2425    <div class="block block-content">
2426        <form class="form minisearch" id="search_mini_form"
2427              action="https://www.centerpointarchery.com/catalogsearch/result/" method="get">
2428            <div class="field search">
2429                <label class="label" for="search" data-role="minisearch-label">
2430                    <svg class="search-ico"xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.46 21.46" class="Search"><defs><style>.cls-1{fill:none!important;stroke:#fff;stroke-miterlimit:10;stroke-width:1.67px;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Nav"><g id="Interface-Essential_Search_search-1" data-name="Interface-Essential / Search / search-1"><g id="Group_365" data-name="Group 365"><g id="search-1"><path id="Oval_280" data-name="Oval 280" class="cls-1" d="M9.55,18.26A8.72,8.72,0,1,0,.83,9.55,8.71,8.71,0,0,0,9.55,18.26Z"></path><path id="Shape_1861" data-name="Shape 1861" class="cls-1" d="M20.88,20.88l-5.17-5.17"></path></g></g></g></g></g></svg>
2431                </label>
2432                <div id="search-360" class="search-360">
2433                    <section role="search" data-ss360="true">
2434                        <input type="search" id="searchBox" placeholder="Search...">
2435                        <button id="searchButton"></button>
2436                    </section>
2437                </div>
2438            </div>
2439            <div class="actions">
2440                <button type="submit"
2441                    title="Search"
2442                    class="action search"
2443                    aria-label="Search"
2444                >
2445                    <span>Search</span>
2446                </button>
2447            </div>
2448        </form>
2449    </div>
2450</div>
2451<script type="text/javascript">
2452
2453var ss360Config = {
2454  searchBox: {
2455    placeholder: "Search…",
2456    selector: "#searchBox",
2457    searchButton: "#searchButton"
2458  },
2459  results: {
2460    integrationType: "layover"
2461  },
2462  siteId: "dev.centerpointarchery.com"
2463}
2464</script>
vendor: 1 bytes, line 2464
2464
2465<script type="text/x-magento-init">
2466{
2467    "#search_mini_form": {
2468        "Magento_Search/js/search-form": {
2469        }
2470    }
2471}
2472</script>
vendor: 1 bytes, line 2472
2472
2473<script async src="https://js.sitesearch360.com/plugin/bundle/12653.js"></script>
2473
2474<a href="https://www.centerpointarchery.com/customer/account/" class="myaccount">
2475    <svg  xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.71 21.71" class="User"><defs><style>.cls-1{fill:none!important;stroke:#fff;stroke-miterlimit:10;stroke-width:1.67px;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Nav"><g id="Users_Geometric-Close-Up-Single-User-Neutral_single-neutral-circle" data-name="Users / Geometric-Close-Up-Single-User-Neutral / single-neutral-circle"><g id="Group_306" data-name="Group 306"><g id="Light_306" data-name="Light 306"><path id="Oval_501" data-name="Oval 501" class="cls-1" d="M10.85,20.88a10,10,0,1,0-10-10A10,10,0,0,0,10.85,20.88Z"></path><path id="Oval_502" data-name="Oval 502" class="cls-1" d="M10.85,11.73A3.71,3.71,0,1,0,7.15,8,3.71,3.71,0,0,0,10.85,11.73Z"></path><path id="Shape_1222" data-name="Shape 1222" class="cls-1" d="M16.36,16.52a6.09,6.09,0,0,0-11,0"></path></g></g></g></g></g></svg>
2476</a>
2477
2478<div data-block="minicart" class="minicart-wrapper" id="minicart">
2479    <a
2480        class="action showcart"
2481        href="https://www.centerpointarchery.com/checkout/cart/"
2482        data-bind="scope: 'minicart_content'"
2483        title="My&#x20;Cart"
2484    >
2485    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.11 20.9">
2486        <g id="Layer_2" data-name="Layer 2">
2487            <g id="Nav">
2488                <path class="cls-1" d="M0,.77H2.76L4.15,6.3H20l-2.76,8.29H6.91A1.38,1.38,0,0,0,5.53,16h0a1.38,1.38,0,0,0,1.38,1.38H18"></path>
2489                <circle class="cls-1" cx="6.91" cy="18.74" r="1.38"></circle><circle class="cls-1" cx="15.9" cy="18.74" r="1.38"></circle>
2490            </g>
2491        </g>
2492    </svg>
2493        <span class="counter qty empty"
2494              data-bind="css: { empty: !!getCartParam('summary_count') == false && !isLoading() },
2495               blockLoader: isLoading">
2496            <span class="counter-number"><!-- ko text: getCartParam('summary_count') --><!-- /ko --></span>
2497            <span class="counter-label">
2498            <!-- ko if: getCartParam('summary_count') -->
2499                <!-- ko text: getCartParam('summary_count') --><!-- /ko -->
2500                <!-- ko i18n: 'items' --><!-- /ko -->
2501            <!-- /ko -->
2502            </span>
2503        </span>
2504    </a>
2505            <div class="block block-minicart"
2506             data-role="dropdownDialog"
2507             data-mage-init='{"dropdownDialog":{
2508                "appendTo":"[data-block=minicart]",
2509                "triggerTarget":".showcart",
2510                "timeout": "2000",
2511                "closeOnMouseLeave": false,
2512                "closeOnEscape": true,
2513                "triggerClass":"active",
2514                "parentClass":"active",
2515                "buttons":[]}}'>
2516            <div id="minicart-content-wrapper" data-bind="scope: 'minicart_content'">
2517                <!-- ko template: getTemplate() --><!-- /ko -->
2518            </div>
2519                    </div>
2520        
2520<script>window.checkout = {"shoppingCartUrl":"https:\/\/www.centerpointarchery.com\/checkout\/cart\/","checkoutUrl":"https:\/\/www.centerpointarchery.com\/checkout\/","updateItemQtyUrl":"https:\/\/www.centerpointarchery.com\/checkout\/sidebar\/updateItemQty\/","removeItemUrl":"https:\/\/www.centerpointarchery.com\/checkout\/sidebar\/removeItem\/","imageTemplate":"Magento_Catalog\/product\/image_with_borders","baseUrl":"https:\/\/www.centerpointarchery.com\/","minicartMaxItemsVisible":3,"websiteId":"4","maxItemsToDisplay":10,"storeId":"4","storeGroupId":"4","customerLoginUrl":"https:\/\/www.centerpointarchery.com\/customer\/account\/login\/","isRedirectRequired":false,"autocomplete":"off","credova_active_status":false,"cred_mode":"0","cred_store":"BGV000","min_amt":50,"max_amt":10000,"mini_ala":"1","cart_ala":"1","white_logo":"0","captcha":{"user_login":{"isCaseSensitive":false,"imageHeight":50,"imageSrc":"","refreshUrl":"https:\/\/www.centerpointarchery.com\/captcha\/refresh\/","isRequired":false,"timestamp":1791303984}}}</script>
2520    
2520<script type="text/x-magento-init">
2521    {
2522        "[data-block='minicart']": {
2523            "Magento_Ui/js/core/app": {"components":{"minicart_content":{"children":{"subtotal.container":{"children":{"subtotal":{"children":{"subtotal.totals":{"config":{"display_cart_subtotal_incl_tax":0,"display_cart_subtotal_excl_tax":1,"template":"Magento_Tax\/checkout\/minicart\/subtotal\/totals"},"children":{"subtotal.totals.msrp":{"component":"Magento_Msrp\/js\/view\/checkout\/minicart\/subtotal\/totals","config":{"displayArea":"minicart-subtotal-hidden","template":"Magento_Msrp\/checkout\/minicart\/subtotal\/totals"}}},"component":"Magento_Tax\/js\/view\/checkout\/minicart\/subtotal\/totals"}},"component":"uiComponent","config":{"template":"Magento_Checkout\/minicart\/subtotal"}}},"component":"uiComponent","config":{"displayArea":"subtotalContainer"}},"item.renderer":{"component":"Magento_Checkout\/js\/view\/cart-item-renderer","config":{"displayArea":"defaultRenderer","template":"Magento_Checkout\/minicart\/item\/default"},"children":{"item.image":{"component":"Magento_Catalog\/js\/view\/image","config":{"template":"Magento_Catalog\/product\/image","displayArea":"itemImage"}},"checkout.cart.item.price.sidebar":{"component":"uiComponent","config":{"template":"Magento_Checkout\/minicart\/item\/price","displayArea":"priceSidebar"}},"checkout.cart.item.aw-onsale.label.renderer":{"component":"uiComponent","config":{"template":"Aheadworks_OnSale\/view\/label\/renderer\/minicart","displayArea":"priceSidebar"}}}},"amasty.discount.container":{"component":"uiComponent","config":{"displayArea":"subtotalContainer"},"children":{"discount":{"component":"Magento_Checkout\/js\/view\/checkout\/minicart\/subtotal\/totals","config":{"template":"Amasty_MiniCartDiscountInfo\/minicart\/discount","imports":{"displaySubtotal":"minicart_content.subtotal.container.subtotal.subtotal.totals:displaySubtotal"}},"children":{"discount.totals":{"component":"Magento_Checkout\/js\/view\/checkout\/minicart\/subtotal\/totals","config":{"template":"Amasty_MiniCartDiscountInfo\/minicart\/discount\/totals"}}}}}},"extra_info":{"component":"uiComponent","config":{"displayArea":"extraInfo"},"children":{"credova_aslowas":{"component":"Credova_Financial\/js\/view\/minicart","config":{"template":"Credova_Financial\/minicart\/info"}},"related_products":{"component":"VelocityOutdoor_RelatedItemMiniCart\/js\/view\/minicart\/related-products-component"}}},"promotion":{"component":"uiComponent","config":{"displayArea":"promotion"}}},"config":{"itemRenderer":{"default":"defaultRenderer","simple":"defaultRenderer","virtual":"defaultRenderer"},"template":"Magento_Checkout\/minicart\/content"},"component":"Magento_Checkout\/js\/view\/minicart"}},"types":[]}        },
2524        "*": {
2525            "Magento_Ui/js/block-loader": "https\u003A\u002F\u002Fwww.centerpointarchery.com\u002Fstatic\u002Fversion1790000787\u002Ffrontend\u002FCenterpoint\u002Fdefault\u002Fen_US\u002Fimages\u002Floader\u002D1.gif"
2526        }
2527    }
2528    </script>
2528
2529    
2529<script type="text/javascript">
2530        require(['jquery','Magento_Ui/js/lib/view/utils/async'], function($){
2531            $.async('.amrelated-grid-wrapper', function(related) {
2532                $(related).insertBefore(".minicart-footer");
2533            });
2534        })
2535    </script>
2535
2536</div>
2537<div id="nav-sections-menu" data-status="closed" >
2538    <button type="button" class="nav-sections-trigger" data-sections-menu-trigger >
2539        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.96 12.64" class="Menu open">
2540            <defs><style>.cls-1{fill:none;stroke:#fff;stroke-miterlimit:10;stroke-width:1.67px;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Nav"><g id="Group_29" data-name="Group 29"><g id="navigation-menu"><path id="Shape_90" data-name="Shape 90" class="cls-1" d="M20,.83H0"></path><path id="Shape_91" data-name="Shape 91" class="cls-1" d="M20,6.32H0"></path><path id="Shape_92" data-name="Shape 92" class="cls-1" d="M20,11.81H0"></path></g></g></g></g>
2541        </svg>
2542        <svg class="close" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 25.4 25.4" style="enable-background:new 0 0 25.4 25.4;" xml:space="preserve">
2543            <polygon class="st0" points="25.4,1.4 24,0 12.7,11.3 1.4,0 0,1.4 11.3,12.7 0,24 1.4,25.4 12.7,14.1 24,25.4 25.4,24 14.1,12.7 "/>
2544        </svg>
2545    </button>
2546    <div class="nav-sections-menu" data-sections-menu >
2547        <button
2548            type="button"
2549            title="Close"
2550            class="close"
2551            data-sections-menu-close
2552        >
2553            <img
2554                src="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/images/icons/icon-close.svg"
2555                alt="X"
2556                width="25" height="25"
2557            />
2558        </button>
2559        <div class="mobile">
2560                
2561    <div class="megamenu-container-2__mobile">
2562        <svg
2563            title="icon-arrow-down"
2564            class="megamenu-container-2__mobile-icon"
2565        >
2566            <use xlink:href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/images/icon-sprite.svg#icon-mobile-menu"></use>
2567        </svg>
2568    </div>
2569
2570    <nav
2571        class="megamenu-container-2"
2572        data-mage-init='{"snowdogMenu": {}}'
2573    >
2574        <ul class="megamenu-container-2__list">
2575                                            <li class="megamenu-container-2__item  megamenu-container-2__item--parent">
2576                    <div class="megamenu-container-2__link_wapper_title" >
2577<a
2578    href="https://www.centerpointarchery.com/bows"
2579    class="megamenu-container-2__link"
2580     data-menu="menu-20">
2581    Bows</a>
2582</div>
2583                            <ul  class="megamenu-container-2__inner-list megamenu-container-2__inner-list--level1" data-menu="menu-20">
2584                    
2585            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--all megamenu-container-2__inner-item--level1">
2586                <div class="megamenu-container-2__inner-link_wapper_title" >
2587<a
2588    href="https://www.centerpointarchery.com/bows"
2589    class="megamenu-container-2__inner-link"
2590    >
2591    View All</a>
2592</div>
2593            </li>
2594        
2595                    
2596            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level1 megamenu-container-2__inner-item--parent subactegory_item compound">
2597                <div class="megamenu-container-2__inner-link_wapper_title" >
2598<a
2599    href="https://www.centerpointarchery.com/bows/crossbows"
2600    class="megamenu-container-2__inner-link"
2601     data-menu="menu-21">
2602    Crossbows</a>
2603</div>
2604                        <ul  class="megamenu-container-2__inner-list megamenu-container-2__inner-list--level2" data-menu="menu-21">
2605                    
2606            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--all megamenu-container-2__inner-item--level2">
2607                <div class="megamenu-container-2__inner-link_wapper_title" >
2608<a
2609    href="https://www.centerpointarchery.com/bows/crossbows"
2610    class="megamenu-container-2__inner-link"
2611    >
2612    View All</a>
2613</div>
2614            </li>
2615        
2616                    
2617            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2 new-product">
2618                
2619<a
2620    href="https://www.centerpointarchery.com/amped-g2d"
2621    class="megamenu-container-2__inner-link"
2622     data-menu="menu-292">
2623    Amped G2D</a>
2624                            </li>
2625                    
2626            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
2627                
2628<a
2629    href="https://www.centerpointarchery.com/at400"
2630    class="megamenu-container-2__inner-link"
2631     data-menu="menu-193">
2632    AT400</a>
2633                            </li>
2634                    
2635            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
2636                    <a
2637        href="/hellion-400-crossbow"
2638        data-menu="menu-300" class="megamenu-container-2__inner-link"    >
2639        Hellion 400    </a>
2640
2641                            </li>
2642                    
2643            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
2644                
2645<a
2646    href="https://www.centerpointarchery.com/hornet-crossbow"
2647    class="megamenu-container-2__inner-link"
2648     data-menu="menu-28">
2649    Hornet</a>
2650                            </li>
2651                    
2652            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2 new-product">
2653                
2654<a
2655    href="https://www.centerpointarchery.com/sinister-430d"
2656    class="megamenu-container-2__inner-link"
2657     data-menu="menu-291">
2658    Sinister 430D</a>
2659                            </li>
2660                    
2661            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2 new-product">
2662                
2663<a
2664    href="https://www.centerpointarchery.com/sniper-g4d"
2665    class="megamenu-container-2__inner-link"
2666     data-menu="menu-294">
2667    Sniper G4D</a>
2668                            </li>
2669                    
2670            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
2671                <div class="megamenu-container-2__inner-link_wapper_title" >
2672<a
2673    href="https://www.centerpointarchery.com/bows/crossbows"
2674    class="megamenu-container-2__inner-link"
2675     data-menu="menu-35">
2676    SHOP ALL CROSSBOWS</a>
2677</div>
2678                            </li>
2679            </ul>
2680            </li>
2681                    
2682            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level1 megamenu-container-2__inner-item--parent subactegory_item">
2683                <div class="megamenu-container-2__inner-link_wapper_title" >
2684<a
2685    href="https://www.centerpointarchery.com/bows/bowfishing"
2686    class="megamenu-container-2__inner-link"
2687     data-menu="menu-43">
2688    Bowfishing</a>
2689</div>
2690                        <ul  class="megamenu-container-2__inner-list megamenu-container-2__inner-list--level2" data-menu="menu-43">
2691                    
2692            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--all megamenu-container-2__inner-item--level2">
2693                <div class="megamenu-container-2__inner-link_wapper_title" >
2694<a
2695    href="https://www.centerpointarchery.com/bows/bowfishing"
2696    class="megamenu-container-2__inner-link"
2697    >
2698    View All</a>
2699</div>
2700            </li>
2701        
2702                    
2703            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
2704                
2705<a
2706    href="https://www.centerpointarchery.com/typhon-bowfishing-kit"
2707    class="megamenu-container-2__inner-link"
2708     data-menu="menu-44">
2709    Typhon™</a>
2710                            </li>
2711                    
2712            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
2713                
2714<a
2715    href="https://www.centerpointarchery.com/typhontm-x1-bowfishing-kit"
2716    class="megamenu-container-2__inner-link"
2717     data-menu="menu-83">
2718    Typhon™ X1</a>
2719                            </li>
2720                    
2721            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
2722                
2723<a
2724    href="https://www.centerpointarchery.com/bow-fishing-arrow-2-pack-kit"
2725    class="megamenu-container-2__inner-link"
2726     data-menu="menu-84">
2727    Bowfishing Arrows</a>
2728                            </li>
2729                    
2730            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
2731                <div class="megamenu-container-2__inner-link_wapper_title" >
2732<a
2733    href="https://www.centerpointarchery.com/bows/bowfishing"
2734    class="megamenu-container-2__inner-link"
2735     data-menu="menu-86">
2736    SHOP ALL BOWFISHING</a>
2737</div>
2738                            </li>
2739            </ul>
2740            </li>
2741                    
2742            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level1 megamenu-container-2__inner-item--parent subactegory_item">
2743                <div class="megamenu-container-2__inner-link_wapper_title" >
2744<a
2745    href="https://www.centerpointarchery.com/bows/youth-bows"
2746    class="megamenu-container-2__inner-link"
2747     data-menu="menu-47">
2748    Youth Bows</a>
2749</div>
2750                        <ul  class="megamenu-container-2__inner-list megamenu-container-2__inner-list--level2" data-menu="menu-47">
2751                    
2752            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--all megamenu-container-2__inner-item--level2">
2753                <div class="megamenu-container-2__inner-link_wapper_title" >
2754<a
2755    href="https://www.centerpointarchery.com/bows/youth-bows"
2756    class="megamenu-container-2__inner-link"
2757    >
2758    View All</a>
2759</div>
2760            </li>
2761        
2762                    
2763            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
2764                
2765<a
2766    href="https://www.centerpointarchery.com/tatanka-youth-recurve-bow"
2767    class="megamenu-container-2__inner-link"
2768     data-menu="menu-48">
2769    Tatanka®</a>
2770                            </li>
2771                    
2772            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
2773                <div class="megamenu-container-2__inner-link_wapper_title" >
2774<a
2775    href="https://www.centerpointarchery.com/bows/youth-bows"
2776    class="megamenu-container-2__inner-link"
2777     data-menu="menu-51">
2778    SHOP ALL YOUTH BOWS</a>
2779</div>
2780                            </li>
2781            </ul>
2782            </li>
2783            </ul>
2784                </li>
2785                                            <li class="megamenu-container-2__item ">
2786                    <div class="megamenu-container-2__link_wapper_title" >
2787<a
2788    href="https://www.centerpointarchery.com/arrows"
2789    class="megamenu-container-2__link"
2790     data-menu="menu-52">
2791    Arrows</a>
2792</div>
2793                                    </li>
2794                                            <li class="megamenu-container-2__item ">
2795                    <div class="megamenu-container-2__link_wapper_title" >
2796<a
2797    href="https://www.centerpointarchery.com/accessories"
2798    class="megamenu-container-2__link"
2799     data-menu="menu-58">
2800    Accessories</a>
2801</div>
2802                                    </li>
2803                                            <li class="megamenu-container-2__item ">
2804                    <div class="megamenu-container-2__link_wapper_title" >
2805<a
2806    href="https://www.centerpointarchery.com/parts"
2807    class="megamenu-container-2__link"
2808     data-menu="menu-53">
2809    Service and Parts</a>
2810</div>
2811                                    </li>
2812                                            <li class="megamenu-container-2__item ">
2813                    <div class="megamenu-container-2__link_wapper_title" >
2814<a
2815    href="https://www.centerpointarchery.com/apparel"
2816    class="megamenu-container-2__link"
2817     data-menu="menu-59">
2818    Apparel</a>
2819</div>
2820                                    </li>
2821                                            <li class="megamenu-container-2__item  accent-color">
2822                    <div class="megamenu-container-2__link_wapper_title" >
2823<a
2824    href="https://www.centerpointarchery.com/promotions/current-promotions"
2825    class="megamenu-container-2__link"
2826     data-menu="menu-87">
2827    Deals</a>
2828</div>
2829                                    </li>
2830                                            <li class="megamenu-container-2__item ">
2831                    
2832<a
2833    href="https://www.centerpointarchery.com/technology"
2834    class="megamenu-container-2__link"
2835     data-menu="menu-54">
2836    Technology</a>
2837                                    </li>
2838                                            <li class="megamenu-container-2__item ">
2839                    
2840<a
2841    href="https://www.centerpointarchery.com/about-centerpoint"
2842    class="megamenu-container-2__link"
2843     data-menu="menu-55">
2844    About</a>
2845                                    </li>
2846                                            <li class="megamenu-container-2__item ">
2847                        <a
2848        href="https://www.centerpointarchery.com/blog"
2849        data-menu="menu-56" class="megamenu-container-2__link"    >
2850        Blog    </a>
2851
2852                                    </li>
2853                    </ul>
2854        <div class="megamenu-container-2__mobile-bg"></div>
2855    </nav>
2856        </div>
2857        <div class="desktop">
2858            
2859            <section class="footer-menu-links">
2860            <div class="links-list">
2861                <div data-role="collapsible">
2862                    <div data-role="trigger">
2863                        <div class="links-title">PRODUCTS</div>
2864                    </div>
2865                </div>
2866                <div data-role="content">
2867                <ul class="content">
2868                    <li>
2869                        <a href="https://www.centerpointarchery.com/bows">BOWS</a>
2870                        <ul>
2871                            <li><a href="https://www.centerpointarchery.com/bows/crossbows">CROSSBOWS</a></li>
2872                            <li><a href="https://www.centerpointarchery.com/bows/recurve-hunting-bows">RECURVE HUNTING BOWS</a></li>
2873                            <li><a href="https://www.centerpointarchery.com/bows/bowfishing">BOWFISHING</a></li>
2874                            <li><a href="https://www.centerpointarchery.com/bows/youth-bows">YOUTH BOWS</a></li>
2875                        </ul>
2876                    </li>
2877                    <li><a href="https://www.centerpointarchery.com/arrows">ARROWS</a></li>
2878                    <li><a href="https://www.centerpointarchery.com/gear">GEAR</a>
2879                        <ul>
2880                            <li><a href="https://www.centerpointarchery.com/accessories"> ACCESSORIES</a></li>
2881                        </ul>
2882                    </li>
2883<li><a href="https://www.centerpointarchery.com/centerpoint-egift-card">eGift Cards</a></li>
2884
2885                </ul>
2886                </div>
2887            </div>
2888            <div class="links-list">
2889                <div data-role="collapsible">
2890                    <div data-role="trigger">
2891                        <div class="links-title">SUPPORT</div>
2892                    </div>
2893                </div>
2894                <div data-role="content">
2895                    <ul class="content">
2896                        <li><a href="https://www.centerpointarchery.com/support/contact-support">CONTACT SUPPORT</a></li>
2897                        <li><a href="https://www.centerpointarchery.com/support/faq">FAQS</a></li>
2898                        <li><a href="https://www.centerpointarchery.com/support/product-registration">PRODUCT REGISTRATION</a></li>
2899                        <li><a href="https://www.centerpointarchery.com/support/shipping">SHIPPING</a></li>
2900                        <li><a href="https://www.centerpointarchery.com/owners-manuals">OWNER'S MANUALS</a></li>
2901                        <li><a href="https://www.centerpointarchery.com/videos">VIDEOS</a></li>
2902                        <li><a href="https://www.centerpointarchery.com/safety">SAFETY</a></li>
2903                        <li><a href="https://www.centerpointarchery.com/support/warranty-info">WARRANTY INFO</a></li>
2904<li><a href="https://centerpointarcheryrebates.com/">REBATES</a></li>
2905                    </ul>
2906                </div>
2907
2908            </div>
2909            <div class="links-list">
2910                <div data-rol
2910e="collapsible">
2911                    <div data-role="trigger">
2912                        <div class="links-title">COMPANY</div>
2913                    </div>
2914                </div>
2915                <div data-role="content">
2916                    <ul class="content">
2917                        <li><a href="https://www.centerpointarchery.com/about-centerpoint">ABOUT</a></li>
2918                        <li><a href="https://www.centerpointarchery.com/the-elk-hunt">THE ELK HUNT</a></li>
2919                        <li><a href="https://www.centerpointarchery.com/about-centerpoint/#our-partners">OUR PARTNERS</a></li>
2920                        <li><a href="https://www.centerpointarchery.com/blog">BLOG</a></li>
2921                        <li><a href="https://www.centerpointarchery.com/become-a-dealer">BECOME A DEALER</a></li>
2922                        <li><a href="https://www.centerpointarchery.com/affiliate-program">AFFILIATE PROGRAM</a></li>
2923                        <li><a href="https://www.centerpointarchery.com/dealer-locator">DEALER LOCATOR</a></li>
2924                        <li><a href="https://www.centerpointarchery.com/careers">CAREERS</a></li>
2925                        <li><a href="https://velocity-outdoor.com">A VELOCITY OUTDOOR COMPANY</a></li>
2926                    </ul>
2927                </div>
2928            </div>
2929        </section>
2930                        <a href="https://www.centerpointarchery.com/customer/account/" class="account">
2931                <img
2932                src="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/images/icons/icon-profile-noborder.svg"
2933                alt="Account"
2934                width="20" height="20"
2935                />
2936                <span>Account</span>
2937            </a>
2938        </div>
2939        <div class="menu-footer">
2940            <div class="footer_social">
2941     <label>Follow Us!</label>
2942     <div class="social-links">
2943          <a href="https://www.youtube.com/channel/UCIq03klIyTESYCSgFXNVKVw">
2944
2945               <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 69.5 70.2" style="enable-background:new 0 0 69.5 70.2;" xml:space="preserve">
2946                    <g>
2947                         <polygon class="st0" points="30.6,42.1 42.5,35.2 30.6,28.3 	" />
2948                         <path class="st0" d="M35.2-0.1c-19,0-34.5,15.4-34.5,34.4v1.8c0,19,15.4,34.5,34.5,34.5c19,0,34.5-15.4,34.5-34.5v-1.8
2949		C69.6,15.3,54.2-0.1,35.2-0.1 M57.2,46.3c-0.5,2-2.1,3.5-4.1,4.1c-3.6,1-18,1-18,1s-14.4,0-18-1c-2-0.5-3.5-2.1-4.1-4.1
2950		c-1-3.6-1-11.1-1-11.1s0-7.5,1-11.1c0.5-2,2.1-3.5,4.1-4.1c3.6-1,18-1,18-1s14.4,0,18,1c2,0.5,3.5,2.1,4.1,4.1c1,3.6,1,11.1,1,11.1
2951		S58.1,42.7,57.2,46.3" />
2952                    </g>
2953               </svg>
2954          </a>
2955
2956          <a href="https://www.facebook.com/CenterPointArchery">
2957
2958
2959               <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 69.5 70.2" style="enable-background:new 0 0 69.5 70.2;" xml:space="preserve">
2960
2961                    <g>
2962                         <path class="st0" d="M35.2,0.3C15.7,0.3,0,16,0,35.4C0,53,12.8,67.5,29.7,70.2V45.6h-8.9V35.4l0,0l0,0h8.9v-7.7
2963                    c0-8.3,4.6-13.1,11.8-13.6c0.5,0,1-0.1,1.5-0.1c3.9,0,7.9,0.7,7.9,0.7v8.7l0,0l0,0h-4.4c-0.3,0-0.5,0-0.8,0
2964                    c-3.8,0.3-4.9,2.9-4.9,5.5v6.6h9.7l-1.6,10.2l0,0h-8.2v24.6C57.5,67.5,70.3,53,70.3,35.4C70.3,16,54.6,0.3,35.2,0.3" />
2965                    </g>
2966               </svg>
2967
2968          </a>
2969
2970          <a href="https://www.instagram.com/centerpoint_archery">
2971               <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 69.5 70.2" style="enable-background:new 0 0 69.5 70.2;" xml:space="preserve">
2972
2973                    <g>
2974                         <path class="st0" d="M41.1,35.2c0-3.3-2.6-5.9-5.9-5.9c-3.3,0-5.9,2.6-5.9,5.9s2.6,5.9,5.9,5.9C38.5,41.1,41.1,38.5,41.1,35.2" />
2975                         <path class="st0" d="M49.2,19.7H21.4c-0.9,0-1.6,0.7-1.
29756,1.6v12.3h6.6c0.8-4.2,4.5-7.5,8.9-7.5s8.2,3.2,8.9,7.5h6.6V21.3
2976                    C50.8,20.4,50.1,19.7,49.2,19.7 M46,27.2c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1
2977                    C48.1,26.3,47.1,27.2,46,27.2" />
2978                         <path class="st0" d="M35.3,44.3c-4.5,0-8.2-3.2-8.9-7.5h-6.6v12.3c0,0.9,0.7,1.6,1.6,1.6h27.8c0.9,0,1.6-0.7,1.6-1.6V36.8h-6.6
2979                    C43.4,41.1,39.7,44.3,35.3,44.3" />
2980                         <path class="st0" d="M35.2,0C16.2,0,0.8,15.4,0.8,34.3v1.8c0,19,15.4,34.3,34.3,34.3c19,0,34.3-15.4,34.3-34.3v-1.8
2981                    C69.5,15.4,54.1,0,35.2,0 M54,49.1c0,2.6-2.2,4.8-4.8,4.8H21.4c-2.6,0-4.8-2.2-4.8-4.8V21.3c0-2.6,2.2-4.8,4.8-4.8h27.8
2982                    c2.6,0,4.8,2.2,4.8,4.8C54,21.3,54,49.1,54,49.1z" />
2983                    </g>
2984               </svg>
2985
2986          </a>
2987
2988     </div>
2989
2990</div>            
2991            <section class="footer-copyright">
2992            <div class="iso">
2993                <img src="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/images/logo-no-text.svg"
2994                    alt="Center Point Archery"
2995                    width="34" height="25"
2996                />
2997            </div>
2998            <div class="copyright-text">
2999                © 2026 CenterPoint Archery.
3000                <br />
3001                <span>ALL RIGHTS RESERVED.</span>
3002            </div>
3003            <div class="links">
3004                <a href="/terms-of-use">Terms of Use</a> |
3005                <a href="/privacy-policy">Privacy Policy</a> | 
3006                <a href="#" class="iubenda-cs-preferences-link">Your Privacy Choices</a> | 
3007                <a href="#" class="iubenda-cs-uspr-link">Notice at Collection</a>
3008            </div>
3009            </section>
3010                    </div>
3011    </div>
3012</div>
3013<script type="text/x-magento-init">
3014{
3015    "#nav-sections-menu": {
3016        "Magento_Theme/js/nav-sections": {
3017        }
3018    }
3019}
3020</script>
3020
3021</div></div></div><div class="navigation_bottom_wrapper"><div class="navigation_bottom">    
3022    <div class="megamenu-container-2__mobile">
3023        <svg
3024            title="icon-arrow-down"
3025            class="megamenu-container-2__mobile-icon"
3026        >
3027            <use xlink:href="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/images/icon-sprite.svg#icon-mobile-menu"></use>
3028        </svg>
3029    </div>
3030
3031    <nav
3032        class="megamenu-container-2"
3033        data-mage-init='{"snowdogMenu": {}}'
3034    >
3035        <ul class="megamenu-container-2__list">
3036                                            <li class="megamenu-container-2__item  megamenu-container-2__item--parent">
3037                    <div class="megamenu-container-2__link_wapper_title" >
3038<a
3039    href="https://www.centerpointarchery.com/bows"
3040    class="megamenu-container-2__link"
3041     data-menu="menu-20">
3042    Bows</a>
3043</div>
3044                            <ul  class="megamenu-container-2__inner-list megamenu-container-2__inner-list--level1" data-menu="menu-20">
3045                    
3046            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--all megamenu-container-2__inner-item--level1">
3047                <div class="megamenu-container-2__inner-link_wapper_title" >
3048<a
3049    href="https://www.centerpointarchery.com/bows"
3050    class="megamenu-container-2__inner-link"
3051    >
3052    View All</a>
3053</div>
3054            </li>
3055        
3056                    
3057            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level1 megamenu-container-2__inner-item--parent subactegory_item compound">
3058                <div class="megamenu-container-2__inner-link_wapper_title" >
3059<a
3060    href="https://www.centerpointarchery.com/bows/crossbows"
3061    class="megamenu-container-2__inner-link"
3062     data-menu="menu-21">
3063    Crossbows</a>
3064</div>
3065                        <ul  class="megamenu-container-2__inner-list megamenu-container-2__inner-list--level2" data-menu="menu-21">
3066                    
3067            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--all megamenu-container-2__inner-item--level2">
3068                <div class="megamenu-container-2__inner-link_wapper_title" >
3069<a
3070    href="https://www.centerpointarchery.com/bows/crossbows"
3071    class="megamenu-container-2__inner-link"
3072    >
3073    View All</a>
3074</div>
3075            </li>
3076        
3077                    
3078            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2 new-product">
3079                
3080<a
3081    href="https://www.centerpointarchery.com/amped-g2d"
3082    class="megamenu-container-2__inner-link"
3083     data-menu="menu-292">
3084    Amped G2D</a>
3085                            </li>
3086                    
3087            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
3088                
3089<a
3090    href="https://www.centerpointarchery.com/at400"
3091    class="megamenu-container-2__inner-link"
3092     data-menu="menu-193">
3093    AT400</a>
3094                            </li>
3095                    
3096            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
3097                    <a
3098        href="/hellion-400-crossbow"
3099        data-menu="menu-300" class="megamenu-container-2__inner-link"    >
3100        Hellion 400    </a>
3101
3102                            </li>
3103                    
3104            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
3105                
3106<a
3107    href="https://www.centerpointarchery.com/hornet-crossbow"
3108    class="megamenu-container-2__inner-link"
3109     data-menu="menu-28">
3110    Hornet</a>
3111                            </li>
3112                    
3113            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2 new-product">
3114                
3115<a
3116    href="https://www.centerpointarchery.com/sinister-430d"
3117    class="megamenu-container-2__inner-link"
3118     data-menu="menu-291">
3119    Sinister 430D</a>
3120                            </li>
3121                    
3122            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2 new-product">
3123                
3124<a
3125    href="https://www.centerpointarchery.com/sniper-g4d"
3126    class="megamenu-container-2__inner-link"
3127     data-menu="menu-294">
3128    Sniper G4D</a>
3129                            </li>
3130                    
3131            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
3132                <div class="megamenu-container-2__inner-link_wapper_title" >
3133<a
3134    href="https://www.centerpointarchery.com/bows/crossbows"
3135    class="megamenu-container-2__inner-link"
3136     data-menu="menu-35">
3137    SHOP ALL CROSSBOWS</a>
3138</div>
3139                            </li>
3140            </ul>
3141            </li>
3142                    
3143            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level1 megamenu-container-2__inner-item--parent subactegory_item">
3144                <div class="megamenu-container-2__inner-link_wapper_title" >
3145<a
3146    href="https://www.centerpointarchery.com/bows/bowfishing"
3147    class="megamenu-container-2__inner-link"
3148     data-menu="menu-43">
3149    Bowfishing</a>
3150</div>
3151                        <ul  class="megamenu-container-2__inner-list megamenu-container-2__inner-list--level2" data-menu="menu-43">
3152                    
3153            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--all megamenu-container-2__inner-item--level2">
3154                <div class="megamenu-container-2__inner-link_wapper_title" >
3155<a
3156    href="https://www.centerpointarchery.com/bows/bowfishing"
3157    class="megamenu-container-2__inner-link"
3158    >
3159    View All</a>
3160</div>
3161            </li>
3162        
3163                    
3164            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
3165                
3166<a
3167    href="https://www.centerpointarchery.com/typhon-bowfishing-kit"
3168    class="megamenu-container-2__inner-link"
3169     data-menu="menu-44">
3170    Typhon™</a>
3171                            </li>
3172                    
3173            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
3174                
3175<a
3176    href="https://www.centerpointarchery.com/typhontm-x1-bowfishing-kit"
3177    class="megamenu-container-2__inner-link"
3178     data-menu="menu-83">
3179    Typhon™ X1</a>
3180                            </li>
3181                    
3182            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
3183                
3184<a
3185    href="https://www.centerpointarchery.com/bow-fishing-arrow-2-pack-kit"
3186    class="megamenu-container-2__inner-link"
3187     data-menu="menu-84">
3188    Bowfishing Arrows</a>
3189                            </li>
3190                    
3191            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
3192                <div class="megamenu-container-2__inner-link_wapper_title" >
3193<a
3194    href="https://www.centerpointarchery.com/bows/bowfishing"
3195    class="megamenu-container-2__inner-link"
3196     data-menu="menu-86">
3197    SHOP ALL BOWFISHING</a>
3198</div>
3199                            </li>
3200            </ul>
3201            </li>
3202                    
3203            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level1 megamenu-container-2__inner-item--parent subactegory_item">
3204                <div class="megamenu-container-2__inner-link_wapper_title" >
3205<a
3206    href="https://www.centerpointarchery.com/bows/youth-bows"
3207    class="megamenu-container-2__inner-link"
3208     data-menu="menu-47">
3209    Youth Bows</a>
3210</div>
3211                        <ul  class="megamenu-container-2__inner-list megamenu-container-2__inner-list--level2" data-menu="menu-47">
3212                    
3213            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--all megamenu-container-2__inner-item--level2">
3214                <div class="megamenu-container-2__inner-link_wapper_title" >
3215<a
3216    href="https://www.centerpointarchery.com/bows/youth-bows"
3217    class="megamenu-container-2__inner-link"
3218    >
3219    View All</a>
3220</div>
3221            </li>
3222        
3223                    
3224            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
3225                
3226<a
3227    href="https://www.centerpointarchery.com/tatanka-youth-recurve-bow"
3228    class="megamenu-container-2__inner-link"
3229     data-menu="menu-48">
3230    Tatanka®</a>
3231                            </li>
3232                    
3233            <li  class="megamenu-container-2__inner-item megamenu-container-2__inner-item--level2">
3234                <div class="megamenu-container-2__inner-link_wapper_title" >
3235<a
3236    href="https://www.centerpointarchery.com/bows/youth-bows"
3237    class="megamenu-container-2__inner-link"
3238     data-menu="menu-51">
3239    SHOP ALL YOUTH BOWS</a>
3240</div>
3241                            </li>
3242            </ul>
3243            </li>
3244            </ul>
3245                </li>
3246                                            <li class="megamenu-container-2__item ">
3247                    <div class="megamenu-container-2__link_wapper_title" >
3248<a
3249    href="https://www.centerpointarchery.com/arrows"
3250    class="megamenu-container-2__link"
3251     data-menu="menu-52">
3252    Arrows</a>
3253</div>
3254                                    </li>
3255                                            <li class="megamenu-container-2__item ">
3256                    <div class="megamenu-container-2__link_wapper_title" >
3257<a
3258    href="https://www.centerpointarchery.com/accessories"
3259    class="megamenu-container-2__link"
3260     data-menu="menu-58">
3261    Accessories</a>
3262</div>
3263                                    </li>
3264                                            <li class="megamenu-container-2__item ">
3265                    <div class="megamenu-container-2__link_wapper_title" >
3266<a
3267    href="https://www.centerpointarchery.com/parts"
3268    class="megamenu-container-2__link"
3269     data-menu="menu-53">
3270    Service and Parts</a>
3271</div>
3272                                    </li>
3273                                            <li class="megamenu-container-2__item ">
3274                    <div class="megamenu-container-2__link_wapper_title" >
3275<a
3276    href="https://www.centerpointarchery.com/apparel"
3277    class="megamenu-container-2__link"
3278     data-menu="menu-59">
3279    Apparel</a>
3280</div>
3281                                    </li>
3282                                            <li class="megamenu-container-2__item  accent-color">
3283                    <div class="megamenu-container-2__link_wapper_title" >
3284<a
3285    href="https://www.centerpointarchery.com/promotions/current-promotions"
3286    class="megamenu-container-2__link"
3287     data-menu="menu-87">
3288    Deals</a>
3289</div>
3290                                    </li>
3291                                            <li class="megamenu-container-2__item ">
3292                    
3293<a
3294    href="https://www.centerpointarchery.com/technology"
3295    class="megamenu-container-2__link"
3296     data-menu="menu-54">
3297    Technology</a>
3298                                    </li>
3299                                            <li class="megamenu-container-2__item ">
3300                    
3301<a
3302    href="https://www.centerpointarchery.com/about-centerpoint"
3303    class="megamenu-container-2__link"
3304     data-menu="menu-55">
3305    About</a>
3306                                    </li>
3307                                            <li class="megamenu-container-2__item ">
3308                        <a
3309        href="https://www.centerpointarchery.com/blog"
3310        data-menu="menu-56" class="megamenu-container-2__link"    >
3311        Blog    </a>
3312
3313                                    </li>
3314                    </ul>
3315        <div class="megamenu-container-2__mobile-bg"></div>
3316    </nav>
3317</div></div></div>        
3317<script type="application/javascript" async
3318            src=https://static.klaviyo.com/onsite/js/UxnDnW/klaviyo.js ></script>
3318
3319
3320    
3320<script type="text/x-magento-init">
3321        {
3322            "*": {
3323                "KlaviyoCustomerData": {}
3324            }
3325        }
3326    </script>
3326
3327</header><main id="maincontent" class="page-main"><a id="contentarea" tabindex="-1"></a>
3328<div class="page-title-wrapper">
3329    <h1 class="page-title"
3330                >
3331        <span class="base" data-ui-id="page-title-wrapper" >Cart</span>    </h1>
3332    </div>
3333<div class="page messages"><div data-placeholder="messages"></div>
3334<div data-bind="scope: 'messages'">
3335    <!-- ko if: cookieMessagesObservable() && cookieMessagesObservable().length > 0 -->
3336    <div aria-atomic="true" role="alert" class="messages" data-bind="foreach: {
3337        data: cookieMessagesObservable(), as: 'message'
3338    }">
3339        <div data-bind="attr: {
3340            class: 'message-' + message.type + ' ' + message.type + ' message',
3341            'data-ui-id': 'message-' + message.type
3342        }">
3343            <div data-bind="html: $parent.prepareMessageForHtml(message.text)"></div>
3344        </div>
3345    </div>
3346    <!-- /ko -->
3347
3348    <div aria-atomic="true" role="alert" class="messages" data-bind="foreach: {
3349        data: messages().messages, as: 'message'
3350    }, afterRender: purgeMessages">
3351        <div data-bind="attr: {
3352            class: 'message-' + message.type + ' ' + message.type + ' message',
3353            'data-ui-id': 'message-' + message.type
3354        }">
3355            <div data-bind="html: $parent.prepareMessageForHtml(message.text)"></div>
3356        </div>
3357    </div>
3358</div>
3359
3360<script type="text/x-magento-init">
3361    {
3362        "*": {
3363            "Magento_Ui/js/core/app": {
3364                "components": {
3365                        "messages": {
3366                            "component": "Magento_Theme/js/view/messages"
3367                        }
3368                    }
3369                }
3370            }
3371    }
3372</script>
3372
3373</div><div class="columns"><div class="column main"><input name="form_key" type="hidden" value="t8U2ACqOKhFOYGMd" /><div id="authenticationPopup" data-bind="scope:'authenticationPopup', style: {display: 'none'}">
3374        
3374<script>window.authenticationPopup = {"autocomplete":"off","customerRegisterUrl":"https:\/\/www.centerpointarchery.com\/customer\/account\/create\/","customerForgotPasswordUrl":"https:\/\/www.centerpointarchery.com\/customer\/account\/forgotpassword\/","baseUrl":"https:\/\/www.centerpointarchery.com\/","customerLoginUrl":"https:\/\/www.centerpointarchery.com\/customer\/ajax\/login\/"}</script>
3374    <!-- ko template: getTemplate() --><!-- /ko -->
3375        
3375<script type="text/x-magento-init">
3376        {
3377            "#authenticationPopup": {
3378                "Magento_Ui/js/core/app": {"components":{"authenticationPopup":{"component":"Magento_Customer\/js\/view\/authentication-popup","children":{"messages":{"component":"Magento_Ui\/js\/view\/messages","displayArea":"messages"},"captcha":{"component":"Magento_Captcha\/js\/view\/checkout\/loginCaptcha","displayArea":"additional-login-form-fields","formId":"user_login","configSource":"checkout"},"recaptcha":{"component":"Magento_ReCaptchaFrontendUi\/js\/reCaptcha","displayArea":"additional-login-form-fields","reCaptchaId":"recaptcha-popup-login","settings":{"rendering":{"sitekey":"6Ld_A7EUAAAAAMyfwrvPBDxcZR4eUgTkpUJDxiiS","size":"normal","theme":"light","hl":""},"invisible":false}}}}}}            },
3379            "*": {
3380                "Magento_Ui/js/block-loader": "https\u003A\u002F\u002Fwww.centerpointarchery.com\u002Fstatic\u002Fversion1790000787\u002Ffrontend\u002FCenterpoint\u002Fdefault\u002Fen_US\u002Fimages\u002Floader\u002D1.gif"
3381                                ,
3382                "Magento_Customer/js/customer-global-session-loader": {}
3383                            }
3384        }
3385    </script>
3385
3386</div>
3387<script type="text/x-magento-init">
3388    {
3389        "*": {
3390            "Magento_Customer/js/section-config": {
3391                "sections": {"stores\/store\/switch":["*"],"stores\/store\/switchrequest":["*"],"directory\/currency\/switch":["*"],"*":["messages"],"customer\/account\/logout":["*","recently_viewed_product","recently_compared_product","persistent"],"customer\/account\/loginpost":["*"],"customer\/account\/createpost":["*"],"customer\/account\/editpost":["*"],"customer\/ajax\/login":["checkout-data","cart","captcha"],"catalog\/product_compare\/add":["compare-products","wp_ga4"],"catalog\/product_compare\/remove":["compare-products"],"catalog\/product_compare\/clear":["compare-products"],"sales\/guest\/reorder":["cart","ammessages"],"sales\/order\/reorder":["cart","ammessages"],"checkout\/cart\/add":["cart","directory-data","ammessages","extend-tracking","wp_ga4"],"checkout\/cart\/delete":["cart","ammessages","extend-tracking","wp_ga4"],"checkout\/cart\/updatepost":["cart","ammessages","extend-tracking","wp_ga4"],"checkout\/cart\/updateitemoptions":["cart","ammessages","extend-tracking","wp_ga4"],"checkout\/cart\/couponpost":["cart","ammessages"],"checkout\/cart\/estimatepost":["cart","ammessages"],"checkout\/cart\/estimateupdatepost":["cart","ammessages"],"checkout\/onepage\/saveorder":["cart","checkout-data","last-ordered-items","amasty-checkout-data","ammessages"],"checkout\/sidebar\/removeitem":["cart","ammessages","extend-tracking","wp_ga4"],"checkout\/sidebar\/updateitemqty":["cart","ammessages","extend-tracking","wp_ga4"],"rest\/*\/v1\/carts\/*\/payment-information":["cart","last-ordered-items","captcha","instant-purchase","amasty-checkout-data","ammessages","wp_ga4"],"rest\/*\/v1\/guest-carts\/*\/payment-information":["cart","captcha","amasty-checkout-data","ammessages","wp_ga4"],"rest\/*\/v1\/guest-carts\/*\/selected-payment-method":["cart","checkout-data","ammessages"],"rest\/*\/v1\/carts\/*\/selected-payment-method":["cart","checkout-data","instant-purchase","ammessages"],"customer\/address\/*":["instant-purchase"],"customer\/account\/*":["instant-purchase"],"vault\/cards\/deleteaction":["instant-purchase"],"multishipping\/checkout\/overviewpost":["cart","ammessages"],"paypal\/express\/placeorder":["cart","checkout-data","amasty-checkout-data","ammessages"],"paypal\/payflowexpress\/placeorder":["cart","checkout-data","amasty-checkout-data","ammessages"],"paypal\/express\/onauthorization":["cart","checkout-data","ammessages"],"persistent\/index\/unsetcookie":["persistent"],"review\/product\/post":["review"],"paymentservicespaypal\/smartbuttons\/placeorder":["cart","checkout-data"],"paymentservicespaypal\/smartbuttons\/cancel":["cart","checkout-data"],"wishlist\/index\/add":["wishlist","wp_ga4"],"wishlist\/index\/remove":["wishlist"],"wishlist\/index\/updateitemoptions":["wishlist"],"wishlist\/index\/update":["wishlist"],"wishlist\/index\/cart":["wishlist","cart","wp_ga4"],"wishlist\/index\/fromcart":["wishlist","cart"],"wishlist\/index\/allcart":["wishlist","cart","wp_ga4"],"wishlist\/shared\/allcart":["wishlist","cart"],"wishlist\/shared\/cart":["cart"],"ammostviewed\/cart\/add":["cart","messages"],"amasty_promo\/cart\/add":["cart","ammessages"],"braintree\/paypal\/placeorder":["ammessages"],"authorizenet\/directpost_payment\/place":["ammessages"],"warranty\/cart\/add":["extend-tracking"],"checkout\/sidebar\/updateitemoptions":["extend-tracking"],"idme\/authorize\/*":["idme-verify"],"reclaim\/checkout\/reload":["cart"],"sezzle\/payment\/complete":["cart","checkout-data","last-ordered-items"],"rest\/*\/v1\/sezzle\/carts\/*\/checkout":["cart","checkout-data","last-ordered-items"],"rest\/*\/v1\/sezzle\/guest-carts\/*\/checkout":["cart","checkout-data","last-ordered-items"],"rest\/*\/v1\/carts\/*\/order":["cart","checkout-data","last-ordered-items"],"rest\/*\/v1\/guest-carts\/*\/order":["cart","checkout-data","last-ordered-items"],"checkout\/cart\/configure":["wp_ga4"],"rest\/*\/v1\/guest-carts\/*\/shipping-information":["wp_ga4"],"rest\/*\/v1\/carts\/*\/shipping-information":["wp_ga4"]},
3392                "clientSideSections": ["checkout-data","cart-data","amasty-checkout-data"],
3393                "baseUrls": ["https:\/\/www.centerpointarchery.com\/"],
3394                "sectionNames": ["messages","customer","compare-products","last-ordered-items","cart","directory-data","captcha","instant-purchase","loggedAsCustomer","persistent","review","payments","wishlist","ammessages","extend-tracking","idme-verify","webforms","wp_ga4","recently_viewed_product","recently_compared_product","product_data_storage","paypal-billing-agreement"]            }
3395        }
3396    }
3397</script>
vendor: 1 bytes, line 3397
3397
3398<script type="text/x-magento-init">
3399    {
3400        "*": {
3401            "Magento_Customer/js/customer-data": {
3402                "sectionLoadUrl": "https\u003A\u002F\u002Fwww.centerpointarchery.com\u002Fcustomer\u002Fsection\u002Fload\u002F",
3403                "expirableSectionLifetime": 60,
3404                "expirableSectionNames": ["cart","persistent"],
3405                "cookieLifeTime": "86400",
3406                "cookieDomain": "www.centerpointarchery.com",
3407                "updateSessionUrl": "https\u003A\u002F\u002Fwww.centerpointarchery.com\u002Fcustomer\u002Faccount\u002FupdateSession\u002F",
3408                "isLoggedIn": ""
3409            }
3410        }
3411    }
3412</script>
vendor: 1 bytes, line 3412
3412
3413<script type="text/x-magento-init">
3414    {
3415        "*": {
3416            "Magento_Customer/js/invalidation-processor": {
3417                "invalidationRules": {
3418                    "website-rule": {
3419                        "Magento_Customer/js/invalidation-rules/website-rule": {
3420                            "scopeConfig": {
3421                                "websiteId": "4"
3422                            }
3423                        }
3424                    }
3425                }
3426            }
3427        }
3428    }
3429</script>
vendor: 1 bytes, line 3429
3429
3430<script type="text/x-magento-init">
3431    {
3432        "body": {
3433            "pageCache": {"url":"https:\/\/www.centerpointarchery.com\/page_cache\/block\/render\/","handles":["default","checkout_cart_index"],"originalRequest":{"route":"checkout","controller":"cart","action":"index","uri":"\/checkout\/cart\/"},"versionCookieName":"private_content_version"}        }
3434    }
3435</script>
vendor: 1 bytes, line 3435
3435
3436<script type="text/x-magento-init">
3437    {
3438        "*": {
3439            "Magento_Ui/js/core/app": {
3440                "components": {
3441                        "finder_notification": {
3442                            "component": "Amasty_Finder/js/notification"
3443                        }
3444                    }
3445                }
3446            }
3447    }
3448
3449</script>
3449
3450
3451                    
3451<script>
3452            require(['jquery', 'domReady!'], function($){
3453                if ($('.mfblogunveil').length) {
3454                    require(['Magefan_Blog/js/lib/mfblogunveil'], function(){
3455                        $('.mfblogunveil').mfblogunveil();
3456                    });
3457                }
3458            });
3459        </script>
3459<div class="cart-empty">
3460        <p>You have no items in your shopping cart.</p>
3461    <p>Click <a href="https://www.centerpointarchery.com/">here</a> to continue shopping.    </p>
3462    </div>
3463<script type="text/x-magento-init">
3464{
3465    "*": {
3466        "Magento_Checkout/js/empty-cart": {}
3467    }
3468}
3469</script>
3469
3470
3471        <form class="amhideprice-form"
3472          id="amgroupcat-form"
3473          role="dialog"
3474          aria-modal="true"
3475          aria-labelledby="amgroupcat-form-title"
3476          tabindex="-1"
3477          action=""
3478          method="post"
3479          style="display: none;">
3480        <input name="form_key" type="hidden" value="" />
3481        <input name="product_id" type="hidden" value="" />
3482        <fieldset class="fieldset">
3483            <legend class="legend amhideprice-form-ledend"
3484                    id="amgroupcat-form-title">
3485                <span>Get a Quote for</span>
3486                <span style="font-weight: bolder;" class="product-name"></span>
3487            </legend>
3488            <br>
3489                        <div class="amhideprice-fields-container">
3490                <div class="field required">
3491                    <label for="amgroupcat-name" class="label">
3492                        <span>Customer Name</span>
3493                    </label>
3494                    <div class="control">
3495                        <input type="text" name="name" class="input-text"
3496                               id="amgroupcat-name"
3497                               data-validate="{required:true}">
3498                    </div>
3499                </div>
3500                <div class="field required">
3501                    <label for="amgroupcat-email" class="label">
3502                        <span>Customer Email</span>
3503                    </label>
3504                    <div class="control">
3505                        <input type="email"
3506                               name="email"
3507                               autocomplete="email"
3508                               id="amgroupcat-email"
3509                               value="" class="input-text"
3510                               data-validate="{required:true, 'validate-email':true}"
3511                               aria-required="true">
3512                    </div>
3513                </div>
3514                <div class="field required">
3515                    <label for="amgroupcat-phone" class="label">
3516                        <span>Phone Number</span>
3517                    </label>
3518                    <div class="control">
3519                        <input type="text" name="phone" id="amgroupcat-phone" class="input-text "
3520                               data-validate="{required:true}">
3521                    </div>
3522                </div>
3523                <div class="field">
3524                    <label for="amgroupcat-comment" class="label">
3525                        <span>Comment</span>
3526                    </label>
3527                    <div class="control">
3528                        <textarea title="Comment"
3529                                  type="textarea"
3530                                  id="amgroupcat-comment"
3531                                  name="comment" class="input-text"
3532                                  data-validate="{'validate-no-html-tags':true}"></textarea>
3533                    </div>
3534                </div>
3535                <div class="actions-toolbar">
3536                    <div class="primary">
3537                        <button type="submit" class="action submit primary"
3538                                title="Submit">
3539                            <span>Submit</span>
3540                        </button>
3541                    </div>
3542                </div>
3543            </div>
3544        </fieldset>
3545    </form>
3546    
3546<script>
3547        require([
3548           'jquery',
3549           'mage/url'
3550        ], function (jQuery, url) {
3551          url.setBaseUrl('https\u003A\u002F\u002Fwww.centerpointarchery.com\u002F');
3552          jQuery.ajax({
3553              url: url.build('reclaim/checkout/reload'),
3554              method: 'POST',
3555              data: {}
3556          });
3557        });
3558    </script>
3558
3559</div></div></main><footer class="page-footer"><div class="footer content"><div class="footer_left">
3560            <section class="footer-menu-links">
3561            <div class="links-list">
3562                <div data-role="collapsible">
3563                    <div data-role="trigger">
3564                        <div class="links-title">PRODUCTS</div>
3565                    </div>
3566                </div>
3567                <div data-role="content">
3568                <ul class="content">
3569                    <li>
3570                        <a href="https://www.centerpointarchery.com/bows">BOWS</a>
3571                        <ul>
3572                            <li><a href="https://www.centerpointarchery.com/bows/crossbows">CROSSBOWS</a></li>
3573                            <li><a href="https://www.centerpointarchery.com/bows/recurve-hunting-bows">RECURVE HUNTING BOWS</a></li>
3574                            <li><a href="https://www.centerpointarchery.com/bows/bowfishing">BOWFISHING</a></li>
3575                            <li><a href="https://www.centerpointarchery.com/bows/youth-bows">YOUTH BOWS</a></li>
3576                        </ul>
3577                    </li>
3578                    <li><a href="https://www.centerpointarchery.com/arrows">ARROWS</a></li>
3579                    <li><a href="https://www.centerpointarchery.com/gear">GEAR</a>
3580                        <ul>
3581                            <li><a href="https://www.centerpointarchery.com/accessories"> ACCESSORIES</a></li>
3582                        </ul>
3583                    </li>
3584<li><a href="https://www.centerpointarchery.com/centerpoint-egift-card">eGift Cards</a></li>
3585
3586                </ul>
3587                </div>
3588            </div>
3589            <div class="links-list">
3590                <div data-role="collapsible">
3591                    <div data-role="trigger">
3592                        <div class="links-title">SUPPORT</div>
3593                    </div>
3594                </div>
3595                <div data-role="content">
3596                    <ul class="content">
3597                        <li><a href="https://www.centerpointarchery.com/support/contact-support">CONTACT SUPPORT</a></li>
3598                        <li><a href="https://www.centerpointarchery.com/support/faq">FAQS</a></li>
3599                        <li><a href="https://www.centerpointarchery.com/support/product-registration">PRODUCT REGISTRATION</a></li>
3600                        <li><a href="https://www.centerpointarchery.com/support/shipping">SHIPPING</a></li>
3601                        <li><a href="https://www.centerpointarchery.com/owners-manuals">OWNER'S MANUALS</a></li>
3602                        <li><a href="https://www.centerpointarchery.com/videos">VIDEOS</a></li>
3603                        <li><a href="https://www.centerpointarchery.com/safety">SAFETY</a></li>
3604                        <li><a href="https://www.centerpointarchery.com/support/warranty-info">WARRANTY INFO</a></li>
3605<li><a href="https://centerpointarcheryrebates.com/">REBATES</a></li>
3606                    </ul>
3607                </div>
3608
3609            </div>
3610            <div class="links-list">
3611                <div data-role="collapsible">
3612                    <div data-role="trigger">
3613                        <div class="links-title">COMPANY</div>
3614                    </div>
3615                </div>
3616                <div data-role="content">
3617                    <ul class="content">
3618                        <li><a href="https://www.centerpointarchery.com/about-centerpoint">ABOUT</a></li>
3619                        <li><a href="https://www.centerpointarchery.com/the-elk-hunt">THE ELK HUNT</a></li>
3620                        <li><a href="https://www.centerpointarchery.com/about-centerpoint/#our-partners">OUR PARTNERS</a></li>
3621                        <li><a href="https://www.centerpointarchery.com/blog">BLOG</a></li>
3622                        <li><a href="https://www.centerpointarchery.com/become-a-dealer">BECOME A DEALER</a></li>
3623                        <li><a href="https://www.centerpointarchery.com/affiliate-program">AFFILIATE PROGRAM</a></li>
3624                        <li><a href="https://www.centerpointarchery.com/dealer-locator">DEALER LOCATOR</a></li>
3625                        <li><a href="https://www.centerpointarchery.com/careers">CAREERS</a></li>
3626                        <li><a href="https://velocity-outdoor.com">A VELOCITY OUTDOOR COMPANY</a></li>
3627                    </ul>
3628                </div>
3629            </div>
3630        </section>
3631            <div class="footer_social">
3632     <label>Follow Us!</label>
3633     <div class="social-links">
3634          <a href="https://www.youtube.com/channel/UCIq03klIyTESYCSgFXNVKVw">
3635
3636               <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 69.5 70.2" style="enable-background:new 0 0 69.5 70.2;" xml:space="preserve">
3637                    <g>
3638                         <polygon class="st0" points="30.6,42.1 42.5,35.2 30.6,28.3 	" />
3639                         <path class="st0" d="M35.2-0.1c-19,0-34.5,15.4-34.5,34.4v1.8c0,19,15.4,34.5,34.5,34.5c19,0,34.5-15.4,34.5-34.5v-1.8
3640		C69.6,15.3,54.2-0.1,35.2-0.1 M57.2,46.3c-0.5,2-2.1,3.5-4.1,4.1c-3.6,1-18,1-18,1s-14.4,0-18-1c-2-0.5-3.5-2.1-4.1-4.1
3641		c-1-3.6-1-11.1-1-11.1s0-7.5,1-11.1c0.5-2,2.1-3.5,4.1-4.1c3.6-1,18-1,18-1s14.4,0,18,1c2,0.5,3.5,2.1,4.1,4.1c1,3.6,1,11.1,1,11.1
3642		S58.1,42.7,57.2,46.3" />
3643                    </g>
3644               </svg>
3645          </a>
3646
3647          <a href="https://www.facebook.com/CenterPointArchery">
3648
3649
3650               <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 69.5 70.2" style="enable-background:new 0 0 69.5 70.2;" xml:space="preserve">
3651
3652                    <g>
3653                         <path class="st0" d="M35.2,0.3C15.7,0.3,0,16,0,35.4C0,53,12.8,67.5,29.7,70.2V45.6h-8.9V35.4l0,0l0,0h8.9v-7.7
3654                    c0-8.3,4.6-13.1,11.8-13.6c0.5,0,1-0.1,1.5-0.1c3.9,0,7.9,0.7,7.9,0.7v8.7l0,0l0,0h-4.4c-0.3,0-0.5,0-0.8,0
3655                    c-3.8,0.3-4.9,2.9-4.9,5.5v6.6h9.7l-1.6,10.2l0,0h-8.2v24.6C57.5,67.5,70.3,53,70.3,35.4C70.3,16,54.6,0.3,35.2,0.3" />
3656                    </g>
3657               </svg>
3658
3659          </a>
3660
3661          <a href="https://www.instagram.com/centerpoint_archery">
3662               <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 69.5 70.2" style="enable-background:new 0 0 69.5 70.2;" xml:space="preserve">
3663
3664                    <g>
3665                         <path class="st0" d="M41.1,35.2c0-3.3-2.6-5.9-5.9-5.9c-3.3,0-5.9,2.6-5.9,5.9s2.6,5.9,5.9,5.9C38.5,41.1,41.1,38.5,41.1,35.2" />
3666                         <path class="st0" d="M49.2,19.7H21.4c-0.9,0-1.6,0.7-1.
36666,1.6v12.3h6.6c0.8-4.2,4.5-7.5,8.9-7.5s8.2,3.2,8.9,7.5h6.6V21.3
3667                    C50.8,20.4,50.1,19.7,49.2,19.7 M46,27.2c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1
3668                    C48.1,26.3,47.1,27.2,46,27.2" />
3669                         <path class="st0" d="M35.3,44.3c-4.5,0-8.2-3.2-8.9-7.5h-6.6v12.3c0,0.9,0.7,1.6,1.6,1.6h27.8c0.9,0,1.6-0.7,1.6-1.6V36.8h-6.6
3670                    C43.4,41.1,39.7,44.3,35.3,44.3" />
3671                         <path class="st0" d="M35.2,0C16.2,0,0.8,15.4,0.8,34.3v1.8c0,19,15.4,34.3,34.3,34.3c19,0,34.3-15.4,34.3-34.3v-1.8
3672                    C69.5,15.4,54.1,0,35.2,0 M54,49.1c0,2.6-2.2,4.8-4.8,4.8H21.4c-2.6,0-4.8-2.2-4.8-4.8V21.3c0-2.6,2.2-4.8,4.8-4.8h27.8
3673                    c2.6,0,4.8,2.2,4.8,4.8C54,21.3,54,49.1,54,49.1z" />
3674                    </g>
3675               </svg>
3676
3677          </a>
3678
3679     </div>
3680
3681</div>
3682            <section class="footer-copyright">
3683            <div class="iso">
3684                <img src="https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/images/logo-no-text.svg"
3685                    alt="Center Point Archery"
3686                    width="34" height="25"
3687                />
3688            </div>
3689            <div class="copyright-text">
3690                © 2026 CenterPoint Archery.
3691                <br />
3692                <span>ALL RIGHTS RESERVED.</span>
3693            </div>
3694            <div class="links">
3695                <a href="/terms-of-use">Terms of Use</a> |
3696                <a href="/privacy-policy">Privacy Policy</a> | 
3697                <a href="#" class="iubenda-cs-preferences-link">Your Privacy Choices</a> | 
3698                <a href="#" class="iubenda-cs-uspr-link">Notice at Collection</a>
3699            </div>
3700            </section>
3701            </div><div class="footer_right"><div class="block newsletter">
3702    <div class="content">
3703       
3704        <div class="footer--secondary">
3705            
3706<style>
3707.klaviyo-form-RZ9Ru8{
3708display:flex;
3709align-content:center;
3710justify-content:center;
3711width:100%;
3712}
3713.klaviyo-form-RZ9Ru8 form{
3714padding: 0 !important;
3715}
3716.klaviyo-form-RZ9Ru8 div:first-of-type{
3717display:flex;
3718width:100%;
3719align-items:center;
3720align-content:center;
3721}
3722.klaviyo-form-RZ9Ru8 div:first-of-type input{
3723min-height:38px !important;
3724padding-left: 10px !important;
3725}
3726.klaviyo-form-RZ9Ru8 button:not(.primary){
3727box-shadow:none !important;
3728padding: 0 20px !important;
3729}
3730</style>
3731
3732<div class="newsletter-heading">Join Our Mailing List</div>
3733<p>Stay locked onto the latest product releases, insider deals, and invite-only events.</p>
3734<div class="email-signup input">
3735    <div class="klaviyo-form-RZ9Ru8"></div>
3736</div>
3737            <style>
3738.klaviyo-form-TGnDvX{
3739display:flex;
3740align-content:center;
3741justify-content:center;
3742width:100%;
3743}
3744.klaviyo-form-TGnDvX form{
3745padding: 0 !important;
3746}
3747.klaviyo-form-TGnDvX div:first-of-type{
3748display:flex;
3749width:100%;
3750align-items:center;
3751align-content:center;
3752}
3753.klaviyo-form-TGnDvX div:first-of-type input{
3754min-height:38px !important;
3755padding-left: 10px !important;
3756}
3757.klaviyo-form-TGnDvX button:not(.primary){
3758box-shadow:none !important;
3759padding: 0 20px !important;
3760}
3761.page-footer .footer.content .footer_right .footer--secondary form span {
3762    display: block !important;
3763margin-top:15px!important;
3764}
3765</style>
3766            <img src="https://www.centerpointarchery.com/media/wysiwyg/cpa/cpa-catalog-2025.png" alt="" />
3767            <p>Get all of CenterPoint's power concentrated in your hands at once.</p>
3768            <div class="email-signup catalog-download">
3769                <div class="klaviyo-form-TGnDvX"></div>
3770            </div>        </div>    
3771    </div>
3772    
3773</div>
3774<div class="footer_social">
3775     <label>Follow Us!</label>
3776     <div class="social-links">
3777          <a href="https://www.youtube.com/channel/UCIq03klIyTESYCSgFXNVKVw">
3778
3779               <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 69.5 70.2" style="enable-background:new 0 0 69.5 70.2;" xml:space="preserve">
3780                    <g>
3781                         <polygon class="st0" points="30.6,42.1 42.5,35.2 30.6,28.3 	" />
3782                         <path class="st0" d="M35.2-0.1c-19,0-34.5,15.4-34.5,34.4v1.8c0,19,15.4,34.5,34.5,34.5c19,0,34.5-15.4,34.5-34.5v-1.8
3783		C69.6,15.3,54.2-0.1,35.2-0.1 M57.2,46.3c-0.5,2-2.1,3.5-4.1,4.1c-3.6,1-18,1-18,1s-14.4,0-18-1c-2-0.5-3.5-2.1-4.1-4.1
3784		c-1-3.6-1-11.1-1-11.1s0-7.5,1-11.1c0.5-2,2.1-3.5,4.1-4.1c3.6-1,18-1,18-1s14.4,0,18,1c2,0.5,3.5,2.1,4.1,4.1c1,3.6,1,11.1,1,11.1
3785		S58.1,42.7,57.2,46.3" />
3786                    </g>
3787               </svg>
3788          </a>
3789
3790          <a href="https://www.facebook.com/CenterPointArchery">
3791
3792
3793               <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 69.5 70.2" style="enable-background:new 0 0 69.5 70.2;" xml:space="preserve">
3794
3795                    <g>
3796                         <path class="st0" d="M35.2,0.3C15.7,0.3,0,16,0,35.4C0,53,12.8,67.5,29.7,70.2V45.6h-8.9V35.4l0,0l0,0h8.9v-7.7
3797                    c0-8.3,4.6-13.1,11.8-13.6c0.5,0,1-0.1,1.5-0.1c3.9,0,7.9,0.7,7.9,0.7v8.7l0,0l0,0h-4.4c-0.3,0-0.5,0-0.8,0
3798                    c-3.8,0.3-4.9,2.9-4.9,5.5v6.6h9.7l-1.6,10.2l0,0h-8.2v24.6C57.5,67.5,70.3,53,70.3,35.4C70.3,16,54.6,0.3,35.2,0.3" />
3799                    </g>
3800               </svg>
3801
3802          </a>
3803
3804          <a href="https://www.instagram.com/centerpoint_archery">
3805               <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 69.5 70.2" style="enable-background:new 0 0 69.5 70.2;" xml:space="preserve">
3806
3807                    <g>
3808                         <path class="st0" d="M41.1,35.2c0-3.3-2.6-5.9-5.9-5.9c-3.3,0-5.9,2.6-5.9,5.9s2.6,5.9,5.9,5.9C38.5,41.1,41.1,38.5,41.1,35.2" />
3809                         <path class="st0" d="M49.2,19.7H21.4c-0.9,0-1.6,0.7-1.
38096,1.6v12.3h6.6c0.8-4.2,4.5-7.5,8.9-7.5s8.2,3.2,8.9,7.5h6.6V21.3
3810                    C50.8,20.4,50.1,19.7,49.2,19.7 M46,27.2c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1
3811                    C48.1,26.3,47.1,27.2,46,27.2" />
3812                         <path class="st0" d="M35.3,44.3c-4.5,0-8.2-3.2-8.9-7.5h-6.6v12.3c0,0.9,0.7,1.6,1.6,1.6h27.8c0.9,0,1.6-0.7,1.6-1.6V36.8h-6.6
3813                    C43.4,41.1,39.7,44.3,35.3,44.3" />
3814                         <path class="st0" d="M35.2,0C16.2,0,0.8,15.4,0.8,34.3v1.8c0,19,15.4,34.3,34.3,34.3c19,0,34.3-15.4,34.3-34.3v-1.8
3815                    C69.5,15.4,54.1,0,35.2,0 M54,49.1c0,2.6-2.2,4.8-4.8,4.8H21.4c-2.6,0-4.8-2.2-4.8-4.8V21.3c0-2.6,2.2-4.8,4.8-4.8h27.8
3816                    c2.6,0,4.8,2.2,4.8,4.8C54,21.3,54,49.1,54,49.1z" />
3817                    </g>
3818               </svg>
3819
3820          </a>
3821
3822     </div>
3823
3824</div></div>
3824<script type="text/x-magento-init">
3825{
3826    ".footer.content .footer-menu-links": {
3827        "Magento_Theme/js/footer-accordion": {
3828        }
3829    }
3830}
3831</script>
vendor: 1 bytes, line 3831
3831
3832<script type="text/x-magento-init">
3833{
3834    ".cms-accordion": {
3835        "Magento_Theme/js/cms-pages-accordion": {
3836        }
3837    }
3838}
3839</script>
vendor: 1 bytes, line 3839
3839
3840<script type="text/x-magento-init">
3841     {
3842         ".cms-home-page .product-items.widget-product-grid, .products-carousel .product-items, .catalog-product-view .product-items": {
3843             "slick": {
3844                "autoplay" : true,
3845                "mobileFirst": true,
3846                "prevArrow": "<button type='button' class='slick-prev'>◀</button>",
3847                "nextArrow": "<button type='button' class='slick-next'>▶</button>",
3848                "responsive": [
3849                    {
3850                        "breakpoint": 768,
3851                        "settings": {
3852                            "slidesToShow": 2
3853                        }
3854                    },
3855                    {
3856                        "breakpoint": 1200,
3857                        "settings": {
3858                            "slidesToShow": 3
3859                        }
3860                    }
3861                ]
3862             }
3863         }
3864     }
3865 </script>
vendor: 1 bytes, line 3865
3865
3866<script type="text/x-magento-init">
3867{
3868    "*": {
3869        "Magento_Theme/js/home-animations": {
3870        }
3871    }
3872}
3873</script>
vendor: 1 bytes, line 3873
3873
3874<script type="text/x-magento-init">
3875{
3876    "*": {
3877        "Magento_Theme/js/video-player": {
3878        }
3879    }
3880}
3881</script>
vendor: 1 bytes, line 3881
3881
3882<script type="text/x-magento-init">
3883     {
3884         ".true-originals .make-it-yours .slider": {
3885             "slick": {
3886                "autoplay" : true,
3887                "mobileFirst": true,
3888                "prevArrow": "<button type='button' class='slick-prev'>◀</button>",
3889                "nextArrow": "<button type='button' class='slick-next'>▶</button>",
3890                "slidesToShow": 1
3891             }
3892         }
3893     }
3894 </script>
vendor: 1 bytes, line 3894
3894
3895<script type="text/x-magento-init">
3896     {
3897        ".page-product-slider-gallery": {
3898             "slick": {
3899                "autoplay" : true,
3900                "mobileFirst": true,
3901                "prevArrow": "<button type='button' class='slick-prev'>◀</button>",
3902                "nextArrow": "<button type='button' class='slick-next'>▶</button>",
3903                "slidesToShow": 1,
3904                "dots": true,
3905                "speed": 300
3906             }
3907        },
3908        "[data-lightbox-gallery]" : {
3909            "Magento_Theme/js/light-box": {}
3910        }
3911     }
3912 </script>
vendor: 1 bytes, line 3912
3912
3913<script type="text/x-magento-init">
3914{
3915    "*": {
3916        "Magento_Theme/js/open-minicart": {
3917        }
3918    }
3919}
3920</script>
3920
3921</div></footer>
3921<script type="text/x-magento-init">
3922        {
3923            "*": {
3924                "Magento_Ui/js/core/app": {
3925                    "components": {
3926                        "storage-manager": {
3927                            "component": "Magento_Catalog/js/storage-manager",
3928                            "appendTo": "",
3929                            "storagesConfiguration" : {"recently_viewed_product":{"requestConfig":{"syncUrl":"https:\/\/www.centerpointarchery.com\/catalog\/product\/frontend_action_synchronize\/"},"lifetime":"1000","allowToSendRequest":null},"recently_compared_product":{"requestConfig":{"syncUrl":"https:\/\/www.centerpointarchery.com\/catalog\/product\/frontend_action_synchronize\/"},"lifetime":"1000","allowToSendRequest":null},"product_data_storage":{"updateRequestConfig":{"url":"https:\/\/www.centerpointarchery.com\/rest\/centerpointarchery\/V1\/products-render-info"},"requestConfig":{"syncUrl":"https:\/\/www.centerpointarchery.com\/catalog\/product\/frontend_action_synchronize\/"},"allowToSendRequest":null}}                        }
3930                    }
3931                }
3932            }
3933        }
3934</script>
3934
3935<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 3935-3936
3935
3936<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3936GTM-MRL4BPG
vendor: 83 bytes, lines 3936-3937
3936"
3937height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
3938<!-- End Google Tag Manager (noscript) -->
3939
3940<!-- Start of HubSpot Embed Code -->
3941<!--
3941<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/8151552.js"></script>
3941-->
3942<!-- End of HubSpot Embed Code -->
3943
3944<!--
3945<script type = "text/javascript" src = 'https://home-c9.incontact.com/inContact/ChatClient/js/embed.min.js'></script>
3945-->
3946<!--
3946<script type ="text/javascript">
3947icPatronChat.init({serverHost:'https://home-c9.incontact.com',bus_no:4593762,poc:'975e25d1-d802-4332-bcb8-ddb7e689055f',params:['T3352','850724','Centerpoint Archery']});
3948</script>
3948
3949-->
3950
3951<script>document.addEventListener("DOMContentLoaded", function() {
3952        if (document.querySelectorAll('.mf-ytw-wrapper').length || document.querySelectorAll('[data-mf-ytw-youtube-link]').length) {
3953            !function (f, b, e, v, t, s) {
3954                if(f.mfytwcss)return;
3955                f.mfytwcss=1;
3956                t = b.createElement(e);
3957                t.rel = 'stylesheet';
3958                t.type = 'text/css';
3959                t.href = v;
3960                s = b.getElementsByTagName('HEAD')[0];
3961                s.appendChild(t)
3962            }(window, document, 'link', 'https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/Magefan_YouTubeWidget/css/youtubewidget.css');
3963        }
3964        if (document.querySelectorAll('.mf-ytw-wrapper').length) {
3965            !function (f, b, e, v, t, s) {
3966                if(f.mfytwjs)return;
3967                f.mfytwjs=1;
3968                t = b.createElement(e);
3969                t.type = 'text/javascript';
3970                t.src = v;
3971                s = b.getElementsByTagName('HEAD')[0];
3972                s.appendChild(t)
3973            }(window, document, 'script', 'https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/Magefan_YouTubeWidget/js/iframe.js');
3974        }
3975        if (document.querySelectorAll('[data-mf-ytw-youtube-link]').length) {
3976            !function (f, b, e, v, t) {
3977                if(f.mflinkjs)return;
3978                f.mflinkjs=1;
3979                t = b.createElement(e);
3980                t.type = 'text/javascript';
3981                t.src = v;
3982                s = b.getElementsByTagName('HEAD')[0];
3983                s.appendChild(t)
3984            }(window, document, 'script', 'https://www.centerpointarchery.com/static/version1790000787/frontend/Centerpoint/default/en_US/Magefan_YouTubeWidget/js/link.js');
3985        }
3986    });</script>
3986<script>
3987    require([
3988        "jquery",
3989        "https://cdn1.stamped.io/files/widget.min.js"
3990    ], function(jQuery) {
3991        StampedFn.init({
3992            apiKey: 'd754693a\u002Dca8c\u002D455c\u002D9769\u002D3a8bbca7fdef\u002D\u002D\u002D',
3993            storeUrl: 'www.centerpointarchery.com\u002D\u002D\u002D'
3994        });
3995
3996        function addEventListenerStamped(el, eventName, handler) {
3997            if (el.addEventListener) {
3998                el.addEventListener(eventName, handler);
3999            } else {
4000                el.attachEvent('on' + eventName, function() {
4001                    handler.call(el);
4002                });
4003            }
4004        }
4005
4006        addEventListenerStamped(document, "stamped:reviews:loaded", function(e) {
4007            var ratingCount = jQuery("meta[itemprop=reviewCount]").attr("content");
4008            var ratingValue = jQuery("meta[itemprop=ratingValue]").attr("content");
4009            var richSnippet = {
4010                "@context": "http://schema.org",
4011                "@type": "Product",
4012                "name": document.title
4013            }
4014
4015            if (parseInt(ratingValue) > 0) {
4016                richSnippet.aggregateRating = {
4017                    "@type": "AggregateRating",
4018                    "ratingValue": ratingValue,
4019                    "reviewCount": ratingCount
4020                }
4021            }
4022
4023            var script = document.createElement('script');
4024            script.type = 'application/ld+json';
4025            script.innerHTML = JSON.stringify(richSnippet);
4026            document.getElementsByTagName('head')[0].appendChild(script);
4027        });
4028    })
4029</script>
vendor: 1 bytes, line 4029
4029
4030<script defer="1" src="https&#x3A;&#x2F;&#x2F;www.dwin1.com&#x2F;115172.js"></script>
4030
4031
4032<script>
4033require([
4034    'jquery'
4035], function($){
4036
4037//<![CDATA[
4038    $.extend(true, $, {
4039        calendarConfig: {
4040            dayNames: ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
4041            dayNamesMin: ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],
4042            monthNames: ["January","February","March","April","May","June","July","August","September","October","November","December"],
4043            monthNamesShort: ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],
4044            infoTitle: 'About\u0020the\u0020calendar',
4045            firstDay: 0,
4046            closeText: 'Close',
4047            currentText: 'Go\u0020Today',
4048            prevText: 'Previous',
4049            nextText: 'Next',
4050            weekHeader: 'WK',
4051            timeText: 'Time',
4052            hourText: 'Hour',
4053            minuteText: 'Minute',
4054            dateFormat: "D, d M yy", // $.datepicker.RFC_2822
4055            showOn: 'button',
4056            showAnim: '',
4057            changeMonth: true,
4058            changeYear: true,
4059            buttonImageOnly: null,
4060            buttonImage: null,
4061            showButtonPanel: true,
4062            showWeek: true,
4063            timeFormat: '',
4064            showTime: false,
4065            showHour: false,
4066            showMinute: false
4067        }
4068    });
4069
4070    enUS = {"m":{"wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}}; // en_US locale reference
4071//]]>
4072
4073});</script>
4073<div class="ampromo-overlay -hide" data-role="ampromo-overlay">
4074    <div data-role="focusable-start" tabindex="0"></div>
4075    <div class="ampromo-popup-wrapper"
4076         data-ampromo-js="items-content"
4077         role="dialog"
4078         aria-labelledby="ampromo-popup-description"
4079         aria-modal="true"
4080    >
4081                    <h2 id="ampromo-popup-description">
4082                Free Items            </h2>
4083                <button class="ampromo-close"
4084                data-role="ampromo-popup-hide"
4085                aria-label="Close&#x20;Dialog"
4086        ></button>
4087        <div class="ampromo-popup-container" data-ampromo-js="popup-container"></div>
4088    </div>
4089    <div data-role="focusable-end" tabindex="0"></div>
4090</div>
4091
4092<script type="text/x-magento-init">
4093    {
4094        "[data-role=ampromo-overlay]": {
4095            "Amasty_Promo/js/popup": {
4096                "sourceUrl": "https://www.centerpointarchery.com/amasty_promo/popup/reload/",
4097                "uenc":   "aHR0cHM6Ly93d3cuY2VudGVycG9pbnRhcmNoZXJ5LmNvbS9jaGVja291dC9jYXJ0Lw~~",
4098                "slickSettings": {
4099                    "slidesToShow": 3,
4100                    "slidesToScroll": 3,
4101                    "dots": true,
4102                    "infinite": false,
4103                    "respondTo": "slider",
4104                    "rows": 0,
4105                    "responsive": [
4106                        {
4107                            "breakpoint": 571,
4108                            "settings": {
4109                                "slidesToShow": 2,
4110                                "slidesToScroll": 2
4111                            }
4112                        },
4113                        {
4114                            "breakpoint": 281,
4115                            "settings": {
4116                                "slidesToShow": 1,
4117                                "slidesToScroll": 1
4118                            }
4119                        }
4120                    ]
4121                },
4122                "commonQty": "0",
4123                "products": {"common_qty":0,"triggered_products":[],"promo_sku":[]},
4124                "formUrl": "https://www.centerpointarchery.com/amasty_promo/cart/add/",
4125                "selectionMethod": 0,
4126                "giftsCounter": 0,
4127                "autoOpenPopup": false,
4128                "shouldUpdateCartSection": false,
4129                "priceFormat": {"pattern":"$%s","precision":2,"requiredPrecision":2,"decimalSymbol":".","groupSymbol":",","groupLength":3,"integerRequired":false}    }
4130}
4131}
4132</script>
4132
4133</div>    
4133<script>
4134        window.ga4ParentVsChild = 'parent';
4135        window.ga4VariantEnabled = '0';
4136        require(['jquery','weltpixel_ga4_persistentLayer','weltpixel_ga4_gtm', 'Magento_Customer/js/customer-data'],
4137            function ($, wpGa4PersDl ,wpGa4gtm, customerData) {
4138                if (window.ga4AllowServices) {
4139                    $(document).ajaxComplete(function (event, xhr, settings) {
4140                        if (settings.url.search('/customer\/section\/load/') > 0) {
4141                            var response = xhr.responseJSON;
4142                            if (response.wp_ga4) {
4143                                var dataLayerData = $.parseJSON(response.wp_ga4.datalayer);
4144                                for (index in dataLayerData) {
4145                                    window.dataLayer.push({ecommerce: null});
4146                                    window.dataLayer.push(dataLayerData[index]);
4147                                }
4148                            }
4149                        }
4150                    });
4151                    var wpPersDlOptions = {'storageExpiryTime': 30 };
4152                    var wpGtmOptions = {
4153                        'enabled': 0,
4154                        'persDataLayer': wpGa4PersDl
4155                    };
4156                    wpGa4PersDl.init(wpPersDlOptions);
4157                    wpGa4gtm.trackPromotion(wpGtmOptions);
4158                }
4159            });
4160    </script>
4160
4161    
4161<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-aafa228070e6a667a44","applicationID":"1019693620","transactionName":"NQZTYxMDV0cFBxcMXgxMcFQVC1ZaSwcLAFIJDERDTgFYRhBLCgtVBxs=","queueTime":0,"applicationTime":593,"atts":"GUFEFVsZRBhGBUFfSh8e","errorBeacon":"bam.nr-data.net","agent":""}</script>
4161<script>(function(){function r(){try{var a=new PerformanceObserver(function(c){c=c.getEntries();for(var d=0;d<c.length;d++){var b=c[d];"first-contentful-paint"==b.name?h=b.startTime:"largest-contentful-paint"==b.entryType?k=b.startTime:"navigation"==b.entryType&&(l=0<=b.responseStart?b.responseStart:b.responseEnd,m=b.domContentLoadedEventStart,n=b.loadEventStart,p=b.domInteractive)}});a.observe({type:"navigation",buffered:!0});a.observe({type:"largest-contentful-paint",buffered:!0});a.observe({type:"paint",
4162buffered:!0});return!0}catch(c){return!1}}function e(a,c,d){a.set("url",window.location.href);a.set("d",""+c);a.set("il",""+d);navigator.sendBeacon("/.webscale/rum?"+a.toString())}function f(){function a(d,b){void 0!==b&&(b=Math.round(b),0<=b&&6E4>=b&&c.set(d,""+b))}if(r()){var c=new URLSearchParams;setTimeout(function(){a("fcp",h);a("lcp",k);a("ttfb",l);a("dcl",m);a("e",n);a("di",p);a("rsi",q);c.get("e")&&e(c,100,!0);window.removeEventListener("load",f)},100)}else window.removeEventListener("load",
4163f)}function g(){try{"interactive"===document.readyState&&(q=performance.now(),document.removeEventListener("readystatechange",g))}catch(a){document.removeEventListener("readystatechange",g)}}function t(a){var c=performance.now();try{window.requestIdleCallback(function(){a.set("e",""+Math.round(performance.now()-c));e(a,0,!1)})}catch(d){window.setTimeout(function(){a.set("e",""+Math.round(performance.now()-c));e(a,100,!1)},100)}}var h,k,l,m,n,p,q;document.addEventListener("readystatechange",g);window.addEventListener("load",
4164f);(function(){try{var a=new URLSearchParams;a.set("url",window.location.href);(new MutationObserver(function(){try{a.get("url")!==window.location.href&&(a.set("url",window.location.href),t(a))}catch(c){}})).observe(document.querySelector("body"),{childList:!0,subtree:!0})}catch(c){}})()})();
4165</script>
4165</body>
4166</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.