https://www.stourbridgenews.co.uk/news/26575627.superdrug-opens-uks-largest-store-merry-hill-centre/
1<!-- standard - CustomHeader-Site.html --> <!DOCTYPE html> 2<html lang="en" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#"> 3<head> 4 5 <link rel="preconnect" href="https://d2zv5rkii46miq.cloudfront.net" /> 6 <link rel="preconnect" href="https://visitanalytics.userreport.com" /> 7 <link rel="preconnect" href="https://a02342.stourbridgenews.co.uk" /> 8 <link rel="preconnect" href="https://securepubads.g.doubleclick.net" /> 9 <link rel="preconnect" href="https://cdn.adsafeprotected.com" /> 10 <link rel="preconnect" href="https://micro.rubiconproject.com" /> 11 <link rel="preconnect" href="https://experience.tinypass.com" /> 12 <link rel="preconnect" href="https://c.amazon-adsystem.com" /> 13 <link rel="preconnect" href="https://tpc.googlesyndication.com"> 14 <link rel="preconnect" href="https://pagead2.googlesyndication.com"> 15 <link rel="preconnect" href="https://www.googletagservices.com"> 16 <link rel="preconnect" href="https://cdn.ampproject.org"> 17 <link rel="preconnect" href="https://securepubads.g.doubleclick.net"> 18 19 <title>Superdrug opens UK's largest store at Merry Hill centre | Stourbridge News</title> 20 21 <meta charset="utf-8"> 22 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=1"> 23 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 24 <meta name="OMG-Verify-V1" content="4389-366acdfc-5224-4c07-bb70-f74d8fbfc2db" /> 25 <meta name="robots" content="max-image-preview:large"> 26 <meta name="format-detection" content="telephone=no"> 27 28
28<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["*"]},session_trace:{sampling_rate:0.0,mode:"FIXED_RATE",enabled:true,error_sampling_rate:0.0},performance:{capture_marks:false,capture_detail:false,capture_measures:true},browser_consent_mode:{enabled:false},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1134382346",accountID:"962803",trustKey:"962803",xpid:"XQAFWVZQGwIAXFhTAAYBVFI=",licenseKey:"fd15ff24ac",applicationID:"1089177626",browserID:"1134382346"};;/*! For license information please see nr-loader-spa-1.323.0.min.js.LICENSE.txt */ 29(()=>{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};
29e.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;
29const 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);
29if(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$:()=>
29o,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])}
29(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}
29;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)=>
29{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
29ine_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()=>
29{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)=>
29null==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
29dTimingMethod(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
29imeToRegister: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})})}
29return 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"
29!==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);
29if(!(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)}
29);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)})});
29class 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
29h(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>
29 30 <meta property="fb:pages" content="331160986939241" /> 31 <meta property="og:article:author" content="Helen Attwood" /> 32<link rel="canonical" href="https://www.stourbridgenews.co.uk/news/26575627.superdrug-opens-uks-largest-store-merry-hill-centre/" /> 33 <meta name="keywords" content=""/> 34 <meta name="parsely-title" content="Superdrug opens its largest UK store at Merry Hill"/> 35 <meta name="parsely-post-id" content="26575627"/> 36 <meta name="description" content=" 37 Superdrug has unveiled its largest store in the UK at the Merry Hill shopping centre. 38"/> 39 <meta name="title" content="Superdrug opens its largest UK store at Merry Hill"/> 40 <meta name="medium" content="news"/> 41 <meta name="twitter:description" content=" 42 Superdrug has unveiled its largest store in the UK at the Merry Hill shopping centre. 43"/> 44 <meta name="twitter:title" content="Superdrug opens its largest UK store at Merry Hill"/> 45 <meta name="twitter:card" content="summary_large_image"/> 46 <meta name="cXenseParse:contentlevel" content=""/> 47 <meta name="cXenseParse:articleid" content="26575627"/> 48 <meta itemprop="description" content=" 49 Superdrug has unveiled its largest store in the UK at the Merry Hill shopping centre. 50" /> 51 <meta itemprop="name" content="Superdrug opens its largest UK store at Merry Hill" /> 52 <meta property="og:description" content=" 53 Superdrug has unveiled its largest store in the UK at the Merry Hill shopping centre. 54" /> 55 <meta property="og:name" content="Superdrug opens its largest UK store at Merry Hill" /> 56 <meta property="fb:app_id" content="156707414383899" /> 57 <meta property="og:type" content="article" /> 58 <meta property="og:title" content="Superdrug opens its largest UK store at Merry Hill" /> 59 <meta name="twitter:image:src" content="https://www.stourbridgenews.co.uk/resources/images/21492597/"/> 60 <meta itemprop="image" content="https://www.stourbridgenews.co.uk/resources/images/21492597/" /> 61 <meta property="og:image:height" content="630" /> 62 <meta property="og:image:width" content="945" /> 63 <meta property="og:image" content="https://www.stourbridgenews.co.uk/resources/images/21492597.jpg?type=og-image" /> 64 <meta property="og:site_name" content="Stourbridge News" /> 65 <meta property="og:url" content="https://www.stourbridgenews.co.uk/news/26575627.superdrug-opens-uks-largest-store-merry-hill-centre/" /> 66 <meta property="og:article:published_time" content="2026-09-23T14:27:57Z" /> 67
68<script type="application/ld+json"> 69{ 70 "@context": "http://schema.org", 71 "@type": "NewsArticle", 72 "headline": "Superdrug opens UK's largest store at Merry Hill centre", 73 "datePublished": "2026-09-23T14:27:57Z", 74 75 "dateModified": "2026-09-23T14:41:14Z", 76 77 "articleSection": "news", 78 "mainEntityOfPage": "https://www.stourbridgenews.co.uk/news/26575627.superdrug-opens-uks-largest-store-merry-hill-centre/", 79 "url": "https://www.stourbridgenews.co.uk/news/26575627.superdrug-opens-uks-largest-store-merry-hill-centre/", 80 "isBasedOn": "https://www.stourbridgenews.co.uk/news/26575627.superdrug-opens-uks-largest-store-merry-hill-centre/", 81 "author": { 82 "@type": "Person", 83 "name": "Helen Attwood" 84 }, 85 "image": { 86 "@type": "ImageObject", 87 "url": "https://www.stourbridgenews.co.uk/resources/images/21492597.jpg/", 88 "width": 1280, 89 "height": 720 90 }, 91 "publisher": { 92 "@type": "Organization", 93 "name": "Stourbridge News", 94 "logo": { 95 "@type": "ImageObject", 96 "url": "https://www.stourbridgenews.co.uk/resources/images/sitelogo/", 97 "width": "385", 98 "height": "91" 99 } 100 },
101 "keywords": ["article_types:news","topics:business","source:newsquest"] 102} 103</script>
103 104 105 106 107 108 109 110 111 112 <link id="page_stylesheet_vars" href="/resources/responsive-static/build/mds/css/palette-7-sans-serif-vars.css?r=vjoPdzgg" rel="stylesheet" type="text/css"> 113 114 <link href="/resources/responsive-static/build/mds/css/header-footer.css?r=vjoPdzgg" rel="stylesheet" type="text/css"> 115 116 <link id="page_stylesheet" href="/resources/responsive-static/build/mds/css/blockarticle.css?r=vjoPdzgg" rel="stylesheet" type="text/css"> 117 118 119 120 <link rel="shortcut icon" href="/resources/images/17401216/" type="image/vnd.microsoft.icon"> 121 <link rel="icon" href="/resources/images/17401216/" type="image/vnd.microsoft.icon"> 122 123
123<script> 124 window.startExec = performance.now(); 125 </script>
125 126 127
127<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha384-1H217gwSVyLSIfaLxHbE7dRb3v4mYCKbpQvzx0cegeju1MVsGrX5xXxAvs/HgeFs" crossorigin="anonymous"></script>
vendor: 1 bytes, line 127
127
128<script src="https://code.jquery.com/jquery-migrate-3.6.0.js" integrity="sha384-ekzRTCLAU/LqHRBjnphRAxgZZvGdoP+TfkGGsX+tBJpRdM7r2/89ZZNzC/7YTJXX" crossorigin="anonymous"></script>
vendor: 1 bytes, line 128
128
129<script type="text/javascript" src="/resources/shared/responsive-sync/?r=vjoPdzgg"></script>
129 130
131<script type="text/javascript"> 132 data_layer_helper.setIsArticle(true); 133 data_layer_helper.setCookieDomain('.stourbridgenews.co.uk'); 134 data_layer_helper.setModuleType('BlockArticleModule'); 135 data_layer_helper.setLocalInfoFolder(''); 136 data_layer_helper.setHomesData('', '', '', 'news'); 137 data_layer_helper.setPrimaryDomain('www.stourbridgenews.co.uk'); 138 data_layer_helper.setPath('/news/'); 139 data_layer_helper.setGoogleNetworkCode('154725070'); 140 data_layer_helper.setArticleTimestamp('1790170077'); 141 data_layer_helper.setPathOverride(); 142 143 144 var extraTags = []; 145 146 extraTags.push('user_level_anonymous'); 147 148 149 var data_layer = { 150 environment: { 151 is_test_site: 'no', 152 is_live_site: 'yes', 153 is_paywall_site: 'no', 154 is_portable_screen: (data_layer_helper.isMobileScreen()) ? 'yes' : 'no', 155 is_desktop_screen: (data_layer_helper.isMobileScreen()) ? 'no' : 'yes', 156 is_mobile_device: data_layer_helper.getMobileDevice(), 157 is_tablet_device: data_layer_helper.getTabletDevice(), 158 server: 'webapp-857f48ddbd-fwxzm', 159 platform: 'Martini' 160 }, 161 site: { 162 id: '160', 163 comments_subscriber_only: 'no', 164 viafoura_site_id: '00000000-0000-4000-8000-21209f4c8fa7', 165 comments_use_viafoura: 'yes', 166 centre_id: '3', 167 centre_name: 'Stourbridge', 168 country: 'England', 169 name: 'Stourbridge News', 170 name_with_prefix_capitalised_possessive: 'The Stourbridge News\'', 171 name_with_prefix_lower_possessive: 'the Stourbridge News\'', 172 domain: 'www.stourbridgenews.co.uk', 173 editor_name: 'Stephanie Preece', 174 onboarding_enabled: 'no', 175 onboarding_flow_id: 'onboarding_disabled', 176 allowing_mr_replacement: 'no', 177 cookie_domain: '.stourbridgenews.co.uk', 178 uses_cmp: 'yes', 179 short_domain: 'stourbridgenews', 180 using_piano_id: 'yes', 181 enable_skimlinks: 'yes', 182 skimlinks_domain_id: '613771', 183 disable_newsletters: 'no', 184 is_archant_site: 'no', 185 shc_merchant_name: '', 186 piano_application_group: 'Forest', 187 piano_site_name: 'Stourbridge News', 188 piano_site_name_possessive: 'Stourbridge News\'', 189 piano_site_name_with_prefix_lower: 'the Stourbridge News', 190 piano_site_name_with_prefix_capitalised: 'The Stourbridge News', 191 piano_site_name_with_prefix_capitalised_possessive: 'The Stourbridge News\'', 192 piano_site_name_with_prefix_lower_possessive: 'the Stourbridge News\'', 193 piano_location_primary: 'Stourbridge', 194 piano_location_primary_possessive: 'Stourbridge\'s', 195 piano_location_county: 'West Midlands', 196 piano_location_county_possessive: 'West Midlands\'s', 197 piano_primary_sports_team: '', 198 piano_primary_sports_team_nickname: '', 199 piano_primary_sports_team_sport: '', 200 piano_primary_sports_team_possessive: '', 201 piano_primary_sports_team_nickname_possessive: '', 202 piano_self_service_cancellation_setting: 'None', 203 has_app: 'no', 204 app_provider: '', 205 app_platform: '', 206 app_store_url_ios: '', 207 app_store_url_google_play: '', 208 cloudflare_turnstyle_site_key: '', 209 }, 210 page: { 211 module: 'BlockArticleModule', 212 referrer: data_layer_helper.getReferrerHostName(), 213 name: '(www) ' + data_layer_helper.getOmniturePath(), 214 title: document.title, 215 path: data_layer_helper.getOmniturePath(), 216 section: data_layer_helper.getPathFragment(0), 217 subsection: data_layer_helper.getPathFragment(1), 218 subsection_2: data_layer_helper.getPathFragment(2), 219 subsection_3: data_layer_helper.getPathFragment(3), 220 reference: qs.get('ref'), 221 layout: 'BAM Standard Article', 222 ad_timing: data_layer_helper.getCookie('adtiming'), 223 template_namespace: 'standard', 224 template: '', 225 colour_scheme: '', 226 layout_template: 'BAM Standard Article', 227 mds_font: 'sans-serif', 228 user_used_app_last_24hours: '', 229 user_used_app_last_7days: '', 230 user_used_app_last_14days: '', 231 mds_colour_palette: 'palette-7', 232 feature_block_a_enabled: ($('[data-name="Feature Article Block A"]').length > 0) ? 'yes' : 'no', 233 feature_block_b_variant: (typeof $('[data-name="Feature Article Block B"]').data('variant') === 'undefined') ? '' : $('[data-name="Feature Article Block B"]').data('variant'), 234 is_article_list: 'no', 235 error_404: '',
236 top_stories_article_count: '', 237 interstitial_dedupe_top_stories: '', 238 interstitial_desktop_height: '', 239 interstitial_mobile_height: '', 240 interstitial_tablet_height: '', 241 interstitial_piano_module_id: '', 242 interstitial_using_recommendations: '', 243 interstitial_recommendation_header: '', 244 interstitial_article_count: '', 245 news_stories_article_count: '', 246 site_newspaper_archive_enabled: 'no', 247 site_newspaper_archive_number_of_pages: '', 248 site_newspaper_archive_start_year: 0, 249 article_originates_from_this_site: 'yes', 250 article_originates_from_site: '', 251 article_originates_from_url: '' 252 }, 253 user: { 254 id: '', 255 first_name: '', 256 advertising_experience: 'Ad-Full', 257 is_privacy_plus: 'no', 258 is_alist: 'no', 259 level: data_layer_helper.getCookie('nq_ul'), 260 seen_cmp: (data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'true' || data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'false') ? 'yes' : 'no', 261 given_consent: (data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'true') ? 'yes' : 'no', 262 consent_string: data_layer_helper.getConsentString(), 263 type: 'anonymous', 264 parsely_type: 'Anonymous', 265 chartbeat_type: 'anon', 266 type_as_int: '1', 267 is_logged_in: 'no', 268 is_admin: 'no', 269 is_internal_admin: '', 270 has_full_admin_link_permissions: '', 271 has_registered: (data_layer_helper.getCookie('nqr') !== null) ? 'yes' : 'no', 272 comments_verified: '', 273 comments_verified_date: '', 274 user_email_is_verified: '', 275 user_email_is_verified_date: '', 276 mobile_number_is_verified: '', 277 mobile_number_is_verified_date: '', 278 user_needs_email_verification: '', 279 user_needs_mobile_verification: '', 280 user_too_many_requests: '', 281 age_decade: '0' , 282 gender: 'u' , 283 is_known: data_layer_helper.getCookie('__siren') ? 'yes' : 'no', 284 hash: '', 285 lr_hash_1: '', 286 lr_hash_2: '', 287 lr_hash_3: '', 288 gender: 'u' , 289 user_decade: '0' , 290 subscription_plan: '', 291 subscription_tier: 'null', 292 subscription_plan_and_frequency: ' - ', 293 commented: (data_layer_helper.isArticle() && qs.get('action') === 'success') ? 'yes' : 'no', 294 time_since_last_visit: 'not implemented (maybe drop)', 295 device: data_layer_helper.getDevice(), 296 using_ad_blocker_sourcepoint: data_layer_helper.getSourcepointAdbockStatus(), 297 admin_user_name: '', 298 is_admin_internal: '', 299 is_admin_external: '', 300 card_expired: '', 301 card_will_expire: '', 302 expires_urgency: '', 303 abandoned_cart: 'no', 304 subscription_expired: 'no', 305 is_archant_site: 'no', 306 signed_up_primary_news_newsletter: 'no', 307 signed_up_primary_sport_newsletter: 'no', 308 played_free_puzzles_last_7days: '', 309 played_paid_puzzles_last_7days: '', 310 commenter_badge: '', 311 upper_role: '', 312 }, 313 analytics: { 314 hierachy: 'newsquest,Stourbridge,www.stourbridgenews.co.uk,' + data_layer_helper.getPathFragment(3).replace(/\//,','), 315 link_filters: 'javascript:,stourbridgenews.co.uk,fish4.co.uk,adsys.newsquest.co.uk,www.exchangeandmart.co.uk,www.communigate.co.uk,', 316 tracking_block: data_layer_helper.getTrackingFromCookie('tracking_block', ''), 317 tracking_block_index: data_layer_helper.getTrackingFromCookie('tracking_block_index', ''), 318 previous_page_name: data_layer_helper.getCookie('nq_prev_page'), 319 advert_id: '', 320 position_in_list: data_layer_helper.getTrackingFromCookie('o-prop30', ''), 321 featured_content: data_layer_helper.getTrackingFromCookie('o-ref', qs.get('ref')), 322 account: data_layer_helper.getAccount() 323 }, 324 chartbeat: { 325 enabled: "no", 326 id: "", 327 domain: "", 328 sections: 'article_types:news,topics:business,source:newsquest' 329 }, 330 parsely: { 331 enabled: "yes", 332 site_id: "stourbridgenews.co.uk", 333 type: 'Anonymous' 334 }, 335 piano: { 336 tags: data_layer_helper.getPianoTags({ 337 piano_domain: 'stourbridgenews', 338 piano_master: '', 339 breaking_news: false, 340 editorial_opinion: false, 341 free_subscriber: false, 342 free_subscriber: false, 343 has_video: false, 344 is_article: true,
345 article_content_level : '1', 346 article_content_level_open_access: false, 347 picture_gallery_id: false, 348 user_is_newsquest: false, 349 user_is_entra_authenticated: false, 350 user_logged_in: false, 351 is_live_article: false, 352 why_free_subscriber: '', 353 extra_tags: extraTags, 354 is_covid_headline: false, 355 is_covid_body: false, 356 is_alist: false, 357 audio_provider_bytecast: false 358 } 359 ), 360 custom_variables: { 361 article_length: 'l', 362 application_group: 'Forest', 363 content_is_editorial_opinion: 'no', 364 base_url: 'https://www.stourbridgenews.co.uk', 365 full_url: document.location.href, 366 from_discover: (document.referrer === "android-app://com.google.android.googlequicksearchbox/") ? 'yes' : 'no', 367 mds_font: 'sans-serif', 368 mds_colour_palette: 'palette-7', 369 site_name: 'Stourbridge News', 370 site_name_possessive: 'Stourbridge News\'', 371 site_name_with_prefix_capitalised: 'The Stourbridge News', 372 site_name_with_prefix_lower: 'the Stourbridge News', 373 site_name_with_prefix_capitalised_possessive: 'The Stourbridge News\'', 374 site_name_with_prefix_lower_possessive: 'the Stourbridge News\'', 375 location_primary: 'Stourbridge', 376 location_primary_possessive: 'Stourbridge\'s', 377 location_county: 'West Midlands', 378 location_county_possessive: 'West Midlands\'s', 379 site_has_primary_sports_team: 'no', 380 primary_sports_team: '', 381 primary_sports_team_nickname: '', 382 primary_sports_team_sport: '', 383 primary_sports_team_possessive: '', 384 primary_sports_team_nickname_possessive: '', 385 site_id: '160', 386 content_level: '1', 387 content_author: 'Helen Attwood', 388 content_id: '26575627', 389 content_is_article: 'yes', 390 content_primary_topic: 'Business', 391 user_seen_consent_modal: ($.cookie('_sp_enable_dfp_personalized_ads') === 'true' || $.cookie('_sp_enable_dfp_personalized_ads') === 'false') ? 'yes' : 'no', 392 site_section: data_layer_helper.getPathFragment(0, true), 393 article_published_yyyy: '2026', 394 user_played_free_puzzles_last_7days: '', 395 user_played_paid_puzzles_last_7days: '', 396 anon_user_played_free_puzzles_last_7days: data_layer_helper.untrackedPuzzleCheck(), 397 home_delivery_phone_number: '0800 953 0227', 398 content_is_restricted: data_layer_helper.getRestrictedContent('1', '160', '160', ''), 399 day_of_week: data_layer_helper.getDayOfWeek(), 400 user_card_expired: '', 401 user_card_will_expire: '', 402 user_expires_urgency: '', 403 user_used_app_last_24hours: '', 404 user_used_app_last_7days: '', 405 user_used_app_last_14days: '', 406 user_subscription_tier: 'null', 407 user_is_newsquest: 'no', 408 primary_news_newsletter_id: '1056', 409 primary_news_newsletter_name: 'the Morning Briefing', 410 primary_news_newsletter_description: 'The latest stories, in your inbox every morning.', 411 primary_sport_newsletter_id: '1056', 412 primary_sport_newsletter_name: 'the Morning Briefing', 413 primary_sport_newsletter_description: 'The latest stories, in your inbox every morning.', 414 user_signed_up_primary_news_newsletter: 'no', 415 user_signed_up_primary_sport_newsletter: 'no', 416 newsletter_auto_promote: 'auto_success', 417 newsletter_auto_promote_name: 'the Morning Briefing', 418 newsletter_auto_promote_description: 'The latest stories, in y
418our inbox every morning.', 419 newsletter_auto_promote_ID: '1056', 420 site_has_app: 'no', 421 site_app_store_url_ios: '', 422 site_app_store_url_google_play: '', 423 subsets_experiment_id: '', 424 site_section1: data_layer_helper.getPathFragment(1, true), // GBL required 425 site_newspaper_archive_enabled: 'no', 426 site_newspaper_archive_number_of_pages: '', 427 site_newspaper_archive_start_year: 0, 428 article_originates_from_this_site: 'yes', 429 article_originates_from_site: '', 430 article_originates_from_url: '' 431 }, 432 native_variables: { 433 setContentCreated: '2026-09-23T14:27:57', 434 setContentIsNative: 'no', 435 setContentAuthor: 'Helen Attwood', 436 setContentSection: data_layer_helper.getPathFragment(0, true) 437 } 438 }, 439 article: { 440 cscore:'', 441 showing_preview: '', 442 is_article: data_layer_helper.isArticle() ? 'yes' : 'no', 443 id : '26575627', 444 length_type: 'l', 445 character_count: '2539', 446 author: 'Helen Attwood'.toLowerCase(),
447 e_var15: 'none|use author profile|helen attwood'.toLowerCase(), 448 context: 'retail', 449 content_level: '1', 450 content_level_open_access: 'no', 451 content_level_combined: '1,metered,no', 452 content_is_restricted: data_layer_helper.getRestrictedContent('1', '160', '160', ''), 453 increment: (data_layer_helper.isArticle()) ? '+1' : '', 454 sponsor: '', 455 contributions: '0', 456 is_sponsored: 'no', 457 headline: 'Superdrug opens its largest UK store at Merry Hill', 458 age: data_layer_helper.getArticleAge(), 459 upload_date: '', 460 publish_date: '23/09/2026', 461 update_date: '', 462 rating: '20', 463 source: data_layer_helper.getSource(''), 464 subjects: (typeof articleSubjects === 'object') ? articleSubjects.join(',') : '', 465 context: 'retail', 466 grapeshot_context: (typeof gs_channels !== 'undefined') ? gs_channels : '', 467 allow_comments: 'no', 468 total_comments: '0', 469 originating_site_id: '160', 470 parent_article_site_id: '', 471 parent_article_id: '', 472 originating_article_id: '26575627', 473 parent_originating_site_id: '160', 474 is_original_to_site: 'yes', 475 is_cloned: 'no', 476 parent_article_url: 'https://www.stourbridgenews.co.uk/news/26575627.superdrug-opens-uks-largest-store-merry-hill-centre/', 477 use_skimlinks: 'no', 478 content_primary_topic: 'Business', 479 taxonomy: { 480 article_types: 'news', 481 topics: 'business', 482 sports: '', 483 sports_teams: '', 484 locations: '', 485 shared_content: '', 486 free_tags: '', 487 farming: '' 488 }, 489 audio: { 490 has_audio: 'no', 491 provider: '' 492 },
493 article_comments_use_viafoura: 'yes' 494 }, 495 homes: { 496 search_bedrooms_minimum: '', 497 search_location: 'news', 498 search_price_minimum: '', 499 search_price_maximum: '', 500 list: '', 501 id: '' 502 }, 503 video: { 504 exists: 'no', 505 auto_play_enabled: data_layer_helper.getAutoPlay('no') 506 }, 507 contributions: { 508 allow_text: '', 509 allow_image: '', 510 user_contributions_number: '0', 511 has_user_contributions: 'no' 512 }, 513 search: { 514 keywords: qs.get('search'), 515 results: '' 516 }, 517 announcements: { 518 category: '' 519 }, 520 config: { 521 google_analytics_id: '', 522 site_template_set: 'standard', 523 path: '/news/', 524 top_level_section: 'news', 525 polar_property_id: 'NA-STOU-11238150', 526 gallery_show_advert_after: '5', 527 disable_outbrain_with_ad_light: 'no', 528 disable_outbrain: 'no', 529 }, 530 dfp: { 531 is_landing: 'no', 532 module_path: 'news', 533 weather_band: '11-15', 534 weather_summary: 'sun'.toLowerCase(), 535 id: data_layer_helper.getGoogleId(), 536 display_screen: data_layer_helper.isMobileScreen() ? 'mobile' : 'desktop', 537 can_show_billboard: (window.screen.width > 960) ? 'y' : 'n' 538 }, 539 dates: { 540 date: (new Date()).toLocaleDateString('en-GB'), 541 hour: (new Date()).getHours(), 542 day: data_layer_helper.getDayOfWeek(), 543 weekend: ((new Date()).getDay() === 6 || (new Date()).getDay() === 0) ? 'Weekend' : 'Weekday' 544 }, 545 memorials: { 546 contact_phone_number: '', 547 contact_email_address: '', 548 publications: JSON.parse('' || '[]'), 549 user: { 550 id: '', 551 email_verified: 'no', 552 type: '' 553 }, 554 funeral_director: { 555 id: '', 556 person_urn: '' 557 } 558 } 559 } 560 561 data_layer_helper.storeCurrentPageName(data_layer.page.name); 562 563 window.dispatchEvent(new Event('data-layer-loaded')) 564 565 data_layer.piano.custom_variables.user_used_app_last_24hours = 'no'; 566 data_layer.piano.custom_variables.user_used_app_last_7days = 'no'; 567 data_layer.piano.custom_variables.user_used_app_last_14days = 'no'; 568 if (data_layer.article.is_article !== 'yes') { 569 data_layer.piano.custom_variables.site_module = 'BlockArticleModule'; 570 data_layer.piano.custom_variables.puzzles_landing_page = 'no'; 571 data_layer.piano.custom_variables.puzzles_display_page = 'no'; 572 } 573</script>
573 574
575<script 576 src="https://assets.adobedtm.com/499440d21de9/54b957ecfb7e/launch-98090dfa3d73.min.js" 577 async 578></script>
578 579 580
581<script>"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",r.title="tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return o;"setGdprApplies"===n[0]?n.length>3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}();</script>
581 582
583<script type = "text/javascript"> 584( function () { 585 586 window._sp_ = { 587 config: { 588 baseEndpoint: 'https://a02342.stourbridgenews.co.uk', 589 accountId: 52, 590 targetingParams:{ 591 subscribed: false, 592 privacy: false 593 }, 594 gdpr: { }, 595 events: { 596 onMessageReady: function (message_type) { 597 trackSPEvents('event76'); 598 }, 599 onMessageChoiceSelect: function (message_type, choice_id, choice_type_id) { 600 console.log('message_type: ', message_type); 601 console.log('choice_id: ', choice_id); 602 console.log('choice_type_id: ', choice_type_id); 603 if ('yes' === 'yes') { 604 if (choice_type_id === 12) { 605 trackSPEvents('event83'); //Consent Banner Reject All 606 trackSPEvents('event82'); //Journalism Message Shown 607 } 608 if (choice_type_id === 11) { 609 trackSPEvents('event78'); 610 } 611 if (choice_type_id === 9) { 612 trackSPEvents('event77'); 613 } 614 } else { 615 // these are the second argument in non-gate 616 if (choice_type_id === 12) { 617 trackSPEvents('event77'); 618 } 619 620 if (choice_type_id === 11) { 621 trackSPEvents('event78'); 622 } 623 624 if (choice_type_id === 13) { 625 trackSPEvents('event83'); 626 } 627 } 628 }, 629 onPrivacyManagerActionStatus: function(message_type, status, actionType) { 630 console.log('message_type: ' + message_type); 631 console.log('status: ' + status); 632 console.log('actionType: ' + actionType); 633 if ('yes' === 'yes') { 634 if (actionType === 11) { 635 trackSPEvents('event79'); //Privacy Manager Accept 636 } 637 if (actionType === 9) { 638 trackSPEvents('event68'); //Privacy Manager Redirect 639 } 640 if (actionType === 1) { 641 trackSPEvents('event75'); //Forced tcf String Change 642 } 643 } else { 644 // these are the second argument in non-gate 645 if (actionType === 13) { 646 trackSPEvents('event81'); //Privacy Manager Reject 647 } 648 if (actionType === 11) { 649 trackSPEvents('event79'); //Privacy Manager Accept 650 } 651 if (actionType === 1) { 652 trackSPEvents('event80'); //Privacy Manager Save & Exit 653 } 654 } 655 }, 656 onPMCancel: function (message_type) { 657 console.log('onPMCancel', message_type); 658 trackSPEvents('event84'); //Privacy Manager Back 659 }, 660 } 661 } 662 } 663 664 if (typeof window.__tcfapi === 'function') { 665 window.__tcfapi('addEventListener', 2, function (tcData, success) { 666 console.log('SP: Event Listen:', tcData, success); 667 if (success && tcData.eventStatus === 'useractioncomplete') { 668 setTcfCookie(tcData.purpose.consents, tcData.purpose.legitimateInterests); 669 670 var csnt = 'none'; 671 if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') { 672 csnt = 'yes'; 673 } else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') { 674 csnt = 'no'; 675 } 676 googletag.cmd.push(function() { 677 // console.log('DFP: Cookie check - setting dfpcsnt to ', csnt); 678 googletag.pubads().setTargeting('dfpcsnt', csnt); 679 }); 680 // ready to start DFP
681 // console.log('PIANO: setting unrestricted via useractioncomplete'); 682 // runPiano('unrestricted'); 683 startAdvertising(tcData.listenerId); 684 685 var e = new Event('launch:cmp:choice-made'); 686 window.dispatchEvent(e); 687 } else if (success && tcData.eventStatus === 'tcloaded') { 688 // tcloaded means a valid TCF v2.0 string is available 689 // console.log('PIANO: setting unrestricted via tcloaded'); 690 // runPiano('unrestricted'); 691 if (tcData.gdprApplies === false) { 692 $.cookie('_sp_enable_dfp_personalized_ads', 'true', {domain: '.stourbridgenews.co.uk', path: '/', expires: 100}); 693 } 694 startAdvertising(tcData.listenerId); 695 696 } else if (success && tcData.eventStatus === 'useractionnotcomplete') { 697 // do nothing - this means the user has not made a choice yet 698 } else if (success && tcData.eventStatus === 'cmpuishown') { 699 // do nothing - this means the CMP UI has been shown 700 } else if (!success) { 701 // $.cookie('_sp_enable_dfp_personalized_ads', 'true', {domain: '.stourbridgenews.co.uk', path: '/', expires: 100}); 702 // startAdvertising(); 703 } else { 704 // console.log('PIANO: setting restricted'); 705 // runPiano('restricted'); 706 } 707 }); 708 } 709 710 711 712 document.addEventListener('click', function (e) { 713 const option = e.target.closest('.gdpr-option-v2'); 714 715 if (!option) return; 716 717 e.preventDefault(); 718 sendEvent76 = false; 719 720 const id = option.dataset.v2Id; 721 const isGate = option.dataset.isGate; 722 723 if (isGate === 'yes') { 724 trackSPEvents('event87'); 725 _sp_.gdpr.loadPrivacyManagerModal(id); 726 } else { 727 trackSPEvents('event77'); 728 _sp_.gdpr.loadPrivacyManagerModal(id); 729 } 730 }); 731 732 function getTcfData() { 733 if (typeof window.__tcfapi !== 'function') { 734 console.warn('TCF API unavailable'); 735 return; 736 } 737 window.__tcfapi('addEventListener', 2, function(data, success) { 738 if (!data.purpose || !data.purpose.consents || !data.purpose.legitimateInterests) { 739 // console.log('DFP: No TCF data found, not setting cookies'); 740 return; 741 } 742 setTcfCookie(data.purpose.consents, data.purpose.legitimateInterests); 743 }, [755]); 744 } 745 getTcfData(); 746 747 function setTcfCookie(data, legitimateInterests) { 748 var consents = []; 749 $.each(data, function(id, consent) { 750 var c = (consent === true) ? 'yes' : 'no'; 751 consents.push(c) 752 }); 753 // console.log('DFP: consents length: ', consents.length); 754 if (consents.length !== 10) { 755 // consents = consents.fill('no', consents.length, 10); 756 for (var i = consents.length; i < 10; i++) { 757 consents[i] = 'no'; 758 } 759 } 760 // console.log('DFP: Found consents to store in cookie:', consents); 761 $.cookie('prev-tcf-v2', consents.join(','), {domain: '.stourbridgenews.co.uk', path: '/', expires: 100}); 762 763 var consentEvent4 = 'none'; 764 if (typeof data[4] !== 'undefined') { 765 consentEvent4 = data[4] ? 'true' : 'false'; 766 } 767 $.cookie('_sp_enable_dfp_personalized_ads', consentEvent4, {domain: '.stourbridgenews.co.uk', path: '/', expires: 100}); 768 769 var legitInterest = 'none'; 770 if (legitimateInterests && typeof legitimateInterests[2] !== 'undefined') { 771 legitInterest = legitimateInterests[2] ? 'true' : 'false'; 772 } 773 774 $.cookie('_sp_legitimate_interests', legitInterest , {domain: '.stourbridgenews.co.uk', path: '/', expires: 100}); 775 } 776 777 var sendEvent76 = true; 778 779 function trackSPEvents(events) { 780 if (events === 'event76' && !sendEvent76) { 781 return; 782 } else if (events === 'event76') { 783 sendEvent76 = false;
784 } 785 786 if (typeof window.s !== 'object') { 787 // console.log('DFP: No window.s object found, trying again in 1 second'); 788 window.setTimeout(function () { trackSPEvents(events)} , 1000); 789 return; 790 } 791 792 // console.log("ADB: Tracking %s", events); 793 // Re-create the Omniture object so the data can be tracked. 794 var s = window.s; 795 796 if (events.indexOf('event70') !== -1) { 797 // console.log('DFP: Events passed, added evars'); 798 s.eVar35 = 'enabled'; 799 s.prop35 = 'enabled'; 800 } 801 802 s.events = events; 803 s.linkTrackEvents = events; 804 s.linkTrackVars = "eVar2,eVar3,eVar4,eVar5,eVar6,evar7,evar8,evar9,eVar16,eVar19,eVar26,eVar35,eVar43,eVar67,prop35"; 805 s.suppressPageView = true; 806 s.tl(true,'o','Ad Block'); 807 } 808 809 function startAdvertising(id) 810 { 811 if (typeof window.doNotAdvertise !== 'undefined' && window.doNotAdvertise === true) { 812 return; 813 } 814 815 // console.log("DFP: Is the page fully loaded?", window.googleReady); 816 if (window.googleReady !== true) { 817 window.setTimeout(function () { 818 // console.log('DFP: Google not fully loaded yet, pausing quarter of a second before trying again'); 819 startAdvertising(id); 820 }, 250); 821 return; 822 } 823 824 // Ensure that we never run this code twice 825 if (window.advertisingStart === true) { 826 return; 827 } 828 // console.log('DFP: Running advertisement'); 829 window.advertisingStart = true; 830 831 var googletag = window.googletag; 832 // init google objects and array 833 (function() { 834 var gads = document.createElement('script'); 835 gads.async = true; 836 gads.type = 'text/javascript'; 837 gads.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js'; 838 var node = document.getElementsByTagName('script')[0]; 839 node.parentNode.insertBefore(gads, node); 840 })(); 841 842 // launch the exco slideshow player 843 launchExcoSlideshow(); 844 845 // load facebook etc 846 loadSocials(); 847 848 // Checking our decision to use headerbidding (shorterned as prebid) is correct 849 // via system logic, and that we have the simplified consent to do so 850 if (usePrebid && $.cookie('_sp_enable_dfp_personalized_ads') === 'true') {
851 var e = new Event('launch:sourcepoint:consentaccepted'); 852 window.dispatchEvent(e); 853 854 // AP code initialisation 855 // the script is loaded via launch, once we have detected a consent signal via the datalayer. 856 fetchAp(); 857 858 var site = 'desktop'; 859 var _site = 'desktop'; 860 861 // load IAS scripts and set up vars 862 (function() { 863 var ias = document.createElement('script'); 864 ias.async = true; 865 ias.type = 'text/javascript'; 866 ias.src = 'https://cdn.adsafeprotected.com/iasPET.1.js'; 867 var node = document.getElementsByTagName('script')[0]; 868 node.parentNode.insertBefore(ias, node); 869 })(); 870 871 // load the prebid script 872 (function() { 873 var pbs = document.createElement('script'); 874 pbs.async = true; 875 pbs.type = 'text/javascript'; 876 pbs.src = 'https://micro.rubiconproject.com/prebid/dynamic/11022.js?group=newsquest'; 877 var node = document.getElementsByTagName('script')[0]; 878 node.parentNode.insertBefore(pbs, node); 879 })(); 880 881 // tell google to actually get the bids from all relevant vendors when loaded 882 googletag.cmd.push(function () { 883 fetchHeaderBids(); 884 }); 885 } 886 887 // Outbrain 888 if ( 889 (window.data_layer.user.advertising_experience === 'Ad-Free' || window.data_layer.config.disable_outbrain === 'yes') || 890 (window.data_layer.user.advertising_experience === 'Ad-Light' && window.data_layer.config.disable_outbrain_with_ad_light === 'yes') 891 ) { 892 // console.log("No Outbrain script loading due to page settings"); 893 } else { 894 // console.log("Loading Outbrain"); 895 var ob = document.createElement('script'); 896 ob.async = true; 897 ob.type = 'text/javascript'; 898 ob.src = 'https://widgets.outbrain.com/outbrain.js'; 899 var node = document.getElementsByTagName('script')[0]; 900 node.parentNode.insertBefore(ob, node); 901 } 902 903 904 // remove the listener 905 if (id !== null) { 906 window.__tcfapi('removeEventListener', 2, function (success) { }, id); 907 } 908 } 909 910 /** 911 * Wait until we have advertising consent to show this advertising 912 * based replacement for the single image on our article pages 913 * This logic is based on excoSlidshowPlayerID that only appears on the page 914 * if a user is NOT a subscriber (including privacy plus) and the page has the 915 * correct information to show it (doesn't have a video, not in sport etc) 916 */ 917 function launchExcoSlideshow() { 918 const slideShowPlayerId = window.excoSlideshowPlayerId; 919 // if we do not have a player id, we do not need to do anything 920 if (!slideShowPlayerId) { 921 return; 922 } 923 924 // this is exco's supplied code, modified for our use 925 (function (d, s, n) { 926 fjs = d.getElementsByTagName(s)[0]; 927 js = d.createElement(s); 928 js.className = n; 929 js.src = '//player.ex.co/player/' + slideShowPlayerId; 930 js.setAttribute('programmatic', 'true'); 931 js.onload = function () { 932 const playerApi = ExCoPlayer.connect(slideShowPlayerId); 933 playerApi.init({}); 934 935 playerApi.on('player-load', function(data) { 936 $('.mar-article-image').remove(); 937 if (window.screen.width > 800) { 938 $('.article-hero').attr('style', 'order: 1'); 939 } 940 window.hide_overlay_for_exco = true; 941 }); 942 }; 943 fjs.parentNode.insertBefore(js, fjs); 944 }(document, 'script', 'exco-player')); 945 } 946 947 function loadSocials() 948 { 949 const socials = [ 950 'https://platform.twitter.com/widgets.js', 951 'https://connect.facebook.net/en_US/all.js#xfbml=1', 952 'https://www.tiktok.com/embed.js', 953 ]; 954
955 socials.forEach((social) => { 956 var script = document.createElement('script'); 957 script.src = social; 958 script.async = true; 959 document.getElementsByTagName('head')[0].appendChild(script); 960 }); 961 } 962 963 964})(); 965 966</script>
vendor: 1 bytes, line 966
966
967<script src="https://a02342.stourbridgenews.co.uk/unified/wrapperMessagingWithoutDetection.js"></script>
967 968
969<script> 970window.usePiano = true; 971window.selectedOfferId = null; 972window.selectedTermId = null; 973</script>
vendor: 1 bytes, line 973
973
974<script> 975document.cookie = "__adblocker=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; 976var setNptTechAdblockerCookie = function(adblocker) { 977 var d = new Date(); 978 d.setTime(d.getTime() + 60 * 60 * 24 * 2 * 1000); 979 document.cookie = "__adblocker=" + (adblocker ? "true" : "false") + "; expires=" + d.toUTCString() + "; path=/"; 980} 981var script = document.createElement("script"); 982script.setAttribute("async", true); 983script.setAttribute("src", "//www.npttech.com/advertising.js"); 984script.setAttribute("onerror", "setNptTechAdblockerCookie(true);"); 985document.getElementsByTagName("head")[0].appendChild(script); 986</script>
986 987
988<script> 989// window.pdl = window.pdl || {}; 990// window.pdl.requireConsent = 'v2'; 991 992// Store entry point unless it's a user or subscribe page 993// to redirect after subscription 994const excludedPaths = ['/user/', '/subscribe/']; 995 996const shouldExclude = excludedPaths.some(path => 997 window.location.pathname.includes(path) 998); 999 1000if (!shouldExclude) { 1001 sessionStorage.setItem( 1002 'last_piano_page_interacted_with', 1003 window.location.pathname 1004 ); 1005} 1006 1007tp = window.tp || []; 1008 1009function runPiano(restrictedMode) { 1010 // console.log('Running Piano with restricted mode:', restrictedMode); 1011 // tp.push(['init', function() { 1012 // console.log('Piano purpose map, before calling setAllPurposes()', tp.consent.getByPurpose()); 1013 // }]); 1014 // if (restrictedMode === 'restricted') { 1015 // // If we're in restricted mode, we need to set some specific parameters 1016 // tp.push(['init', function() { 1017 // tp.consent.setAllPurposes('opt-out') 1018 // }]); 1019 // } else { 1020 // tp.push(['init', function() { 1021 // tp.consent.setAllPurposes('opt-in') 1022 // }]); 1023 // } 1024 // tp.push(['init', function() { 1025 // console.log('Piano purpose map, after calling setAllPurposes()', tp.consent.getByPurpose()); 1026 // }]); 1027 // init Piano ID 1028 tp.push(['init', function() { 1029 tp.pianoId.init(); 1030 }]); 1031 1032 const isGooglebot = window.isRobot.googleBot(); 1033 1034 const isArticle = (data_layer.article.is_article === 'yes'); 1035 1036 const isCl3 = (parseInt(data_layer.article.content_level, 10) === 3); 1037 1038 if (isGooglebot) { 1039 // we don't load Piano from all non-article pages 1040 if (!isArticle) { 1041 return; 1042 } 1043 1044 // If we are on an article, we do not load piano on CL0, 1, or 2 1045 if (!isCl3) { 1046 return; 1047 } 1048 } 1049 Object.keys(data_layer.piano.custom_variables).forEach(function (k) { 1050 var v = data_layer.piano.custom_variables[k]; 1051 1052 if (v != '') { 1053 tp.push(["setCustomVariable", k, v]); 1054 } 1055 }); 1056 1057 Object.keys(data_layer.piano.native_variables).forEach(function (k) { 1058 var v = data_layer.piano.native_variables[k]; 1059 if (v != '') { 1060 tp.push([k, v]); 1061 } 1062 }); 1063 1064 tp.push(['setTags', data_layer.piano.tags]); 1065 1066 (function(src){ 1067 var a=document.createElement("script"); 1068 a.type = "text/javascript"; 1069 a.async=true; 1070 a.src=src; 1071 var b=document.getElementsByTagName("script")[0]; 1072 b.parentNode.insertBefore(a, b) 1073 })("//experience.tinypass.com/xbuilder/experience/load?aid=jziFweUqpu"); 1074} 1075 1076// Init Piano 1077const debug = document.cookie 1078 .split('; ') 1079 .find(row => row.startsWith('debug=')) 1080 ?.split('=')[1]; 1081 1082tp.push(["setDebug", debug === '1']); 1083 1084tp.push(["setApplePayMerchantId", 'merchant.nq.subssites.piano']); 1085 1086tp.push(["setUsePianoIdUserProvider", true ]); 1087 1088tp.push(["addHandler", "loginRequired", function(params) { 1089 // If they're already signed in, we don't need to do anything special. 1090 if (tp.user.isUserValid()) { 1091 return; 1092 } 1093 if (typeof window._overridePianoDefault !== 'undefined' && window._overridePianoDefault !== true) { 1094 console.log("TPL Called") 1095 tp.pianoId.show({ 1096 screen: 'login', 1097 displayMode: 'modal', 1098 loggedIn: (data) => { 1099 pianoId.loggedIn(); 1100 }, 1101 loggedOut: () => { 1102 console.log('TP-TJ: user logged out'); 1103 }, 1104 registrationSuccess: () => { 1105 pianoId.registered(); 1106 }, 1107 width: '500px', 1108 height: '460px', 1109 }); 1110 } 1111}]); 1112 1113tp.push(["addHandler", "checkoutSelectTerm", function (termDetails) { 1114 if (typeof termDetails.termId !== 'undefined') { 1115 window.selectedTermId = termDetails.termId; 1116 } 1117}]); 1118 1119tp.push(["addHandler", "showTemplate", function (templateParams) { 1120 showPianoTarget(templateParams); 1121}]); 1122 1123tp.push(["addHandler", "showOffer", function (offerParams) { 1124 window.shownOffer = true; 1125 1126 // Store some data we might need later. 1127 if (typeof offerParams.offerId !== 'undefined') { 1128 window.selectedOfferId = offerParams.offerId; 1129 } 1130 1131 showPianoTarget(offerParams); 1132}]); 1133 1134function handleFullWidthBanner(selector) { 1135 if (selector === '#po-overlay-articlegate-full-width-full-article-scroll-below') { 1136 document.querySelector(selector).classList.add(selector.replace('#', '')); 1137 } 1138 document.querySelector(selector).style.minHeight = "254px"; 1139 document.querySelector('#subscription-content').style.display = 'none'; 1140 document.querySelectorAll('.send-us-your-news-cta').forEach((el) => { el.style.display = 'none'; }); 1141 document.querySelectorAll('.mega-news-block').forEach((el) => { el.style.display = 'none'; }); 1142 1143 const block = document.querySelector(selector); 1144 const containerBlock = block.parentElement; 1145 const containerBlockHeight = 254; // to prevent abrupt jumping 1146 1147 if (!block) { return; } 1148 1149 block.style.display = 'block'; 1150 1151 const blockRect = block.getBoundingClientRect(); 1152 const startTop = blockRect.top + window.scrollY; 1153 const blockHeight = blockRect.height; 1154 const screenWidth = window.screen.width; 1155 1156 let lastState = ''; // 'top', 'bottom', 'default' 1157 1158 function getScrollbarWidth() { 1159 return window.innerWidth - document.documentElement.clientWidth; 1160 } 1161 1162 function updatePosition() { 1163 const scrollY = window.scrollY;
1164 const viewportHeight = window.innerHeight; 1165 const bottomTrigger = startTop + blockHeight - viewportHeight; 1166 1167 let newState = 'default'; 1168 1169 if (scrollY > startTop && screenWidth >= 768) { 1170 newState = 'top'; 1171 } else if (scrollY < bottomTrigger && screenWidth >= 768) { 1172 newState = 'bottom'; 1173 } else if (scrollY < bottomTrigger + 90 && screenWidth < 768) { 1174 newState = 'bottom-mobile'; 1175 } 1176 1177 const scrollbarWidth = getScrollbarWidth(); 1178 1179 if (newState !== lastState) { 1180 switch (newState) { 1181 case 'top': 1182 block.style.position = 'fixed'; 1183 block.style.top = '0'; 1184 block.style.bottom = 'auto'; 1185 block.style.marginLeft = '0'; 1186 block.style.marginRight = '0'; 1187 containerBlock.style.minHeight = `${containerBlockHeight}px`; 1188 break; 1189 1190 case 'bottom': 1191 block.style.position = 'fixed'; 1192 block.style.bottom = '0'; 1193 block.style.top = 'auto'; 1194 block.style.marginLeft = '0'; 1195 block.style.marginRight = '0'; 1196 block.style.width = `calc(100vw - ${scrollbarWidth}px)`; 1197 containerBlock.style.minHeight = 'unset'; 1198 break; 1199 1200 case 'bottom-mobile': 1201 block.style.position = 'fixed'; 1202 block.style.bottom = '90px'; 1203 block.style.top = 'auto'; 1204 block.style.marginLeft = 'calc(-100vw + 100%)'; 1205 block.style.marginRight = 'calc(-100vw + 100%)'; 1206 containerBlock.style.minHeight = 'unset'; 1207 break; 1208 1209 default: 1210 block.style.position = ''; 1211 block.style.top = ''; 1212 block.style.bottom = ''; 1213 block.style.width = `calc(100vw - ${scrollbarWidth}px)`; 1214 block.style.marginLeft = '-100vw'; 1215 block.style.marginRight = '-100vw'; 1216 containerBlock.style.minHeight = 'unset'; 1217 break; 1218 } 1219 1220 lastState = newState; 1221 } 1222 1223 requestAnimationFrame(updatePosition); 1224 } 1225 1226 updatePosition(); 1227 window.addEventListener('resize', updatePosition); 1228} 1229 1230function trackLocation(forceValidLocation = false) { 1231 var currentLocation = window.location.pathname; 1232 1233 let valid = false; 1234 1235 if (currentLocation.indexOf('puzzles') > -1) { 1236 valid = true; 1237 } 1238 1239 if (currentLocation.indexOf('pagesuite') > -1) { 1240 valid = true; 1241 } 1242 1243 var articleMatch = currentLocation.match(/(\d+)\.[^\/]+\/(r\/)?$/); 1244 if (articleMatch != null) { 1245 valid = true; 1246 } 1247 1248 if (forceValidLocation) { 1249 valid = true; 1250 } 1251 1252 if (currentLocation.indexOf('subscribe') > -1) { 1253 valid = false; 1254 } 1255 1256 if (!valid) { 1257 return; 1258 } 1259 1260 $.cookie('last-piano-page-interacted-with', currentLocation, {path: '/', domain: window.data_layer.site.cookie_domain}); 1261} 1262 1263function trackPianoWithNewRelic(templateName) { 1264 if (this.newrelic && typeof this.newrelic === 'object') { 1265 newrelic.setCustomAttribute('user_was_shown_piano_experience', templateName); 1266 } 1267} 1268 1269function handleOfferShow(params) { 1270 console.log('Piano params', params); 1271 1272 // If on the subscription page and the URL has a term ID and offer ID, show the relevant offer. 1273 if (typeof location.pathname !== 'undefined' && location.pathname === '/subscribe/') { 1274 var offerId = location.search.match(/offer_id=([A-Z0-9]+)/); 1275 if (offerId !== null && offerId.length > 1) { 1276 offerId = offerId[1]; 1277 } 1278 var termId = location.search.match(/term_id=([A-Z0-9]+)/); 1279 if (termId !== null && termId.length > 1) { 1280 termId = termId[1]; 1281 } 1282 if (offerId !== null && termId !== null) { 1283 tp.offer.show({'termId': termId, 'offerId': offerId}); 1284 } 1285 } 1286 1287 // we are only tracking 1288 var templateId = params.templateId; 1289 var variantId = params.templateVariantId; 1290 if (params.containerSelector !== '#po-inline-articlegate-fullarticle' && 1291 params.containerSelector !== '#po-overlay-articlegate-full-width-full-article-scroll-below' && 1292 params.containerSelector !== '#po-inline-articlegate-partialarticle' && 1293 params.containerSelector !== '#po-overlay-articlegate-full-width-scroll-below' 1294 ) { 1295 $.get('/ws/piano/templatename/', {template_id: templateId, variant_id: variantId}, function (response) { 1296 trackPianoSimplified(params, response.name); 1297 }); 1298 return; 1299 } 1300 1301 1302 $.get('/ws/piano/templatename/', {template_id: templateId, variant_id: variantId}, function (response) { 1303 trackPiano(params, response.name); 1304 }); 1305} 1306 1307function trackPiano(params, templateName) { 1308 trackPianoWithNewRelic(templateName); 1309 1310 if (typeof params.activeMeters === 'string') { 1311 activeMeters = JSON.parse(params.activeMeters); 1312 } else { 1313 activeMeters = params.activeMeters; 1314 } 1315 1316 var s = window.s; 1317 if (!s || !s.pageName) { 1318 // console.log("ADB: Setting s from backup"); 1319 s = window.backupAdobe; 1320 window.s = s; 1321 } 1322 1323 // this would call when CL3 is a hard gate 1324 if (!activeMeters && data_layer.article.content_level === '3') { 1325 s.eVar59 = templateName; 1326 s.eVar58 = data_layer.article.content_level; 1327 s.events = "event91"; 1328 s.linkTrackVars="eVar58,eVar2,eVar3,eVar4,eVar5,eVar6,eVar15,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,eVar79,eVar104,eVar106,eVar107,eVar108,eVar118,prop63,list3,events"; 1329 s.linkTrackEvents="event91"; 1330 s.tl(document, 'o', 'Metered Access Notice'); 1331 s.events = ''; 1332 return; 1333 } 1334 1335 if (!activeMeters) { 1336 return; 1337 } 1338 1339 var meterData = activeMeters[0]; 1340 1341 var meterName = meterData.meterName.toLowerCase(); 1342 1343 // track event 5 1344 if (meterName.indexOf('cl1') !== -1 || meterName.indexOf('cl2') !== -1 || meterName.indexOf('cl3') !== -1 || params.containerSelector === '#po-inline-articlegate-partialarticle' || params.containerSelector === '#po-overlay-articlegate-full-width-scroll-below') { 1345 s.eVar58 = data_layer.article.content_level; 1346 s.eVar80 = meterData.meterName + ',' + meterData.views + ',' + meterData.totalViews + ',' + meterData.viewsLeft + ',' + meterData.maxViews; 1347 s.eVar59 = templateName; 1348 s.events = "event5"; 1349 s.linkTrackVars="eVar58,eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,eVar118,list3, events"; 1350 s.linkTrackEvents="event5"; 1351 } else { 1352 s.eVar80 = meterData.meterName + ',' + meterData.views + ',' + meterData.totalViews + ',' + meterData.viewsLeft + ',' + meterData.maxViews; 1353 s.eVar59 = templateName; 1354 s.linkTrackVars="eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,eVar118,list3, events"; 1355 } 1356 s.tl(document, 'o', 'Metered Access Notice'); 1357 s.events = ''; 1358 1359} 1360 1361/** 1362 * Just track the template name in 78 for non-article-interrupts/gates 1363 */ 1364function trackPianoSimplified(params, templateName) 1365{ 1366 trackPianoWithNewRelic(templateName); 1367 1368 var s = window.s; 1369 if (!s || !s.pageName) { 1370 // console.log("ADB: Setting s from backup"); 1371 s = window.backupAdobe; 1372 window.s = s; 1373 } 1374 s.eVar78 = templateName; 1375 s.events = 'event90'; 1376 s.linkTrackEvents="event90"; 1377 s.linkTrackVars="eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,eVar118,list3,eVar78, events"; 1378 s.tl(document, 'o', 'Piano Template'); 1379} 1380 1381function raiseLaunchEvent(name) {
1382 var e = new Event('launch:piano:' + name); 1383 window.dispatchEvent(e); 1384} 1385 1386function removePianoToast() { 1387 setTimeout(() => { 1388 document.getElementById('po-overlay-toast-left').remove() 1389 }, 30000) 1390} 1391 1392function showPianoTarget(params) { 1393 handleOfferShow(params); 1394 trackLocation(); 1395 1396 if ($(params.containerSelector).length > 0) { 1397 const displayType = $(params.containerSelector).attr('data-display'); 1398 1399 if (displayType) { 1400 $(params.containerSelector).addClass(`shown-${displayType}`); 1401 } else { 1402 $(params.containerSelector).addClass('shown').show(); 1403 } 1404 1405 if ($(params.containerSelector).hasClass('piano--block-level') || $(params.containerSelector).hasClass('piano--inside-block')) { 1406 $(params.containerSelector).show(); 1407 } 1408 1409 if ( 1410 params.containerSelector === '#po-overlay-articlegate-full-width-scroll-below' || 1411 params.containerSelector === '#po-overlay-articlegate-full-width-full-article-scroll-below' 1412 ) { 1413 handleFullWidthBanner(params.containerSelector); 1414 } 1415 1416 if ($(params.containerSelector) === '#po-inline-subscribe-page') { 1417 $(params.containerSelector).show(); 1418 } 1419 1420 if (['#po-inline-blocksystem-target-e'].includes(params.containerSelector)) { 1421 $('#po-inline-blocksystem-target-e').show(); 1422 $('.piano-promo-container').show(); 1423 } 1424 1425 if (params.containerSelector === '#po-overlay-toast-left') { 1426 removePianoToast() 1427 } 1428 1429 if (params.containerSelector === '#po-overlay-toast-main-navigation') { 1430 removePianoToast() 1431 } 1432 1433 if (params.containerSelector === '#po-inline-articlewall-partialarticle-closable') { 1434 $('#po-inline-articlegate-partialarticle').css('display', 'none'); 1435 } 1436 1437 if (params.containerSelector === '#po-inline-articlewall-fullarticle-closable') { 1438 $('#po-inline-articlegate-fullarticle').css('display', 'none'); 1439 } 1440 1441 if (params.containerSelector === '#po-overlay-articlegate-full-width-full-article-scroll-below-closable') { 1442 $('#po-overlay-articlegate-full-width-full-article-scroll-below').css('display', 'none'); 1443 } 1444 } 1445} 1446 1447tp.push(["addHandler", "checkoutComplete", function(conversion) { 1448 var s = window.s; 1449 s.events = s.apl(s.events, "event4", ",", 1); // Set the subscription counter event. 1450 s.events = s.apl(s.events, "purchase", ",", 1); // Set the purchase event. 1451 s.products = "Subscription : Metered Access;" + conversion.termId + ";1;"+conversion.chargeAmount; 1452 s.linkTrackEvents = "event4,purchase"; 1453 s.purchaseID = conversion.termConversionId; 1454 s.pageName = '(www) /subscribe/complete/'; 1455 // wipe out errors 1456 s.eVar31 = ''; 1457 s.linkTrackVars="eVar2,eVar3,eVar5,eVar6,eVar7,eVar8,eVar9,eVar10,eVar15,eVar16,eVar17,eVar18,eVar19,eVar20,eVar22,eVar23,eVar24,eVar25,eVar26,eVar61,eVar62,events,products,purchaseID"; 1458 1459 s.tl(true, 'o', 'Subscription'); 1460 1461 $.cookie('resourceConverted', conversion.rid, {path: '/', domain: window.data_layer.site.cookie_domain}); 1462 $.cookie('pianoConverted', '1', {path: '/', domain: window.data_layer.site.cookie_domain}); 1463 raiseLaunchEvent('checkoutComplete'); 1464 1465 // Clean Session Storage 1466 sessionStorage.removeItem('nq_selected_offer_id'); 1467 sessionStorage.removeItem('nq_selected_term_id'); 1468 sessionStorage.removeItem('nq_adobe_tracking_article_dimensions'); 1469 sessionStorage.removeItem('nq_adobe_tracking_visiting_dimensions'); 1470 1471 // Show Onboarding modal after subscription 1472 const lastPage = sessionStorage.getItem('last_piano_page_interacted_with'); 1473 const baseUrl = lastPage || window.location.href; 1474 1475 const url = new URL(baseUrl, window.location.origin); 1476 url.searchParams.set('show-onboarding', 'yes'); 1477 1478 setTimeout(() => { 1479 window.location.href = url.pathname + url.search; 1480 }, 2000); 1481}]); 1482 1483tp.push(["addHandler", "checkoutPaymentError", function(errorData) { 1484 var s = window.s; 1485 s.pageName = '(www) /subscribe/error/'; 1486 s.eVar31 = errorData.message; 1487 s.tl(true, 'o', 'CheckoutPaymentError'); 1488 1489 raiseLaunchEvent('checkoutPaymentError'); 1490}]); 1491 1492tp.push(["addHandler", "checkoutError", function(errorData) { 1493 var s = window.s; 1494 s.pageName = '(www) /subscribe/error/'; 1495 s.eVar31 = errorData.message; 1496 s.tl(true, 'o', 'CheckoutError'); 1497 raiseLaunchEvent('checkoutError'); 1498}]); 1499 1500tp.push(["addHandler", "startCheckout", function(options) { 1501 sessionStorage.setItem("nq_selected_offer_id", options.offerId); 1502 sessionStorage.setItem("nq_selected_term_id", options.termId); 1503 1504 if (!tp.user.isUserValid()) { 1505 window.location = '/user/create-account/subscribe/'; 1506 return; 1507 } 1508 1509 var s = window.s; 1510 s.eVar2 = '(www) /subscribe/payment/'; 1511 s.pageName = '(www) /subscribe/payment/'; 1512 const storedAdobeArticleDimensions = sessionStorage.getItem('nq_adobe_tracking_article_dimensions'); 1513 const storedAdobeVisitingDimensions = sessionStorage.getItem('nq_adobe_tracking_visiting_dimensions'); 1514 if (storedAdobeVisitingDimensions) { 1515 const storedAdobeVisitingDimensionsObj = JSON.parse(storedAdobeVisitingDimensions); 1516 s.eVar10 = storedAdobeVisitingDimensionsObj.eVar10; 1517 s.eVar22 = storedAdobeVisitingDimensionsObj.eVar22; 1518 s.eVar23 = storedAdobeVisitingDimensionsObj.eVar23; 1519 s.eVar24 = storedAdobeVisitingDimensionsObj.eVar24; 1520 } 1521 if (storedAdobeArticleDimensions) { 1522 const storedAdobeArticleDimensionsObj = JSON.parse(storedAdobeArticleDimensions); 1523 s.eVar10 = storedAdobeArticleDimensionsObj.eVar10; 1524 s.eVar15 = storedAdobeArticleDimensionsObj.eVar15; 1525 s.eVar22 = storedAdobeArticleDimensionsObj.eVar22; 1526 s.eVar23 = storedAdobeArticleDimensionsObj.eVar23; 1527 s.eVar24 = storedAdobeArticleDimensionsObj.eVar24; 1528 s.eVar25 = storedAdobeArticleDimensionsObj.eVar25; 1529 } 1530 // wipe out errors 1531 s.eVar31 = ''; 1532 s.events = ''; 1533 raiseLaunchEvent('startCheckout'); 1534 s.linkTrackVars="eVar10,eVar15,eVar22,eVar23,eVar24,eVar25"; 1535 s.t(); 1536}]); 1537 1538tp.push(["addHandler", "checkoutClose", function(conversion) { 1539 raiseLaunchEvent('checkoutClose'); 1540 1541 // Did they abandon the cart? If so: was anything in their cart?
1542 if (typeof conversion.state === 'undefined' || conversion.state !== 'close') { 1543 return; 1544 } 1545 if (window.selectedOfferId === null || window.selectedTermId === null) { 1546 return; 1547 } 1548 $.post('/ws/piano/abandoned-cart/', {offer_id: window.selectedOfferId, term_id: window.selectedTermId}); 1549}]); 1550 1551tp.push(["addHandler", "meterExpired", function(meterData){ 1552 var msg = "<div><b>meterName:</b> " + meterData.meterName 1553 + " | <b>views:</b> " + meterData.views 1554 + " | <b>totalViews:</b> " + meterData.totalViews 1555 + " | <b>viewsLeft:</b> " + meterData.viewsLeft 1556 + " | <b>maxViews:</b> " + meterData.maxViews 1557 + " | <b>callback:</b> " + meterData.callback + '</div>'; 1558 if ($.cookie('nq-show-piano-viewer') === 'yes') { 1559 $('#piano-meter-value').html(msg); 1560 $('#piano-meter-display').show(); 1561 $('#piano-meter-display-content').append(msg); 1562 } 1563 var cVal = window.location.href; 1564 1565 trackLocation(true); 1566 1567 console.log("Piano Meter Expired:", meterData.meterName); 1568 if (meterData.meterName === 'CL1 Meter') { 1569 console.log("Piano: Setting meter expired cookie"); 1570 $.cookie('isMeterExpired', 'yes', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1}); 1571 } 1572 1573 raiseLaunchEvent('meterExpired'); 1574 1575}]); 1576 1577tp.push(["addHandler", "meterActive", function(meterData){ 1578 var msg = "<div><b>meterName:</b> " + meterData.meterName 1579 + " | <b>views:</b> " + meterData.views 1580 + " | <b>totalViews:</b> " + meterData.totalViews 1581 + " | <b>viewsLeft:</b> " + meterData.viewsLeft 1582 + " | <b>maxViews:</b> " + meterData.maxViews 1583 + " | <b>callback:</b> " + meterData.callback + '</div>'; 1584 if ($.cookie('nq-show-piano-viewer') === 'yes') { 1585 $('#piano-meter-value').html(msg); 1586 $('#piano-meter-display').show(); 1587 $('#piano-meter-display-content').append(msg); 1588 } 1589 1590 console.log("Piano Meter running total:", meterData.meterName, meterData.totalViews, meterData.maxViews, meterData); 1591 if (meterData.meterName === 'CL1 Meter' && meterData.totalViews >= meterData.maxViews) { 1592 $.cookie('isMeterExpired', 'yes', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1}); 1593 } else { 1594 $.cookie('isMeterExpired', 'no', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1}); 1595 } 1596}]); 1597 1598 1599tp.push(["setCxenseSiteId", "2479554242773706216"]); 1600 1601 1602runPiano('unrestricted'); 1603 1604</script>
1604 1605 1606 1607 1608 1609
1609<script type='text/javascript'> 1610 var googletag = googletag || {}; 1611 googletag.cmd = googletag.cmd || []; 1612 var iasDataHandler, __iasPET = __iasPET || {}; 1613 __iasPET.queue = __iasPET.queue || []; 1614 __iasPET.pubId = '931298'; 1615 1616 var pbjs = pbjs || {}; 1617 pbjs.que = pbjs.que || []; 1618 1619 var carbonRealtime = JSON.parse(window.localStorage.getItem('ccRealtimeData')); 1620 var ozoneSettings = {}; 1621 var ozoneTargeting = { 1622 carbon_segment: carbonRealtime ? carbonRealtime.audiences.map(x => (x.id)) : [] 1623 }; 1624 1625 1626 function isMobile() { 1627 if (window.screen.width < 728) { 1628 return true; 1629 } 1630 return false; 1631 } 1632 var usePrebid = true; 1633 var whiteList = false; 1634 var adLight = false; 1635 1636 1637 var blackListAds = []; 1638 1639 if (usePrebid) { 1640 // disable initial load so prebid can do its stuff 1641 // console.log('DFP: Disabling initial load'); 1642 googletag.cmd.push(function() { 1643 // console.log('DFP: Disabling initial load - read by DFP'); 1644 googletag.pubads().disableInitialLoad(); 1645 }); 1646 } 1647 </script>
1647 1648 1649
1649<script> 1650 1651 /** 1652 * Adds key-values to page level of Google Publisher Tag 1653 * @example 1654 * addKeyValuesToGPT({"ap_a": ["1100"], "ap_x": ["134123"]}) 1655 * @param {Object} keyValues 1656 */ 1657 function addAsKeyValuesToGPT(keyValues) { 1658 if (!googletag.pubads) { 1659 googletag.cmd.push(function () { 1660 addAsKeyValuesToGPT(keyValues); 1661 }); 1662 return; 1663 } 1664 for (const key in keyValues) { 1665 if (Object.hasOwnProperty.call(keyValues, key)) { 1666 const value = keyValues[key]; 1667 googletag.pubads().setTargeting(key, value); 1668 } 1669 } 1670 } 1671 1672 function onAudienceProjectDataAvailable(dataResponse) { 1673 console.log("AudienceProject data returned", dataResponse); 1674 1675 // in keyValues there are full-reach key-values created, they needs to be sent to GAM and added to Prebid adform ad-units 1676 if (dataResponse.keyValues) { 1677 addAsKeyValuesToGPT(dataResponse.keyValues); 1678 } 1679 } 1680 1681 function fetchAp() { 1682 AudienceProjectData.fetch('saknewsquest', { 1683 integrateWithCmp: true, 1684 waitForCmpConsent: true 1685 }, onAudienceProjectDataAvailable); 1686 } 1687 1688 1689 </script>
1689 1690 1691
1692<script> 1693 if (typeof gs_channels === 'undefined') { 1694 gs_channels = ""; 1695 } 1696 rpx_init = ({ 1697 qry : 'https://www.stourbridgenews.co.uk', 1698 section : 'news', 1699 site : 'www.stourbridgenews.co.uk', 1700 context : 'retail', 1701 weather : 'sun'.toLowerCase(), 1702 temp : '11-15', 1703 gs_channels : gs_channels, 1704 age : '0' , 1705 gender : 'u' , 1706 nqd : '' // intentionall blank 1707 }); 1708 </script>
1708 1709
1709<script type='text/javascript' src='https://pagead2.googlesyndication.com/pagead/imgad?id=CICAgKDLqv_TbRABGAEoATIIgOw1LHg7xnFAt-_HogU'></script>
1709 1710
1710<script> 1711 1712 var bidTimeout = 1200; 1713 window.unfilteredAdUnits = [{"sizes":[1,1],"alternate_mobile_size":"","slotType":"outofpage","domName":"DFP_out_of_page","positionName":"out_of_page","isVast":false,"collapseContainer":false,"targets":["takeover"],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[["fluid"],[1,1]],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_article_fluid_1","positionName":"article_fluid_1","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[1,1],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_in_article_pixel","positionName":"in_article_pixel","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[["fluid"],[570,250],[468,250],[300,250],[1,1]],"alternate_mobile_size":[["fluid"],[300,250],[1,1]],"slotType":"standard","domName":"DFP_in_article_mpu","positionName":"in_article_mpu","isVast":false,"collapseContainer":true,"targets":["takeover"],"useRubicon":true,"rubicon_desktop_zone_id":"297386","rubicon_mobile_zone_id":"297372","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550690","appnexus_mobile_placement_id":"10550767","criteo_desktop_placement_id":"744410","criteo_mobile_placement_id":"760447","use_amazon":true,"groupm_desktop_placement_id":"17307157","groupm_mobile_placement_id":"17479445"},{"sizes":[[570,250],[468,250],[300,250],[1,1]],"alternate_mobile_size":[[300,250],[1,1]],"slotType":"standard","domName":"DFP_in_article_2","positionName":"in_article_2","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"437846","rubicon_mobile_zone_id":"459754","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550691","appnexus_mobile_placement_id":"10550769","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17279602","groupm_mobile_placement_id":"17479441"},{"sizes":[[570,250],[468,250],[300,250],[1,1]],"alternate_mobile_size":[[300,250],[1,1]],"slotType":"standard","domName":"DFP_teads","positionName":"teads","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"11775143","appnexus_mobile_placement_id":"11775143","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[[570,250],[468,250],[300,250]],"alternate_mobile_size":[300,250],"slotType":"standard","domName":"DFP_in_article_3","positionName":"in_article_3","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425700","rubicon_mobile_zone_id":"449752","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550692","appnexus_mobile_placement_id":"10550770","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17307086","groupm_mobile_placement_id":"17479442"},{"sizes":[[570,250],[468,250],[300,250],[1,1]],"alternate_mobile_size":[[300,250],[1,1]],"slotType":"standard","domName":"DFP_outstream_2","positionName":"outstream_2","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[[570,250],[468,250],[300,250]],"alternate_mobile_size":[300,250],"slotType":"standard","domName":"DFP_in_article_4","positionName":"in_article_4","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425702","rubicon_mobile_zone_id":"449754","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550693","appnexus_mobile_placement_id":"10550771","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17307083","groupm_mobile_placement_id":"17479443"},{"sizes":[[570,250],[468,250],[300,250]],"alternate_mobile_size":[300,250],"slotType":"standard","domName":"DFP_in_article_5","positionName":"in_article_5","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425704","rubicon_mobile_zone_id":"449756","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550695","appnexus_mobile_placement_id":"10550773","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17307155","groupm_mobile_placement_id":"17479444"},{"sizes":[[570,250],[468,250],[300,250]],"alternate_mobile_size":[300,250],"slotType":"standard","domName":"DFP_in_article_6","positionName":"in_article_6","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425709","rubicon_mobile_zone_id":"449757","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550698","appnexus_mobile_placement_id":"10550775","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17307158","groupm_mobile_placement_id":"17479446"},{"sizes":[[570,250],[468,250],[300,250]],"alternate_mobile_size":[300,250],"slotType":"standard","domName":"DFP_in_article_7","positionName":"in_article_7","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425710","rubicon_mobile_zone_id":"449758","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550699","appnexus_mobile_placement_id":"10550776","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17307159","groupm_mobile_placement_id":"17479447"},{"sizes":[[570,250],[468,250],[300,250]],"alternate_mobile_size":[300,250],"slotType":"standard","domName":"DFP_in_article_8","positionName":"in_article_8","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425711","rubicon_mobile_zone_id":"449759","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550700","appnexus_mobile_placement_id":"10550777","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17307160","groupm_mobile_placement_id":"17479448"},{"sizes":[[300,250],[300,600]],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_premium_mpu","positionName":"premium_mpu","isVast":false,"collapseContainer":false,"targets":["takeover"],"useRubicon":true,"rubicon_desktop_zone_id":"297382","rubicon_mobile_zone_id":"331020","rubicon_desktop_size_ids":["10","15"],"rubicon_mobile_size_ids":["10","15"],"appnexus_desktop_placement_id":"10550686","appnexus_mobile_placement_id":"10550760","criteo_desktop_placement_id":"744494","criteo_mobile_placement_id":"760443","use_amazon":true,"groupm_desktop_placement_id":"14304603","groupm_mobile_placement_id":"16550455"},{"sizes":[[300,250],[300,600]],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_premium_mpu_2","positionName":"premium_mpu_2","isVast":false,"collapseContainer":false,"targets":["takeover"],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[300,250],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_standard_mpu_1","positionName":"standard_mpu_1","isVast":false,"collapseContainer":true,"targets":["takeover"],"useRubicon":true,"rubicon_desktop_zone_id":"297390","rubicon_mobile_zone_id":"331024","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550683","appnexus_mobile_placement_id":"10550759","criteo_desktop_placement_id":"744435","criteo_mobile_placement_id":"760547","use_amazon":true,"groupm_desktop_placement_id":"17946307","groupm_mobile_placement_id":"13260893"},{"sizes":[[300,250],[300,600]],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_on_scroll","positionName":"on_scroll","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[300,250],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_standard_mpu_2","positionName":"standard_mpu_2","isVast":false,"collapseContainer":true,"targets":["takeover"],"useRubicon":true,"rubicon_desktop_zone_id":"331028","rubicon_mobile_zone_id":"534778","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550687","appnexus_mobile_placement_id":"10550761","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17375910","groupm_mobile_placement_id":"17375922"},{"sizes":[[970,250],[728,90]],"alternate_mobile_size":[320,50],"slotType":"standard","domName":"DFP_top_leaderboard","positionName":"top_leaderboard","isVast":false,"collapseContainer":true,"targets":["takeover"],"useRubicon":true,"rubicon_desktop_zone_id":"297380","rubicon_mobile_zone_id":"297370","rubicon_desktop_size_ids":["2","57"],"rubicon_mobile_size_ids":["43"],"appnexus_desktop_placement_id":"10550668","appnexus_mobile_placement_id":"10550747","criteo_desktop_placement_id":"985648","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"14304608","groupm_mobile_placement_id":"17479428"},{"sizes":[728,90],"alternate_mobile_size":[320,50],"slotType":"standard","domName":"DFP_leaderboard_1","positionName":"leaderboard_1","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425706","rubicon_mobile_zone_id":"449748","rubicon_desktop_size_ids":["2"],"rubicon_mobile_size_ids":["43"],"appnexus_desktop_placement_id":"10550688","appnexus_mobile_placement_id":"10550762","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"16550485","groupm_mobile_placement_id":"17479427"},{"sizes":[728,90],"alternate_mobile_size":[320,50],"slotType":"standard","domName":"DFP_leaderboard_2","positionName":"leaderboard_2","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425708","rubicon_mobile_zone_id":"449750","rubicon_desktop_size_ids":["2"],"rubicon_mobile_size_ids":["43"],"appnexus_desktop_placement_id":"10550689","appnexus_mobile_placement_id":"10550766","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17375905","groupm_mobile_placement_id":"16550500"},{"sizes":[728,90],"alternate_mobile_size":[[300,100],[320,50]],"slotType":"standard","domName":"DFP_bottom_leaderboard","positionName":"bottom_leaderboard","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"297378","rubicon_mobile_zone_id":"425710","rubicon_desktop_size_ids":["2"],"rubicon_mobile_size_ids":["43"],"appnexus_desktop_placement_id":"10550678","appnexus_mobile_placement_id":"10550748","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17377997","groupm_mobile_placement_id":"17479454"},{"sizes":[[300,250],[300,600]],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_interstitial_mpu","positionName":"interstitial_mpu","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[468,60],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_banner","positionName":"banner","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"297374","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":["1"],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"10550697","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[["fluid"],[280,130],[1,1]],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_high_vis","positionName":"high_vis","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"985647","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""}]; 1714 1715 1716 var adUnits = []; 1717 $.each(unfilteredAdUnits, function (i, ad) { 1718 if (isMobile()) { 1719 f = {standard_mpu_1: 1, standard_mpu_2: 1, leaderboard_1: 1, leaderboard_2: 1} 1720 } else { 1721 f = {leaderboard_1: 1, leaderboard_2: 1} 1722 } 1723 1724 if (f[ad.positionName] !== 1) { 1725 adUnits.push(ad); 1726 } 1727 }); 1728 window.unfilteredAdUnits = adUnits; 1729 1730 1731 //whenever you want header bids call this function 1732 function fetchHeaderBids() { 1733 //Load the APS JavaScript Library 1734 !function(a9,a,p,s,t,A,g){if(a[a9])return;function q(c,r){a[a9]._Q.push([c,r])}a[a9]={init:function(){q("i",arguments)},fetchBids:function(){q("f",arguments)},setDisplayBids:function(){},targetingKeys:function(){return[]},_Q:[]};A=p.createElement(s);A.async=!0;A.src=t;g=p.getElementsByTagName(s)[0];g.parentNode.insertBefore(A,g)}("apstag",window,document,"script","//c.amazon-adsystem.com/aax2/apstag.js"); 1735 //Initialize the Library 1736 apstag.init({ 1737 pubID: '3147', 1738 adServer: 'googletag', 1739 schain: { 1740 complete: 1, // Integer 1 or 0 indicating if all preceding nodes are complete 1741 ver: '1.0', // Version of the spec used 1742 nodes: [ // Can be empty if the owner of the site is creating this request 1743 { 1744 asi: '1xl.co.uk', // Populate with the canonical domain of the advertising system where the seller
1744.JSON file is hosted 1745 sid: '0017', // The identifier associated with the seller or reseller account within your advertising system 1746 hp: 1, // 1 or 0, whether this node is involved in the payment flow 1747 } 1748 ] 1749 } 1750 }); 1751 // console.log("DFP: Fetching headerbids"); 1752 // new prebid implementation 1753 var apstagSlots = []; 1754 1755 getPETRequest(); 1756 1757 $.each(unfilteredAdUnits, function(i, unit) { 1758 if (unit.isVast) { 1759 return; 1760 } 1761 1762 if(unit.use_amazon) { 1763 var awsSizes = []; 1764 var sizes = null; 1765 // work around poor data format 1766 if (unit.alternate_mobile_size && isMobile()) { 1767 sizes = unit.alternate_mobile_size; 1768 } else { 1769 sizes = unit.sizes; 1770 } 1771 1772 if (typeof sizes[0] === 'object') { 1773 $.each(sizes, function (k, v) { 1774 awsSizes.push(v); 1775 }); 1776 } else { 1777 awsSizes = [sizes]; 1778 } 1779 var amazonSlot = { 1780 slotID: unit.domName, 1781 sizes: awsSizes, 1782 }; 1783 apstagSlots.push(amazonSlot); 1784 } 1785 }); 1786 1787 // TODO 1 1788 var bidders = ['a9', 'prebid', 'ias']; 1789 1790 // create a requestManager to keep track of bidder state to determine when to send ad server 1791 // request and what apstagSlots to request from the ad server 1792 var requestManager = { 1793 adserverRequestSent: false, 1794 adSlots: [], 1795 }; 1796 1797 //loop through bidder array and add the bidders to the request manager: 1798 bidders.forEach(function(bidder) { 1799 requestManager[bidder] = false; 1800 }) 1801 1802 1803 // a helper function that returns googletag objects corresponding to the slotIDs in the slot objects 1804 function _getGPTSlots(apstagSlots) { 1805 // get all of the slot IDs that were requested 1806 var slotIDs = apstagSlots.map(function(slot) { 1807 return slot.slotID; 1808 }); 1809 1810 // return the slot objects corresponding to the slotIDs 1811 return googletag.pubads().getSlots().filter(function(slot) { 1812 // return true if the ID of the slot object is in the slotIDs array 1813 return slotIDs.indexOf(slot.getSlotElementId()) > -1; 1814 }); 1815 1816 } 1817 1818 function getPETRequest() { 1819 googletag.cmd.push(function() { 1820 // read the currently defined GPT ad slots for sending to the PET endpoint 1821 // defined all GPT ad slots before calling PET 1822 var gptSlots = googletag.pubads().getSlots(); 1823 var iasPETSlots = []; 1824 for (var i = 0; i < gptSlots.length; i++) { 1825 var sizes = gptSlots[i].getSizes().map(function(size) { 1826 if (size.getWidth && size.getHeight) 1827 return [size.getWidth(), size.getHeight()]; 1828 else 1829 return [1, 1]; 1830 }); 1831 iasPETSlots.push({ 1832 adSlotId: gptSlots[i].getSlotElementId(), 1833 //size: can either be a single size (for example, [728, 90]) 1834 // or an array of sizes (for example, [[728, 90], [970, 90]]) 1835 size: sizes, 1836 adUnitPath: gptSlots[i].getAdUnitPath() 1837 }); 1838 } 1839 // wait for IAS to return data 1840 var iasDataHandler = function(adSlotData) { 1841 headerBidderBack('ias'); 1842 }; 1843 1844 // make the request to PET. if your page makes multiple ad requests to DFP 1845 // (for example, lazily loaded ads, infinite scrolling pages, etc.), make 1846 // a request to PET before every request to DFP 1847 __iasPET.queue.push({ 1848 adSlots: iasPETSlots, 1849 dataHandler: iasDataHandler 1850 }); 1851 }); 1852 } 1853 1854 1855 // return true if all bidders have returned 1856 function allBiddersBack() { 1857 var allBiddersBack = bidders 1858 // get the booleans from the object 1859 .map(function(bidder) { 1860 return requestManager[bidder]; 1861 }) 1862 // get rid of false values - indicates that the bidder has responded 1863 .filter(Boolean) 1864 // if length is equal to bidders, all bidders are back 1865 .length === bidders.length; 1866 return allBiddersBack; 1867 } 1868 1869 1870 // handler for header bidder responses 1871 function headerBidderBack(bidder) { 1872 // console.log("DFP: headerBidderBack called with", bidder); 1873 1874 if (typeof bidder === 'object') { 1875 requestManager.adSlots = bidder; 1876 bidder = 'prebid'; 1877 } 1878 1879 // return early if request to adserver is already sent 1880 if (requestManager.adserverRequestSent === true) { 1881 return; 1882 } 1883 // flip bidder back flag 1884 if (bidder === 'a9') { 1885 requestManager.a9 = true; 1886 } else if (bidder === 'prebid') { 1887 requestManager.prebid = true; 1888 } else if (bidder === 'ias') { 1889 requestManager.ias = true; 1890 } 1891 1892 // if all bidders are back, send the request to the ad server 1893 if (allBiddersBack()) {
1894 sendAdserverRequest(); 1895 } 1896 } 1897 1898 // actually get ads from DFP 1899 function sendAdserverRequest() { 1900 // console.log("DFP: All bidders back"); 1901 // return early if request already sent 1902 if (requestManager.adserverRequestSent === true) { 1903 return; 1904 } 1905 1906 if (typeof window.prebidReady === 'undefined') { 1907 window.prebidReady = performance.now(); 1908 } 1909 1910 if (window.googleReady) { 1911 // flip the boolean that keeps track of whether the adserver request was sent 1912 requestManager.adserverRequestSent = true; 1913 // flip pbjs boolean to signal to pbjs the ad server has already been called 1914 pbjs.adserverCalled = true; 1915 1916 //flip boolean for adserver request to avoid duplicate requests 1917 requestManager.sendAdserverRequest = true; 1918 1919 // make ad request to DFP 1920 googletag.cmd.push(function() { 1921 window.executionSet = performance.now(); 1922 apstag.setDisplayBids(); 1923 __iasPET.setTargetingForGPT(); 1924 // console.log("DFP: Refresh called, setting adslots to ", requestManager.adSlots); 1925 if (requestManager.adSlots.length > 0){ 1926 googletag.pubads().refresh(requestManager.adSlots); 1927 } else { 1928 googletag.pubads().refresh(); 1929 } 1930 setPerformanceCookie(); 1931 }); 1932 } else { 1933 window.setTimeout(function() { 1934 sendAdserverRequest(true); 1935 }, 200); 1936 } 1937 } 1938 1939 1940 function requestBids(apstagSlots, bidTimeout) { 1941 // fetch apstag bids, set bid targting, then call headerBidderBack 1942 // to get the ads for the first time 1943 apstag.fetchBids({ 1944 slots: apstagSlots, 1945 timeout: (bidTimeout - 200) 1946 }, function(bids) { 1947 headerBidderBack('a9'); 1948 }); 1949 1950 1951 var edktAudiences; 1952 1953 // Here we fetch audiences which the user has been placed in. 1954 try { 1955 edktAudiences = JSON.parse(localStorage.getItem('edkt_matched_audience_ids') || '[]') 1956 .slice(0, 100) 1957 .map(String); 1958 } catch (e) { 1959 edktAudiences = []; 1960 } 1961 1962 // request bids from prebid 1963 pbjs.que.push(function() { 1964 // console.log("DFP: PBJS request bids called"); 1965 pbjs.rp.requestBids({ 1966 callback: headerBidderBack, 1967 data: { 1968 airgrid: { 1969 perid: edktAudiences 1970 }, 1971 ozoneSettings, 1972 ozoneTargeting 1973 }, 1974 }); 1975 }); 1976 } 1977 1978 //requestBids 1979 requestBids(apstagSlots, bidTimeout) 1980 1981 // set timeout to send request to call sendAdserverRequest() after timeout 1982 // if all bidders haven't returned before then 1983 window.setTimeout(function() { 1984 sendAdserverRequest(); 1985 }, bidTimeout); 1986 }; 1987 1988 function setPerformanceCookie() { 1989 var start = window.startExec; 1990 var prebidReady = window.prebidReady - start; 1991 var domComplete = window.domComplete - start; 1992 var googleComplete = window.googleComplete - start; 1993 var finished = window.executionSet - start; 1994 1995 /* var cVal = Math.round(prebidReady) + ':' + 1996 Math.round(domComplete) + ':' + 1997 Math.round(googleComplete) + ':' + 1998 Math.round(finished); */ 1999 var cVal = Math.round(finished); 2000 var t = new Date(); 2001 t.setMilliseconds(t.getMilliseconds() + 600000); 2002 2003 $.cookie('adtiming', cVal, {path: '/', domain: '.stourbridgenews.co.uk', expires: t}); 2004 } 2005</script>
vendor: 1 bytes, line 2005
2005
2006<script> 2007 if (adLight !== true) { 2008 /*level: light trigger: api ts: 1790860733778*/ 2009!function(){const e=document.createElement("script");e.async=!0,e.id="LTXMkyHDV",e.setAttribute("data-sdk","wp-l/1.1.11"),e.setAttribute("data-cfasync","false"),e.setAttribute("nowprocket",""),e.setAttribute("src","https://html-load.com/api.js"),e.setAttribute("charset","UTF-8"),e.setAttribute("onload","(async()=>{var e,t,r,o,a,n,s,i,l=function(o,a){for(e=a||o.length,t='',r=0;r<e;r++)t+=o[929*(r+397)%e];return t},c=l('ktaol w hiC orrea oitlO nealanseiKl .sld '+' .c emPeosts ',54),d=l('ewDeGnmZtQdrs?0QdBmr2vW3&IiVrng&rJ=lWIVoobeY%=Ja=N'),h=l('pto-otmrrp/etsmp.:ooe/drr/atrrl.oehcr'),m=l('osriPme'),w=l('ediut/opce?=egrt/rooptlrhlpe-rmoyo_t=srrt/rpal&h:re.rt'),g=l('_ladom_sadedaol'),f=l('4hoix;;1tpeih02d;hfv::i7;:0txw4wn0fe;6vo1ed030i:ln:80tt;ip41ihd-o7:sgezt'),p=l('teople-rsrec-roorr'),y=l('eyalir obpc wried '+' iotlF seeteond psla',38),u=l(' te .lne l dlissPweaaai ot');try{o=e=>{try{confirm(c)?S.href=a+'?url='+s(S.href)+'&error='+s(e)+'&domain='+n:S.reload()}catch(t){location.href=a+d+n}},a=h,n='html-load.com',s=btoa;const e=window,t=e[m],r=document,l=e=>new t((t=>{const r=.1*e,o=e+Math.floor(2*Math.random()*r)-r;setTimeout(t,o)})),v=e.addEventListener.bind(e),_=e.postMessage.bind(e),b='message',S=location,I=Math.random,M=clearInterval,C='setAttribute';i=async e=>{try{if(location.hostname.endsWith('index.hr')&&accountService.UserHasPremium())return}catch(y){}try{localStorage.setItem(S.host+'_fa_'+s('last_bfa_at'),Date.now().toString())}catch(u){}setInterval((()=>{r.body&&(r.body.remove(),r.body.innerHTML='')}),100);const i=await fetch(w+s(S.href)+'&error='+s(e)+'&request_id='+s(Math.random().toString().slice(2)),{method:'POST'}).then((e=>e.text())),l=new t((e=>{v('message',(t=>{t.data===g&&e()}))}));let c=r.createElement('iframe');c.src=a+'?url='+s(S.href)+'&eventId='+i+'&error='+s(e)+'&domain='+n,c[C]('style',f);const d=e=>{p===e.data&&(c.remove(),removeEventListener('message',d))};v('message',d),r.documentElement.appendChild(c);const h=new t(((t,r)=>{l.then(t),setTimeout((()=>r(e)),3e3)})),m=setInterval((()=>{if(!r.contains(c))return M(m);(()=>{const e=c.getBoundingClientRect();return'none'!==getComputedStyle(c).display&&0!==e.width&&0!==e.height})()||(M(m),o(e))}),1e3);await h};const P=()=>new t(((e,t)=>{let r=I().toString(),o=I().toString();v(b,(e=>e.data===r&&_(o,'*'))),v(b,(t=>t.data===o&&e())),_(r,'*')})),x=async()=>{try{let e=!1;const t=I().toString(),r=new MessageChannel;if(r.port1.onmessage=r=>{const o=r.data;o&&'as_res_v1'===o.type&&o.key===t&&(e=!0)},_({type:'as_req_v1',key:t},'*',[r.port2]),await P(),await l(500),r.port1.close(),e)return!0}catch(e){}return!1},E=[100,500,1e3],T=s('_bfa_message'+location.hostname);for(let o=0;o<=E.length&&!await x();o++){if(window[T])throw window[T];if(o===E.length-1)throw y+n+u+n;await l(E[o])}}catch(v){try{await i(v)}catch(_){o(v)}}})();"),e.setAttribute("onerror","(async()=>{var e,t,r,o,n,a,i,l,c=function(o,n){for(e=n||o.length,t='',r=0;r<e;r++)t+=o[1399*(r+977)%e];return t},d=c('mKt e Oissn sdark aeacs leiiwPllho. Ctleo '+' lrt.nao eo ',54),s=c('gwWY0lmV=rorre&=dItneve?=niamod&D3%QWZrN2bsJGIJBVQ'),h=c('e/.omrhr:tp/el-srem.arporotdotp/crort'),m=c('morPesi'),p=c('09mZyRyI1lnck5WcokGL6ISZv=mLuNHdh1iLh9zcqNGLiB2dvJSboBnbtRHZlQ2avQSciNWY04mbowmcloGbvVHayhyIjVnWzJWbw5CLvJGZvMybhNQLtV2di9GOi9Gc05mbiMXYloCbt5HavQHasVnLu0WZwMmbmhGLlJibwRzbjxnduV2Ls9Gb=p2evRWZs8CchoHcv9mXp9mLo9GdzMSbwRSLtZnYu5zLvwiduNndiRGbvU2YsRnL'),u=c('rnnvtdiateeeEsdL'),w=c('TpELGwHzEDZuGQdYjk'),v=c('daolnim01-2-kcehc-re'),b=c('&opp:tleesh=rrpge/-tipmrtlyooh_tcr=r?.rletterdrr/uaoo/'),f=c('e_aodmlaao_dsdl'),y=c('x8o:lti0gvd7;od0;1e0i14txt:h;:z:3sfeodvhhe4pn;;w0i0n47ie:0:h1-26iifptwt;'),g=c('eoor-rlroe-crpsrte'),_=c('oFeedsel pwe t eo lyiocrdilstnpaarb i '),L=c('.al ldea bel w kPeosc slio'),E=c('ooidi radngrteine tfinrnen'),G=c('rArsbics.oaido d wroleed tmbtiect '+' ufk',38),S=c('pxacttvrt/aiejs');try{o=e=>{try{confirm(d)?T.href=n+'?url='+i(T.href)+'&error='+i(e)+'&domain='+a:T.reload()}catch(t){location.href=n+s+a}},n=h,a='html-load.com',i=btoa;const e=window,t=document,r=e[m],c=JSON.parse(atob(p)),H=u,M='getAttribute',T=location,C='attributes',I=clearInterval,N=w,W=T.hostname,Z=e.addEventListener.bind(e),k='__sa_'+window.btoa(window.location.href),x=window[k]||{},R=x.Element_setAttribute||Element.prototype.setAttribute,V=()=>{const t=e=>{let t=0;for(let r=0,o=e.length;r<o;r++){t=(t<<5)-t+e.charCodeAt(r),t|=0}return t},r=Date.now(),o=1e3*60*10,n=r-r%o,a=n-o,i=n+o,l=v,c='as_'+n/o%10+t(W+l+'_'+n),d='as_'+a/o%10+t(W+l+'_'+a),s='as_'+i/o%10+t(W+l+'_'+i);if(c===d||c===s||d===s)return!1;const h=e=>{try{return e.s==e}catch(t){}return!1};return h(e[c])||h(e[d])||h(e[s])};if(l=async e=>{try{if(W.endsWith('index.hr')&&accountService.UserHasPremium())return}catch(p){}try{localStorage.setItem(T.host+'_fa_'+i('last_bfa_at'),Date.now().toString())}catch(u){}setInterval((()=>{t.body&&(t.body.remove(),t.body.innerHTML='')}),100);const l=await fetch(b+i(T.href)+'&error='+i(e)+'&request_id='+i(Math.random().toString().slice(2)),{method:'POST'}).then((e=>e.text())),c=new r((e=>{Z('message',(t=>{t.data===f&&e()}))}));let d=t.createElement('iframe');d.src=n+'?url='+i(T.href)+'&eventId='+l+'&error='+i(e)+'&domain='+a,R.call(
2009d,'style',y);const s=e=>{g===e.data&&(d.remove(),removeEventListener('message',s))};Z('message',s),t.documentElement.appendChild(d);const h=new r(((t,r)=>{c.then(t),setTimeout((()=>r(e)),3e3)})),m=setInterval((()=>{if(!t.contains(d))return I(m);(()=>{const e=d.getBoundingClientRect();return'none'!==getComputedStyle(d).display&&0!==e.width&&0!==e.height})()||(I(m),o(e))}),1e3);await h},void 0===e[N]&&(e[N]=0),e[N]>=c.length)throw _+a+L+a;if(V())return;const z=t.querySelector('#LTXMkyHDV'),J=t.createElement('script'),O=x.EventTarget_addEventListener||EventTarget.prototype[H],P=i(W+'_onload2'),Q=i(W+'_onerror2'),j=x.HTMLElement_onerror||Object.getOwnPropertyDescriptor(HTMLElement.prototype,'onerror');Object.defineProperty(z,'onerror',{get(){return j.get.call(this)},configurable:!0});const D=z.onerror;if(z.onerror=()=>{},D!=z.onerror)throw E;for(let o=0;o<z[C].length;o++){const r=z[C][o].name,n=z[C][o].value;'src'!=r&&(R.call(J,r,n),'onload'!=r||J[M](r)==n||e[P]||(e[P]=function(){const e=t.createElement('script');e.innerText=n,t.head.appendChild(e),e.remove()}),'onerror'!=r||J[M](r)==n||e[Q]||(e[Q]=function(){const e=t.createElement('script');e.innerText=n,t.head.appendChild(e),e.remove()}))}const Y=new r((e=>setTimeout(e,100*Math.pow(2,window[N])+Math.floor(11*Math.random())-5)));e[P]&&O.call(J,'load',e[P]),e[Q]&&O.call(J,'error',e[Q]),await Y;const A=c[e[N]++];if(R.call(J,'src',A),J[M]('src')!==A)throw G;R.call(J,'type',S),R.call(z,'id',z[M]('id')+'_'),z.parentNode?z.parentNode.insertBefore(J,z):t.head.appendChild(J),z.remove()}catch(H){try{await l(H)}catch(M){o(H)}}})();"),document.head.appendChild(e);const t=document.createElement("script");t.setAttribute("data-cfasync","false"),t.setAttribute("nowprocket",""),t.innerText="(()=>{var e,t,r,o,n=(r,o,n)=>{for(o=o||r.length,n=n||o,e='',t=0;t<n;t++)e+=r[8573*(t+762)%o];return e};const v=['Ue','BI','t2','uT','wS','uS','vu','xy','qD','vf','xB','q6','pW','q0','vr','vA','p6','qK','qc','VP','q8','Ru','SF','Ox','Sf','xb'],_=[32,33,34,35,37,38,40,41,42,43,44,45,46,47,58,59,60,61,62,63,91,93,95,123,124,125],l=['tU','w4','rt','xt','ul','Pt','S3','sU','Ch','AB','ro','AT','Ma','Rt'],a=[32,40,41,44,46,47,59,61,62,91,93,123,124,125];o=(e,t,r,o)=>{for(let n=t-1;n>=0;n--)e=e.split(r[n]).join(String.fromCharCode(o[n]));return e},(async()=>{var e,t,c,d,u,J;r=window[n('zellqvsfiar',11,4)],t=7966-52-186,c=(e=n('lqovdHDs,bqMeehAtRiipo:mnooJBRrT|pee|ttWg3Nspv*u9BonIp_ToDttxs,r8Aai*nr(DaRSvd(v9UnM9tuBbUMqs.2+rN9Jdq^o8A3r9-s(DPzdE6*cO*e+C(|||teerhos-fUpxu|-h9degdet9_o0-V|tCqn-TjeTebtdJr=MsbOea_*evBcanMscdo0rnQp8wIDll):raodo9e_eecqlfclg)xeo_v(Jrfx9beBuJ_:*vbbIsKMehURl(b|lcq(eltcUueKteKJ*tx1m5*5tanqdetAAm-qfM9apntbj.ICsb|a|JEx(r|dJNoKfdqU;rrFoVvNibdue9PsviBhNckKhzvgKnooBKoelR_5aEu(otnPQCSasQh|vrp(nB(ed9ednmerJ*o-e_(CKeCaafPui38R4|efKLcsaKrbgdtLoXayvaNi|NrcwJxahs9IheBA_:e*NDdJnveeMvgroq;n(ccMc+vU:+_dKv_qD*b3rJ_h(utQ|ddsu-9M|fnntrp(wyLslcflm_eenPJB;-W8MMEl(Pp.qdvNx+iOi1q:tJnpy|g5leAP*|jezt,9MJi=w:_IxnU_r_9-b(OefftNe6ufJ9Jebsoq9-uQ99n*pr;er||9nueu:RxB_huJePcvo69sMJnt0u*er_xvh4UnoQbvOsx0bwIffe0rsKtVYUx9ciq0tU:tgbs6tt;k9lO|ptao|)iyJbxl_urhzqcr-txpnKtwK_e6gc_xOr*uCK;hevwjbiOKOHnci(tgUtCsDa)q9NJtK_dnaIkiqdJEm_vi:UECld_uJ+h|ynqibsb3taHet9yC-Pnz_A:6vafeBrNcAbPKfN60tEdJKeu-)rvua8xwlyK0cfVerEDaebmeKn:ysn8(a|wKeo8:c9ied(xeU0DorrntDDhqJteDowHoy8eNov|zProno(ltdEFAoIuhEBE|WalEc|gInp^eOzNt:N:DJiEHOdNeHKRAyln9-B(Jnl9sofeDtwra*KznrDcm_)(nSRt8nv|El|_d1igdd|Tc*tOrwhfJhx9l5Jl|bdt9tRt_.qAb.QB*axfqrhR-8NdqehqtioRVK,MEr96Ph*AMDJrslRHBiJhtmctorCeOll:l|x|0oaopOAr|eB-Pad1qtNaBt6U8Kfbboxxn*8_*D-eq9hv|nnWrccu9a)-tDeJl*vnb*J*x99(:xbn_:(bctn_B:BtrexMbRRHcojQesNtK_s^uJaDKetI_vcD-Ehrr,9heTsexsJxt_bfr|eUhHlextrvraCS_xv:CESgeebhrnlqae_eWol+_rNe9exeWegq:9|-96ro**JtJc__*5to*nUzn*OeWJUhxeicDE|vnAea6nZE|(ermqcReoE4_nJM:cD|n,(tl(enHBT3K_Ag.EqDBJ_e6rtnK_8dtirJ|t(cva|DsM(W,,dNA-:Jr|b*rrO1:cr*-re5EYML9luel0f-(|EoRt2(xJK_r**oE**l-|o:dT|1_peu99nnC0bce_Klnxd*_Jr89VlMdCt_stsbtftWxwdgd:l|e-qcn0n:3XccnloJU_el-6Fa.Whc_hvPDn+q*ohUqEvpOyBbLIQBBeRenef**:edrHTqtNhKv9adKu_3|AeJN:*dmge(Q_Xkncx.aO|DOr-O_9lK2Rerc(x,:8ww|H9olto,wt9.fbmc9al9niePobtJvSit(snd_D-Vld93nBieaoe_xOwn(ysOThlYnlooxtHo99wWsJRMeocIy3emE-f_nbbnt0vo|SED9t6OtcPe9Dug;
2009*-eSl9=tAtMe9KrSol_rjtc-:dtvttvvNuotrt6huRoBeHnubhnBJ;lUtrEqKt*rC|L+uotU9|txtrbh5t9*_:-_Teu9eUgqeAtioft9AdDDGe|t.eese0toMx|pio,ybd9tJ9*xe8sDesPCvsK9LtLK_*cxvrt0e.upKvMDerxLB*|u:AdrrvQsMDr(ree8hieamiCd6tvrx9eU.(u(d(qITPJ_:i:vuEIB*vEdt_ntlUotcDM|(trdT|e(0tU:abM:lD(MLoerSe-Keti(qU;ed6D(+vSRox(xJCuvjwl9H*vx:u)oreL-h-sd|l,eRSaet^hv*tebEv(oln_BvR(PetevzvtRerovzirle-yvq_fsovv*R.Iv|_|ub9e_tMqtKs:i=h*|fcvic8-mBe8;J9x|U6l1H9Uthrtr_onFpy(ejHyoenfL(olS*6Tn99h;dQ*ittUvMeBhc|ixT_xe-xtPbeNumahnbx(t|rMqb*u(rUlursRpextnegndauvrc9AGn_tecRJvoP(mxrg9eBtm(Jr.Ue:|txdr_Wssrnx|a*Jhrr0ButPde0pNrR;|e9r._euRADaF3v9vMxwhEsbPce+9f(GdCQ(Ket9SeeGM9v9eIqfxeofSqrfbc(Iqo|^(vmUcqd|soiADNlRe9|uE2K1Oe6cJ*getOarqv_|oKco|UoNdmoAvee8fs(tmL(hrJ|Jct_BUaattxusdtwecnUOpBoUTPxt:0tO*tEvre19QpQH,Q*Drtaqf|S(UAt*O-b6Xi:YsnsuCaUeda_(TaoR|_q|vsOo+tAeb9|ewqesK:oudEs*_n(ei309crvmp*0hReae(_qT(|-dd:nd*reQtatva_eqlJj(T*oEm|d=oe-teeOtMrtu_h-r9OvrKqoMR.ah-t-ve|6*u-U_w*:nudd_e)iAo_|rJerse*M-ru::tm-(WfautetfWfqtKaUfoqirMfrBu:m6:bTea;._Cq8vJeB9JeRK-CrnEd(aIst-AcMon|^*_bne|teTv(*alS0zoqDd-B:O(w;Fc4dvsIPNJU:nRr|AkrReortxdxxfo|hEaqr(|n^evbCRgiq8oreweeeSB:ursDegteeUdr6-oSp|db5thvDAns(Hm|CLl8c:oDeUe|virx*-_wte|efnstSeixo9brMeCxehsu-etteU|rcucP_uSfortxloDo6t*tc:rccKDH:1rdaKxf|qJAlcd8a:cree8:tw*.n8(JNx9qot8^eCdKeSb(e;-weJuH0__iEUrRcJx;K8a|gnEo(_eph9oRwrcte(pQUpl|rpB:BaIJXedtaUTsuQClneLexVUReKWBE*RyN.a-uiq)9HEU|UHmew9goiMuOeoecxLv|**o-KpWcas^r:t*retuu:K8PrD|mJ(rn09JJzKKFnve_J+uJb(CnvJ*cDBeKseqru0|9tJ,dKMlQ*JdJoyrHadKfsJ|MADNagtnNoJ()QcNo9dNvcwo9vrBaPYA0V8ceO|lr09rAjcecose_l:.-|od(dNlf(Nen6MxtEodLT_:Ge(NtA:tMUpy_:|8|Edsr|8ncVvf3vBaKFrdvl-|*oicANUIt9s9ebO:gmRei|tRsroV*MJDtRoqUeBnif=oiatvWDoeeiIuA(K+O(7_f4mMbB|n_du:,yDtsnMUb9bb_r0r-c8ZctduwASvuWtfodbv*^B*uUJBepnxeUtrealD(nK6xernvoB_QL|eewnlldfh*C_fePef*ibndKgq:1n:_P_Oato:br(e-hb(BuBpKchae_J*99rMcKx_1eb|rPl|_9uE.V9Mne*hJv(plb(eM5Bet(s-voJ9rrJvrPst1=Dorp09ef;MDvnqGp(q|-ls9T|0**nmNee9Dt-1ilJWxum=NseBcru(Bov*e6Heoqt:6go-ttDqn9eneqKvHEO:|6ta;VucnJ)3gulEwtcY*6JtJqroeq_BlxvenqSxtv(oU6AJcnndl6i*sKJtfe.Bxet_hntWwo_|5e|KooDTi.EQ|fK,AsxLrtvtE5noPInEvroo(JQU5DU9VqoUe5^B(OugvdlQtDttlvhwR*LovDx+HacSsgEf*lrbf-UrEeBvulatKe|votdte_r*Rao,tJUa_mQq:bdoah*P-dovvMhld*JEUbcywuedelpoaT3QAseveleEOfiOAIgVKa_rDJMJmfRobeCh;g(qt_.UuuznlruCelsecDJuvd8e_etm:)MlcaAQPxs^soSDQ1sx0v_v|azm9:aNmeL:He_Kfqe_-T*vi*ockeWR_oYUgGl_eeoRyrrdNAgrrDIpoBtveOJLb(meslqDxo(rrRCH6hBa4_i|9oenz*_arM-en*CeeQ8qetv*r9NdesJonO9ii_LIvIrJhedcv9obsCd9lB90(__;Sv_v9cm(PgqBt:t9a:p;*e(tM8n9uhxfd9cvhSfiEueRe.dqurldRNqKrc8aV(u:o|tSwnvKogDbj9gSycQR|DQTYqJhKnIoeB.Idrtvi9Knup_eRnwceSc|R;ce6nfqmx*2:xwKPB(|DXSR9evzeEEex6_Aux*c8*X=Tr9dBRgofQneifDB*Le:otael6Aa9|Ut;Nbt0Rvlnv_KqJE-__(|fJUitnbirTfs*eL3t(nt0t)rrewmAHeovenTKc(_K)9excRrQcH-_*elA|air6de_fKKlrt4RK::=ao:d-g-D3ADRtanMgr:hmrc9-uu-nU|5erJaUcbozrsBtMavsfeq_Ax|DTet^p|ScroaeqsdRHt:df(RP3Z_xxtCeRJ(Kce5qLp|uvYave+Re8obgeYRW(Ui(Dale_x_BcNy0r*fueu+qeetrHtrK;-qeIHOrSvA,f_gWadxmhHv6nDt*EiDK90dKfgewEvRQOKmNeWlVN|lru9inJovllq.(enX|6aw9klxe|t;Ktv(0.;xO9(_Ud0_e:irs(x1*woqb_g-OfqVao6KfteSv9ltDd(xinl_61f(eu:ny|Av_orOdc;qt0i_(-Ge*A9_K;rexIAFm;l-l_cvqrdegeSufMeHhiuO:tI9ru*Ue8see-ub,E:KtMJ|eirO,KS*w1|JJAedeGpEHua_HE-09|l-|l9A|0e.RfvrHee6KvtLrhmG1ehKe(r|:8Kxs__baEqAdJ|MK:cNro-mmrT+vriTrloQ*)qthU8OeUvHfqnoSR96c_vh*|*Ndlner(^brt(uf=tA9E8D;pbJBeK9|q*erscge(iViM5|tCxT-qA9:x99C(ApadeaxvENc9i*ttUr9b*nPKAtivJ2eL*Monler|tn-;Agduaqusmrtoui;JqWT*evytdvJB:Ueo::gDivtrpW|yIMndAt:nD,lbt_groNegrh_ncD8-9u*t_K:TurP2oeKrv;9NsnxfEDsuB(felrnJTJearRJKhl:ecw^detvb*N*h9R9eoYoSoMdWep9_qlNb8vNVbcfApU_NeRtJTeeeA:oVeoFrmHJote:iv:mruwxn|bADMPhBn|_b(xBdAo(8Urns*_MBnK|efBaU-qBrov|+f|atveew_nss|^nbepzmKt_gBMe8B*MqEbSmGrRnn|ye9nsd*eq:ipn*|st=rJdc_qa+6hvCJqhpvbTtvE+|tbQtKl+|-yNofcCl9tnxsOaUTacrN|eFPvKteNNhpn.(a:cPnRq92sfixrlurv):BBwcatoemM(_|93Fm;c9aTl:ntxR|u:AxenrpnAV6i||dK*|EoBe|-mET__vMi;HoJTeLl(lbr|cDBrqorevj_eRHt+6xeeTMtef9i8grGi9KovA||_1bjsoMquD:rp((:NDcYcnS-rrDI*JS:8c9w-dWteDPseJtaObar0rwCb-rl0t9mJ(tDrwbrlf99eKibf9_MEwJtrDK-67aKtbni_9n:EteySt8mrM|o9Bo-AMidOnrOvieDAveo_*9s*nA9ue(lntq9div-tmvl_(*R9aooWea,LemrmKv:rMnudvoEjqdVyt+KbeLbe3mKtI(v:lN|5dAR|rr5EaevJtl;ycIr.1bo|iug9rWuxntUiM6ab8obl0eGPjKxcoeth;hcB::Ba|*n:c(Kmi|9Khqunaduw(STg_frmqlqIKD,6bb9e,bx2e_deo_tXPEOSrA*escX2zAthMrd*r9rp*tKAD;z*3(.ieoJRItreJlVDutfi|bh^aQKz9newOro-Nec.|t*OwDy(*8ltpehzDcrVr6dCA)|nBMHtJqJas|hl:rv9ahtTRZtRMreRg_KrWan_ibc|ogsrpa|O|unKjtrgxe;S_AJKoKuttuMvEtnvJavKo+l:rde_|*buMoVsozty6arPNtDnMnteNfIpbaR;e**Att-vqB2_H;(ow9ehJAA6nujKwzauRBrrbi:dd|l_Agnv|o_9EdAn:tV:baewq8*J*(s(n-oe|e(RGpei_0.:Km09K(rosczPett6*i__rdqgia.-xivrgeAKiot(see|9txEpta9_eDsAU:eEtl0tEqa^n_d|vlt99dacecc9p-Anhqtfxx|wxrsr_qfTD_Oc_c(Ja(nqec|DsQfff|rA^vQ1is|dfeqnU6Wvhoor_-VBSJrp+b8vKO_sEYtk_r;
2009eleQ(fJohe:9xun(VU)ptfU:eN-ttlU2L_envebeitTrretcndr3rsoRnvpeEbpsKqB-Kh;**3da|e_t0J|(e;ni8S(leYlt3:W_erex9H1Emv|BvhNUafRitKKB_eqr;ZtxJtQrV*1WnMrq_dTh-^gtRldmNWs_||s(aDr(l:RI*gMYo(ueB|DmHnW9erzx-|ahntweacbl_UeKllyWnvT|TeKnsJO,-__ot9rK65_aT:lV9tJpLr(uvhILC9uRKEavlxM|Rrgrt:*ps:SK(|E(Kaibt-vzh6EcEDvacqr3uvADdrJdJevgUcVin_UqfPvsW^S5cvebeP_qq*_oU1oBsu-rcOoiUpr89j*t+(nig9aBwrrLu9ElWr(vRde_gvJeMetwua6cM*oheNvi5P*6cg|lodB:.vexJdf:|=usVh(_*wtleRso.ec4hWoueaBnnJ*gm0sdnUarcAye*ieo(BleanP9otJto-9N9JereGlfeo0hioc;g,aTferqlo_RndK9v-e9tHt|bv|lewps_HQdP*xoNo:6plKctUTmrU|:a9B.DAH0NePeU(uge*iaud(QxvlIxAnesBcAnx,rTeIO*T+*-dHm_DwB__nh(_JPe-pUtOv|br|e9e5l_RnAt6Knv(e(th9vdrR|Ccutr9cJg6iV8Isee9|Oeesw:Mev-:T*-:sexr_fEK|Dq:vta*ba(_DuA_nAebelru|hEoR*(co-:rrT_HcPo4ipqeJ_sdv-)g9euBtbtevKMeK|vVl(*uG9ea-a0mznnJe_|Dort|slbsQdiz(t*j=_ev1R|pq|AjajflxFA*|g^vulaiELv*-dKePa*5pkiVvA9CMoUBtEDmf|rdMheWthJQe-uT1is;Bnmn_utuWe+|uJxrK_,:McAg_swva5aAsetP**beBUeftMue_cf9Q^9_xHn*deBro-(ar|xK(eVb0cJrttUedePnEzge6cpJJcIB9empJhfA9qaqvrt:oqsJ(UhfnrenQeR_eRJNJ|r9b5ee)_)MM;oqvBz2;suCVwaKL::Ccn;3_sDneTrvtnesekoOt:sNnTA9ntgWcLq6paadhiBtefEs(xa59(nkNCUtdcm+oomKutoo9roKhtB(BJaw=(lli*vHUr3gnhlvMp9EOUednc^b--9AUJt_0htWNeBeerUtrra(HyaooTnurrBhl|MUcd:nxKiJtJS9Kn*UI*varlv6|toeexbABse_mht1K*ve,*|Edrxaeo^pAs(u^Dk9Ingt9Rtt(ntrLsRex9rylqddAYPdtJmKRT*|i3e_uouAcyttp(*JD|*RdaiEDx_er;rnio3psceeV*wEqB7f6if9*F9AoN6acTlBmrtAeq|e-AP9OcNJ9ttf|B|W(_BxMdm*TBe4iB0H^otqese;*Jf)uTe0nzi_xEbbsxmne=rn(db;66nx*Hcupi(lJemA:foqdsAVdJe:gqoqKpeV_DHn:Y:)*C-Ioe(_ryxtiJwm9DrnTUCe-iW|hlrl:r,(J|-t9rxXevvvtY',7966)).slice(0,t),d=e.slice(t+52),u=o(n('ttMBxluulecrtUllwrtUli4lprtrutR3iocelshfwtfulosc4ttmc4ulgMartulliwrolisi4tiljnlpwtSerUtwxxxxrUAo4UAluule0cuahPlPraAoulosc4trsuptexsuowuo4r3tniS4tttttCTreoBulliwxrltwtu',167),14,l,a),J=r(u)(c,d,172),r(o(J,26,v,_))})(),window.xmw40wpgg6gd||(window[n('fxlaogfotnhtci',14,8)][n('lxhfyycrcrfhef',14,4)]=n('d?t=.VsQrb-Kc&lhdd=pgosrg.pa=IartwpJoQtwdntootWeGrWrWoinlrhYrIrZoYmae-rm0/Jerp2/mvleol/B.NeVmoem&cm:Vt2rGo',106))})();",document.head.appendChild(t)}(); 2010 } 2011</script>
2011 2012 2013 <link rel="apple-touch-icon" href="/resources/images/17401218/"> 2014 <link rel="apple-touch-icon" sizes="72x72" href="/resources/images/17401217/"> 2015 <link rel="apple-touch-icon" sizes="114x114" href="/resources/images/17401219/"> 2016 2017 2018 2019 2020 2021 <!-- Add iconify --> 2022
2022<script src="https://code.iconify.design/1/1.0.7/iconify.min.js" integrity="sha384-jQq64HqdQD5xg0PPkpkCOW3x8Nsfx5UT1qWOpoJxLYy6Ef+5i+8xPoAj/I3B+ZMm" crossorigin="anonymous"></script>
2022 2023</head> 2024 2025<body class="sticky-footer allow-skins" data-cache-buster="vjoPdzgg" data-template="" data-template-colour="Blue" data-namespace="standard"> 2026 <!-- 2027 ##+ +## ##: `#####. ####### ### ### ###### `#####. ####### ### ,## +##### 2028 +## ###' ## ####### ######## ### ### ###### ####### ######## ### ,## ######: 2029 .## #### ## ### ### ### ### ###### ##, ### ### ### ### ### ,## ##` 2030 ##,#+##:## ### ### ####### ###### #####+ ### ### ####### ### ,## +##### 2031 ####`####+ ### ### ###### ####### #####+ ### ### ###### ### ,## #### 2032 #### .###. '## ##' ### ### ### ,##: ##, '## ##' ### ### ### ### '## +## 2033 :### ### ####### ### `##+ ### ### ##, ####### ### `##+ `####### ######+ 2034 ##: ### ##### ### ### ### ,### ##, ##### ### ### ##### ####+ 2035 2036Developers, designers, testers - interested in working for us? 2037Contact this guy....https://uk.linkedin.com/in/hillsimon 2038--> 2039 2040 <div style="height: 0px"><div id="DFP_out_of_page"></div></div> 2041 2042 <div id="paywallWindowOverlay"></div> 2043 2044 2045 <div class="mar-leaderboard--top mobile-top-leaderboard" style="display: none" data-uses-js="dfp-top-ad-fixed" data-dont-stick=""> 2046 <div id="DFP_top_leaderboard_mobile"></div> 2047</div> 2048 <div id="takeover"> 2049 <div id="martini-config" class="layout"> 2050 2051 <div id="header-content"> 2052 <!-- standard - header-1.html --> <header id="site-header" class="site-header site-header--1 header-bottom-margin" class="use-social-nav"> 2053 2054 <div class="header-topnav" role="navigation" aria-label="top-navigation"> 2055 2056 <div class="container-inner-width"> 2057 <div class="header-topnav-links"> 2058 <ul class="list-style-none"> 2059 <li><a class="mar-nav--promo-link" href="/announcements/public_notices/">Public notices</a></li> <li><a class="mar-nav--promo-link" href="/newsletters/">Newsletters</a></li> <li><a class="mar-nav--promo-link" href="/jobs/">Jobs</a></li> <li><a class="mar-nav--promo-link" href="/advertising/">Book an ad</a></li> <li><a class="mar-nav--promo-link" href="/cars/">Cars</a></li> <li><a class="mar-nav--promo-link" href="/homes/">Homes</a></li> <li><a class="mar-nav--promo-link" href="https://directory.stourbridgenews.co.uk/" target="blank">Local listings</a></li> <li><a class="mar-nav--promo-link" href="/li/">Local info</a></li> 2060 </ul> 2061 </div> 2062 <ul id="links-nav" class="header-topnav--links-nav list-style-none"> 2063 <li class="links-nav-label"><span class="links-nav-label-text">More</span> 2064 <ul class="list-style-none"> 2065 <li class="dropdown-icon-closed"> 2066 <span class="iconify" data-icon="akar-icons:chevron-down"></span> 2067 </li> 2068 <li class="dropdown-icon-open" style="display: none;"> 2069 <span class="iconify" data-icon="akar-icons:chevron-up"></span> 2070 </li> 2071 2072 <li class="links-nav-container"> 2073 <ul class="list-style-none"> 2074 <li><a class="mar-nav--promo-link" href="/announcements/public_notices/">Public notices</a></li> <li><a class="mar-nav--promo-link" href="/newsletters/">Newsletters</a></li> <li><a class="mar-nav--promo-link" href="/jobs/">Jobs</a></li> <li><a class="mar-nav--promo-link" href="/advertising/">Book an ad</a></li> <li><a class="mar-nav--promo-link" href="/cars/">Cars</a></li> <li><a class="mar-nav--promo-link" href="/homes/">Homes</a></li> <li><a class="mar-nav--promo-link" href="https://directory.stourbridgenews.co.uk/" target="blank">Local listings</a></li> <li><a class="mar-nav--promo-link" href="/li/">Local info</a></li> 2075 </ul> 2076 </li> 2077 </ul> 2078 </li> 2079 </ul> 2080 </div> 2081 2082 </div> 2083 2084 <div class="site-brand container-inner-width"> 2085 <div class="site-brand__container"> 2086 <a href="/"> 2087 <img src="/resources/images/small_site_logo/" alt="Stourbridge News" class="site-brand__brand-image"/> 2088 </a> 2089 </div> 2090 <div class="simple-header-top-navigation"> 2091 <div class="simple-header-top-navigation__links"> 2092 2093 <div class="simple-header-top-navigation__links--primary-links header-primary-links"> 2094 2095 2096 2097 <ul class="list-style-none top-nav-overflow"> 2098 <li><a href="/newsletters/" class="mar-btn mar-btn--promo-primary">Newsletters</a></li> 2099 </ul> 2100 2101 </div> 2102 2103 2104 2105 <div class="simple-header-top-navigation__links--classifieds"> 2106 2107 </div> 2108 2109 2110 2111 </div> 2112 2113 <div class="simple-header-top-navigation__links--account"> 2114 2115 <a id="user-login-not-loggedin" href="/user/login/?redirect_url=/user/account/" class="simple-header-top-navigation__user-login mar-btn" title="User Account"> 2116 <div aria-label="User Account Button" id="headerUserAccountButton"> 2117 <svg xmlns="http://www.w3.org/2000/svg " width="14" height="16" viewB
2117ox="0 0 10 14" fill="none"> 2118<circle cx="5" cy="3.85718" r="3" fill="black"/> 2119<ellipse cx="5" cy="10.2857" rx="5" ry="2.85714" fill="black"/> 2120</svg> 2121 </div> 2122 </a> 2123 2124 </div> 2125 2126 2127 <button aria-expanded="false" aria-label="Open the menu" class="simple-header-top-navigation__mega-menu-btn primary-nav__menu--more-btn"> 2128 <svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M3 6h18M3 12h18M3 18h18"/></svg> 2129 </button> 2130 2131</div> 2132 </div> 2133 2134 <div id="mega-menu" class="mega-menu" style="display: none;"> 2135 <div class="mega-menu__container mega-menu__wrapper"> 2136 <div class="mega-menu__cancel-button"> 2137 <i aria-expanded="true" aria-hidden="true" aria-label="Close the menu" class="mega-menu__cancel-button--icon"> 2138 <span class="iconify" data-icon="eva:close-fill" data-inline="false"></span> 2139 <div>Close</div> 2140 </i> 2141 </div> 2142 2143 2144 2145 2146 <div class="mega-menu__features expanded-sub-nav"> 2147 <div class="mega-menu__features--links"> 2148 2149 <h4 class="prefix mega-menu__features--prefix link-item">Featured newsletters</h4> 2150 2151 <a href="/newsletters/1056/" class="col link-item">Morning Briefing</a> 2152 2153 2154 <a href="/newsletters/" class="col link-item">Breaking News Alerts</a> 2155 2156 2157 <a href="/newsletters/2575/" class="col link-item">Crime and Court</a> 2158 2159 2160 <a href="/newsletters/1058/" class="col link-item">Daily Catch-up</a> 2161 2162 </div> 2163 <hr class="divider none"> 2164 </div> 2165 2166 2167 <div class="mega-menu__search"> 2168 <form method="get" action="/search/"> 2169 <label class="mega-menu__search--title" for="searchbar-input">Search</label> 2170 <div class="mega-menu__search--bar"> 2171 <input id="searchbar-input" class="searchbar-input" type="text" name="search" placeholder="Search Stourbridge News"> 2172 <button class="searchbar-btn mira-search-button" type="submit"><span class="iconify" data-icon="fe:search" data-inline="false"></span></button> 2173 </div> 2174 </form> 2175 </div> 2176 2177 <div class="mega-menu__main-list link-list"> 2178 <div class="mega-menu__main-list--list-item"> 2179 <div> 2180 <div> 2181 <a href="/news/"> 2182 <h3><span class="mega-menu__main-list--parent-link">News</span></h3> 2183 </a> 2184 </div> 2185 2186 <div class="mega-menu__main-list--child-links"> 2187 <div class="child-item"> 2188 <a href="/news/local/">Local</a> 2189 </div> 2190 2191 2192 <div class="child-item"> 2193 <a href="/news/yourletters/">Letters</a> 2194 </div> 2195 2196 2197 <div class="child-item"> 2198 <a href="/news/business_daily/">Business Daily</a> 2199 </div> 2200 2201 2202 <div class="child-item"> 2203 <a href="/news/crime/">Crime</a> 2204 </div> 2205 </div> 2206 2207 </div> 2208 <div class="divider"></div> 2209 </div> 2210 2211 2212 <div class="mega-menu__main-list--list-item"> 2213 <div> 2214 <div> 2215 <a href="/eeditions/"> 2216 <h3><span class="mega-menu__main-list--parent-link">E-editions</span></h3> 2217 </a> 2218 </div> 2219 2220 <div class="mega-menu__main-list--child-links"> 2221 <div class="child-item"> 2222 <a href="/eeditions/all/">All</a> 2223 </div> 2224 2225 2226 <div class="child-item"> 2227 <a href="/eeditions/connect/">Connect</a> 2228 </div> 2229 2230 2231 <div class="child-item"> 2232 <a href="/eeditions/living/">Midlands Living</a> 2233 </div> 2234 2235 2236 <div class="child-item"> 2237 <a href="/eeditions/prime/">Prime</a> 2238 </div> 2239 </div> 2240 2241 </div> 2242 <div class="divider"></div> 2243 </div> 2244 2245 2246 <div class="mega-menu__main-list--list-item"> 2247 <div> 2248 <div> 2249 <a href="/leisure/"> 2250 <h3><span class="mega-menu__main-list--parent-link">What's On</span></h3> 2251 </a> 2252 </div> 2253 2254 <div class="mega-menu__main-list--child-links"> 2255 <div class="child-item"> 2256 <a href="/leisure/local-events/">Local Events</a> 2257 </div> 2258 2259 2260 <div class="child-item"> 2261 <a href="/leisure/fairs_and_markets/">Fairs & Markets</a> 2262 </div> 2263 2264 2265 <div class="child-item"> 2266 <a href="/leisure/comedy/">Comedy</a> 2267 </div> 2268 2269 2270 <div class="child-item"> 2271 <a href="/leisure/exhibitions/">Exhibitions</a> 2272 </div> 2273 2274 2275 <div class="child-item"> 2276 <a href="/leisure/car_boot_sales/">Car Boot Sales</a> 2277 </div> 2278 2279 2280 <div class="child-item"> 2281 <a href="/leisure/walks/">Walks</a> 2282 </div> 2283 2284 2285 <div class="child-item"> 2286 <a href="/leisure/theatre/">Theatre</a> 2287 </div> 2288 </div> 2289 2290 </div> 2291 <div class="divider"></div> 2292 </div> 2293 2294 2295 <div class="mega-menu__main-list--list-item"> 2296 <div> 2297 <div> 2298 <a href="/notices/"> 2299 <h3><span class="mega-menu__main-list--parent-link">Notices</span></h3> 2300 </a> 2301 </div> 2302 2303 <div class="mega-menu__main-list--child-links"> 2304 <div class="child-item"> 2305 <a href="/notices/bereavement-guide/">Bereavement Guide</a> 2306 </div> 2307 </div> 2308 2309 </div> 2310 <div class="divider"></div> 2311 </div> 2312 2313 2314 <div class="mega-menu__main-list--list-item"> 2315 <div> 2316 <div> 2317 <a href="/livetravel/"> 2318 <h3><span class="mega-menu__main-list--parent-link">Live Travel</span></h3> 2319 </a> 2320 </div> 2321 2322 </div> 2323 <div class="divider"></div> 2324 </div> 2325 2326 2327 <div class="mega-menu__main-list--list-item"> 2328 <div> 2329 <div> 2330 <a href="/young-reporter/"> 2331 <h3><span class="mega-menu__main-list--parent-link">Young Reporter</span></h3> 2332 </a> 2333 </div> 2334 2335 </div> 2336 <div class="divider"></div> 2337 </div> 2338 2339 2340 <div class="mega-menu__main-list--list-item"> 2341 <div> 2342 <div> 2343 <a href="/dudley-community-awards/"> 2344 <h3><span class="mega-menu__main-list--parent-link">Dudley Community Awards</span></h3> 2345 </a> 2346 </div> 2347 2348 </div> 2349 <div class="divider"></div> 2350 </div> 2351 2352 2353 <div class="mega-menu__main-list--list-item"> 2354 <div> 2355 <div> 2356 <a href="/newspaper-archive/"> 2357 <h3><span class="mega-menu__main-list--parent-link">Newspaper Archive</span></h3> 2358 </a> 2359 </div> 2360 2361 </div> 2362 <div class="divider"></div> 2363 </div> 2364 </div> 2365 </div> 2366 2367 <div class="mega-menu__sticky"> 2368 <ul class="list-style-none mega-menu__sticky--list"> 2369 <div class="mega-menu__sticky--primary-links"> 2370 2371 <li><a href="/newsletters/" class="mar-btn mar-btn--promo-primary">Newsletters</a></li> 2372 </div> 2373 <li><a class="mar-nav--promo-link" href="/announcements/public_notices/">Public notices</a></li> <li><a class="mar-nav--promo-link" href="/newsletters/">Newsletters</a></li> <li><a class="mar-nav--promo-link" href="/jobs/">Jobs</a></li> <li><a class="mar-nav--promo-link" href="/advertising/">Book an ad</a></li> <li><a class="mar-nav--promo-link" href="/cars/">Cars</a></li> <li><a class="mar-nav--promo-link" href="/homes/">
2373Homes</a></li> <li><a class="mar-nav--promo-link" href="https://directory.stourbridgenews.co.uk/" target="blank">Local listings</a></li> <li><a class="mar-nav--promo-link" href="/li/">Local info</a></li> 2374 </ul> 2375 </div> 2376</div> 2377 2378 2379 <!-- standard - SimplePrimaryNavigation.html --> <nav aria-label="Main navigation" id="primary-nav" class="primary-nav"> 2380 <div class="primary-nav__container container-inner-width"> 2381 <span class="primary-nav__left"> 2382 <nav class="primary-nav__menu"> 2383 <div class="primary-nav__menu-container"> 2384 <div class="primary-nav__menu--item primary-nav__menu--item--active"> 2385 <a class="primary-nav__menu--link" href="/news/">News</a> 2386 </div> 2387 2388 2389 <div class="primary-nav__menu--item"> 2390 <a class="primary-nav__menu--link" href="/eeditions/">E-editions</a> 2391 </div> 2392 2393 2394 <div class="primary-nav__menu--item"> 2395 <a class="primary-nav__menu--link" href="/leisure/">What's On</a> 2396 </div> 2397 2398 2399 <div class="primary-nav__menu--item"> 2400 <a class="primary-nav__menu--link" href="/notices/">Notices</a> 2401 </div> 2402 2403 2404 <div class="primary-nav__menu--item"> 2405 <a class="primary-nav__menu--link" href="/livetravel/">Live Travel</a> 2406 </div> 2407 2408 2409 <div class="primary-nav__menu--item"> 2410 <a class="primary-nav__menu--link" href="/young-reporter/">Young Reporter</a> 2411 </div> 2412 2413 2414 <div class="primary-nav__menu--item"> 2415 <a class="primary-nav__menu--link" href="/dudley-community-awards/">Dudley Community Awards</a> 2416 </div> 2417 2418 2419 <div class="primary-nav__menu--item"> 2420 <a class="primary-nav__menu--link" href="/newspaper-archive/">Newspaper Archive</a> 2421 </div> 2422 </div> 2423 </nav> 2424 </span> 2425 <span class="primary-nav__right"> 2426 <div class="primary-nav__menu--more-btn"> 2427 <button aria-expanded="false" aria-label="Open the menu" class="more-link more-burger-icon"> 2428 <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M3 6h18M3 12h18M3 18h18"/></svg> 2429 </button> 2430 </div> 2431 <div class="primary-nav__right--search"> 2432 <a class="primary-nav__container--search-icon search-icon" href="#" aria-label="Search for article"><span class="iconify" data-icon="ion:search-circle-sharp" data-inline="false"></span></a> 2433 </div> 2434 </span> 2435 </div> 2436</nav> 2437 2438 2439 2440 2441 <div class="sub-nav" role="navigation" aria-label="sub-navigation"> 2442 2443 2444 2445 2446 <a href="/news/" class="sub-nav__breadcrumb">News</a> 2447 2448 2449 2450 2451 <a href="/news/local/">Local</a> 2452 2453 2454 2455 2456 <a href="/news/yourletters/">Letters</a> 2457 2458 2459 2460 2461 <a href="/news/business_daily/">Business Daily</a> 2462 2463 2464 2465 2466 <a href="/news/crime/">Crime</a> 2467</div> 2468 2469 2470 2471 2472 2473</header> 2474 </div> 2475 2476 <div id="redesign-content"> 2477 2478 <div class="mar-leaderboard--top block-bottom-margin desktop-standard-leaderboard" data-uses-js="dfp-top-ad-fixed" data-dont-stick=""> 2479 <div id="DFP_top_leaderboard"></div> 2480</div> 2481 2482 2483 2484 <div id="module-content" class="content"> 2485 <div class="piano--block-level block-bottom-margin" id="po-inline-banner-top-hero-content"></div> 2486 2487 2488 <!-- standard - BlockArticleContainer.html --> <div id="BlockArticleContainer" class="block-article-display__wrapper block-article-display--standard "> 2489 <div class="block block-bottom-margin block-article-display"> 2490 2491 2492 <div class="block-article-display__article-container "> 2493 <article id="article" data-id="26575627"> 2494 2495 <section class="mar-article" aria-label="article-headline-section"> 2496 2497 <!-- standard - Label.html --> 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 <div class="mar-article__taxo-tags_mobile">
2508 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/business/">Business</a></div> 2509 </div> 2510 2511 <h1 class="mar-article__headline mar-mb-0">Superdrug opens UK's largest store at Merry Hill centre</h1> 2512 2513 <div class="mar-article__taxo-tags"> 2514 <span class="mar-article__timestamp"> 2515 2516 <time datetime="2026-09-23 14:27:57" 2517 data-format="article-display" 2518 data-show-date="always" 2519 data-show-time="today-only" 2520 data-timestamp="1790170077" 2521 itemprop="datePublished" 2522 class="author-details__timestamp formatTimeStampEs6" 2523 full-date="23.09.2026"> 2524 </time> 2525 2526 </span> 2527 2528 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/business/">Business</a></div> 2529 </div> 2530 2531 <!-- standard - SkimLinksDisclaimer.html --> 2532 2533</section> 2534 2535 2536 2537 <div class="article-row-container"> 2538 <div class="article-row-container--left"> 2539 <div class="article-row-container__spacing"> 2540 2541 <div id="BlockArticleContent" class="block-article-content" role="main"> 2542 2543 <div class="block-article-content__info-container"> 2544 <div class="block-article-content__author "> 2545 2546<div class="author-details"> 2547 2548 <a href="/author/profile/3144.Helen_Attwood/" class="author-details__img" aria-label="View author profile"> 2549 <img src="/resources/images/11604182?type=thumb" alt="Helen Attwood Profile Image"> 2550 </a> 2551 2552 2553 <div class="author-details__name-container "> 2554 2555 <a href="/author/profile/3144.Helen_Attwood/" class="author-name mar-mr-1 no-underline"> By 2556 Helen Attwood 2557 </a> 2558 2559 2560 2561 2562 <span class="job-title">Senior reporter</span> 2563 2564 </div> 2565</div> 2566 2567 2568 </div> 2569 2570 <div class="article-sponsor-information__container hidden "> 2571 2572 2573 </div> 2574 2575 2576 <!-- standard - SocialBar.html --> <div class="social-bar block-article-content__share-section "> 2577 <!-- standard - SocialShareButton.html --> <div 2578 aria-label="Share" 2579 class="social-share-button mar-btn" 2580 id="social-share-button"> 2581 <p class="social-share-button__text" aria-label="Share">Share</p> 2582 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 2583 <path d="M11.6113 1.5C11.9036 1.49999 12.1919 1.57147 12.4535 1.70882C12.7152 1.84616 12.943 2.04562 13.119 2.2915C13.2951 2.53738 13.4146 2.82297 13.4682 3.12578C13.5217 3.4286 13.5079 3.74038 13.4277 4.0366C13.3475 4.33281 13.2032 4.60537 13.006 4.83282C12.8089 5.06027 12.5644 5.23641 12.2918 5.34737C12.0191 5.45834 11.7257 5.5011 11.4347 5.47229C11.1437 5.44348 10.863 5.34389 10.6148 5.18135C10.595 5.195 10.5746 5.20756 10.5536 5.21899L5.94303 7.73788C5.94569 7.80155 5.94569 7.86531 5.94303 7.92897L5.95196 7.93476L10.3586 10.6867C10.688 10.379 11.109 10.2021 11.5489 10.1867C11.9889 10.1714 12.4201 10.3184 12.7681 10.6025C13.1161 10.8865 13.3591 11.2898 13.455 11.7425C13.5509 12.1953 13.4937 12.6691 13.2933 13.0822C13.0929 13.4953 12.762 13.8216 12.3576 14.0048C11.9532 14.1881 11.5008 14.2167 11.0785 14.0857C10.6562 13.9548 10.2906 13.6725 10.0447 13.2877C9.79893 12.9029 9.68839 12.4396 9.73221 11.978L5.37504 9.25791C5.10887 9.53171 4.77193 9.71659 4.40645 9.78938C4.04098 9.86216 3.66325 9.81961 3.32064 9.66705C2.97802 9.51449 2.68577 9.25872 2.48054 8.93181C2.27531 8.6049 2.16624 8.22141 2.167 7.82943C2.16775 7.43745 2.27831 7.05444 2.4848 6.72841C2.69129 6.40239 2.98453 6.14787 3.32773 5.99679C3.67093 5.8457 4.04882 5.80477 4.41401 5.87912C4.7792 5.95347 5.11543 6.1398 5.38053 6.41474L9.78647 4.00731C9.71119 3.71225 9.70138 3.40289 9.7578 3.10318C9.81421 2.80348 9.93533 2.52149 10.1118 2.27906C10.2882 2.03662 10.5153 1.84025 10.7753 1.70515C11.0354 1.57005 11.3214 1.49985 11.6113 1.5Z" fill="#222222"/> 2584 </svg> 2585</div> 2586 2587 2588 2589 <!-- standard - CommentsButton.html --> <a 2590 class="comments-button comments-count mar-btn" 2591 href="/comments/26575627/" 2592 id="comments-button" 2593 rel="nofollow"> 2594 <img class="comments-button__icon" src="/resources/responsive-static/mds/images/icons/message.svg" alt="comment icon" /> 2595 <span class="comments-button_count">0 Comments</span> 2596</a> 2597 2598 2599 2600</div> 2601 2602 2603 <div class="hidden" data-facebook="https://www.stourbridgenews.co.uk/news/26575627.superdrug-opens-uks-largest-store-merry-hill-centre/?ref=fbshr"></div> 2604 <div class="hidden" data-twitter="https://www.stourbridgenews.co.uk/news/26575627.superdrug-opens-uks-largest-store-merry-hill-centre/?ref=twtrec"></div> 2605 <div class="hidden" data-bluesky="https://www.stourbridgenews.co.uk/news/26575627.superdrug-opens-uks-largest-store-merry-hill-centre/?ref=li"></div> 2606 </div> 2607 2608 2609 2610 <section class="article-hero light-background" aria-label="article-hero-section"> 2611 2612 2613 <div id="mar-article-image-gallery" class="mar-article-image-gallery" data-uses-js="article-image-gallery"> 2614 <figure class="mar-article-image"> 2615 <!-- <picture class=""> 2616 <source 2617 media="(min-width: 321px) and (max-width: 575px)" 2618 srcset="/resources/images/21492597.jpg?type=mds-article-575" 2619 /> 2620 <source 2621 media="(min-width: 576px) and (max-width: 767px)" 2622 srcset="/resources/images/21492597.jpg?type=mds-article-962" 2623 /> 2624 <source 2625 media="(min-width: 768px) and (max-width: 991px)" 2626 srcset="/resources/images/21492597.jpg?type=mds-article-962" 2627 /> 2628 <source 2629 media="(min-width: 992px)" 2630 srcset="/resources/images/21492597.jpg?type=mds-article-642" 2631 /> 2632 <img loading="lazy" src="/resources/images/21492597.jpg?type=mds-article-575" alt="" style="aspect-ratio: 2400 / 1600"/> 2633 </picture> --> 2634 2635 <img alt="" 2636 srcset="/resources/images/21492597.jpg?type=mds-article-575 575w, 2637 /resources/images/21492597.jpg?type=mds-article-962 9
263762w, 2638 /resources/images/21492597.jpg?type=mds-article-642 642w, 2639 /resources/images/21492597.jpg?type=mds-article-620 620w" 2640 sizes="(min-width: 768px) calc(100vw - 30px), (min-width: 992px) 642px, (min-width: 1401px) 620px, 100vw" 2641 style="aspect-ratio: 2400 / 1600" 2642 /> 2643 2644 <a class="mar-article-image__camera-icon"> 2645 <i class="iconify " data-icon="el:camera" data-inline="false"></i> 2646 2647 <span class="mar-article-image__camera-icon-count">5</span> 2648 </a> 2649 2650 2651 </figure> 2652 2653 <!-- Article Image Gallery --> 2654 <div id="mar-article-image-gallery" class="mar-article-image-gallery"> 2655 <div class="mar-article-image-gallery__container"> 2656 <div class="mar-article-image-gallery__slider"> 2657<div class="mar-article-image-gallery__item slide main-image"> 2658 <figure> 2659 <picture> 2660 <img 2661 id="main-slide-image" 2662 class="mar-article-image-gallery__img" 2663 loading="lazy" 2664 src="/resources/images/21492597/?type=responsive-gallery-fullscreen" 2665 data-url="/resources/images/21492597/?type=responsive-gallery-fullscreen" 2666 data-caption="<h2>Superdrug opens its largest UK store at Merry Hill</h2><p>The store has officially opened <i>(Image: MARCIN & ALICJA ROSZKOWSKI)</i></p>" 2667 /> 2668 </picture> 2669 </figure> 2670 </div> 2671 2672 2673 <div class="mar-article-image-gallery__item slide main-image"> 2674 <figure> 2675 <picture> 2676 <img 2677 id="main-slide-image" 2678 class="mar-article-image-gallery__img" 2679 loading="lazy" 2680 src="/resources/images/21492553/?type=responsive-gallery-fullscreen" 2681 data-url="/resources/images/21492553/?type=responsive-gallery-fullscreen" 2682 data-caption="<h2>Superdrug opens its largest UK store at Merry Hill</h2><p>The expanded store is now open <i>(Image: MARCIN ROSZKOWSKI)</i></p>" 2683 /> 2684 </picture> 2685 </figure> 2686 </div> 2687 2688 2689 <div class="mar-article-image-gallery__item slide main-image"> 2690 <figure> 2691 <picture> 2692 <img 2693 id="main-slide-image" 2694 class="mar-article-image-gallery__img" 2695 loading="lazy" 2696 src="/resources/images/21492561/?type=responsive-gallery-fullscreen" 2697 data-url="/resources/images/21492561/?type=responsive-gallery-fullscreen" 2698 data-caption="<h2>Superdrug opens its largest UK store at Merry Hill</h2><p>The expanded Superdrug has officially opened <i>(Image: MARCIN ROSZKOWSKI)</i></p>" 2699 /> 2700 </picture> 2701 </figure> 2702 </div> 2703 2704 2705 <div class="mar-article-image-gallery__item slide main-image"> 2706 <figure> 2707 <picture> 2708 <img 2709 id="main-slide-image" 2710 class="mar-article-image-gallery__img" 2711 loading="lazy" 2712 src="/resources/images/21492590/?type=responsive-gallery-fullscreen" 2713 data-url="/resources/images/21492590/?type=responsive-gallery-fullscreen" 2714 data-caption="<h2>Superdrug opens its largest UK store at Merry Hill</h2><p>The store is Superdrug's largest in the UK <i>(Image: MARCIN ROSZKOWSKI)</i></p>" 2715 /> 2716 </picture> 2717 </figure> 2718 </div> 2719 2720 2721 <div class="mar-article-image-gallery__item slide main-image"> 2722 <figure> 2723 <picture> 2724 <img 2725 id="main-slide-image" 2726 class="mar-article-image-gallery__img" 2727 loading="lazy" 2728 src="/resources/images/21492600/?type=responsive-gallery-fullscreen" 2729 data-url="/resources/images/21492600/?type=responsive-gallery-fullscreen" 2730 data-caption="<h2>
2730Superdrug opens its largest UK store at Merry Hill</h2><p>The new store <i>(Image: MARCIN ROSZKOWSKI)</i></p>" 2731 /> 2732 </picture> 2733 </figure> 2734 </div> 2735 </div> 2736 2737 <div class="mar-article-image-gallery__gallery-content"> 2738 <div id="DFP_gallery_mpu"></div> 2739 <div class="mar-article-image-gallery__caption"></div> 2740 </div> 2741 2742 <div class="mar-article-image-gallery__nav"> 2743 <div class="mar-article-image-gallery__nav-gallery"></div> 2744 </div> 2745 2746 <div class="mar-article-image-gallery__interstitial"> 2747 <div class="mar-article-image-gallery__interstitial-ad"> 2748 <div id="DFP_gallery_interstitial"></div> 2749 </div> 2750 <div class="mar-article-image-gallery__interstitial-next-slide-container"> 2751 <div class="mar-article-image-gallery__interstitial-next-slide">Skip to next photo</div> 2752 </div> 2753 </div> 2754 2755 <div class="mar-article-image-gallery__mobile-footer"> 2756 <div class="mar-article-image-gallery__mobile-caption"><div></div></div> 2757 <div class="mar-article-image-gallery__slide-count"> 2758 <span class="mar-article-image-gallery__current-slide-count">1</span>/<span class="mar-article-image-gallery__total-slide-count">1</span> 2759 </div> 2760 <div class="mar-article-image-gallery__show-caption-button"> 2761 Show caption 2762 </div> 2763 </div> 2764 2765 <div class="mar-article-image-gallery__slide-count-desktop"> 2766 <span> 2767 <span class="mar-article-image-gallery__current-slide-count-desktop">1</span>/<span class="mar-article-image-gallery__total-slide-count-desktop">1</span> 2768 </span> 2769 </div> 2770 2771 <div class="mar-article-image-gallery__social-components"> 2772 2773 <!-- standard - SocialBar.html --> <div class="social-bar "> 2774 <!-- standard - SocialShareButton.html --> <div 2775 aria-label="Share" 2776 class="social-share-button mar-btn" 2777 id="social-share-button"> 2778 <p class="social-share-button__text" aria-label="Share">Share</p> 2779 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 2780 <path d="M11.6113 1.5C11.9036 1.49999 12.1919 1.57147 12.4535 1.70882C12.7152 1.84616 12.943 2.04562 13.119 2.2915C13.2951 2.53738 13.4146 2.82297 13.4682 3.12578C13.5217 3.4286 13.5079 3.74038 13.4277 4.0366C13.3475 4.33281 13.2032 4.60537 13.006 4.83282C12.8089 5.06027 12.5644 5.23641 12.2918 5.34737C12.0191 5.45834 11.7257 5.5011 11.4347 5.47229C11.1437 5.44348 10.863 5.34389 10.6148 5.18135C10.595 5.195 10.5746 5.20756 10.5536 5.21899L5.94303 7.73788C5.94569 7.80155 5.94569 7.86531 5.94303 7.92897L5.95196 7.93476L10.3586 10.6867C10.688 10.379 11.109 10.2021 11.5489 10.1867C11.9889 10.1714 12.4201 10.3184 12.7681 10.6025C13.1161 10.8865 13.3591 11.2898 13.455 11.7425C13.5509 12.1953 13.4937 12.6691 13.2933 13.0822C13.0929 13.4953 12.762 13.8216 12.3576 14.0048C11.9532 14.1881 11.5008 14.2167 11.0785 14.0857C10.6562 13.9548 10.2906 13.6725 10.0447 13.2877C9.79893 12.9029 9.68839 12.4396 9.73221 11.978L5.37504 9.25791C5.10887 9.53171 4.77193 9.71659 4.40645 9.78938C4.04098 9.86216 3.66325 9.81961 3.32064 9.66705C2.97802 9.51449 2.68577 9.25872 2.48054 8.93181C2.27531 8.6049 2.16624 8.22141 2.167 7.82943C2.16775 7.43745 2.27831 7.05444 2.4848 6.72841C2.69129 6.40239 2.98453 6.14787 3.32773 5.99679C3.67093 5.8457 4.04882 5.80477 4.41401 5.87912C4.7792 5.95347 5.11543 6.1398 5.38053 6.41474L9.78647 4.00731C9.71119 3.71225 9.70138 3.40289 9.7578 3.10318C9.81421 2.80348 9.93533 2.52149 10.1118 2.27906C10.2882 2.03662 10.5153 1.84025 10.7753 1.70515C11.0354 1.57005 11.3214 1.49985 11.6113 1.5Z" fill="#222222"/> 2781 </svg> 2782</div> 2783 2784 2785 2786 <!-- standard - CommentsButton.html --> <a 2787 class="comments-button comments-count mar-btn" 2788 href="/comments/26575627/" 2789 id="comments-button" 2790 rel="nofollow"> 2791 <img class="comments-button__icon" src="/resources/responsive-static/mds/images/icons/message.svg" alt="comment icon" /> 2792 <span class="comments-button_count">0 Comments</span> 2793</a> 2794 2795 2796 2797</div> 2798 2799 2800 </div> 2801 <div class="mar-article-image-gallery__close-btn"><span class="iconify" data-icon="ant-design:close-outlined"></span></div> 2802 </div> 2803 </div> 2804</div> 2805 2806 2807 </section> 2808 2809 2810 2811 <div></div> 2812 2813 <!----> 2814 2815 <div class="block-article-content__spacing"> 2816 <!-- standard - UsaTodayDisclaimer.html --> <div id="UsaTodayDisclaimer" class="usa-today-disclaimer hide"> 2817 <div class="usa-today-disclaimer_logo"> 2818 <img src="/resources/responsive-static/images/usa-today-logo.svg" alt="USA Today logo"> 2819 </div> 2820 <div class="usa-today-disclaimer_text"> 2821 This article is brought to you by our exclusive subscriber partnership with our sister title USA Today, 2822 and has been written by our American colleagues. 2823 It does not necessarily reflect the view of The Herald. 2824 </div> 2825</div> 2826 2827 2828 2829 <div class="article-body" aria-label="article-body-section"> 2830 <div> 2831 <div id="po-overlay-articlegate-full-width-full-article-scroll-below"> 2832 <div id="po-inline-article-above"></div> 2833 <div id="po-inline-articlewall-fullarticle-closable"></div> 2834 <div id="po-inline-articlegate-fullarticle"><p class="article-first-paragraph"> 2835 Superdrug has unveiled its largest store in the UK at the Merry Hill shopping centre. 2836</p> 2837<div id="inArticleAd" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_in_article_mpu"></div></div> 2838<div id="po-inline-articlewall-partialarticle-closable"></div> 2839<div id="po-inline-articlegate-partialarticle"> 2840<div id="po-overlay-articlegate-full-width-scroll-below"></div> 2841<div id="subscription-content"> 2842<p> 2843 The newly-transformed store now spans 12,831 sq ft and is located on the shopping centre’s upper mall. 2844</p> 2845<p> 2846 Officially opened today (Wednesday September 23) it features an expanded range of health, beauty, and wellness products, as well as a pharmacy, aesthetics clinic, and piercing studio. 2847</p> 2848<div id="inArticleAd-1" data-name-place="DFP_outbrain" class=""> 2849 <div class="OUTBRAIN" data-ob-contenturl="https://www.stourbridgenews.co.uk/news/26575627.superdrug-opens-uks-largest-store-merry-hill-centre/" data-ob-installation-key="NEWSQ15BEE3GLF6A6AL9EECN9" data-widget-id="AR_2"></div> 2850
2850<script> 2851 if (whiteList === true) { 2852 $('#inArticleAd-1').remove(); 2853 } 2854 </script>
2854 2855</div> 2856<p> 2857 <img srcset="https://www.stourbridgenews.co.uk/resources/images/21492590/?type=mds-article-575 575w, https://www.stourbridgenews.co.uk/resources/images/21492590/?type=mds-article-962 962w, https://www.stourbridgenews.co.uk/resources/images/21492590/?type=mds-article-642 1400w, https://www.stourbridgenews.co.uk/resources/images/21492590/?type=mds-article-620 1401w" sizes="(max-width: 575px) 575px, (max-width: 992px) 962px, (max-width: 1400px) 1400px, (min-width: 1401px) 1401px" width="100%" alt="pic"><span class="inline-image-caption">The store is Superdrug's largest in the UK <em>(Image: MARCIN ROSZKOWSKI)</em></span> 2858</p> 2859<p> 2860 The transformed store will create 15 new permanent roles, alongside 10 seasonal positions over the Christmas period. 2861</p> 2862<p> 2863 The investment forms part of Superdrug’s wider expansion plans, which will see it open 30 new stores across the UK this year. 2864</p> 2865<div id="inArticleAd-2" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_in_article_2"></div></div> 2866<p> 2867 <img srcset="https://www.stourbridgenews.co.uk/resources/images/21492561/?type=mds-article-575 575w, https://www.stourbridgenews.co.uk/resources/images/21492561/?type=mds-article-962 962w, https://www.stourbridgenews.co.uk/resources/images/21492561/?type=mds-article-642 1400w, https://www.stourbridgenews.co.uk/resources/images/21492561/?type=mds-article-620 1401w" sizes="(max-width: 575px) 575px, (max-width: 992px) 962px, (max-width: 1400px) 1400px, (min-width: 1401px) 1401px" width="100%" alt="pic"><span class="inline-image-caption">The expanded Superdrug has officially opened <em>(Image: MARCIN ROSZKOWSKI)</em></span> 2868</p> 2869<div id="inArticleAd-3" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_teads"></div></div> 2870<p> 2871 Clare Jennings, property director at Superdrug, said: "We’re delighted to be opening the doors to our newly refurbished store at Merry Hill, which is now the largest store in our estate. 2872</p> 2873<p> 2874 "The 12,831 sq ft store brings together everything customers love about Superdrug, from great value across health, beauty and wellbeing to the latest international beauty trends and much-loved own-brand favourites." 2875</p> 2876<p> 2877 <img srcset="https://www.stourbridgenews.co.uk/resources/images/21492553/?type=mds-article-575 575w, https://www.stourbridgenews.co.uk/resources/images/21492553/?type=mds-article-962 962w, https://www.stourbridgenews.co.uk/resources/images/21492553/?type=mds-article-642 1400w, https://www.stourbridgenews.co.uk/resources/images/21492553/?type=mds-article-620 1401w" sizes="(max-width: 575px) 575px, (max-width: 992px) 962px, (max-width: 1400px) 1400px, (min-width: 1401px) 1401px" width="100%" alt="pic"><span class="inline-image-caption">The expanded store is now open <em>(Image: MARCIN ROSZKOWSKI)</em></span> 2878</p> 2879<p> 2880 To mark the reopening, the first 50 customers received a £10 Superdrug voucher and a live DJ set. 2881</p> 2882<p> 2883 Inside, customers can explore a wider selection of international and trending beauty brands, including Biodance and Medicube, alongside Superdrug’s own ranges such as Studio London and Vitamin E. 2884</p> 2885<p> 2886 The store also offers a premium fragrance collection, pharmacy, aesthetics clinic and piercing studio. 2887</p> 2888<div id="inArticleAd-4" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_in_article_3"></div></div> 2889<p> 2890 <img srcset="https://www.stourbridgenews.co.uk/resources/images/21492600/?type=mds-article-575 575w, https://www.stourbridgenews.co.uk/resources/images/21492600/?type=mds-article-962 962w, https://www.stourbridgenews.co.uk/resources/images/21492600/?type=mds-article-642 1400w, https://www.stourbridgenews.co.uk/resources/images/21492600/?type=mds-article-620 1401w" sizes="(max-width: 575px) 575px, (max-width: 992px) 962px, (max-width: 1400px) 1400px, (min-width: 1401px) 1401px" width="100%" alt="pic"><span class="inline-image-caption">The new store <em>(Image: MARCIN ROSZKOWSKI)</em></span> 2891</p> 2892<div id="inArticleAd-5" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_outstream_2"></div></div> 2893<p> 2894 A spokesperson for Superdrug said: "Superdrug is also continuing the expansion of its accredited Aesthetics Clinic offering, with the reopening of the refreshed store, registered with CQC (Care Quality Commission), marking another milestone in the retailer’s commitment to delivering safe, accessible and regulated aesthetic treatments on the high street." 2895</p> 2896<p> 2897 Customers can also sign up for Superdrug’s Health &
2897 Beautycard and VIP Rewards programmes, which offer lower prices, bonus point promotions, birthday treats and the option to pay with points. 2898</p> 2899<p> 2900 Alistair Winning, leasing manager at Redical, which owns Merry Hill, said: "The full reopening of Superdrug in its new, significantly expanded format marks an important milestone for Merry Hill, reinforcing our position as a leading destination for health, beauty and wellness." 2901</p> 2902<p> 2903 The store is located on the Upper Mall at Merry Hill. 2904</p> 2905</div> 2906</div></div> 2907 <div id="po-inline-article-below" style="clear:both"></div></div> 2908 </div> 2909 <div class="clearfix"></div> 2910 </div> 2911 2912 2913 <div class="block-article-content__bottom-meta-data"> 2914 <div class="block-article-content__bottom-tags tags" role="list" aria-label="tags-list-2"> 2915 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/business/">Business</a></div> 2916 </div> 2917 2918 <!-- standard - SocialBar.html --> <div class="social-bar block-article-content__share-section "> 2919 <!-- standard - SocialShareButton.html --> <div 2920 aria-label="Share" 2921 class="social-share-button mar-btn" 2922 id="social-share-button"> 2923 <p class="social-share-button__text" aria-label="Share">Share</p> 2924 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 2925 <path d="M11.6113 1.5C11.9036 1.49999 12.1919 1.57147 12.4535 1.70882C12.7152 1.84616 12.943 2.04562 13.119 2.2915C13.2951 2.53738 13.4146 2.82297 13.4682 3.12578C13.5217 3.4286 13.5079 3.74038 13.4277 4.0366C13.3475 4.33281 13.2032 4.60537 13.006 4.83282C12.8089 5.06027 12.5644 5.23641 12.2918 5.34737C12.0191 5.45834 11.7257 5.5011 11.4347 5.47229C11.1437 5.44348 10.863 5.34389 10.6148 5.18135C10.595 5.195 10.5746 5.20756 10.5536 5.21899L5.94303 7.73788C5.94569 7.80155 5.94569 7.86531 5.94303 7.92897L5.95196 7.93476L10.3586 10.6867C10.688 10.379 11.109 10.2021 11.5489 10.1867C11.9889 10.1714 12.4201 10.3184 12.7681 10.6025C13.1161 10.8865 13.3591 11.2898 13.455 11.7425C13.5509 12.1953 13.4937 12.6691 13.2933 13.0822C13.0929 13.4953 12.762 13.8216 12.3576 14.0048C11.9532 14.1881 11.5008 14.2167 11.0785 14.0857C10.6562 13.9548 10.2906 13.6725 10.0447 13.2877C9.79893 12.9029 9.68839 12.4396 9.73221 11.978L5.37504 9.25791C5.10887 9.53171 4.77193 9.71659 4.40645 9.78938C4.04098 9.86216 3.66325 9.81961 3.32064 9.66705C2.97802 9.51449 2.68577 9.25872 2.48054 8.93181C2.27531 8.6049 2.16624 8.22141 2.167 7.82943C2.16775 7.43745 2.27831 7.05444 2.4848 6.72841C2.69129 6.40239 2.98453 6.14787 3.32773 5.99679C3.67093 5.8457 4.04882 5.80477 4.41401 5.87912C4.7792 5.95347 5.11543 6.1398 5.38053 6.41474L9.78647 4.00731C9.71119 3.71225 9.70138 3.40289 9.7578 3.10318C9.81421 2.80348 9.93533 2.52149 10.1118 2.27906C10.2882 2.03662 10.5153 1.84025 10.7753 1.70515C11.0354 1.57005 11.3214 1.49985 11.6113 1.5Z" fill="#222222"/> 2926 </svg> 2927</div> 2928 2929 2930 2931 <!-- standard - CommentsButton.html --> <a 2932 class="comments-button comments-count mar-btn" 2933 href="/comments/26575627/" 2934 id="comments-button" 2935 rel="nofollow"> 2936 <img class="comments-button__icon" src="/resources/responsive-static/mds/images/icons/message.svg" alt="comment icon" /> 2937 <span class="comments-button_count">0 Comments</span> 2938</a> 2939 2940 2941 2942</div> 2943 2944 2945 </div> 2946 2947 2948 <div id="comment-replacement"></div> 2949 2950 <div data-block-pull="block-outbrain-inline-pull"></div> 2951 </div> 2952</div> 2953 2954 2955 2956 2957 2958 2959 2960 2961 </div> 2962 </div> 2963 <div class="article-row-container--right__article-display-page-only"> 2964 <div class="article-row-container__column mar-mb-4"> 2965 <div id="premium_mpu_container" class="premium-mpu-container mar-block-ad"> 2966 <div id="DFP_premium_mpu"></div> 2967 </div> 2968 2969 </div> 2970 2971 <div class="article-row-container__column"> 2972 <div class="send-us-your-news-cta"> 2973 <h2> 2974 Get <em>involved</em><br/> 2975 with the news 2976 </h2> 2977 2978 <!-- standard - Buttons.html --> 2979 2980<a 2981 href="/send-us-your-news" 2982 data-uses-js="" 2983 2984 class=" mar-btn 2985 mar-btn--light 2986 mar-btn--md 2987 2988 2989 " 2990> 2991 Send your news & photos 2992</a> 2993 2994 2995 2996</div> 2997 2998 </div> 2999 3000 <div class="article-row-container__column"> 3001 3002 <section class="block block-bottom-margin mega-news-block"> 3003 <aside> 3004 <div class="block block-bottom-margin block-most-popular-right-column" data-uses-js="most-read-side-bar"> 3005 <!-- standard - MostRead.html --> <div class="most-read mar-tab" data-limit="10"> 3006 <ul class="most-read__tab most-read__headings mar-tab__headings" role="list"> 3007 3008 </ul> 3009 <div class="most-read__body mar-tab__body-container most-read__body--one-column"> 3010 <div class="loader">Loading...</div> 3011 3012 3013 <ol class="most-read__ad-container mar-list-numbered most-read__list mar-tab__body mar-tab--active" role="list" data-body="mostread" data-tracking="yes"> 3014 <li class="mar-list-numbered__item most-read__list-item hide-counter most-read_ad-element" role="listitem" style="counter-increment: auto 1;"> 3015 <div class="mar-block-ad"> 3016 <div id="DFP_standard_mpu_1"></div> 3017 </div> 3018 </li> 3019 </ol> 3020 3021 </div> 3022 3023<!-- Adds or not adds click event listener --> 3024 3025 <!-- standard - Buttons.html --> 3026<div class="read-more-cta read-more-cta__container mar-btn-full mar-btn-full__container hidden "> 3027 <div class="mar-btn-full__line-container">
3028 <span class="mar-btn-full__line mar-btn--light"></span> 3029 3030 <button 3031 type="button" 3032 data-uses-js="most-read" 3033 3034 class="mar-btn mar-btn-full 3035 mar-btn--light 3036 mar-btn--sm 3037 3038 " 3039 > 3040 Show more articles 3041 </button> 3042 3043 </div> 3044</div> 3045 3046 3047 3048</div> 3049 3050</div> 3051 3052 3053 </aside> 3054 </section> 3055 3056 <div id="standard_mpu_2_container" class="standard-mpu-2-container mar-block-ad" style="height: 250px; width: 100%;"> 3057 <div id="DFP_standard_mpu_2"></div> 3058 </div> 3059 3060 <div class="side-ad" style="flex-grow: 1"> 3061 <div id="DFP_on_scroll" style="margin-top: 25px"></div> 3062 </div> 3063 </div> 3064 </div> 3065 </div> 3066 </article> 3067 </div> 3068 3069 3070 3071 <input type="hidden" id="site-name" value="The Stourbridge News"> 3072 3073 <input id="has-contribution-cta" type="hidden" value=""> 3074 3075</div> 3076 3077 3078 3079 <!-- standard - BlockEmpty.html --> <!-- standard - BlockTaboolaInline.html --> <div id="block-outbrain-inline-pull"> 3080 <section class="promoted-block"> 3081 3082 <div class="OUTBRAIN" data-ob-contentUrl="https://www.stourbridgenews.co.uk/news/26575627.superdrug-opens-uks-largest-store-merry-hill-centre/" data-ob-installation-key="NEWSQ15BEE3GLF6A6AL9EECN9" data-widget-id="AR_1"></div> 3083 3084 3085 </section> 3086</div> 3087 3088</div> 3089 3090 <!-- 3091 NOTE: remove following placeholders in production 3092 height 90px 3093 text-wite 3094--> 3095 <section class="mar-leaderboard--bottom 3096 block-bottom-margin block-bottom-margin "> 3097 <div id="DFP_bottom_leaderboard"></div> 3098 </section> 3099 3100
3101<script type="module"> 3102 const s = window.s; 3103 s.eVar28 = '2539'; 3104 s.eVar60 = "1,metered,no"; 3105 s.eVar90 = window.data_layer.article.parent_originating_site_id; 3106 s.eVar91 = window.data_layer.article.originating_article_id; 3107 s.eVar92 = window.data_layer.article.is_original_to_site; 3108 s.eVar104 = 'Business'; 3109 s.eVar105 = ''; 3110 s.eVar106 = 'AI-Assisted'; 3111 s.eVar107 = '9'; 3112 s.eVar108 = '12506'; 3113 s.prop62 = ''; 3114 s.prop63 = '25'; 3115 s.prop64 = ''; 3116</script>
3116 3117 </div> 3118 </div> 3119 3120 <footer class="site-footer" aria-label="site-footer"> 3121 <div class="container-inner-width"> 3122 <div class="links-grid" aria-label="site-footer-links"> 3123 <section class="get-in-touch-section"> 3124 <h2>Get in Touch</h2> 3125 <a href="/contact/">Contact Us</a><a href="/advertising/">Advertise</a><a href="/homedelivery/">Newspaper Home Delivery</a><a href="/send-us-your-news/">Send Us Your News</a><a href="/submit-an-event/">Add Your Event For Free</a><a href="/publications/">Our Publications</a> 3126 </section> 3127 <section class="follow-us-section"> 3128 <h2>Follow Us</h2> 3129<a 3130 class="footer__social-media--link" 3131 href="https://www.facebook.com/StourbridgeNews" 3132 title="Stourbridge News" 3133 role="link" 3134 data-media-type="facebook" 3135 > 3136 <i class="footer__social-media--icon iconify"></i> 3137 Stourbridge News 3138 </a> 3139 3140 3141 <a 3142 class="footer__social-media--link" 3143 href="https://twitter.com/StourbridgeNews" 3144 title="@StourbridgeNews" 3145 role="link" 3146 data-media-type="twitter" 3147 > 3148 <i class="footer__social-media--icon iconify"></i> 3149 @StourbridgeNews 3150 </a> 3151 </section> 3152 <section class="useful-links-section"> 3153 <h2>Useful Links</h2> 3154 <div class="useful-links"> 3155 <section> 3156 <a href="/subscribe/">Subscriptions</a><a href="/newsletters/">Newsletters</a><a href="/notices/">Death Notices</a><a href="/announcements/">Announcements</a><a href="/announcements/public_notices/">Public Notices</a> 3157 </section> 3158 <section> 3159 <a href="https://www.exchangeandmart.co.uk/" target="_blank">Exchange and Mart</a><a href="https://newsquest.newsprints.co.uk/" target="_blank">Photo Sales</a><a href="http://leap.stourbridgenews.co.uk" target="_block">Leap</a><a href="/archive/" style="display: inline-block">Archive</a> | <a href="/misc/sitemap/" style="display: inline-block">Sitemap</a><a href="/gdpr/" class="gdpr-option-v2" data-v2-id="1170586" data-is-gate="yes" rel="nofollow">Manage Consent</a><a href="https://www.newsquest.co.uk/legal/ai-notice/" target="_blank">AI Notice</a> 3160 </section> 3161 </div> 3162 </section> 3163 <section class="ipso-terms"> 3164 <img class="ipso-logo" src="/resources/responsive-static/mds/images/ipso-regulated.png" alt="IPSO Regulated image" /> 3165 <p class="ipso-copy">This website and associated newspapers adhere to the Independent Press Standards Organisation's 3166 Editors' Code of Practice. If you have a complaint about the editorial content which relates to 3167 inaccuracy or intrusion, then please <a class="footer__ipso-terms--link" href="/contact"> 3168 contact the editor here</a>. 3169 If you are dissatisfied with the response provided you can 3170 <a class="footer__ipso-terms--link" href="https://www.ipso.co.uk/contact-us/" target="_block">contact IPSO here</a></p> 3171 </section> 3172 </div> 3173 <div class="notice" aria-label="site-footer-notice"> 3174 <img src="/resources/responsive-static/mds/images/newsquest.png" alt="Newsquest" style="width: 193px"/> 3175 <p><strong>© 2001-2026. The Stourbridge News</strong> is owned and operated by Newsquest Media Group Ltd, an audited local newspaper network.</p> 3176 <p>Visit <a href="https://www.newsquest.co.uk/" target="_blank">newsquest.co.uk</a> to view our <a href="https://www.newsquest.co.uk/our-policies/" target="_blank">policies</a>, <a href="https://www.newsquest.co.uk/legal/" target="_blank" >terms</a> and <a href="https://www.newsquest.co.uk/legal/" target="_blank" >legal agreements</a>.</p> 3177 <p>The Echo Building, 18 Albert Road, Bournemouth, England BH1 1BZ. Registered in England & Wales | 01676637</p> 3178 </div> 3179 </div> 3180</footer> 3181 3182 3183 <div id="fb-root"></div> 3184 3185 3186 </div> 3187 </div> 3188 3189 3190 3191 <div class="mar-modal-container mar-modal-container--animate mar-modal-container--animate-out visually-hidden"> 3192 <div class="mar-modal-overlay" data-uses-js="close-modal"></div> 3193 3194 <div aria-label="Pop up dialog" class="mar-modal" tabindex="-1" role="dialog"> 3195 <div class="mar-modal__header"> 3196 <h3 class="mar-modal__title">Modal headline</h3> 3197 3198 <div class="mar-modal__close" data-uses-js="close-modal"> 3199<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
3200 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.60714 6L11.6518 10.0446C11.7589 10.1518 11.8438 10.2768 11.9062 10.4196C11.9688 10.5625 12 10.7143 12 10.875C12 11.1786 11.8884 11.442 11.6652 11.6652C11.442 11.8884 11.1696 12 10.8482 12C10.6875 12 10.5357 11.9688 10.3929 11.9062C10.25 11.8438 10.1339 11.7589 10.0446 11.6518L6 7.60714L1.95536 11.6518C1.84821 11.7589 1.72321 11.8438 1.58036 11.9062C1.4375 11.9688 1.28572 12 1.125 12C0.821427 12 0.558037 11.8884 0.334821 11.6652C0.111606 11.442 0 11.1786 0 10.875C0 10.7143 0.0312497 10.5625 0.09375 10.4196C0.15625 10.2768 0.241071 10.1518 0.348214 10.0446L4.36607 6L0.348214 1.95536C0.241071 1.84821 0.15625 1.72768 0.09375 1.59375C0.0312497 1.45982 0 1.3125 0 1.15179C0 0.830355 0.111606 0.558037 0.334821 0.334821C0.558037 0.111606 0.821427 0 1.125 0C1.28572 0 1.4375 0.0312497 1.58036 0.09375C1.72321 0.15625 1.84821 0.241071 1.95536 0.348214L6 4.39286L10.0446 0.348214C10.1339 0.241071 10.25 0.15625 10.3929 0.09375C10.5357 0.0312497 10.6875 0 10.8482 0C11.1696 0 11.442 0.111606 11.6652 0.334821C11.8884 0.558037 12 0.830355 12 1.15179C12 1.3125 11.9688 1.45982 11.9062 1.59375C11.8438 1.72768 11.7589 1.84821 11.6518 1.95536L7.60714 6Z" fill="#9DA0A4"/> 3201</svg> 3202 3203 3204 <span>Close</span> 3205 </div> 3206 </div> 3207 3208 <div class="mar-modal__body">Automatically injected HTML goes here</div> 3209 3210 <div class="mar-modal__actions"> 3211<!-- standard - Buttons.html --> 3212 3213<button 3214 type="button" 3215 data-uses-js="modal-submit" 3216 3217 class=" mar-btn 3218 mar-btn--light 3219 mar-btn--md 3220 3221 3222 " 3223> 3224 Submit 3225</button> 3226 3227 3228 3229 3230<!-- standard - Buttons.html --> 3231 3232<button 3233 type="button" 3234 data-uses-js="modal-cancel" 3235 3236 class=" mar-btn 3237 mar-btn--outline 3238 mar-btn--md 3239 3240 3241 " 3242> 3243 Cancel 3244</button> 3245 3246 3247 3248 </div> 3249 </div> 3250</div> 3251 3252 <div id="piano-meter-display" 3253 style="width: 100%; position: fixed; bottom: 0; margin: auto; z-index: 999999999999999; display: none; background-color: #fff; left: 0px"> 3254 <div style="width: 960px; margin: auto;"> 3255 <button class="mar-btn btn-martini float-right" style="margin-top: 20px" id="piano-show-newsquest" 3256 type="button">Deactivate</button> 3257 <div class="mt-2"><strong>Piano meter debugger</strong></div> 3258 <p class="mb-0" style="font-style: italic;">Data returned from the Piano 'meterActive/meterExpired' callback <a 3259 href="https://docs.piano.io/callbacks/#activeevent">event</a>.</p> 3260 <div class="mb-2" id="piano-meter-display-content"></div> 3261 </div> 3262</div> 3263 3264<div id="po-overlay-banner-top-fullwidth"></div> 3265<div id="po-overlay-banner-bottom-fullwidth"></div> 3266<div id="po-overlay-banner-bottom-content"></div> 3267<!-- <div id="piano-left-message" style="display:none; width: 100%; position: fixed; left: 0; width: 300px; text-align: center; z-index: 5000000;"></div> 3268<div id="piano-right-message" style="display:none; width: 100%; position: fixed; right: 0; width: 300px; text-align: center; z-index: 5000000;"></div> 3269 --> 3270 3271 3272 3273 3274<div class="modal" id="adlight-explanation-modal" tabindex="-1" role="dialog" aria-labelledby="sp-modal" 3275 aria-hidden="true" style="display: none"> 3276 <div class="modal-dialog modal-lg" role="document"> 3277 <div class="modal-content"> 3278 <div class="modal-body"> 3279 <img src="/resources/responsive-static/images/love-local.png" loading="lazy" 3280 id="adlight-explanation-modal-main-logo"> 3281 <p>As a subscriber, you are shown <strong>80% less</strong> display advertising when reading our 3282 articles.</p> 3283 <p>Those ads you do see are predominantly from <strong>local businesses</strong> promoting <strong>local 3284 services</strong>. </p> 3285 <p>These adverts enable local businesses to get in front of their target audience – the <strong>local 3286 community</strong>.</p> 3287 <img src="/resources/images/pixel/" id="adlight-explanation-modal-image" style="display: none"> 3288 <p class="italic">It is important that we continue to promote these adverts as our local businesses need 3289 as much support as possible during these challenging times.</p> 3290 </div> 3291 <div class="modal-footer"> 3292 <button type="button" class="mar-btn mar-btn--dark" data-dismiss="modal">Close</button> 3293 </div> 3294 </div> 3295 </div> 3296</div> 3297 3298<div id="po-overlay-toast-left"></div> 3299<div id="po-overlay-toast-main-navigation"></div> 3300
3300<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"fd15ff24ac","applicationID":"1089177626","transactionName":"NVNWZkNXWxAEVxBdCwwZd0dCQloOSnYIWwcJd0ZGWFVZBihbAEEIBwwOVVRYUBEEQAFwDRFGWFNIHhw=","queueTime":0,"applicationTime":362,"atts":"GRRVEAtNSB4=","errorBeacon":"bam.nr-data.net","agent":""}</script>
3300 3301</body> 3302 3303<div id="outbrain-holder"> 3304 <div id="DFP_standard_mpu_3"></div> 3305 <div id="DFP_standard_mpu_4"></div> 3306 <div id="DFP_standard_mpu_5"></div> 3307 <div id="DFP_standard_mpu_6"></div> 3308 <div id="DFP_standard_mpu_7"></div> 3309</div>
3310<script> 3311 3312const elementToObserve = document.querySelector("#outbrain-holder"); 3313 3314// create a new instance of `MutationObserver` named `observer`, 3315// passing it a callback function 3316const observer = new MutationObserver(function(e) { 3317 $.each(e, function(j, obs) { 3318 $.each(obs.removedNodes, function (i, node) { 3319 var id = $(node).attr('id'); 3320 addAdSlot(id, id.replace('DFP_', '')); 3321 }); 3322 }); 3323}); 3324 3325// call `observe()` on that MutationObserver instance, 3326// passing it the element to observe, and the options object 3327observer.observe(elementToObserve, {subtree: true, childList: true}); 3328</script>
3328 3329
3330<script> 3331window.domComplete = performance.now(); 3332</script>
3332 3333
3334<script type="text/javascript"> 3335path = document.location.href.split("/"); 3336var prop30 = qs.get('lp'); 3337var prop43 = qs.get('ref'); 3338var pType="BlockArticleModule" 3339 3340if (pType === 'BlockArticleModule' || pType === 'NationalNewsModule' || pType === 'BlockWhatsOnModule') { 3341 pType = 'ArticleModule'; 3342} 3343for(x=4; x<7; x++) 3344{ 3345 if (typeof path[x] == 'undefined') 3346 { 3347 path[x] = ''; 3348 } 3349 if(path[x] == "" || (pType == "ArticleModule" && path[x].match(/[0-9]+\./)) || (path[x].indexOf('?') > -1)) 3350 { 3351 path[x] = path[x-1]; 3352 } 3353 else 3354 { 3355 path[x] = path[x-1] + "/" + path[x]; 3356 } 3357 path[x] = path[x].replace(/\/undefined/g,""); 3358} 3359sitename = path[2].split("."); 3360 3361pathN= unescape(document.location.pathname.toString()); 3362matches = pathN.match(/(\w+)\.(in|near|compare)\.([\,a-zA-Z0-9\ _-]+)[\/]?$/); 3363detailMatches = pathN.match(/(\w+)\.detail\.(.*)$/); 3364if (detailMatches !== null && detailMatches.length > 1) 3365{ 3366 matches = detailMatches; 3367} 3368 3369if (matches !== null && matches.length > 1) 3370{ 3371 var subfolder = ''; 3372 path[3] = 'li'; 3373 path[4] = 'li/'+subfolder; 3374 path[5] = 'li/'+subfolder+'/'+matches[1]; 3375 path[6] = 'li/'+subfolder+'/'+matches[1]; 3376} 3377if (pathN === '/') 3378{ 3379 path[3] = 'homepage'; 3380 path[4] = 'homepage'; 3381 path[5] = 'homepage'; 3382 path[6] = 'homepage'; 3383} 3384 3385 3386function filterArray(arr) { 3387 var retArr = []; 3388 $.each(arr, function(i, part) { 3389 if (part !== '') { 3390 retArr.push(part); 3391 } 3392 }); 3393 3394 return retArr; 3395} 3396</script>
3396 3397 3398
3399<script type="text/javascript"> 3400var known = $.cookie('__siren') ? '1' : '0' ; 3401</script>
3401 3402
3403<script type="text/javascript"> 3404 3405var known = $.cookie('__siren') ? '1' : '0' ; 3406var ref = document.referrer; 3407var parser = document.createElement('a'); 3408parser.href = ref; 3409 3410// values in the below MUST be strings 3411var targeting = { 3412 'context': 'retail', 3413 'al': 'l', 3414 'domain': 'www.stourbridgenews.co.uk', 3415 'isLanding': 'no', 3416 'top_path': 'news', 3417 'weather': 'sun'.toLowerCase(), 3418 'jbsjs': ''.toLowerCase(), 3419 'site_search': '', 3420 'bmd_cat': '', 3421 'wt': '11-15', 3422 'cmpid': qs.get('cmpid'), 3423 'refdm': parser.hostname, 3424 'k': known, 3425 'g': 'u' , 3426 'a': '0' , 3427 'topic': 'Business', 3428 'publication': '', 3429 'primary_tag_future_use': 'Business', 3430 'site': (isMobile()) ? 'mobile': 'desktop', 3431 'r': data_layer.user.subscription_plan !== '' 3432 ? '2' // 2 = subscribed 3433 : data_layer.user.is_logged_in == 'yes' 3434 ? '1' // 1 = registered 3435 : '0', // 0 = anonymous 3436}; 3437 3438if (!usePrebid) { 3439 targeting.adrq = 'adl'; 3440} 3441 3442if (data_layer.video.exists === 'yes') { 3443 targeting.ptype = 'video'; 3444} 3445 3446if ($.cookie('isMeterExpired') === 'yes' && window.data_layer.article.is_article) { 3447 var articleContentLevel = parseInt(window.data_layer.article.content_level, 10) || 0; // account for NaN 3448 if (articleContentLevel !== 0 && window.data_layer.article.content_level_open_access === 'no') { 3449 targeting.ao = 'y'; 3450 } 3451} 3452 3453if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') { 3454 targeting.dfpcsnt = 'yes'; 3455} else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') { 3456 targeting.dfpcsnt = 'no'; 3457} else { 3458 targeting.dfpcsnt = 'none'; 3459} 3460 3461if (typeof MobileDetect !== "undefined") { 3462 targeting.canbb = (window.screen.width > 960) ? 'y' : 'n'; 3463} 3464 3465if (typeof module_targeting === "object") { 3466 targeting = addToTargeting(targeting, module_targeting); 3467} 3468 3469// $.each(apData, function (k, v) { 3470// targeting[k] = v; 3471// }); 3472 3473// if (typeof gs_channels !== 'undefined') { 3474// targeting.gs_channels = gs_channels; 3475// } 3476 3477targeting = addToTargeting(targeting, data_layer_helper.homesData); 3478 3479targeting.article_id = '26575627'; 3480var googleSiteName = 'www.stourbridgenews.co.uk'; 3481var googlePath = '/news/'; 3482 3483var googleNetworkCode = 154725070; 3484 3485var googleChildNetworkCode = 22694024870; 3486var googleId = '/'+googleNetworkCode + ',' + googleChildNetworkCode + '/' + googleSiteName+googlePath; 3487 3488if (googleId.charAt(googleId.length - 1) === '/') { 3489 googleId = googleId.slice(0, -1); 3490} 3491 3492var googletag = googletag || {}; 3493googletag.cmd = googletag.cmd || []; 3494 3495googletag.cmd.push(function () { 3496 var _YB = _YB || { 3497 ab: function () { 3498 return _YB.dool ? "b" : "a" + Math.floor(Math.random() * 10); 3499 }, 3500 dool: Math.random() >= 0.1, 3501 }; 3502 var yb_ab; 3503 if (Math.random() <= 0.9) { 3504 yb_ab = _YB.ab(); 3505 } else { 3506 yb_ab = "c"; 3507 } 3508 googletag.pubads().setTargeting("yb_ab", yb_ab); 3509}); 3510 3511googletag.cmd.push(function() { 3512 googletag.pubads().set("adsense_background_color", "FFFFFF"); 3513 googletag.pubads().setTargeting('rfs', "0"); 3514 $.each(targeting, function (key, value) { 3515 3516 // No real value so exclude 3517 if (value === 0 || value === '' || value === null) { 3518 return; 3519 } 3520 googletag.pubads().setTargeting(key, value); 3521 }); 3522 3523}); 3524 3525if (isMobile() && '' === 'top') { 3526 $('.desktop-standard-leaderboard').remove(); 3527 $('.mobile-top-leaderboard').show(); 3528 $('#DFP_top_leaderboard_mobile').attr('id', 'DFP_top_leaderboard'); 3529} else { 3530 $('.mobile-top-leaderboard').remove(); 3531} 3532// Ads 3533var adUnits = []; 3534 3535hideAdsByScreensize(); 3536 3537if (blackListAds.length > 0) { 3538 removeBlacklistAds(blackListAds); 3539} 3540 3541$.each(unfilteredAdUnits, function (i, unit) { 3542 removeWhitelistAds(unit); 3543}); 3544 3545// set up a holder for all the adverts so we can do things with them later 3546var dfpHolder = {}; 3547// the set up code 3548googletag.cmd.push(function() { 3549 $.each(adUnits, function(i, data) { 3550 3551 // check if the dom exists 3552 if ($('#'+data.domName).length === 0) { 3553 return; 3554 } 3555 3556 var dfp = null; 3557 3558 if (data.slotType === 'standard') 3559 { 3560 // get the correct sizes, using the alternate_sizes if they exist and we are on a mobile site 3561 var sizes = data.sizes; 3562 if (data.alternate_mobile_size && isMobile()) { 3563 sizes = data.alternate_mobile_size; 3564 } 3565 // push this ad slot through 3566 dfp = googletag.defineSlot(googleId, sizes, data.domName) 3567 .addService(googletag.pubads()) 3568 .setTargeting("position", data.positionName) 3569 .setCollapseEmptyDiv(data.collapseContainer); 3570 // check if we have an array of targets, and assign them as a companion if we do 3571 if (data.targets instanceof Array && data.targets.length > 0 ) { 3572 dfp.setTargeting('companion', data.targets); 3573 } 3574 3575 } 3576 else if (data.slotType === 'outofpage') 3577 { 3578 dfp = googletag.defineOutOfPageSlot(googleId, data.domName) 3579 .addService(googletag.pubads()) 3580 .setTargeting("position", data.positionName) 3581 .setCollapseEmptyDiv(data.collapseContainer); 3582 // check if we have an array of targets, and assign them as a companion if we do 3583 if (data.targets instanceof Array && data.targets.length > 0 ) { 3584 dfp.setTargeting('companion', data.targets); 3585 } 3586 } 3587 3588 // store 3589 dfpHolder[data.domName] = dfp; 3590 3591 }); 3592 3593 if (adLight === true) { 3594 googletag.pubads().setCategoryExclusion('adlight'); 3595 // var adlightexplanation = '<div class="adlight-explanation">I\'m a subscriber <a href="#" class="adlight-explanation-link">Why am I seeing this advert?</a></div>'; 3596 // if ($('#DFP_premium_mpu').length > 0) { 3597 // $('#DFP_premium_mpu').before(adlightexplanation); 3598 // } 3599 3600 // if ($('#DFP_standard_mpu_1').length > 0) { 3601 // $('#DFP_standard_mpu_1').before(adlightexplanation); 3602 // } 3603 3604 // var imageIds = [11497497, 11497535, 11497536, 11497541, 11497542, 11497545, 11497546, 11497547]; 3605 // var imageId = imageIds[Math.floor(Math.random() * imageIds.length)]; 3606 // $('.adlight-explanation-link').click(function(e) { 3607 // e.preventDefault(); 3608 // $('#adlight-explanation-modal-image').attr('src', '/resources/images/' + imageId + '/').show(); 3609 // $('#adlight-explanation-modal').modal(); 3610 // }); 3611 } 3612 3613 // send the request 3614 googletag.pubads().enableSingleRequest(); 3615 3616 googletag.enableServices(); 3617 3618 googletag.pubads().addEventListener('slotVisibilityChanged', function(event) { 3619 if (event.slot.getResponseInformation().creativeTemplateId === 828288 || 3620 event.slot.getResponseInformation().creativeTemplateId === 12383216 ) { 3621 console.log('DFP: Magic template id detected, not refreshing'); 3622 return; 3623 } 3624 var slotName = ''; 3625 $.each(dfpHolder, function (a, e) { 3626 if (e == event.slot) { 3627 slotName = a; 3628 } 3629 }); 3630 if (typeof window.advertisingTimer !== 'undefined') { 3631 var perc = event.inViewPercentage; 3632 window.advertisingTimer.timer(slotName, perc); 3633 } 3634 }); 3635}); 3636 3637// the display code 3638$.each(adUnits, function(i, data) { 3639 3640 // check if the dom exists 3641 if ($('#'+data.domName).length === 0) { 3642 return; 3643 } 3644 3645 if (data.domName === 'DFP_interstitial_mpu') { 3646 if (!inter.checkVisit()) { 3647 return; 3648 } 3649 } 3650 3651 // are we manually loading it? 3652 if ($('#'+data.domName).attr('data-manual-loading') === "yes") { 3653 return; 3654 } 3655 // for mobile, we check if the dom element has the data-delay-loading attribute set to "1" 3656 else if ($('#'+data.domName).attr('data-delay-loading') === "yes") { 3657 3658 // load it 3659 $('#'+data.domName).appear(); 3660 $(document.body).on('appear', '#'+data.domName, function(e, allElement) { 3661 3662 // don't call it many times 3663 if ($(this).attr('data-processed') === 'yes') { 3664 return; 3665 } 3666 3667 $(this).attr('data-processed', 'yes'); 3668 3669 // display the google ad 3670 googletag.display(data.domName); 3671 googletag.pubads().refresh([dfpHolder[data.domName]]); 3672 }); 3673 return; 3674 } 3675 googletag.cmd.push(function() { 3676 googletag.display(data.domName); 3677 }); 3678}); 3679window.googleComplete = performance.now(); 3680window.googleReady = true; 3681 3682// METHODS 3683function addToTargeting(targeting, data) { 3684 if (!data) { 3685 return targeting; 3686 } 3687 $.each(data, function (key, value) { 3688 if (!value) { 3689 return; 3690 } 3691 targeting[key] = value; 3692 }); 3693 return targeting; 3694} 3695 3696function addAdSlot(slotName, slot, initHidden) { 3697 console.log("Add ad slot called for %s %s", slotName, slot); 3698 // check if item already exists 3699 if (typeof window.dfpHolder[slotName] !== 'undefined') { 3700 return; 3701 } 3702 3703 if (window.adLight === true) { 3704 return; 3705 } 3706 window.googletag.cmd.push(function() { 3707 var dfp = googletag.defineSlot(window.googleId, [[300,250]], slotName) 3708 .setTargeting('position', [slot]) 3709 .addService(googletag.pubads()); 3710 window.dfpHolder[slotName] = dfp; 3711 3712 if (!initHidden) { 3713 googletag.pubads().refresh([dfp]); 3714 3715 return; 3716 } 3717 }); 3718} 3719 3720function hideAdsByScreensize() { 3721 if (window.screen.width < 728 && $('#BlockArticleContainer').length > 0) { 3722 if ('160' === '1147') { 3723 $('#DFP_out_of_page').remove(); 3724 } else { 3725 $('#DFP_premium_mpu').remove(); 3726 } 3727 $('#DFP_on_scroll').remove(); 3728 } else if (window.screen.width < 728 && 3729 ( $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='9']").length > 0 || 3730 $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='12']").length > 0 || 3731 $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='18']").length > 0 || 3732 $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='24']").length > 0 ) 3733 ) { 3734 const adElement = document.querySelector('#high_vis_container'); 3735 $('.omnicard[data-position="5"]').after(adElement); 3736 } 3737 3738 if ('160' === '1147' && window.screen.width > 450) { 3739 $('#DFP_bottom_leaderboard').remove(); 3740 } 3741 3742 if ('160' === '1147' && window.screen.width < 728) { 3743 $('#DFP_top_leaderboard').remove(); 3744 } 3745 3746 if ('160' === '1147') { 3747 $('#DFP_teads').remove(); 3748 $('#DFP_out_of_page').remove(); 3749 } 3750 3751 if ($('#comments-in-page').length === 1 && window.screen.width > 450) { 3752 $('#DFP_top_leaderboard').parent().remove(); 3753 $('#DFP_bottom_leaderboard').parent().remove(); 3754 // $('#DFP_standard_mpu_1').parent().remove(); 3755 } 3756} 3757 3758function removeBlacklistAds(blackListAds) { 3759 $.each(blackListAds, function(i, name) { 3760 removeAdContainer(name); 3761 }); 3762} 3763 3764function removeWhitelistAds(unit) { 3765 // VAST (video) ad units never get displayed in here. 3766 if (unit.isVast) { 3767 return; 3768 } 3769 3770 // if we have an ad-light experience 3771 if (whiteList === true) { 3772 if (typeof whiteListAds[unit.positionName] === 'undefined') { 3773 removeAdContainer(unit.domName) 3774 return; 3775 } 3776 } 3777 3778 adUnits.push(unit); 3779} 3780 3781function removeAdContainer(name) { 3782 const element = document.getElementById(name); 3783 // doesn't exist? exit 3784 if(!element) { 3785 return; 3786 } 3787 3788 const parent = element.parentElement; 3789 if (parent && parent.classList.contains('block-bottom-margin')) { 3790 // if immediate parent contains block-bottom-margin as a class, remove the parent as well 3791 parent.classList.remove('block-bottom-margin'); 3792 } 3793 if (parent && parent.classList.contains('mar-leaderboard--top')) { 3794 // in case of leaderboard, remove as has min-height 3795 parent.remove(); 3796 return; 3797 } 3798 3799 if (parent && parent.classList.contains('mar-leaderboard--bottom')) { 3800 // in case of article ad container, remove as has min-height 3801 parent.remove(); 3802 return; 3803 } 3804 3805 element.remove(); 3806} 3807</script>
3807 3808 3809
3810<script src="/resources/responsive-static/build/mds/js/global.js?cb=vjoPdzgg"></script>
3810 3811 3812 3813 3814 3815
3816<script src="/__siren/"></script>
3816 3817 3818
3819<script src="//uatu.newsquestdigital.co.uk/collector.php?article_id=26575627&site_id=160"></script>
3819 3820<!--
3820<script src="//uatu.newsquestdigital.co.uk/recommender-json-2.php?article_id=26575627&site_id=160"></script>
3820 --> 3821 3822
3823<script type="text/javascript"> 3824 var s_account="newsquestgroupprod"; 3825</script>
3825 3826
3827<script type="text/javascript" src="/resources/responsive-static/vendor/adobe/VisitorAPI.js?cb=vjoPdzgg"></script>
vendor: 1 bytes, line 3827
3827
3828<script type="text/javascript" src="/resources/responsive-static/vendor/adobe/omniture.js?cb=vjoPdzgg"></script>
3828 3829
3830<script type="text/javascript"> 3831 3832function getOmniturePath() { 3833 var path = ''; 3834 if ($('#gallery-base-url').length === 1) { 3835 path = $('#gallery-base-url').val(); 3836 } 3837 else { 3838 path = window.location.pathname; 3839 } 3840 return path; 3841} 3842 3843function getPositionFromCookie() { 3844 const cookieName = 'tracking_block_index'; 3845 3846 const ref = document.cookie 3847 .split('; ') 3848 .find(row => row.startsWith(`${cookieName}=`)) 3849 ?.slice(cookieName.length + 1); 3850 3851 document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.data_layer.site.cookie_domain}`; 3852 3853 return ref ? decodeURIComponent(ref) : undefined; 3854} 3855function getRefFromCookie() { 3856 const cookieName = 'tracking_block'; 3857 3858 const ref = document.cookie 3859 .split('; ') 3860 .find(row => row.startsWith(`${cookieName}=`)) 3861 ?.split('=')[1]; 3862 3863 // Remove the cookie 3864 document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.data_layer.site.cookie_domain}`; 3865 3866 return ref; 3867} 3868 3869function getOmnitureTrackingFromCookie(key, preExistingValue) { 3870 var ref = $.cookie('o-' + key); 3871 if(typeof(ref) === 'undefined') { 3872 ref = preExistingValue 3873 } else { 3874 ref = decodeURIComponent(ref); 3875 $.removeCookie('o-' + key, { 3876 path: '/', 3877 domain: window.data_layer.site.cookie_domain, 3878 }); 3879 } 3880 return ref; 3881} 3882 3883function getValidatedAPList() { 3884 3885 var validList = [1100, 1101, 1002, 1006, 1010, 1014, 1018, 1022, 1200, 1202, 1205, 1300, 1602, 1605, 1608, 1612, 1616, 1500, 1503, 1507, 1509, 1512, 1402, 1406, 1409, 1412, 1416, 14331, 14333, 14335, 14336, 14339, 14342, 14344, 14345, 14346, 14350, 14351, 14353, 14359, 14366, 14370, 14371, 14377, 14388, 14394, 14396, 14399, 14407, 14221, 14423, 15679, 15681, 15682, 15683, 15684, 15686, 15687, 15688, 15975]; 3886 3887 var data = getAudienceProjectTargetingData(); 3888 if (!data || !data.ap_x) { 3889 return ''; 3890 } 3891 3892 validData = []; 3893 $.each(data.ap_x, function(i, td) { 3894 if ($.inArray(parseInt(td, 10), validList) !== -1) { 3895 validData.push(td); 3896 } 3897 }); 3898 3899 return validData.join(','); 3900} 3901 3902path = document.location.href.split("/"); 3903 3904var qs = new URLSearchParams(window.location.search); 3905 3906var prop30 = qs.get('lp'); 3907var prop43 = qs.get('ref'); 3908var pType="BlockArticleModule" 3909 3910if (pType === 'BlockArticleModule' || pType === 'NationalNewsModule' || pType === 'BlockWhatsOnModule') { 3911 pType = 'ArticleModule'; 3912} 3913 3914for(x=4; x<7; x++) 3915{ 3916 if (typeof path[x] == 'undefined') 3917 { 3918 path[x] = ''; 3919 } 3920 if(path[x] == "" || (pType == "ArticleModule" && path[x].match(/[0-9]+\./)) || (path[x].indexOf('?') > -1)) 3921 { 3922 path[x] = path[x-1]; 3923 } 3924 else 3925 { 3926 path[x] = path[x-1] + "/" + path[x]; 3927 } 3928 path[x] = path[x].replace(/\/undefined/g,""); 3929} 3930pathN= unescape(document.location.pathname.toString()); 3931matches = pathN.match(/(\w+)\.(in|near|compare)\.([\,a-zA-Z0-9\ _-]+)[\/]?$/); 3932detailMatches = pathN.match(/(\w+)\.detail\.(.*)$/); 3933if (detailMatches !== null && detailMatches.length > 1) 3934{ 3935 matches = detailMatches; 3936} 3937 3938if (matches !== null && matches.length > 1) 3939{ 3940 var subfolder = ''; 3941 path[3] = 'li'; 3942 path[4] = 'li/'+subfolder; 3943 path[5] = 'li/'+subfolder+'/'+matches[1]; 3944 path[6] = 'li/'+subfolder+'/'+matches[1]; 3945} 3946if (pathN === '/') 3947{ 3948 path[3] = 'homepage'; 3949 path[4] = 'homepage'; 3950 path[5] = 'homepage'; 3951 path[6] = 'homepage'; 3952} 3953 3954 3955/* You may give each page an identifying name, server, and channel on 3956the next lines. */ 3957s.pageName="(www) "+getOmniturePath(); 3958s.pageName = s.pageName.toLowerCase(); 3959s.server="martini"; 3960s.channel=""; 3961s.pageType=""; 3962s.prop1= qs.get('search'); 3963s.prop2=""; 3964s.prop3=document.title; 3965s.prop4="26575627"; 3966s.prop5="BlockArticleModule"; /* get from Martini */ 3967s.prop6=path[3].toLowerCase(); 3968s.prop7=path[4].toLowerCase(); 3969s.prop8=path[5].toLowerCase(); 3970s.prop9=path[6].toLowerCase(); 3971s.prop10="";
3972s.prop15="none|use author profile|helen attwood"; 3973s.prop16=path[2].toLowerCase(); 3974s.prop17="Stourbridge"; 3975s.prop18="Martini"; 3976s.prop19="1"; 3977s.prop20 = s.getPreviousValue(s.pageName, 'gpv_pn'); 3978s.prop42 = ""; 3979s.prop53 = 'standard'; 3980s.prop54 = ''; 3981s.prop55 = ''; 3982s.prop56 = "BAM Standard Article"; 3983s.prop57 = ($('[data-name="Feature Article Block A"]').length > 0) ? 'Enabled' : 'Disabled'; 3984s.prop58 = document.querySelector('[data-name="Feature Article Block B"]')?.dataset.variant; 3985s.prop59 = getRefFromCookie(); 3986s.prop60 = getPositionFromCookie(); 3987s.prop73 = document.cookie.split('; ').find(row => row.startsWith('adtiming='))?.split('=')[1] || null; 3988 3989var eVar67 = []; 3990 3991if ($.cookie('consentUUID')) { 3992 eVar67.push('yes'); 3993} else { 3994 eVar67.push('no'); 3995} 3996if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') { 3997 eVar67.push('yes'); 3998} else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') { 3999 eVar67.push('no'); 4000} else { 4001 eVar67.push('none'); 4002} 4003 4004if ($.cookie('_sp_legitimate_interests') === 'true') { 4005 eVar67.push('yes'); 4006} else if ($.cookie('_sp_legitimate_interests') === 'false') { 4007 eVar67.push('no'); 4008} else { 4009 eVar67.push('none'); 4010} 4011 4012//if ($.cookie('euconsent')) { 4013// eVar67.push($.cookie('euconsent')); 4014//} else { 4015// eVar67.push('none'); 4016//} 4017 4018s.eVar67 = eVar67.join(','); 4019// console.log('ADB: setting eVar67 to %s', eVar67.join(',')); 4020 4021if ($.cookie('prev-tcf-v2')) { 4022 // console.log('ADB: Setting eVar68 to ', $.cookie('prev-tcf-v2')); 4023 s.eVar68 = $.cookie('prev-tcf-v2'); 4024} 4025 4026if (typeof iabNames !== 'undefined') { 4027 s.prop29 = iabNames.join(','); 4028} else if (typeof iabIds !== 'undefined') { 4029 s.prop29 = iabIds.join(','); 4030} 4031 4032if (s.prop20 && s.prop20 !== 'no value') { 4033 s.prop21 = s.getPercentPageViewed(); 4034} else { 4035 s.prop21 = ''; 4036} 4037 4038if (typeof __siren !== 'undefined') { 4039 s.eVar27 = __siren; 4040} 4041 4042s.prop22 = s.getDaysSinceLastVisit('s_lv'); 4043 4044 4045s.prop43=getOmnitureTrackingFromCookie('ref', prop43); 4046s.prop25 = 'retail' 4047 4048s.prop27 = ''; 4049s.prop28='2539' 4050s.prop30 = getOmnitureTrackingFromCookie('prop30', prop30); 4051s.linkInternalFilters="javascript:,stourbridgenews.co.uk,fish4.co.uk,adsys.newsquest.co.uk,www.exchangeandmart.co.uk,www.communigate.co.uk," 4052s.eVar61=(new Date()).toLocaleDateString("en-GB"); 4053/* s.eVar62=(new Date()).toLocaleDateString("en-GB"); */ 4054 4055s.eVar63 = "+1"; 4056/* s.eVar64 = "+1"; */ 4057 4058s.eVar60 = "1,metered,no"; 4059 4060s.prop61 = 'news'; 4061s.prop62 = ''; 4062s.prop63 = '25'; 4063s.prop64 = ''; 4064 4065s.prop66 = ''; 4066s.prop66 += ($('#inArticleAd').length > 0) ? "y;" : "n;"; 4067s.prop66 += ($('#inArticleAd-1').length > 0) ? "y;" : "n;"; 4068s.prop66 += ($('#inArticleAd-2').length > 0) ? "y;" : "n;"; 4069s.prop66 += ($('#inArticleAd-3').length > 0) ? "y;" : "n;"; 4070s.prop66 += ($('#inArticleAd-4').length > 0) ? "y;" : "n;"; 4071s.prop66 += ($('#inArticleAd-5').length > 0) ? "y;" : "n;"; 4072s.prop66 += ($('#inArticleAd-6').length > 0) ? "y;" : "n;"; 4073s.prop66 += ($('#inArticleAd-7').length > 0) ? "y;" : "n;"; 4074s.prop66 += ($('#inArticleAd-8').length > 0) ? "y" : "n"; 4075s.prop66 += ($('#inArticleAd-9').length > 0) ? "y" : "n"; 4076s.prop66 += ($('#inArticleAd-10').length > 0) ? "y" : "n"; 4077 4078s.eVar107 = '9'; 4079s.eVar108 = '12506'; 4080 4081 4082 4083s.eVar104 = 'Business'; 4084 4085 4086 4087s.prop56 = "BAM Standard Article"; 4088 4089 4090/* Article-site-cloning data */ 4091s.eVar90 = window.data_layer.article.parent_originating_site_id; 4092s.eVar91 = window.data_layer.article.originating_article_id; 4093s.eVar92 = window.data_layer.article.is_original_to_site; 4094s.eVar95 = window.data_layer.site.using_piano_id; 4095s.eVar106 = 'AI-Assisted'; 4096 4097s.eVar109 = ''; 4098 4099/* Uber block article counts */ 4100s.eVar93 = window.data_layer.page.top_stories_article_count + ':' + window.data_layer.page.interstitial_article_count + ':' + window.data_layer.page.news_stories_article_count; 4101 4102/* Conversion Variables */ 4103s.campaign="" 4104s.state="" 4105s.zip="" 4106s.events="" 4107s.products="" 4108s.purchaseID="" 4109s.eVar14="" 4110try { 4111 s.list3=getValidatedAPList(); 4112} catch (e) { 4113 // do nothing 4114} 4115 4116 4117 4118 4119// Initial fotorama tracking. 4120var moduleType = null; 4121if (s.prop5 === 'ArticleModule' || s.prop5 == 'PropertyModuleReplacement' || s.prop5 === 'BlockArticleModule') { 4122 moduleType = 'article'; 4123} else if (s.prop5 === 'PictureGalleryModule') { 4124 moduleType = 'gallery'; 4125} 4126 4127if ($('#comments-in-page').length === 1) { 4128 moduleType = 'comments'; 4129} 4130 4131if (moduleType === 'article' || moduleType === 'gallery' || moduleType === 'comments') { 4132 var imagePath = ''; 4133 4134 if ($('.fotorama').length > 0) { 4135 // Get the first Fotorama image. 4136 try { 4137 var el = $('.fotorama').data('fotorama').data[0].html; 4138 var url = $(el).find('div').css('background-image'); 4139 imagePath = url.replace('url(','').replace(')','').replace(/\"/gi, ""); 4140 } catch (e) { 4141 } 4142 } else { 4143 // If there's just one image (i.e. it's not a gallery), find its path. 4144 var imagePathSingle = $('#mainImage').attr('src'); 4145 if (typeof imagePathSingle !== 'undefined') { 4146 imagePath = imagePathSingle.split('.')[0] + '/'; 4147 } 4148 } 4149 var imageParts = imagePath.split('/'); 4150 if (imageParts.length > 1) { 4151 s.eVar37 = imageParts[imageParts.length - 2]; 4152 s.prop37 = imageParts[imageParts.length - 2]; 4153 s.events = s.apl(s.events, 'event7', ',', 2); 4154 } 4155 s.eVar36 = moduleType; 4156 s.prop36 = moduleType; 4157} 4158 4159 4160 4161// Education pages. 4162if (s.prop5 === 'ResponsiveEducationModule') { 4163 // School profile page. 4164 if ($('#eduOverview').length > 0) { 4165 s.eVar40 = $('#eduOverview').data('school-status'); 4166 s.prop40 = s.eVar40; 4167 s.prop41 = 'edu-' + $('#eduOverview').data('school-urn'); 4168 s.prop46 = $('#town').text(); 4169 } 4170 4171 // Comparison page. 4172 if ($('#eduComparisonTable').length > 0) { 4173 s.list1 = ''; 4174 } 4175 4176 // Results page. 4177 if ($('.school-results').length > 0) { 4178 s.list1 = ''; 4179 4180 // Track the search criteria. 4181 s.prop44 = ''; 4182 s.prop45 = "".toLowerCase(); 4183 s.prop46 = "".toLowerCase(); 4184 s.prop49 = ''; 4185 s.prop50 = ''; 4186 s.prop51 = ''; 4187 s.eVar2 = s.prop50; 4188 4189 var newSearch = false;
4190 if (newSearch) { 4191 s.events = s.apl(s.events, 'event17', ',', 1); 4192 } 4193 } 4194} 4195 4196// Notices Module 4197if (s.prop5 === 'NewsquestModulesNoticesModule') { 4198 // Notices Find page. 4199 if (s.pageName.includes('notices/find')) { 4200 s.pageName = '(www) /notices/find/'; 4201 s.eVar50 = ''; 4202 const noticesURL = new URL(window.location.href); 4203 const noticesParams = new URLSearchParams(noticesURL.search); 4204 4205 s.eVar1 = noticesParams.has('keyword') ? noticesParams.get('keyword') : 'None'; 4206 s.eVar51 = noticesParams.has('sort') ? noticesParams.get('sprt') : 'best'; 4207 s.eVar52 = noticesParams.has('p') ? (parseInt(noticesParams.get('p'), 10) + 1) : 1; 4208 s.eVar53 = noticesParams.has('type') ? noticesParams.get('type') : 'All'; 4209 s.eVar54 = noticesParams.has('nearby') ? noticesParams.get('nearby') : 'no'; 4210 s.eVar55 = noticesParams.has('daterange') ? noticesParams.get('daterange') : 'last-month'; 4211 4212 if (noticesParams.has('sort')) { 4213 switch (noticesParams.get('sort')) { 4214 case 'date_asc': 4215 s.eVar51 = 'oldest'; 4216 break; 4217 case 'date_desc': 4218 s.eVar51 = 'newest'; 4219 break; 4220 case 'best_match': 4221 s.eVar51 = 'best'; 4222 break; 4223 default: 4224 s.eVar51 = noticesParams.get('sort'); 4225 break; 4226 } 4227 } 4228 4229 // Concatenate all search params into eVar44 4230 if (noticesParams.size > 0) { 4231 const searchParams = new URL(window.location.href).searchParams; 4232 s.eVar44 = ''; 4233 searchParams.forEach((value, key) => { 4234 s.eVar44 += `${key}=${value},`; 4235 }); 4236 } else { 4237 s.eVar44 = ''; 4238 } 4239 4240 // Adobe Search Event triggering 4241 const setNoticePaginationClicked = (value) => { 4242 localStorage.setItem("isNoticePaginationClicked", value); 4243 }; 4244 4245 const noticeSearchInput = document.getElementById("notices-search"); 4246 const noticeSearchBtn = document.getElementById("notice-search-find"); 4247 const noticePaginationBtns = document.querySelectorAll('.notice-find__pagination .pagination-btn'); 4248 const noticePaginationBtnPrev = document.querySelector('.pagination-btn-previous svg'); 4249 const noticePaginationBtnNext = document.querySelector('.pagination-btn-next svg'); 4250 4251 noticeSearchInput?.addEventListener('change', () => setNoticePaginationClicked('false')); 4252 noticeSearchBtn?.addEventListener('click', () => setNoticePaginationClicked('false')); 4253 4254 noticePaginationBtns.forEach(btn => { 4255 btn.addEventListener('click', () => setNoticePaginationClicked('true')); 4256 }); 4257 4258 noticePaginationBtnPrev?.addEventListener('click', () => setNoticePaginationClicked('true')); 4259 noticePaginationBtnNext?.addEventListener('click', () => setNoticePaginationClicked('true')); 4260 4261 if (localStorage.getItem("isNoticePaginationClicked") === 'false') { 4262 s.events = s.apl(s.events, 'event1', ',', 1); 4263 } 4264 } 4265 4266 if (/notices\/funeral-directors\/(\d+)\.([a-zA-Z0-9-?]+)?/.test(s.pageName)) { 4267 s.pageName = '(www) /notices/funeral-director/'; 4268 s.eVar41 = ''; 4269 } 4270} 4271 4272if (s.prop5 === 'NewsquestModulesNoticeModule') { 4273 s.eVar41 = ''; 4274 const type = window.announcement_data?.details?.type || ''; 4275 const subCategory = window.announcement_data?.details?.sub_category || ''; 4276 s.eVar40 = type !== 'Tribute' ? type : `${type} - ${subCategory}`; 4277 s.eVar42 = window.announcement_data?.details?.id || ''; 4278 s.eVar107 = '9'; 4279 s.eVar119 = ''; 4280 s.eVar120 = ''; 4281 s.eVar2 = "(www) /notice/"; 4282} 4283 4284//New Property module 4285if (s.prop5 === 'ResponsivePropertyModule') { 4286 /* 4287 Use prop42 for single and list pages, for list pages use hyphen separate lists of id's 4288 */ 4289 4290 4291 //Property's all over the place (homepage, searches etc - HOM-133 4292 4293 //Property Detail - HOM-131, HOM-134, HOM-130 4294 4295 //Contact us submissions - HOM-137 4296 if($('#propertyModule.agent-details').length > 0) { 4297 //Add a click handler for a.contact-detail 4298 } 4299 4300 4301} 4302 4303// is their a video tag on the page? 4304if ($('.exco-embed').length > 0) { 4305 console.log('VID: setting tracking for event50'); 4306 s.events = s.apl(s.events, 'event50', ',', 1); 4307} 4308 4309var foundAutoPlayVid = false;
4310$('.jw-outer').each(function (a, domEle) { 4311 if ($(this).data('multimedia-block') === 'no' && !foundAutoPlayVid) { 4312 console.log('VID: setting tracking for event51'); 4313 s.events = s.apl(s.events, 'event51', ',', 1); 4314 foundAutoPlayVid = true; 4315 } 4316}); 4317 4318 4319 4320 4321 4322 4323 4324s.eVar66 = 'Ad-Full'; 4325s.eVar114 = ''; 4326 4327 4328 4329 // var eVar65Copy = s.getValOnce(s.eVar65, "ev65", 0); 4330 // if (eVar65Copy !== '' && s.prop20.indexOf("/my/subscription/activate/") > -1) { 4331 // s.events = s.apl(s.events, "event4", ",", 1); // Set the subscription counter event. 4332 // s.events = s.apl(s.events, "purchase", ",", 1); // Set the purchase event. 4333 // s.products = "Subscription : Metered Access;" + eVar65Copy + ";1;"; 4334 // s.purchaseID = ""; 4335 // } 4336 4337 4338if(qs.get('action') === 'success' && (s.prop5 === 'ArticleModule' || s.prop5 === 'BMDModule' || s.prop5 === 'BlockArticleModule')) { 4339 s.events=s.apl(s.events,'event9',',',2) 4340} 4341/* Hierarchy Variables */ 4342s.hier1="newsquest," + "Stourbridge" + ",www.stourbridgenews.co.uk," + path[6].replace(/\//,","); 4343 4344if (typeof MartiniFotorama !== 'undefined') { 4345 MartiniFotorama.loadOmniture(s); 4346} 4347s.prop39 = "0"; 4348 4349 4350 4351// Tracking usage of Bytecast audio embeds in articles. 4352s.eVar82 = 'no'; 4353s.eVar83 = ''; 4354 4355 console.log('ADB: starting'); 4356 console.log('Google Bot Browser: ', window.isRobot.googleBot()); //TODO Remove this log after QA 4357 4358// Tracking of Commenting Registration FLow 4359if (s.prop5 !== 'BlockArticleModule') { 4360 const storedAdobeDimensions = sessionStorage.getItem('nq_adobe_tracking_article_dimensions'); 4361 if (storedAdobeDimensions) { 4362 const storedAdobeDimensionObj = JSON.parse(storedAdobeDimensions); 4363 s.eVar10 = storedAdobeDimensionObj.eVar10; 4364 s.eVar15 = storedAdobeDimensionObj.eVar15; 4365 s.eVar22 = storedAdobeDimensionObj.eVar22; 4366 s.eVar23 = storedAdobeDimensionObj.eVar23; 4367 s.eVar24 = storedAdobeDimensionObj.eVar24; 4368 s.eVar25 = storedAdobeDimensionObj.eVar25; 4369 s.eVar28 = storedAdobeDimensionObj.eVar28; 4370 s.eVar60 = storedAdobeDimensionObj.eVar60; 4371 s.eVar104 = storedAdobeDimensionObj.eVar104; 4372 s.eVar106 = storedAdobeDimensionObj.eVar106; 4373 s.eVar107 = storedAdobeDimensionObj.eVar107; 4374 s.eVar108 = storedAdobeDimensionObj.eVar108; 4375 s.prop63 = storedAdobeDimensionObj.prop63; 4376 } 4377} 4378 4379if (window.location.href.includes("/user/create-account/commenting/")) { 4380 s.eVar2 = '(www) /user/create-account/commenting/'; 4381} 4382 4383/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/ 4384if (qs.get('callback') !== 'in' && !window.isRobot.googleBot()) { 4385 var s_code=s.t(); 4386 var backupAdobe = s; 4387 4388 if(s_code)document.write(s_code) 4389} 4390 4391// Storing the visiting dimensions 4392if (s.eVar10 || s.eVar22 || s.eVar23 || s.eVar24) { 4393 const adobeTrackingVisitingDimensions = { 4394 eVar10: s.eVar10, 4395 eVar22: s.eVar22, 4396 eVar23: s.eVar23, 4397 eVar24: s.eVar24, 4398 } 4399 sessionStorage.setItem('nq_adobe_tracking_visiting_dimensions', JSON.stringify(adobeTrackingVisitingDimensions)); 4400} 4401 4402//--></script>
4402 4403<!-- End SiteCatalyst code version: H.19.3. --> 4404 4405 4406 4407 4408
4408<script src="/resources/responsive-static/build/mds/js/article.js?cb=vjoPdzgg"></script>
4408 4409 4410
4411<script> 4412 if ('' !== '') { 4413 setTimeout(function() { 4414 data_layer_helper.loadScript( 4415 "/resources/responsive-static/build/mds-next/js/.js?cb=vjoPdzgg", 4416 true, 4417 null, 4418 "module" 4419 ) 4420 }, 500); 4421 } 4422</script>
4422 4423 4424</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.