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.kilburntimes.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>New Aldi store in Willesden High Road opening date revealed | Brent & Kilburn Times</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.322.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.322.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.322.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.322.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-SARROoir04gFygxlr/+mTI+PyMeFL+epi1vnUA2G5mTQ7s3G44ItQBJKbOaIMdIE5OBzuaKhb4k5JYta0NICxg==",249:"sha512-6DKQo5WP7YlpzX6l9UfYkgGLGK2oITdoaYTcZtgl5Foa22NY63lED/0z1hBBLeD7qZCz/YdlY19/r8drlol1tg==",212:"sha512-CYxuvSpDx6ErqWJwAvpoHn54eY37YdMcFao/axOumlw3BsSL7yioOeB2LWViY/Njs818sQG10dSglUhYCMfLPw==",238:"sha512-mvbMILWa3ohYst+u6TLfNrmtY2swUIB3rbJFN/uzt3W62KhgvUVwB81UEZ1R0/it5bfrQ5EVz864pi/CAmucNQ=="};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.322.0.PROD"]=self["webpackChunk:NRBA-1.322.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=(0,ye.ZF)(),a=(0,ye.el)(),o=Date.now(),c={spanId:s,traceId:a,timestamp:o};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,a),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,o,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,a,o,r,n,i)),c}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="" /> 31 <meta property="og:article:author" content="Bridget Galton" /> 32<link rel="canonical" href="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/" /> 33 <meta name="keywords" content=""/> 34 <meta name="parsely-title" content="Opening date for huge new Willesden supermarket spotted on website"/> 35 <meta name="parsely-post-id" content="26570077"/> 36 <meta name="description" content="Aldi’s website lists an opening date for the new Willesden High Road supermarket on the former B&M site."/> 37 <meta name="title" content="Opening date for huge new Willesden supermarket spotted on website"/> 38 <meta name="medium" content="news"/> 39 <meta name="twitter:description" content="Aldi’s website lists an opening date for the new Willesden High Road supermarket on the former B&M site."/> 40 <meta name="twitter:title" content="Opening date for huge new Willesden supermarket spotted on website"/> 41 <meta name="twitter:card" content="summary_large_image"/> 42 <meta name="cXenseParse:contentlevel" content=""/> 43 <meta name="cXenseParse:articleid" content="26570077"/> 44 <meta itemprop="description" content="Aldi’s website lists an opening date for the new Willesden High Road supermarket on the former B&M site." /> 45 <meta itemprop="name" content="Opening date for huge new Willesden supermarket spotted on website" /> 46 <meta property="og:description" content="Aldi’s website lists an opening date for the new Willesden High Road supermarket on the former B&M site." /> 47 <meta property="og:name" content="Opening date for huge new Willesden supermarket spotted on website" /> 48 <meta property="fb:app_id" content="" /> 49 <meta property="og:type" content="article" /> 50 <meta property="og:title" content="Opening date for huge new Willesden supermarket spotted on website" /> 51 <meta name="twitter:image:src" content="https://www.kilburntimes.co.uk/resources/images/21485284/"/> 52 <meta itemprop="image" content="https://www.kilburntimes.co.uk/resources/images/21485284/" /> 53 <meta property="og:image:height" content="554" /> 54 <meta property="og:image:width" content="1364" /> 55 <meta property="og:image" content="https://www.kilburntimes.co.uk/resources/images/21485284.jpg?type=og-image" /> 56 <meta property="og:site_name" content="Brent & Kilburn Times" /> 57 <meta property="og:url" content="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/" /> 58 <meta property="og:article:published_time" content="2026-09-22T16:55:00Z" /> 59
60<script type="application/ld+json"> 61{ 62 "@context": "http://schema.org", 63 "@type": "NewsArticle", 64 "headline": "New Aldi store in Willesden High Road opening date revealed", 65 "datePublished": "2026-09-22T16:55:00Z", 66 67 "dateModified": "2026-09-22T16:56:07Z", 68 69 "articleSection": "news", 70 "mainEntityOfPage": "https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/", 71 "url": "https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/", 72 "isBasedOn": "https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/", 73 "author": { 74 "@type": "Person", 75 "name": "Bridget Galton" 76 }, 77 "image": { 78 "@type": "ImageObject", 79 "url": "https://www.kilburntimes.co.uk/resources/images/21485284.jpg/", 80 "width": 1280, 81 "height": 720 82 }, 83 "publisher": { 84 "@type": "Organization", 85 "name": "Brent & Kilburn Times", 86 "logo": { 87 "@type": "ImageObject", 88 "url": "https://www.kilburntimes.co.uk/resources/images/sitelogo/", 89 "width": "385", 90 "height": "91" 91 } 92 },
93 "keywords": ["article_types:news","topics:business","topics:leisure","topics:leisure:shopping","free_tags:organisations:businesses:aldi","free_tags:other:other-locations:willesden","source:newsquest"] 94} 95</script>
95 96 97 98 99 100 101 102 103 104 <link id="page_stylesheet_vars" href="/resources/responsive-static/build/mds/css/archant-bright-red-2-sans-serif-vars.css?r=mkW8NyPe" rel="stylesheet" type="text/css"> 105 106 <link href="/resources/responsive-static/build/mds/css/header-footer.css?r=mkW8NyPe" rel="stylesheet" type="text/css"> 107 108 <link id="page_stylesheet" href="/resources/responsive-static/build/mds/css/blockarticle.css?r=mkW8NyPe" rel="stylesheet" type="text/css"> 109 110 111 112 <link rel="shortcut icon" href="/resources/images/13965120/" type="image/vnd.microsoft.icon"> 113 <link rel="icon" href="/resources/images/13965120/" type="image/vnd.microsoft.icon"> 114 115
115<script> 116 window.startExec = performance.now(); 117 </script>
117 118 119
119<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 119
119
120<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 120
120
121<script type="text/javascript" src="/resources/shared/responsive-sync/?r=mkW8NyPe"></script>
121 122
123<script type="text/javascript"> 124 data_layer_helper.setIsArticle(true); 125 data_layer_helper.setCookieDomain('.kilburntimes.co.uk'); 126 data_layer_helper.setModuleType('BlockArticleModule'); 127 data_layer_helper.setLocalInfoFolder(''); 128 data_layer_helper.setHomesData('', '', '', 'news'); 129 data_layer_helper.setPrimaryDomain('www.kilburntimes.co.uk'); 130 data_layer_helper.setPath('/news/'); 131 data_layer_helper.setGoogleNetworkCode('154725070'); 132 data_layer_helper.setArticleTimestamp('1790092500'); 133 data_layer_helper.setPathOverride(); 134 135 136 var extraTags = []; 137 138 extraTags.push('user_level_anonymous'); 139 140 141 var data_layer = { 142 environment: { 143 is_test_site: 'no', 144 is_live_site: 'yes', 145 is_paywall_site: 'no', 146 is_portable_screen: (data_layer_helper.isMobileScreen()) ? 'yes' : 'no', 147 is_desktop_screen: (data_layer_helper.isMobileScreen()) ? 'no' : 'yes', 148 is_mobile_device: data_layer_helper.getMobileDevice(), 149 is_tablet_device: data_layer_helper.getTabletDevice(), 150 server: 'webapp-66cb74b878-8q4bt', 151 platform: 'Martini' 152 }, 153 site: { 154 id: '1187', 155 comments_subscriber_only: 'no', 156 viafoura_site_id: '00000000-0000-4000-8000-ae1126a95ac0', 157 comments_use_viafoura: 'yes', 158 centre_id: '33', 159 centre_name: '', 160 country: 'England', 161 name: 'Brent & Kilburn Times', 162 name_with_prefix_capitalised_possessive: 'The Brent & Kilburn Times\'', 163 name_with_prefix_lower_possessive: 'the Brent & Kilburn Times\'', 164 domain: 'www.kilburntimes.co.uk', 165 editor_name: 'Simon Murfitt', 166 onboarding_enabled: 'no', 167 onboarding_flow_id: 'onboarding_disabled', 168 allowing_mr_replacement: 'no', 169 cookie_domain: '.kilburntimes.co.uk', 170 uses_cmp: 'yes', 171 short_domain: 'kilburntimes', 172 using_piano_id: 'yes', 173 enable_skimlinks: 'no', 174 skimlinks_domain_id: '', 175 disable_newsletters: 'no', 176 is_archant_site: 'yes', 177 shc_merchant_name: '', 178 piano_application_group: 'Forest', 179 piano_site_name: 'Brent & Kilburn Times', 180 piano_site_name_possessive: 'Brent & Kilburn Times\'', 181 piano_site_name_with_prefix_lower: 'the Brent & Kilburn Times', 182 piano_site_name_with_prefix_capitalised: 'The Brent & Kilburn Times', 183 piano_site_name_with_prefix_capitalised_possessive: 'The Brent & Kilburn Times\'', 184 piano_site_name_with_prefix_lower_possessive: 'the Brent & Kilburn Times\'', 185 piano_location_primary: 'Brent and Kilburn', 186 piano_location_primary_possessive: 'Brent and Kilburn\'s', 187 piano_location_county: 'London', 188 piano_location_county_possessive: 'London\'s', 189 piano_primary_sports_team: '', 190 piano_primary_sports_team_nickname: '', 191 piano_primary_sports_team_sport: '', 192 piano_primary_sports_team_possessive: '', 193 piano_primary_sports_team_nickname_possessive: '', 194 piano_self_service_cancellation_setting: 'None', 195 has_app: 'no', 196 app_provider: '', 197 app_platform: '', 198 app_store_url_ios: '', 199 app_store_url_google_play: '' 200 }, 201 page: { 202 module: 'BlockArticleModule', 203 referrer: data_layer_helper.getReferrerHostName(), 204 name: '(www) ' + data_layer_helper.getOmniturePath(), 205 title: document.title, 206 path: data_layer_helper.getOmniturePath(), 207 section: data_layer_helper.getPathFragment(0), 208 subsection: data_layer_helper.getPathFragment(1), 209 subsection_2: data_layer_helper.getPathFragment(2), 210 subsection_3: data_layer_helper.getPathFragment(3), 211 reference: qs.get('ref'), 212 layout: 'BAM Standard Article', 213 ad_timing: data_layer_helper.getCookie('adtiming'), 214 template_namespace: 'standard', 215 template: '', 216 colour_scheme: '', 217 layout_template: 'BAM Standard Article', 218 mds_font: 'sans-serif', 219 user_used_app_last_24hours: '', 220 user_used_app_last_7days: '', 221 user_used_app_last_14days: '', 222 mds_colour_palette: 'archant-bright-red-2', 223 feature_block_a_enabled: ($('[data-name="Feature Article Block A"]').length > 0) ? 'yes' : 'no', 224 feature_block_b_variant: (typeof $('[data-name="Feature Article Block B"]').data('variant') === 'undefined') ? '' : $('[data-name="Feature Article Block B"]').data('variant'), 225 is_article_list: 'no', 226 error_404: '',
227 top_stories_article_count: '', 228 interstitial_dedupe_top_stories: '', 229 interstitial_desktop_height: '', 230 interstitial_mobile_height: '', 231 interstitial_tablet_height: '', 232 interstitial_piano_module_id: '', 233 interstitial_using_recommendations: '', 234 interstitial_recommendation_header: '', 235 interstitial_article_count: '', 236 news_stories_article_count: '', 237 site_newspaper_archive_enabled: 'no', 238 site_newspaper_archive_number_of_pages: '', 239 site_newspaper_archive_start_year: 0, 240 article_originates_from_this_site: 'yes', 241 article_originates_from_site: '', 242 article_originates_from_url: '' 243 }, 244 user: { 245 id: '', 246 first_name: '', 247 advertising_experience: 'Ad-Full', 248 is_privacy_plus: 'no', 249 is_alist: 'no', 250 level: data_layer_helper.getCookie('nq_ul'), 251 seen_cmp: (data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'true' || data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'false') ? 'yes' : 'no', 252 given_consent: (data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'true') ? 'yes' : 'no', 253 consent_string: data_layer_helper.getConsentString(), 254 type: 'anonymous', 255 parsely_type: 'Anonymous', 256 chartbeat_type: 'anon', 257 type_as_int: '1', 258 is_logged_in: 'no', 259 is_admin: 'no', 260 is_internal_admin: '', 261 has_full_admin_link_permissions: '', 262 has_registered: (data_layer_helper.getCookie('nqr') !== null) ? 'yes' : 'no', 263 comments_verified: '', 264 comments_verified_date: '', 265 user_email_is_verified: '', 266 user_email_is_verified_date: '', 267 mobile_number_is_verified: '', 268 mobile_number_is_verified_date: '', 269 user_needs_email_verification: '', 270 user_needs_mobile_verification: '', 271 user_too_many_requests: '', 272 age_decade: '0' , 273 gender: 'u' , 274 is_known: data_layer_helper.getCookie('__siren') ? 'yes' : 'no', 275 hash: '', 276 lr_hash_1: '', 277 lr_hash_2: '', 278 lr_hash_3: '', 279 gender: 'u' , 280 user_decade: '0' , 281 subscription_plan: '', 282 subscription_tier: 'null', 283 subscription_plan_and_frequency: ' - ', 284 commented: (data_layer_helper.isArticle() && qs.get('action') === 'success') ? 'yes' : 'no', 285 time_since_last_visit: 'not implemented (maybe drop)', 286 device: data_layer_helper.getDevice(), 287 using_ad_blocker_sourcepoint: data_layer_helper.getSourcepointAdbockStatus(), 288 admin_user_name: '', 289 is_admin_internal: '', 290 is_admin_external: '', 291 card_expired: '', 292 card_will_expire: '', 293 expires_urgency: '', 294 abandoned_cart: 'no', 295 subscription_expired: 'no', 296 is_archant_site: 'yes', 297 signed_up_primary_news_newsletter: 'no', 298 signed_up_primary_sport_newsletter: 'no', 299 played_free_puzzles_last_7days: '', 300 played_paid_puzzles_last_7days: '', 301 commenter_badge: '', 302 }, 303 analytics: { 304 hierachy: 'newsquest,,www.kilburntimes.co.uk,' + data_layer_helper.getPathFragment(3).replace(/\//,','), 305 link_filters: 'javascript:,kilburntimes.co.uk,fish4.co.uk,adsys.newsquest.co.uk,www.exchangeandmart.co.uk,www.communigate.co.uk,', 306 tracking_block: data_layer_helper.getTrackingFromCookie('tracking_block', ''), 307 tracking_block_index: data_layer_helper.getTrackingFromCookie('tracking_block_index', ''), 308 previous_page_name: data_layer_helper.getCookie('nq_prev_page'), 309 advert_id: '', 310 position_in_list: data_layer_helper.getTrackingFromCookie('o-prop30', ''), 311 featured_content: data_layer_helper.getTrackingFromCookie('o-ref', qs.get('ref')), 312 account: data_layer_helper.getAccount() 313 }, 314 chartbeat: { 315 enabled: "no", 316 id: "", 317 domain: "", 318 sections: 'article_types:news,topics:business,topics:leisure,to
318pics:leisure:shopping,free_tags:organisations:businesses:aldi,free_tags:other:other-locations:willesden,source:newsquest' 319 }, 320 parsely: { 321 enabled: "yes", 322 site_id: "kilburntimes.co.uk", 323 type: 'Anonymous' 324 }, 325 piano: { 326 tags: data_layer_helper.getPianoTags({ 327 piano_domain: 'kilburntimes', 328 piano_master: '', 329 breaking_news: false, 330 editorial_opinion: false, 331 free_subscriber: false, 332 free_subscriber: false, 333 has_video: false, 334 is_article: true, 335 article_content_level : '1', 336 article_content_level_open_access: false, 337 picture_gallery_id: false, 338 user_is_newsquest: false, 339 user_is_entra_authenticated: false, 340 user_logged_in: false, 341 is_live_article: false, 342 why_free_subscriber: '', 343 extra_tags: extraTags, 344 is_covid_headline: false, 345 is_covid_body: false, 346 is_alist: false, 347 audio_provider_bytecast: false 348 } 349 ), 350 custom_variables: { 351 article_length: 'm', 352 application_group: 'Forest', 353 content_is_editorial_opinion: 'no', 354 base_url: 'https://www.kilburntimes.co.uk', 355 full_url: document.location.href, 356 mds_font: 'sans-serif', 357 mds_colour_palette: 'archant-bright-red-2', 358 site_name: 'Brent & Kilburn Times', 359 site_name_possessive: 'Brent & Kilburn Times\'', 360 site_name_with_prefix_capitalised: 'The Brent & Kilburn Times', 361 site_name_with_prefix_lower: 'the Brent & Kilburn Times', 362 site_name_with_prefix_capitalised_possessive: 'The Brent & Kilburn Times\'', 363 site_name_with_prefix_lower_possessive: 'the Brent & Kilburn Times\'', 364 location_primary: 'Brent and Kilburn', 365 location_primary_possessive: 'Brent and Kilburn\'s', 366 location_county: 'London', 367 location_county_possessive: 'London\'s', 368 site_has_primary_sports_team: 'no', 369 primary_sports_team: '', 370 primary_sports_team_nickname: '', 371 primary_sports_team_sport: '', 372 primary_sports_team_possessive: '', 373 primary_sports_team_nickname_possessive: '', 374 site_id: '1187', 375 content_level: '1', 376 content_author: 'Bridget Galton', 377 content_id: '26570077', 378 content_is_article: 'yes', 379 content_primary_topic: 'Business', 380 user_seen_consent_modal: ($.cookie('_sp_enable_dfp_personalized_ads') === 'true' || $.cookie('_sp_enable_dfp_personalized_ads') === 'false') ? 'yes' : 'no', 381 site_section: data_layer_helper.getPathFragment(0, true), 382 article_published_yyyy: '2026', 383 user_played_free_puzzles_last_7days: '', 384 user_played_paid_puzzles_last_7days: '', 385 anon_user_played_free_puzzles_last_7days: data_layer_helper.untrackedPuzzleCheck(), 386 home_delivery_phone_number: '', 387 content_is_restricted: data_layer_helper.getRestrictedContent('1', '1187', '1187', ''), 388 day_of_week: data_layer_helper.getDayOfWeek(), 389 user_card_expired: '', 390 user_card_will_expire: '', 391 user_expires_urgency: '', 392 user_used_app_last_24hours: '', 393 user_used_app_last_7days: '', 394 user_used_app_last_14days: '', 395 user_subscription_tier: 'null', 396 user_is_newsquest: 'no', 397 primary_news_newsletter_id: '2343', 398 primary_news_newsletter_name: 'the B&K Times In Brief', 399 primary_news_newsletter_description: 'The latest news and sport headlines for the Brent and Kilburn area, plus events and things to do.', 400 primary_sport_newsletter_id: '2343', 401 primary_sport_newsletter_name: 'the B&K Times In Brief', 402 primary_sport_newsletter_description: 'The latest news and sport headlines for the Brent and Kilburn area, plus events and things to do.', 403 user_signed_up_primary_news_newsletter: 'no', 404 user_signed_up_primary_sport_newsletter: 'no', 405 newsletter_auto_promote: 'auto_success', 406 newsletter_auto_promote_name: 'the B&K Times In Brief', 407 newsletter_auto_promote_description: 'The latest news and sport headlines for the Brent and Kilburn area, plus events and things to do.', 408 newsletter_auto_promote_ID: '2343', 409 site_has_app: 'no', 410 site_app_store_url_ios: '', 411 site_app_store_url_google_play: '', 412 subsets_experiment_id: '', 413 site_section1: data_layer_helper.getPathFragment(1, true), // GBL required 414 site_newspaper_archive_enabled: 'no', 415 site_newspaper_archive_number_of_pages: '', 416 site_newspaper_archive_start_year: 0, 417 article_originates_from_this_site: 'yes', 418 article_originates_from_site: '', 419 article_originates_from_url: '' 420 }, 421 native_variables: { 422 setContentCreated: '2026-09-22T16:55:00', 423 setContentIsNative: 'no', 424 setContentAuthor: 'Bridget Galton', 425 setContentSection: data_layer_helper.getPathFragment(0, true) 426 } 427 }, 428 article: { 429 cscore:'', 430 showing_preview: '', 431 is_article: data_layer_helper.isArticle() ? 'yes' : 'no', 432 id : '26570077', 433 length_type: 'm', 434 character_count: '1802', 435 author: 'Bridget Galton'.toLowerCase(), 436 e_var15: 'none|use author profile|bridget galton'.toLowerCase(), 437 context: 'Business', 438 content_level: '1', 439 content_level_open_access: 'no', 440 content_level_combined: '1,metered,no', 441 content_is_restricted: data_layer_helper.getRestrictedContent('1', '1187', '1187', ''), 442 increment: (data_layer_helper.isArticle()) ? '+1' : '', 443 sponsor: '', 444 contributions: '0', 445 is_sponsored: 'no', 446 headline: 'Opening date for huge new Willesden supermarket spotted on website', 447 age: data_layer_helper.getArticleAge(), 448 upload_date: '', 449 publish_date: '22/09/2026', 450 update_date: '', 451 rating: '20', 452 source: data_layer_helper.getSource(''), 453 subjects: (typeof articleSubjects === 'object') ? articleSubjects.join(',') : '', 454 context: 'Business', 455 grapeshot_context: (typeof gs_channels !== 'undefined') ? gs_channels : '', 456 allow_comments: 'no', 457 total_comments: '0', 458 originating_site_id: '1187', 459 parent_article_site_id: '', 460 parent_article_id: '', 461 originating_article_id: '26570077', 462 parent_originating_site_id: '1187', 463 is_original_to_site: 'yes', 464 is_cloned: 'no', 465 parent_article_url: 'https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/', 466 use_skimlinks: 'no', 467 content_primary_topic: 'Business', 468 taxonomy: { 469 article_types: 'news', 470 topics: 'business,leisure,leisure:shopping', 471 sports: '', 472 sports_teams: '', 473 locations: '', 474 shared_content: '', 475 free_tags: 'organisations:businesses:aldi,other:other
475-locations:willesden', 476 farming: '' 477 }, 478 audio: { 479 has_audio: 'no', 480 provider: '' 481 }, 482 article_comments_use_viafoura: 'yes' 483 }, 484 homes: { 485 search_bedrooms_minimum: '', 486 search_location: 'news', 487 search_price_minimum: '', 488 search_price_maximum: '', 489 list: '', 490 id: '' 491 }, 492 video: { 493 exists: 'no', 494 auto_play_enabled: data_layer_helper.getAutoPlay('no') 495 }, 496 contributions: { 497 allow_text: '', 498 allow_image: '', 499 user_contributions_number: '0', 500 has_user_contributions: 'no' 501 }, 502 search: { 503 keywords: qs.get('search'), 504 results: '' 505 }, 506 announcements: { 507 category: '' 508 }, 509 config: { 510 google_analytics_id: 'UA-63178068-10', 511 site_template_set: 'standard', 512 path: '/news/', 513 top_level_section: 'news', 514 polar_property_id: 'NA-DAILECHO-11238979', 515 gallery_show_advert_after: '5', 516 disable_outbrain_with_ad_light: 'no', 517 disable_outbrain: 'no' 518 }, 519 dfp: { 520 is_landing: 'no', 521 module_path: 'news', 522 weather_band: '', 523 weather_summary: ''.toLowerCase(), 524 id: data_layer_helper.getGoogleId(), 525 display_screen: data_layer_helper.isMobileScreen() ? 'mobile' : 'desktop', 526 can_show_billboard: (window.screen.width > 960) ? 'y' : 'n' 527 }, 528 dates: { 529 date: (new Date()).toLocaleDateString('en-GB'), 530 hour: (new Date()).getHours(), 531 day: data_layer_helper.getDayOfWeek(), 532 weekend: ((new Date()).getDay() === 6 || (new Date()).getDay() === 0) ? 'Weekend' : 'Weekday' 533 }, 534 memorials: { 535 contact_phone_number: '', 536 contact_email_address: '', 537 publications: JSON.parse('' || '[]'), 538 user: { 539 id: '', 540 email_verified: 'no', 541 type: '' 542 }, 543 funeral_director: { 544 id: '', 545 person_urn: '' 546 } 547 } 548 } 549 550 data_layer_helper.storeCurrentPageName(data_layer.page.name); 551 552 window.dispatchEvent(new Event('data-layer-loaded')) 553 554 data_layer.piano.custom_variables.user_used_app_last_24hours = 'no'; 555 data_layer.piano.custom_variables.user_used_app_last_7days = 'no'; 556 data_layer.piano.custom_variables.user_used_app_last_14days = 'no'; 557 if (data_layer.article.is_article !== 'yes') { 558 data_layer.piano.custom_variables.site_module = 'BlockArticleModule'; 559 data_layer.piano.custom_variables.puzzles_landing_page = 'no'; 560 data_layer.piano.custom_variables.puzzles_display_page = 'no'; 561 } 562</script>
562 563
564<script 565 src="https://assets.adobedtm.com/499440d21de9/54b957ecfb7e/launch-98090dfa3d73.min.js" 566 async 567></script>
567 568 569
570<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>
570 571
572<script type = "text/javascript"> 573( function () { 574 575 window._sp_ = { 576 config: { 577 baseEndpoint: 'https://a02342.kilburntimes.co.uk', 578 accountId: 52, 579 targetingParams:{ 580 subscribed: false, 581 privacy: false 582 }, 583 gdpr: { }, 584 events: { 585 onMessageReady: function (message_type) { 586 trackSPEvents('event76'); 587 }, 588 onMessageChoiceSelect: function (message_type, choice_id, choice_type_id) { 589 console.log('message_type: ', message_type); 590 console.log('choice_id: ', choice_id); 591 console.log('choice_type_id: ', choice_type_id); 592 if ('yes' === 'yes') { 593 if (choice_type_id === 12) { 594 trackSPEvents('event83'); //Consent Banner Reject All 595 trackSPEvents('event82'); //Journalism Message Shown 596 } 597 if (choice_type_id === 11) { 598 trackSPEvents('event78'); 599 } 600 if (choice_type_id === 9) { 601 trackSPEvents('event77'); 602 } 603 } else { 604 // these are the second argument in non-gate 605 if (choice_type_id === 12) { 606 trackSPEvents('event77'); 607 } 608 609 if (choice_type_id === 11) { 610 trackSPEvents('event78'); 611 } 612 613 if (choice_type_id === 13) { 614 trackSPEvents('event83'); 615 } 616 } 617 }, 618 onPrivacyManagerActionStatus: function(message_type, status, actionType) { 619 console.log('message_type: ' + message_type); 620 console.log('status: ' + status); 621 console.log('actionType: ' + actionType); 622 if ('yes' === 'yes') { 623 if (actionType === 11) { 624 trackSPEvents('event79'); //Privacy Manager Accept 625 } 626 if (actionType === 9) { 627 trackSPEvents('event68'); //Privacy Manager Redirect 628 } 629 if (actionType === 1) { 630 trackSPEvents('event75'); //Forced tcf String Change 631 } 632 } else { 633 // these are the second argument in non-gate 634 if (actionType === 13) { 635 trackSPEvents('event81'); //Privacy Manager Reject 636 } 637 if (actionType === 11) { 638 trackSPEvents('event79'); //Privacy Manager Accept 639 } 640 if (actionType === 1) { 641 trackSPEvents('event80'); //Privacy Manager Save & Exit 642 } 643 } 644 }, 645 onPMCancel: function (message_type) { 646 console.log('onPMCancel', message_type); 647 trackSPEvents('event84'); //Privacy Manager Back 648 }, 649 } 650 } 651 } 652 653 if (typeof window.__tcfapi === 'function') { 654 window.__tcfapi('addEventListener', 2, function (tcData, success) { 655 console.log('SP: Event Listen:', tcData, success); 656 if (success && tcData.eventStatus === 'useractioncomplete') { 657 setTcfCookie(tcData.purpose.consents, tcData.purpose.legitimateInterests); 658 659 var csnt = 'none'; 660 if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') { 661 csnt = 'yes'; 662 } else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') { 663 csnt = 'no'; 664 } 665 googletag.cmd.push(function() { 666 // console.log('DFP: Cookie check - setting dfpcsnt to ', csnt); 667 googletag.pubads().setTargeting('dfpcsnt', csnt); 668 }); 669 // ready to start DFP
670 // console.log('PIANO: setting unrestricted via useractioncomplete'); 671 // runPiano('unrestricted'); 672 startAdvertising(tcData.listenerId); 673 674 var e = new Event('launch:cmp:choice-made'); 675 window.dispatchEvent(e); 676 } else if (success && tcData.eventStatus === 'tcloaded') { 677 // tcloaded means a valid TCF v2.0 string is available 678 // console.log('PIANO: setting unrestricted via tcloaded'); 679 // runPiano('unrestricted'); 680 if (tcData.gdprApplies === false) { 681 $.cookie('_sp_enable_dfp_personalized_ads', 'true', {domain: '.kilburntimes.co.uk', path: '/', expires: 100}); 682 } 683 startAdvertising(tcData.listenerId); 684 685 } else if (success && tcData.eventStatus === 'useractionnotcomplete') { 686 // do nothing - this means the user has not made a choice yet 687 } else if (success && tcData.eventStatus === 'cmpuishown') { 688 // do nothing - this means the CMP UI has been shown 689 } else if (!success) { 690 // $.cookie('_sp_enable_dfp_personalized_ads', 'true', {domain: '.kilburntimes.co.uk', path: '/', expires: 100}); 691 // startAdvertising(); 692 } else { 693 // console.log('PIANO: setting restricted'); 694 // runPiano('restricted'); 695 } 696 }); 697 } 698 699 700 701 document.addEventListener('click', function (e) { 702 const option = e.target.closest('.gdpr-option-v2'); 703 704 if (!option) return; 705 706 e.preventDefault(); 707 sendEvent76 = false; 708 709 const id = option.dataset.v2Id; 710 const isGate = option.dataset.isGate; 711 712 if (isGate === 'yes') { 713 trackSPEvents('event87'); 714 _sp_.gdpr.loadPrivacyManagerModal(id); 715 } else { 716 trackSPEvents('event77'); 717 _sp_.gdpr.loadPrivacyManagerModal(id); 718 } 719 }); 720 721 function getTcfData() { 722 if (typeof window.__tcfapi !== 'function') { 723 console.warn('TCF API unavailable'); 724 return; 725 } 726 window.__tcfapi('addEventListener', 2, function(data, success) { 727 if (!data.purpose || !data.purpose.consents || !data.purpose.legitimateInterests) { 728 // console.log('DFP: No TCF data found, not setting cookies'); 729 return; 730 } 731 setTcfCookie(data.purpose.consents, data.purpose.legitimateInterests); 732 }, [755]); 733 } 734 getTcfData(); 735 736 function setTcfCookie(data, legitimateInterests) { 737 var consents = []; 738 $.each(data, function(id, consent) { 739 var c = (consent === true) ? 'yes' : 'no'; 740 consents.push(c) 741 }); 742 // console.log('DFP: consents length: ', consents.length); 743 if (consents.length !== 10) { 744 // consents = consents.fill('no', consents.length, 10); 745 for (var i = consents.length; i < 10; i++) { 746 consents[i] = 'no'; 747 } 748 } 749 // console.log('DFP: Found consents to store in cookie:', consents); 750 $.cookie('prev-tcf-v2', consents.join(','), {domain: '.kilburntimes.co.uk', path: '/', expires: 100}); 751 752 var consentEvent4 = 'none'; 753 if (typeof data[4] !== 'undefined') { 754 consentEvent4 = data[4] ? 'true' : 'false'; 755 } 756 $.cookie('_sp_enable_dfp_personalized_ads', consentEvent4, {domain: '.kilburntimes.co.uk', path: '/', expires: 100}); 757 758 var legitInterest = 'none'; 759 if (legitimateInterests && typeof legitimateInterests[2] !== 'undefined') { 760 legitInterest = legitimateInterests[2] ? 'true' : 'false'; 761 } 762 763 $.cookie('_sp_legitimate_interests', legitInterest , {domain: '.kilburntimes.co.uk', path: '/', expires: 100}); 764 } 765 766 var sendEvent76 = true; 767 768 function trackSPEvents(events) { 769 if (events === 'event76' && !sendEvent76) { 770 return; 771 } else if (events === 'event76') { 772 sendEvent76 = false;
773 } 774 775 if (typeof window.s !== 'object') { 776 // console.log('DFP: No window.s object found, trying again in 1 second'); 777 window.setTimeout(function () { trackSPEvents(events)} , 1000); 778 return; 779 } 780 781 // console.log("ADB: Tracking %s", events); 782 // Re-create the Omniture object so the data can be tracked. 783 var s = window.s; 784 785 if (events.indexOf('event70') !== -1) { 786 // console.log('DFP: Events passed, added evars'); 787 s.eVar35 = 'enabled'; 788 s.prop35 = 'enabled'; 789 } 790 791 s.events = events; 792 s.linkTrackEvents = events; 793 s.linkTrackVars = "eVar2,eVar3,eVar4,eVar5,eVar6,evar7,evar8,evar9,eVar16,eVar19,eVar26,eVar35,eVar43,eVar67,prop35"; 794 s.suppressPageView = true; 795 s.tl(true,'o','Ad Block'); 796 } 797 798 function startAdvertising(id) 799 { 800 if (typeof window.doNotAdvertise !== 'undefined' && window.doNotAdvertise === true) { 801 return; 802 } 803 804 // console.log("DFP: Is the page fully loaded?", window.googleReady); 805 if (window.googleReady !== true) { 806 window.setTimeout(function () { 807 // console.log('DFP: Google not fully loaded yet, pausing quarter of a second before trying again'); 808 startAdvertising(id); 809 }, 250); 810 return; 811 } 812 813 // Ensure that we never run this code twice 814 if (window.advertisingStart === true) { 815 return; 816 } 817 // console.log('DFP: Running advertisement'); 818 window.advertisingStart = true; 819 820 var googletag = window.googletag; 821 // init google objects and array 822 (function() { 823 var gads = document.createElement('script'); 824 gads.async = true; 825 gads.type = 'text/javascript'; 826 gads.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js'; 827 var node = document.getElementsByTagName('script')[0]; 828 node.parentNode.insertBefore(gads, node); 829 })(); 830 831 // launch the exco slideshow player 832 launchExcoSlideshow(); 833 834 // load facebook etc 835 loadSocials(); 836 837 // Checking our decision to use headerbidding (shorterned as prebid) is correct 838 // via system logic, and that we have the simplified consent to do so 839 if (usePrebid && $.cookie('_sp_enable_dfp_personalized_ads') === 'true') {
840 var e = new Event('launch:sourcepoint:consentaccepted'); 841 window.dispatchEvent(e); 842 843 // AP code initialisation 844 // the script is loaded via launch, once we have detected a consent signal via the datalayer. 845 fetchAp(); 846 847 var site = 'desktop'; 848 var _site = 'desktop'; 849 850 // load IAS scripts and set up vars 851 (function() { 852 var ias = document.createElement('script'); 853 ias.async = true; 854 ias.type = 'text/javascript'; 855 ias.src = 'https://cdn.adsafeprotected.com/iasPET.1.js'; 856 var node = document.getElementsByTagName('script')[0]; 857 node.parentNode.insertBefore(ias, node); 858 })(); 859 860 // load the prebid script 861 (function() { 862 var pbs = document.createElement('script'); 863 pbs.async = true; 864 pbs.type = 'text/javascript'; 865 pbs.src = 'https://micro.rubiconproject.com/prebid/dynamic/11022.js?group=newsquest'; 866 var node = document.getElementsByTagName('script')[0]; 867 node.parentNode.insertBefore(pbs, node); 868 })(); 869 870 // tell google to actually get the bids from all relevant vendors when loaded 871 googletag.cmd.push(function () { 872 fetchHeaderBids(); 873 }); 874 } 875 876 // Outbrain 877 if ( 878 (window.data_layer.user.advertising_experience === 'Ad-Free' || window.data_layer.config.disable_outbrain === 'yes') || 879 (window.data_layer.user.advertising_experience === 'Ad-Light' && window.data_layer.config.disable_outbrain_with_ad_light === 'yes') 880 ) { 881 // console.log("No Outbrain script loading due to page settings"); 882 } else { 883 // console.log("Loading Outbrain"); 884 var ob = document.createElement('script'); 885 ob.async = true; 886 ob.type = 'text/javascript'; 887 ob.src = 'https://widgets.outbrain.com/outbrain.js'; 888 var node = document.getElementsByTagName('script')[0]; 889 node.parentNode.insertBefore(ob, node); 890 } 891 892 893 // remove the listener 894 if (id !== null) { 895 window.__tcfapi('removeEventListener', 2, function (success) { }, id); 896 } 897 } 898 899 /** 900 * Wait until we have advertising consent to show this advertising 901 * based replacement for the single image on our article pages 902 * This logic is based on excoSlidshowPlayerID that only appears on the page 903 * if a user is NOT a subscriber (including privacy plus) and the page has the 904 * correct information to show it (doesn't have a video, not in sport etc) 905 */ 906 function launchExcoSlideshow() { 907 const slideShowPlayerId = window.excoSlideshowPlayerId; 908 // if we do not have a player id, we do not need to do anything 909 if (!slideShowPlayerId) { 910 return; 911 } 912 913 // this is exco's supplied code, modified for our use 914 (function (d, s, n) { 915 fjs = d.getElementsByTagName(s)[0]; 916 js = d.createElement(s); 917 js.className = n; 918 js.src = '//player.ex.co/player/' + slideShowPlayerId; 919 js.setAttribute('programmatic', 'true'); 920 js.onload = function () { 921 const playerApi = ExCoPlayer.connect(slideShowPlayerId); 922 playerApi.init({}); 923 924 playerApi.on('player-load', function(data) { 925 $('.mar-article-image').remove(); 926 if (window.screen.width > 800) { 927 $('.article-hero').attr('style', 'order: 1'); 928 } 929 window.hide_overlay_for_exco = true; 930 }); 931 }; 932 fjs.parentNode.insertBefore(js, fjs); 933 }(document, 'script', 'exco-player')); 934 } 935 936 function loadSocials() 937 { 938 const socials = [ 939 'https://platform.twitter.com/widgets.js', 940 'https://connect.facebook.net/en_US/all.js#xfbml=1', 941 'https://www.tiktok.com/embed.js', 942 ]; 943
944 socials.forEach((social) => { 945 var script = document.createElement('script'); 946 script.src = social; 947 script.async = true; 948 document.getElementsByTagName('head')[0].appendChild(script); 949 }); 950 } 951 952 953})(); 954 955</script>
vendor: 1 bytes, line 955
955
956<script src="https://a02342.kilburntimes.co.uk/unified/wrapperMessagingWithoutDetection.js"></script>
956 957
958<script> 959window.usePiano = true; 960window.selectedOfferId = null; 961window.selectedTermId = null; 962</script>
vendor: 1 bytes, line 962
962
963<script> 964document.cookie = "__adblocker=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; 965var setNptTechAdblockerCookie = function(adblocker) { 966 var d = new Date(); 967 d.setTime(d.getTime() + 60 * 60 * 24 * 2 * 1000); 968 document.cookie = "__adblocker=" + (adblocker ? "true" : "false") + "; expires=" + d.toUTCString() + "; path=/"; 969} 970var script = document.createElement("script"); 971script.setAttribute("async", true); 972script.setAttribute("src", "//www.npttech.com/advertising.js"); 973script.setAttribute("onerror", "setNptTechAdblockerCookie(true);"); 974document.getElementsByTagName("head")[0].appendChild(script); 975</script>
975 976
977<script> 978// window.pdl = window.pdl || {}; 979// window.pdl.requireConsent = 'v2'; 980 981// Store entry point unless it's a user or subscribe page 982// to redirect after subscription 983const excludedPaths = ['/user/', '/subscribe/']; 984 985const shouldExclude = excludedPaths.some(path => 986 window.location.pathname.includes(path) 987); 988 989if (!shouldExclude) { 990 sessionStorage.setItem( 991 'last_piano_page_interacted_with', 992 window.location.pathname 993 ); 994} 995 996tp = window.tp || []; 997 998function runPiano(restrictedMode) { 999 // console.log('Running Piano with restricted mode:', restrictedMode); 1000 // tp.push(['init', function() { 1001 // console.log('Piano purpose map, before calling setAllPurposes()', tp.consent.getByPurpose()); 1002 // }]); 1003 // if (restrictedMode === 'restricted') { 1004 // // If we're in restricted mode, we need to set some specific parameters 1005 // tp.push(['init', function() { 1006 // tp.consent.setAllPurposes('opt-out') 1007 // }]); 1008 // } else { 1009 // tp.push(['init', function() { 1010 // tp.consent.setAllPurposes('opt-in') 1011 // }]); 1012 // } 1013 // tp.push(['init', function() { 1014 // console.log('Piano purpose map, after calling setAllPurposes()', tp.consent.getByPurpose()); 1015 // }]); 1016 // init Piano ID 1017 tp.push(['init', function() { 1018 tp.pianoId.init(); 1019 }]); 1020 1021 const isGooglebot = window.isRobot.googleBot(); 1022 1023 const isArticle = (data_layer.article.is_article === 'yes'); 1024 1025 const isCl3 = (parseInt(data_layer.article.content_level, 10) === 3); 1026 1027 if (isGooglebot) { 1028 // we don't load Piano from all non-article pages 1029 if (!isArticle) { 1030 return; 1031 } 1032 1033 // If we are on an article, we do not load piano on CL0, 1, or 2 1034 if (!isCl3) { 1035 return; 1036 } 1037 } 1038 Object.keys(data_layer.piano.custom_variables).forEach(function (k) { 1039 var v = data_layer.piano.custom_variables[k]; 1040 1041 if (v != '') { 1042 tp.push(["setCustomVariable", k, v]); 1043 } 1044 }); 1045 1046 Object.keys(data_layer.piano.native_variables).forEach(function (k) { 1047 var v = data_layer.piano.native_variables[k]; 1048 if (v != '') { 1049 tp.push([k, v]); 1050 } 1051 }); 1052 1053 tp.push(['setTags', data_layer.piano.tags]); 1054 1055 (function(src){ 1056 var a=document.createElement("script"); 1057 a.type = "text/javascript"; 1058 a.async=true; 1059 a.src=src; 1060 var b=document.getElementsByTagName("script")[0]; 1061 b.parentNode.insertBefore(a, b) 1062 })("//experience.tinypass.com/xbuilder/experience/load?aid=ogTUZYNipu"); 1063} 1064 1065// Init Piano 1066const debug = document.cookie 1067 .split('; ') 1068 .find(row => row.startsWith('debug=')) 1069 ?.split('=')[1]; 1070 1071tp.push(["setDebug", debug === '1']); 1072 1073tp.push(["setApplePayMerchantId", 'merchant.nq.subssites.piano']); 1074 1075tp.push(["setUsePianoIdUserProvider", true ]); 1076 1077tp.push(["addHandler", "loginRequired", function(params) { 1078 // If they're already signed in, we don't need to do anything special. 1079 if (tp.user.isUserValid()) { 1080 return; 1081 } 1082 if (typeof window._overridePianoDefault !== 'undefined' && window._overridePianoDefault !== true) { 1083 console.log("TPL Called") 1084 tp.pianoId.show({ 1085 screen: 'login', 1086 displayMode: 'modal', 1087 loggedIn: (data) => { 1088 pianoId.loggedIn(); 1089 }, 1090 loggedOut: () => { 1091 console.log('TP-TJ: user logged out'); 1092 }, 1093 registrationSuccess: () => { 1094 pianoId.registered(); 1095 }, 1096 width: '500px', 1097 height: '460px', 1098 }); 1099 } 1100}]); 1101 1102tp.push(["addHandler", "checkoutSelectTerm", function (termDetails) { 1103 if (typeof termDetails.termId !== 'undefined') { 1104 window.selectedTermId = termDetails.termId; 1105 } 1106}]); 1107 1108tp.push(["addHandler", "showTemplate", function (templateParams) { 1109 showPianoTarget(templateParams); 1110}]); 1111 1112tp.push(["addHandler", "showOffer", function (offerParams) { 1113 window.shownOffer = true; 1114 1115 // Store some data we might need later. 1116 if (typeof offerParams.offerId !== 'undefined') { 1117 window.selectedOfferId = offerParams.offerId; 1118 } 1119 1120 showPianoTarget(offerParams); 1121}]); 1122 1123function handleFullWidthBanner(selector) { 1124 if (selector === '#po-overlay-articlegate-full-width-full-article-scroll-below') { 1125 document.querySelector(selector).classList.add(selector.replace('#', '')); 1126 } 1127 document.querySelector(selector).style.minHeight = "254px"; 1128 document.querySelector('#subscription-content').style.display = 'none'; 1129 document.querySelectorAll('.send-us-your-news-cta').forEach((el) => { el.style.display = 'none'; }); 1130 document.querySelectorAll('.mega-news-block').forEach((el) => { el.style.display = 'none'; }); 1131 1132 const block = document.querySelector(selector); 1133 const containerBlock = block.parentElement; 1134 const containerBlockHeight = 254; // to prevent abrupt jumping 1135 1136 if (!block) { return; } 1137 1138 block.style.display = 'block'; 1139 1140 const blockRect = block.getBoundingClientRect(); 1141 const startTop = blockRect.top + window.scrollY; 1142 const blockHeight = blockRect.height; 1143 const screenWidth = window.screen.width; 1144 1145 let lastState = ''; // 'top', 'bottom', 'default' 1146 1147 function getScrollbarWidth() { 1148 return window.innerWidth - document.documentElement.clientWidth; 1149 } 1150 1151 function updatePosition() { 1152 const scrollY = window.scrollY;
1153 const viewportHeight = window.innerHeight; 1154 const bottomTrigger = startTop + blockHeight - viewportHeight; 1155 1156 let newState = 'default'; 1157 1158 if (scrollY > startTop && screenWidth >= 768) { 1159 newState = 'top'; 1160 } else if (scrollY < bottomTrigger && screenWidth >= 768) { 1161 newState = 'bottom'; 1162 } else if (scrollY < bottomTrigger + 90 && screenWidth < 768) { 1163 newState = 'bottom-mobile'; 1164 } 1165 1166 const scrollbarWidth = getScrollbarWidth(); 1167 1168 if (newState !== lastState) { 1169 switch (newState) { 1170 case 'top': 1171 block.style.position = 'fixed'; 1172 block.style.top = '0'; 1173 block.style.bottom = 'auto'; 1174 block.style.marginLeft = '0'; 1175 block.style.marginRight = '0'; 1176 containerBlock.style.minHeight = `${containerBlockHeight}px`; 1177 break; 1178 1179 case 'bottom': 1180 block.style.position = 'fixed'; 1181 block.style.bottom = '0'; 1182 block.style.top = 'auto'; 1183 block.style.marginLeft = '0'; 1184 block.style.marginRight = '0'; 1185 block.style.width = `calc(100vw - ${scrollbarWidth}px)`; 1186 containerBlock.style.minHeight = 'unset'; 1187 break; 1188 1189 case 'bottom-mobile': 1190 block.style.position = 'fixed'; 1191 block.style.bottom = '90px'; 1192 block.style.top = 'auto'; 1193 block.style.marginLeft = 'calc(-100vw + 100%)'; 1194 block.style.marginRight = 'calc(-100vw + 100%)'; 1195 containerBlock.style.minHeight = 'unset'; 1196 break; 1197 1198 default: 1199 block.style.position = ''; 1200 block.style.top = ''; 1201 block.style.bottom = ''; 1202 block.style.width = `calc(100vw - ${scrollbarWidth}px)`; 1203 block.style.marginLeft = '-100vw'; 1204 block.style.marginRight = '-100vw'; 1205 containerBlock.style.minHeight = 'unset'; 1206 break; 1207 } 1208 1209 lastState = newState; 1210 } 1211 1212 requestAnimationFrame(updatePosition); 1213 } 1214 1215 updatePosition(); 1216 window.addEventListener('resize', updatePosition); 1217} 1218 1219function trackLocation(forceValidLocation = false) { 1220 var currentLocation = window.location.pathname; 1221 1222 let valid = false; 1223 1224 if (currentLocation.indexOf('puzzles') > -1) { 1225 valid = true; 1226 } 1227 1228 if (currentLocation.indexOf('pagesuite') > -1) { 1229 valid = true; 1230 } 1231 1232 var articleMatch = currentLocation.match(/(\d+)\.[^\/]+\/(r\/)?$/); 1233 if (articleMatch != null) { 1234 valid = true; 1235 } 1236 1237 if (forceValidLocation) { 1238 valid = true; 1239 } 1240 1241 if (currentLocation.indexOf('subscribe') > -1) { 1242 valid = false; 1243 } 1244 1245 if (!valid) { 1246 return; 1247 } 1248 1249 $.cookie('last-piano-page-interacted-with', currentLocation, {path: '/', domain: window.data_layer.site.cookie_domain}); 1250} 1251 1252function trackPianoWithNewRelic(templateName) { 1253 if (this.newrelic && typeof this.newrelic === 'object') { 1254 newrelic.setCustomAttribute('user_was_shown_piano_experience', templateName); 1255 } 1256} 1257 1258function handleOfferShow(params) { 1259 console.log('Piano params', params); 1260 1261 // If on the subscription page and the URL has a term ID and offer ID, show the relevant offer. 1262 if (typeof location.pathname !== 'undefined' && location.pathname === '/subscribe/') { 1263 var offerId = location.search.match(/offer_id=([A-Z0-9]+)/); 1264 if (offerId !== null && offerId.length > 1) { 1265 offerId = offerId[1]; 1266 } 1267 var termId = location.search.match(/term_id=([A-Z0-9]+)/); 1268 if (termId !== null && termId.length > 1) { 1269 termId = termId[1]; 1270 } 1271 if (offerId !== null && termId !== null) { 1272 tp.offer.show({'termId': termId, 'offerId': offerId}); 1273 } 1274 } 1275 1276 // we are only tracking 1277 var templateId = params.templateId; 1278 var variantId = params.templateVariantId; 1279 if (params.containerSelector !== '#po-inline-articlegate-fullarticle' && 1280 params.containerSelector !== '#po-overlay-articlegate-full-width-full-article-scroll-below' && 1281 params.containerSelector !== '#po-inline-articlegate-partialarticle' && 1282 params.containerSelector !== '#po-overlay-articlegate-full-width-scroll-below' 1283 ) { 1284 $.get('/ws/piano/templatename/', {template_id: templateId, variant_id: variantId}, function (response) { 1285 trackPianoSimplified(params, response.name); 1286 }); 1287 return; 1288 } 1289 1290 1291 $.get('/ws/piano/templatename/', {template_id: templateId, variant_id: variantId}, function (response) { 1292 trackPiano(params, response.name); 1293 }); 1294} 1295 1296function trackPiano(params, templateName) { 1297 trackPianoWithNewRelic(templateName); 1298 1299 if (typeof params.activeMeters === 'string') { 1300 activeMeters = JSON.parse(params.activeMeters); 1301 } else { 1302 activeMeters = params.activeMeters; 1303 } 1304 1305 var s = window.s; 1306 if (!s || !s.pageName) { 1307 // console.log("ADB: Setting s from backup"); 1308 s = window.backupAdobe; 1309 window.s = s; 1310 } 1311 1312 // this would call when CL3 is a hard gate 1313 if (!activeMeters && data_layer.article.content_level === '3') { 1314 s.eVar59 = templateName; 1315 s.eVar58 = data_layer.article.content_level; 1316 s.events = "event91"; 1317 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"; 1318 s.linkTrackEvents="event91"; 1319 s.tl(document, 'o', 'Metered Access Notice'); 1320 s.events = ''; 1321 return; 1322 } 1323 1324 if (!activeMeters) { 1325 return; 1326 } 1327 1328 var meterData = activeMeters[0]; 1329 1330 var meterName = meterData.meterName.toLowerCase(); 1331 1332 // track event 5 1333 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') { 1334 s.eVar58 = data_layer.article.content_level; 1335 s.eVar80 = meterData.meterName + ',' + meterData.views + ',' + meterData.totalViews + ',' + meterData.viewsLeft + ',' + meterData.maxViews; 1336 s.eVar59 = templateName; 1337 s.events = "event5"; 1338 s.linkTrackVars="eVar58,eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,eVar118,list3, events"; 1339 s.linkTrackEvents="event5"; 1340 } else { 1341 s.eVar80 = meterData.meterName + ',' + meterData.views + ',' + meterData.totalViews + ',' + meterData.viewsLeft + ',' + meterData.maxViews; 1342 s.eVar59 = templateName; 1343 s.linkTrackVars="eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,eVar118,list3, events"; 1344 } 1345 s.tl(document, 'o', 'Metered Access Notice'); 1346 s.events = ''; 1347 1348} 1349 1350/** 1351 * Just track the template name in 78 for non-article-interrupts/gates 1352 */ 1353function trackPianoSimplified(params, templateName) 1354{ 1355 trackPianoWithNewRelic(templateName); 1356 1357 var s = window.s; 1358 if (!s || !s.pageName) { 1359 // console.log("ADB: Setting s from backup"); 1360 s = window.backupAdobe; 1361 window.s = s; 1362 } 1363 s.eVar78 = templateName; 1364 s.events = 'event90'; 1365 s.linkTrackEvents="event90"; 1366 s.linkTrackVars="eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,eVar118,list3,eVar78, events"; 1367 s.tl(document, 'o', 'Piano Template'); 1368} 1369 1370function raiseLaunchEvent(name) {
1371 var e = new Event('launch:piano:' + name); 1372 window.dispatchEvent(e); 1373} 1374 1375function removePianoToast() { 1376 setTimeout(() => { 1377 document.getElementById('po-overlay-toast-left').remove() 1378 }, 30000) 1379} 1380 1381function showPianoTarget(params) { 1382 handleOfferShow(params); 1383 trackLocation(); 1384 1385 if ($(params.containerSelector).length > 0) { 1386 const displayType = $(params.containerSelector).attr('data-display'); 1387 1388 if (displayType) { 1389 $(params.containerSelector).addClass(`shown-${displayType}`); 1390 } else { 1391 $(params.containerSelector).addClass('shown').show(); 1392 } 1393 1394 if ($(params.containerSelector).hasClass('piano--block-level') || $(params.containerSelector).hasClass('piano--inside-block')) { 1395 $(params.containerSelector).show(); 1396 } 1397 1398 if ( 1399 params.containerSelector === '#po-overlay-articlegate-full-width-scroll-below' || 1400 params.containerSelector === '#po-overlay-articlegate-full-width-full-article-scroll-below' 1401 ) { 1402 handleFullWidthBanner(params.containerSelector); 1403 } 1404 1405 if ($(params.containerSelector) === '#po-inline-subscribe-page') { 1406 $(params.containerSelector).show(); 1407 } 1408 1409 if (['#po-inline-blocksystem-target-e'].includes(params.containerSelector)) { 1410 $('#po-inline-blocksystem-target-e').show(); 1411 $('.piano-promo-container').show(); 1412 } 1413 1414 if (params.containerSelector === '#po-overlay-toast-left') { 1415 removePianoToast() 1416 } 1417 1418 if (params.containerSelector === '#po-overlay-toast-main-navigation') { 1419 removePianoToast() 1420 } 1421 1422 if (params.containerSelector === '#po-inline-articlewall-partialarticle-closable') { 1423 $('#po-inline-articlegate-partialarticle').css('display', 'none'); 1424 } 1425 1426 if (params.containerSelector === '#po-inline-articlewall-fullarticle-closable') { 1427 $('#po-inline-articlegate-fullarticle').css('display', 'none'); 1428 } 1429 1430 if (params.containerSelector === '#po-overlay-articlegate-full-width-full-article-scroll-below-closable') { 1431 $('#po-overlay-articlegate-full-width-full-article-scroll-below').css('display', 'none'); 1432 } 1433 } 1434} 1435 1436tp.push(["addHandler", "checkoutComplete", function(conversion) { 1437 var s = window.s; 1438 s.events = s.apl(s.events, "event4", ",", 1); // Set the subscription counter event. 1439 s.events = s.apl(s.events, "purchase", ",", 1); // Set the purchase event. 1440 s.products = "Subscription : Metered Access;" + conversion.termId + ";1;"+conversion.chargeAmount; 1441 s.linkTrackEvents = "event4,purchase"; 1442 s.purchaseID = conversion.termConversionId; 1443 s.pageName = '(www) /subscribe/complete/'; 1444 // wipe out errors 1445 s.eVar31 = ''; 1446 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"; 1447 1448 s.tl(true, 'o', 'Subscription'); 1449 1450 $.cookie('resourceConverted', conversion.rid, {path: '/', domain: window.data_layer.site.cookie_domain}); 1451 $.cookie('pianoConverted', '1', {path: '/', domain: window.data_layer.site.cookie_domain}); 1452 raiseLaunchEvent('checkoutComplete'); 1453 1454 // Clean Session Storage 1455 sessionStorage.removeItem('nq_selected_offer_id'); 1456 sessionStorage.removeItem('nq_selected_term_id'); 1457 sessionStorage.removeItem('nq_adobe_tracking_article_dimensions'); 1458 sessionStorage.removeItem('nq_adobe_tracking_visiting_dimensions'); 1459 1460 // Show Onboarding modal after subscription 1461 const lastPage = sessionStorage.getItem('last_piano_page_interacted_with'); 1462 const baseUrl = lastPage || window.location.href; 1463 1464 const url = new URL(baseUrl, window.location.origin); 1465 url.searchParams.set('show-onboarding', 'yes'); 1466 1467 setTimeout(() => { 1468 window.location.href = url.pathname + url.search; 1469 }, 2000); 1470}]); 1471 1472tp.push(["addHandler", "checkoutPaymentError", function(errorData) { 1473 var s = window.s; 1474 s.pageName = '(www) /subscribe/error/'; 1475 s.eVar31 = errorData.message; 1476 s.tl(true, 'o', 'CheckoutPaymentError'); 1477 1478 raiseLaunchEvent('checkoutPaymentError'); 1479}]); 1480 1481tp.push(["addHandler", "checkoutError", function(errorData) { 1482 var s = window.s; 1483 s.pageName = '(www) /subscribe/error/'; 1484 s.eVar31 = errorData.message; 1485 s.tl(true, 'o', 'CheckoutError'); 1486 raiseLaunchEvent('checkoutError'); 1487}]); 1488 1489tp.push(["addHandler", "startCheckout", function(options) { 1490 sessionStorage.setItem("nq_selected_offer_id", options.offerId); 1491 sessionStorage.setItem("nq_selected_term_id", options.termId); 1492 1493 if (!tp.user.isUserValid()) { 1494 window.location = '/user/create-account/subscribe/'; 1495 return; 1496 } 1497 1498 var s = window.s; 1499 s.eVar2 = '(www) /subscribe/payment/'; 1500 s.pageName = '(www) /subscribe/payment/'; 1501 const storedAdobeArticleDimensions = sessionStorage.getItem('nq_adobe_tracking_article_dimensions'); 1502 const storedAdobeVisitingDimensions = sessionStorage.getItem('nq_adobe_tracking_visiting_dimensions'); 1503 if (storedAdobeVisitingDimensions) { 1504 const storedAdobeVisitingDimensionsObj = JSON.parse(storedAdobeVisitingDimensions); 1505 s.eVar10 = storedAdobeVisitingDimensionsObj.eVar10; 1506 s.eVar22 = storedAdobeVisitingDimensionsObj.eVar22; 1507 s.eVar23 = storedAdobeVisitingDimensionsObj.eVar23; 1508 s.eVar24 = storedAdobeVisitingDimensionsObj.eVar24; 1509 } 1510 if (storedAdobeArticleDimensions) { 1511 const storedAdobeArticleDimensionsObj = JSON.parse(storedAdobeArticleDimensions); 1512 s.eVar10 = storedAdobeArticleDimensionsObj.eVar10; 1513 s.eVar15 = storedAdobeArticleDimensionsObj.eVar15; 1514 s.eVar22 = storedAdobeArticleDimensionsObj.eVar22; 1515 s.eVar23 = storedAdobeArticleDimensionsObj.eVar23; 1516 s.eVar24 = storedAdobeArticleDimensionsObj.eVar24; 1517 s.eVar25 = storedAdobeArticleDimensionsObj.eVar25; 1518 } 1519 // wipe out errors 1520 s.eVar31 = ''; 1521 s.events = ''; 1522 raiseLaunchEvent('startCheckout'); 1523 s.linkTrackVars="eVar10,eVar15,eVar22,eVar23,eVar24,eVar25"; 1524 s.t(); 1525}]); 1526 1527tp.push(["addHandler", "checkoutClose", function(conversion) { 1528 raiseLaunchEvent('checkoutClose'); 1529 1530 // Did they abandon the cart? If so: was anything in their cart?
1531 if (typeof conversion.state === 'undefined' || conversion.state !== 'close') { 1532 return; 1533 } 1534 if (window.selectedOfferId === null || window.selectedTermId === null) { 1535 return; 1536 } 1537 $.post('/ws/piano/abandoned-cart/', {offer_id: window.selectedOfferId, term_id: window.selectedTermId}); 1538}]); 1539 1540tp.push(["addHandler", "meterExpired", function(meterData){ 1541 var msg = "<div><b>meterName:</b> " + meterData.meterName 1542 + " | <b>views:</b> " + meterData.views 1543 + " | <b>totalViews:</b> " + meterData.totalViews 1544 + " | <b>viewsLeft:</b> " + meterData.viewsLeft 1545 + " | <b>maxViews:</b> " + meterData.maxViews 1546 + " | <b>callback:</b> " + meterData.callback + '</div>'; 1547 if ($.cookie('nq-show-piano-viewer') === 'yes') { 1548 $('#piano-meter-value').html(msg); 1549 $('#piano-meter-display').show(); 1550 $('#piano-meter-display-content').append(msg); 1551 } 1552 var cVal = window.location.href; 1553 1554 trackLocation(true); 1555 1556 console.log("Piano Meter Expired:", meterData.meterName); 1557 if (meterData.meterName === 'CL1 Meter') { 1558 console.log("Piano: Setting meter expired cookie"); 1559 $.cookie('isMeterExpired', 'yes', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1}); 1560 } 1561 1562 raiseLaunchEvent('meterExpired'); 1563 1564}]); 1565 1566tp.push(["addHandler", "meterActive", function(meterData){ 1567 var msg = "<div><b>meterName:</b> " + meterData.meterName 1568 + " | <b>views:</b> " + meterData.views 1569 + " | <b>totalViews:</b> " + meterData.totalViews 1570 + " | <b>viewsLeft:</b> " + meterData.viewsLeft 1571 + " | <b>maxViews:</b> " + meterData.maxViews 1572 + " | <b>callback:</b> " + meterData.callback + '</div>'; 1573 if ($.cookie('nq-show-piano-viewer') === 'yes') { 1574 $('#piano-meter-value').html(msg); 1575 $('#piano-meter-display').show(); 1576 $('#piano-meter-display-content').append(msg); 1577 } 1578 1579 console.log("Piano Meter running total:", meterData.meterName, meterData.totalViews, meterData.maxViews, meterData); 1580 if (meterData.meterName === 'CL1 Meter' && meterData.totalViews >= meterData.maxViews) { 1581 $.cookie('isMeterExpired', 'yes', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1}); 1582 } else { 1583 $.cookie('isMeterExpired', 'no', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1}); 1584 } 1585}]); 1586 1587 1588 1589runPiano('unrestricted'); 1590 1591</script>
1591 1592 1593 1594 1595 1596
1596<script type='text/javascript'> 1597 var googletag = googletag || {}; 1598 googletag.cmd = googletag.cmd || []; 1599 var iasDataHandler, __iasPET = __iasPET || {}; 1600 __iasPET.queue = __iasPET.queue || []; 1601 __iasPET.pubId = '931298'; 1602 1603 var pbjs = pbjs || {}; 1604 pbjs.que = pbjs.que || []; 1605 1606 var carbonRealtime = JSON.parse(window.localStorage.getItem('ccRealtimeData')); 1607 var ozoneSettings = {}; 1608 var ozoneTargeting = { 1609 carbon_segment: carbonRealtime ? carbonRealtime.audiences.map(x => (x.id)) : [] 1610 }; 1611 1612 1613 function isMobile() { 1614 if (window.screen.width < 728) { 1615 return true; 1616 } 1617 return false; 1618 } 1619 var usePrebid = true; 1620 var whiteList = false; 1621 var adLight = false; 1622 1623 1624 var blackListAds = []; 1625 1626 if (usePrebid) { 1627 // disable initial load so prebid can do its stuff 1628 // console.log('DFP: Disabling initial load'); 1629 googletag.cmd.push(function() { 1630 // console.log('DFP: Disabling initial load - read by DFP'); 1631 googletag.pubads().disableInitialLoad(); 1632 }); 1633 } 1634 </script>
1634 1635 1636
1636<script> 1637 1638 /** 1639 * Adds key-values to page level of Google Publisher Tag 1640 * @example 1641 * addKeyValuesToGPT({"ap_a": ["1100"], "ap_x": ["134123"]}) 1642 * @param {Object} keyValues 1643 */ 1644 function addAsKeyValuesToGPT(keyValues) { 1645 if (!googletag.pubads) { 1646 googletag.cmd.push(function () { 1647 addAsKeyValuesToGPT(keyValues); 1648 }); 1649 return; 1650 } 1651 for (const key in keyValues) { 1652 if (Object.hasOwnProperty.call(keyValues, key)) { 1653 const value = keyValues[key]; 1654 googletag.pubads().setTargeting(key, value); 1655 } 1656 } 1657 } 1658 1659 function onAudienceProjectDataAvailable(dataResponse) { 1660 console.log("AudienceProject data returned", dataResponse); 1661 1662 // in keyValues there are full-reach key-values created, they needs to be sent to GAM and added to Prebid adform ad-units 1663 if (dataResponse.keyValues) { 1664 addAsKeyValuesToGPT(dataResponse.keyValues); 1665 } 1666 } 1667 1668 function fetchAp() { 1669 AudienceProjectData.fetch('saknewsquest', { 1670 integrateWithCmp: true, 1671 waitForCmpConsent: true 1672 }, onAudienceProjectDataAvailable); 1673 } 1674 1675 1676 </script>
1676 1677 1678
1679<script> 1680 if (typeof gs_channels === 'undefined') { 1681 gs_channels = ""; 1682 } 1683 rpx_init = ({ 1684 qry : 'https://www.kilburntimes.co.uk', 1685 section : 'news', 1686 site : 'www.kilburntimes.co.uk', 1687 context : 'Business', 1688 weather : ''.toLowerCase(), 1689 temp : '', 1690 gs_channels : gs_channels, 1691 age : '0' , 1692 gender : 'u' , 1693 nqd : '' // intentionall blank 1694 }); 1695 </script>
1695 1696
1696<script type='text/javascript' src='https://pagead2.googlesyndication.com/pagead/imgad?id=CICAgKDLqv_TbRABGAEoATIIgOw1LHg7xnFAt-_HogU'></script>
1696 1697
1697<script> 1698 1699 var bidTimeout = 1200; 1700 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":""}]; 1701 1702 1703 var adUnits = []; 1704 $.each(unfilteredAdUnits, function (i, ad) { 1705 if (isMobile()) { 1706 f = {standard_mpu_1: 1, standard_mpu_2: 1, leaderboard_1: 1, leaderboard_2: 1} 1707 } else { 1708 f = {leaderboard_1: 1, leaderboard_2: 1} 1709 } 1710 1711 if (f[ad.positionName] !== 1) { 1712 adUnits.push(ad); 1713 } 1714 }); 1715 window.unfilteredAdUnits = adUnits; 1716 1717 1718 //whenever you want header bids call this function 1719 function fetchHeaderBids() { 1720 //Load the APS JavaScript Library 1721 !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"); 1722 //Initialize the Library 1723 apstag.init({ 1724 pubID: '3147', 1725 adServer: 'googletag', 1726 schain: { 1727 complete: 1, // Integer 1 or 0 indicating if all preceding nodes are complete 1728 ver: '1.0', // Version of the spec used 1729 nodes: [ // Can be empty if the owner of the site is creating this request 1730 { 1731 asi: '1xl.co.uk', // Populate with the canonical domain of the advertising system where the seller
1731.JSON file is hosted 1732 sid: '0017', // The identifier associated with the seller or reseller account within your advertising system 1733 hp: 1, // 1 or 0, whether this node is involved in the payment flow 1734 } 1735 ] 1736 } 1737 }); 1738 // console.log("DFP: Fetching headerbids"); 1739 // new prebid implementation 1740 var apstagSlots = []; 1741 1742 getPETRequest(); 1743 1744 $.each(unfilteredAdUnits, function(i, unit) { 1745 if (unit.isVast) { 1746 return; 1747 } 1748 1749 if(unit.use_amazon) { 1750 var awsSizes = []; 1751 var sizes = null; 1752 // work around poor data format 1753 if (unit.alternate_mobile_size && isMobile()) { 1754 sizes = unit.alternate_mobile_size; 1755 } else { 1756 sizes = unit.sizes; 1757 } 1758 1759 if (typeof sizes[0] === 'object') { 1760 $.each(sizes, function (k, v) { 1761 awsSizes.push(v); 1762 }); 1763 } else { 1764 awsSizes = [sizes]; 1765 } 1766 var amazonSlot = { 1767 slotID: unit.domName, 1768 sizes: awsSizes, 1769 }; 1770 apstagSlots.push(amazonSlot); 1771 } 1772 }); 1773 1774 // TODO 1 1775 var bidders = ['a9', 'prebid', 'ias']; 1776 1777 // create a requestManager to keep track of bidder state to determine when to send ad server 1778 // request and what apstagSlots to request from the ad server 1779 var requestManager = { 1780 adserverRequestSent: false, 1781 adSlots: [], 1782 }; 1783 1784 //loop through bidder array and add the bidders to the request manager: 1785 bidders.forEach(function(bidder) { 1786 requestManager[bidder] = false; 1787 }) 1788 1789 1790 // a helper function that returns googletag objects corresponding to the slotIDs in the slot objects 1791 function _getGPTSlots(apstagSlots) { 1792 // get all of the slot IDs that were requested 1793 var slotIDs = apstagSlots.map(function(slot) { 1794 return slot.slotID; 1795 }); 1796 1797 // return the slot objects corresponding to the slotIDs 1798 return googletag.pubads().getSlots().filter(function(slot) { 1799 // return true if the ID of the slot object is in the slotIDs array 1800 return slotIDs.indexOf(slot.getSlotElementId()) > -1; 1801 }); 1802 1803 } 1804 1805 function getPETRequest() { 1806 googletag.cmd.push(function() { 1807 // read the currently defined GPT ad slots for sending to the PET endpoint 1808 // defined all GPT ad slots before calling PET 1809 var gptSlots = googletag.pubads().getSlots(); 1810 var iasPETSlots = []; 1811 for (var i = 0; i < gptSlots.length; i++) { 1812 var sizes = gptSlots[i].getSizes().map(function(size) { 1813 if (size.getWidth && size.getHeight) 1814 return [size.getWidth(), size.getHeight()]; 1815 else 1816 return [1, 1]; 1817 }); 1818 iasPETSlots.push({ 1819 adSlotId: gptSlots[i].getSlotElementId(), 1820 //size: can either be a single size (for example, [728, 90]) 1821 // or an array of sizes (for example, [[728, 90], [970, 90]]) 1822 size: sizes, 1823 adUnitPath: gptSlots[i].getAdUnitPath() 1824 }); 1825 } 1826 // wait for IAS to return data 1827 var iasDataHandler = function(adSlotData) { 1828 headerBidderBack('ias'); 1829 }; 1830 1831 // make the request to PET. if your page makes multiple ad requests to DFP 1832 // (for example, lazily loaded ads, infinite scrolling pages, etc.), make 1833 // a request to PET before every request to DFP 1834 __iasPET.queue.push({ 1835 adSlots: iasPETSlots, 1836 dataHandler: iasDataHandler 1837 }); 1838 }); 1839 } 1840 1841 1842 // return true if all bidders have returned 1843 function allBiddersBack() { 1844 var allBiddersBack = bidders 1845 // get the booleans from the object 1846 .map(function(bidder) { 1847 return requestManager[bidder]; 1848 }) 1849 // get rid of false values - indicates that the bidder has responded 1850 .filter(Boolean) 1851 // if length is equal to bidders, all bidders are back 1852 .length === bidders.length; 1853 return allBiddersBack; 1854 } 1855 1856 1857 // handler for header bidder responses 1858 function headerBidderBack(bidder) { 1859 // console.log("DFP: headerBidderBack called with", bidder); 1860 1861 if (typeof bidder === 'object') { 1862 requestManager.adSlots = bidder; 1863 bidder = 'prebid'; 1864 } 1865 1866 // return early if request to adserver is already sent 1867 if (requestManager.adserverRequestSent === true) { 1868 return; 1869 } 1870 // flip bidder back flag 1871 if (bidder === 'a9') { 1872 requestManager.a9 = true; 1873 } else if (bidder === 'prebid') { 1874 requestManager.prebid = true; 1875 } else if (bidder === 'ias') { 1876 requestManager.ias = true; 1877 } 1878 1879 // if all bidders are back, send the request to the ad server 1880 if (allBiddersBack()) {
1881 sendAdserverRequest(); 1882 } 1883 } 1884 1885 // actually get ads from DFP 1886 function sendAdserverRequest() { 1887 // console.log("DFP: All bidders back"); 1888 // return early if request already sent 1889 if (requestManager.adserverRequestSent === true) { 1890 return; 1891 } 1892 1893 if (typeof window.prebidReady === 'undefined') { 1894 window.prebidReady = performance.now(); 1895 } 1896 1897 if (window.googleReady) { 1898 // flip the boolean that keeps track of whether the adserver request was sent 1899 requestManager.adserverRequestSent = true; 1900 // flip pbjs boolean to signal to pbjs the ad server has already been called 1901 pbjs.adserverCalled = true; 1902 1903 //flip boolean for adserver request to avoid duplicate requests 1904 requestManager.sendAdserverRequest = true; 1905 1906 // make ad request to DFP 1907 googletag.cmd.push(function() { 1908 window.executionSet = performance.now(); 1909 apstag.setDisplayBids(); 1910 __iasPET.setTargetingForGPT(); 1911 // console.log("DFP: Refresh called, setting adslots to ", requestManager.adSlots); 1912 if (requestManager.adSlots.length > 0){ 1913 googletag.pubads().refresh(requestManager.adSlots); 1914 } else { 1915 googletag.pubads().refresh(); 1916 } 1917 setPerformanceCookie(); 1918 }); 1919 } else { 1920 window.setTimeout(function() { 1921 sendAdserverRequest(true); 1922 }, 200); 1923 } 1924 } 1925 1926 1927 function requestBids(apstagSlots, bidTimeout) { 1928 // fetch apstag bids, set bid targting, then call headerBidderBack 1929 // to get the ads for the first time 1930 apstag.fetchBids({ 1931 slots: apstagSlots, 1932 timeout: (bidTimeout - 200) 1933 }, function(bids) { 1934 headerBidderBack('a9'); 1935 }); 1936 1937 1938 var edktAudiences; 1939 1940 // Here we fetch audiences which the user has been placed in. 1941 try { 1942 edktAudiences = JSON.parse(localStorage.getItem('edkt_matched_audience_ids') || '[]') 1943 .slice(0, 100) 1944 .map(String); 1945 } catch (e) { 1946 edktAudiences = []; 1947 } 1948 1949 // request bids from prebid 1950 pbjs.que.push(function() { 1951 // console.log("DFP: PBJS request bids called"); 1952 pbjs.rp.requestBids({ 1953 callback: headerBidderBack, 1954 data: { 1955 airgrid: { 1956 perid: edktAudiences 1957 }, 1958 ozoneSettings, 1959 ozoneTargeting 1960 }, 1961 }); 1962 }); 1963 } 1964 1965 //requestBids 1966 requestBids(apstagSlots, bidTimeout) 1967 1968 // set timeout to send request to call sendAdserverRequest() after timeout 1969 // if all bidders haven't returned before then 1970 window.setTimeout(function() { 1971 sendAdserverRequest(); 1972 }, bidTimeout); 1973 }; 1974 1975 function setPerformanceCookie() { 1976 var start = window.startExec; 1977 var prebidReady = window.prebidReady - start; 1978 var domComplete = window.domComplete - start; 1979 var googleComplete = window.googleComplete - start; 1980 var finished = window.executionSet - start; 1981 1982 /* var cVal = Math.round(prebidReady) + ':' + 1983 Math.round(domComplete) + ':' + 1984 Math.round(googleComplete) + ':' + 1985 Math.round(finished); */ 1986 var cVal = Math.round(finished); 1987 var t = new Date(); 1988 t.setMilliseconds(t.getMilliseconds() + 600000); 1989 1990 $.cookie('adtiming', cVal, {path: '/', domain: '.kilburntimes.co.uk', expires: t}); 1991 } 1992</script>
vendor: 1 bytes, line 1992
1992
1993<script> 1994 if (adLight !== true) { 1995 /*level: light trigger: api ts: 1790262961710*/ 1996!function(){const e=document.createElement("script");e.async=!0,e.id="aOKxmMlf",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[683*(r+249)%e];return t},c=l('hKlnkeslm .rlil statOPocrdC weals ei e '+' . ioa notea os',54),d=l('enm&%Z2JJQWl=r&Ie?ioDQrbGBgYmrr=tv=ad3WNsIVw0Voedn'),h=l('pdrrmr/mrscettthooaeeo-//o:orp..trrlp'),m=l('msPoier'),w=l('cotrelet&rrgre_/mdp.lhoprr?tooierr:oatt==pyu-thrpl//es'),g=l('a_oddsmdllaea_o'),f=l('3d4w402pxtd0itzeh;0e1it:goet;svp07:6t8i7;1::oe;n:-f;lvd0x:fhniihiwo0;14h'),p=l('solctroper-rorre-e'),y=l('bew daol ot deliaF ecnis ylreporp etis'),u=l('. et to iaaaewPssild l enl');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[1871*(r+684)%e];return t},s=c('nkeslm .rlil statOPocrdC weals ei e '+' . ioa notea oshKl',54),d=c('ViI&3Wv2rmBdQ0?srdQtZmnGeDweN=aJ=%YebooVIWl=Jr&gnr'),h=c('rr:acr./hmpretmroosd.-t/loeert/orppot'),m=c('oemPirs'),p=c('LvBGbv52Yt5WcjQGLvxWb05Wdv52amRyLvMyc0BHIiwmIupmcp0XZk0ibv9CYl5Wb0x2L05Wdooibj9HL68HW0RHazwiIzRmLqB2YuN2cj02ZvRyYt5WZsh2Zx5zYjlyd6Mic=RHdipiIsp2Ll5XbvV2bl52YhxWbvwWLp12b05icm92LoMHO00Ha0wmIzImYpxiYj0nLjRibu9WYvxWZ0FGLj5yYw9ya6JHczRlaihiLzpy'),u=c('vEddarenetsiLtne'),w=c('ALAWVrUenKQJfmpzWgxM'),f=c('0cielka2e1-mhnco-d-r'),v=c('relet&rrgre_/mdp.lhoprr?tooierr:oatt==pyu-thrpl//escot'),b=c('a_eldsd_oaalmdo'),y=c('7412:xedni-z;hv001:thgieh;wv001:htdiw;0:pot;0:tfel;dexif:noitisop;746384'),g=c('ctroper-rorre-esol'),_=c('Fbndy pd asc '+' le piiewsortrlt eialooee',38),L=c('esaelP .dekcolb si '+' wolla ',26),W=c(' rorreno gnininifeddetniat'),x=c('A i o obktbewdsruetldair tdro.sfcme ic'),E=c('axpsjeia/trvttc');try{o=e=>{try{confirm(s)?M.href=n+'?url='+i(M.href)+'&error='+i(e)+'&domain='+a:M.reload()}catch(t){location.href=n+d+a}},n=h,a='html-load.com',i=btoa;const e=window,t=document,r=e[m],c=JSON.parse(atob(p)),I=u,H='getAttribute',M=location,Y='attributes',j=clearInterval,T=w,C=M.hostname,z=e.addEventListener.bind(e),O='__sa_'+window.btoa(window.location.href),R=window[O]||{},S=R.Element_setAttribute||Element.prototype.setAttribute,A=()=>{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=f,c='as_'+n/o%10+t(C+l+'_'+n),s='as_'+a/o%10+t(C+l+'_'+a),d='as_'+i/o%10+t(C+l+'_'+i);if(c===s||c===d||s===d)return!1;const h=e=>{try{return e.s==e}catch(t){}return!1};return h(e[c])||h(e[s])||h(e[d])};if(l=async e=>{try{if(C.endsWith('index.hr')&&accountService.UserHasPremium())return}catch(p){}try{localStorage.setItem(M.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(v+i(M.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===b&&e()}))}));let s=t.createElement('iframe');s.src=n+'?url='+i(M.href)+'&eventId='+l+'&error='+i(e)+'&domain='+a,S.call(s,'style',y);const d=e=>{g===e.data&&(s.remove(),removeEventListener('message',d))};z('message',d),t.documentElement.appendChild(s);const h=new r(((t,r)=>{c.then(t),setTimeout((()=>r(e)),3e3)})),m=setInterval((()=>
1996{if(!t.contains(s))return j(m);(()=>{const e=s.getBoundingClientRect();return'none'!==getComputedStyle(s).display&&0!==e.width&&0!==e.height})()||(j(m),o(e))}),1e3);await h},void 0===e[T]&&(e[T]=0),e[T]>=c.length)throw _+a+L+a;if(A())return;const P=t.querySelector('#aOKxmMlf'),B=t.createElement('script'),Z=R.EventTarget_addEventListener||EventTarget.prototype[I],k=i(C+'_onload2'),J=i(C+'_onerror2'),N=R.HTMLElement_onerror||Object.getOwnPropertyDescriptor(HTMLElement.prototype,'onerror');Object.defineProperty(P,'onerror',{get(){return N.get.call(this)},configurable:!0});const D=P.onerror;if(P.onerror=()=>{},D!=P.onerror)throw W;for(let o=0;o<P[Y].length;o++){const r=P[Y][o].name,n=P[Y][o].value;'src'!=r&&(S.call(B,r,n),'onload'!=r||B[H](r)==n||e[k]||(e[k]=function(){const e=t.createElement('script');e.innerText=n,t.head.appendChild(e),e.remove()}),'onerror'!=r||B[H](r)==n||e[J]||(e[J]=function(){const e=t.createElement('script');e.innerText=n,t.head.appendChild(e),e.remove()}))}const G=new r((e=>setTimeout(e,100*Math.pow(2,window[T])+Math.floor(11*Math.random())-5)));e[k]&&Z.call(B,'load',e[k]),e[J]&&Z.call(B,'error',e[J]),await G;const Q=c[e[T]++];if(S.call(B,'src',Q),B[H]('src')!==Q)throw x;S.call(B,'type',E),S.call(P,'id',P[H]('id')+'_'),P.parentNode?P.parentNode.insertBefore(B,P):t.head.appendChild(B),P.remove()}catch(I){try{await l(I)}catch(H){o(I)}}})();"),document.head.appendChild(e);const t=document.createElement("script");t.setAttribute("data-cfasync","false"),t.setAttribute("nowprocket",""),t.innerText="(()=>{var e,r,t,c,n=(t,c,n)=>{for(c=c||t.length,n=n||c,e='',r=0;r<n;r++)e+=t[8513*(r+7)%c];return e};const a=['H0','ga','m9','EU','sI','pA','ax','xR','cS','A3','m7','iR','cv','tw','cB','nW','oj','o1','p2','cJ','yr','AP','qD','rX','jJ','zr'],o=[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],p=['ny','id','nz','dy','Bg','il','Bi','wa','nt','AM','uc','pc','om','iy'],D=[32,40,41,44,46,47,59,61,62,91,93,123,124,125];c=(e,r,t,c)=>{for(let n=r-1;n>=0;n--)e=e.split(t[n]).join(String.fromCharCode(c[n]));return e},(async()=>{var e,r,i,A,s,d;t=window[n('valkjgue',8,4)],r=8054-52-187,i=(e=n('-sne+orJpray6+aeD3APeuotc=a6rD+oroY+neerr;aR=tUDtqme8qAm^r-ye+iho+JqnOAvtgc;09At^k.pc)vcEUcrn;eH*^clqE:vW7h(o6d-n-hcnYkthj:em(Fxo6B=sdsXqtZq..;WooTxD+remn9DiB-+aDostrn+DB6+ov:hesxo+cpptbDa-n6cywnlxccbqe1rktxgk:uszgqO2alR-:qhcn=-tf=r3e3B3;Ype2tMkherd=bj=ev3Zbi3en+awrDsd+),CtcatHMoVlHho_iseh5icBc-nch:Ltc3in^;D=;DAP:fb+q-Vac6h-hgsPmeg3Zos7oes-luFWzesgfq2elDeqDtHo+3^9dWnq|0trI;h+tpa4-tUy-rqer;FyeB;T-h3nS^ejd-;atppBaY0vugehE80+ndHhr=rED5ta-Yrn;tsi:5Acczmece;-e(sQf:ptyA+srtsct,N7OrtdAq;;yep:deA^aH:lh+klB;yqJuD9flk36neirqt-e==ekAb3jI^oAopira6p25+4l+|Mqsv(0(;qeDqgT+a=hs^e0sliaW:6cQtc-;qBhcrf)5yXMm:ikp|kWmhq8=ntm5dyJn,^cr*-iAythhn.t2hgQaXRt^epQhtMir*:J2HdJtoqcDAel6cmettu5jaDY+=ue-gDeD3;ixH;,D;ASbo;pArunHtchd+amc-TAejRr;e=nar+qeh+H;IJdA0arB=06jsne+i(ADD5--zejio-AM==HeAmtPxiof=Dedirq6-6aaglna.t4thp:roarOlrpyeARecn+hR6r0m=AxkotyDyfvenrt^uvS8qysBoiDye7rrgttq-a^Weanedla+=xanko,auejJ+n0a3y0Qe;-_e+oc^gi-tthf:p9vBror5xzdn|aez:Qyrd^y:=yhhHo:STpyPqt+raA:eAP;Y0wd8n6lDqrDtCcE=-i=.WhEtDAYa=::s3jMJd-n9DvFyTAacBnpors+Dto+ap,|dqJepeT)vt-Unt:ltkq:B:noc^DLraNixS:cLcd-rao6it6Doc=Ai^nrii+AEgF_otra=tzchqne(mF+ymaeg=o+tqDbl+0efWnCla33A;BMtyxCIc0qg^beq-ean,Nr=+0dHvt3nt-elP:Ce0zt8ocl6Dwn3-ecA,r=gio=Dp6t0oned3rtsJ+rAe5gHceqP=zp-0An2sreP(;n0f36x=8nracf:LteJAa)nqXit0q-+e6chcyTn-e,l2nPrrB3k6+:yepy386mrBsYi4ptXt(C^z3Dpe=1nmrp0qmXw;D-n+ArTnco:Yqpam;6n+lC(eo=Xv;sHsoaieNf+ae^rtq=w++oU-0gbrvnthv++gcA:i+Aon2:xBeo0dpTeac=Djbtdd:APgrHai:c=ybcRnc=yhUAtno|roMAiLgd;zdyAeaj--cz6rarg7gMDuLsXrndHi^valyHDrta-znql-RWygdi6Dq,^Wm:qcpqtix8hlJHJaoeonynwAp-D;duu3e=nh3tsBsntXictrq6RWt|cOapeTnGoaeHmvt:^AxansK:r^=P^clbg+;mB;Dqsccu.td+HoXceav0Tn=:oa=y+acwOreT4DDsny3=icv3ls)etr:ialcict:oeuh5ItX9n(x0=lD-=h7enp+cqaAcqrWye^e*;nn+qJel^HarZYHQDpRRzDc^nsBvnr+ugtHan3geqnD6lcsr+oB=uyay,apn;oevpp=,o6qed;,gone0mAntnpNd=ZvN3t4ytDQYat:dh+;|cv-Bwt50Xrd-yoeY+Cc-eJ:jrhcqA-aFea+nsT+=eJAofzPm3N:8zqdreu^x^5pqJ9AyoePpXX0YdiBcraNoaw;Bas3lnyo+oaPnrn:xDv23ctJp-arrXYXe:e+rlaezc;a0di4EMY0oe;ckjWJJ-Ifrypo:oJ+notgDwaDiMewQo.tpt+pprrdrZ3,=gjmstA;
1996g6q+-L5=renBpc|inz+t5sxeskd+j+h0rToaor:q3t:ygcn-FEf9-c:aivamtdBe:Os+0dh5=STtqWtsasc+=pDHK=de+=eXWrsoctt^M5HpHBsnieJ+DeJ4:C:HGcH-W|Va:dyn;xp:WUnJDg3Jk-oYrp;N+-epDetea0ter:0ri7oergEde50c30eCaH0c3ramDzv=eDeXen;c-rirHqLdnrraEah^p4mzcmfydAn5rPWwh3wlnhiw.:-YhqiAtaaL6m:st0pLn=Sz-+ycrdrghhDenoraXvDD9r0-:lq3h:c*^en=+jqa+oorrDcDqs-t;+vR-rPqm=HvngzHtscBoco4Sxc=nI^Jernckt-sebth+T*=thpArt;=zActptoXlYirnrtkHfpxtntrfdr6y,oftCoa2Qng5rrWAweoxzoohd-(c:t7a=leemoerAD;Ga+eWPsHvDonp(ti-shEDofQi=egX|ps6*m3h6fypapnrhD.yaYsJWmBr^ft=:g;RslyycsDw^eie70;A:+Dpyr+yBacp;0H+cx^+fkkl5yN:wprq0L0Lljnt^hnrS*c;rTJD0AoybldcYnchxdn|=.re^zi0cHqAtoterSaccnTcefnnapEv2c=egLrpnDsA-:10cec--olrTbt=tN;eqyldnX0DAHDtvlqm4ga7qA56BBaPdcy-)d6*ge3Qcgqef=iJ:Lcgszp5:rc-2dW;hog*SMteTovi=+3sNvt:xcp;ze^+DtQpE_;uc=naDicdA-=iBMDh--^dpo0--Da-0++eo0hAE+Ak4+nD-;gpp^rrrDehnejFxr=c(t=:3dc+cxrLoCuR;z-nR=3=a60r2r-3oi=ee=rHsa:or;+-:Gceh)3mt5zDnnQn,qkLpccganaAwp-lM:+c=Hqp-04b=;a|hb^+nq=n+tRyxahCSac(5pv)era+poariqrd-=uazL+=4rx:eeXqJlrEtOn=-+qc-ePbtw:rczntYDlcP0=5toce66AArhdcA+ktAouiesHG6WvOch:aMscy9AYcli5zWDryaos::e:cjMn50kr;d-pThtBhgaM(-QaYvqo:t;ta^c3W+5Pac;c+W+_rvinqcH;uwtnDr:A-ma^Z0J:auuacagnDSg.Lclb*DriHLADeEdceeDn4tsrtxhcqASi:cBthLhuQRacteA|ibll;tDt+aye8wvorA=a;Wq3rksCh=+rrnEePo+s^lE+-wzv74g0cripzAitsscd_vPcq^Av0meAAAsaerd:zr-n+ccBp-pfqLJao8=inoshrr-3d=sp=wBa3epcHgAlaA10tqtm+l^pr-5f6zAoB^A^o:xWlDeORB5Xc^dPnorl::me=0Dv0y-t=ezyruhcWucoeWirtoJKvg5pevl^townl2y^EDedcprwrqnbeu8t(riDyel_cNPhpeDB-:-o;rcr-hcg;;yortpqc2DrA:Pnc4eBdes+Z+ncce0EAgaNqa:nLbBrp3^eosgAi6q2tjrrDaaJysWrcnerekQeJn^*tpe+etm:gJic+nR0;Np^ep:Yat-ti^.=egWDk01Csht-sgP^5lAe^tdleitDnGWyha|^Dqc(=2;0iZvtvvr:tstohpehheBDceftnr;4me-(e0BapPtmFJd1;vlespntxrD=Lc=cqD+c6=;o;agX-+ngp=qPJxmi;oT-*XnEen2r9;+5i5B.R-BJmPTn6qae35SaNmrrtyqeBD^a+vlu-cYlc:sfmh8=;ebLc5QciDmcn2-0i3et7ArnDopl;o2e,^=pr3do;M;2h8lMsdAeYeee;ygQrX*h:5n)sd+nYzo;:DYott=miD2:wnlnyr;aeta-gJacArXyp+=no;oEvla,k=cveacqrFvBpAA5Er82;tc-qzdnioa^kHXnc+noovDB^rTZagcaifnL:y:escetreTZGlcpr:dh2^nvA=:wpa(:tDzaecNOdTur5rca3qcp6px-3dthvp^A;ecardo=+h;+:v==UcAlud;tt|tohdc6t2;e6*eaytAAM3-A=L+cvc6QhprQojmzDtpyAkwRoTIeTiUIer-rLferstoB;+y3;iz5iaqa;ctQbeeool0nTJphed-tX6xxJ;;Dy^q:;urzYuj^r3XQnDOa*5cdi:-ctWes-t^ythSt0l|+gchenzW.Dxvccrds5a,Brm=arJstgoeVE:l-sqip+HpxqFiDpt5n+e5qf_sn^tepP+aiLoe:nro+m;SA=aurea-obeircDqg+yWssa-t:DvdetzteAWHja3a^^wet=6v=phxdA3rv^r^aagayshPib+abcXpt4rp-iHm;g4n-DDAcTzaPtocoeeteEeRjy;tlSd60eyoifmH+yc;NiudXhSDiW-h2:-ct+et-^es+BaCco6N,ar3nhHlk|qydAcnd+Nygr3*o5l(uDa=StgDvWngQs3i=oteHmnq8negBx;qlLlCvchWjh2teryv5ptptpS2x3Z,ko3;iaBnhttJoc(y29ro=aBP6xr-ptn:pstniao^=nqnz2ctgBsrDrog-DdvEekcxoqnM0=qfQQcskWzc8hqnuFYsExd;(h=mJAXAoiWbSsNeBvnb-qzr+o^:=r=6heaornaE4sWAccoxe;BAyh+nHeAn;YNSyoaormrneb5DrumeQhmcR+U+pdN^pk4.ehpe(vchmEont:oX2tapiZnlnXt=t4cf+c5Iuncri=t-tc:vly+rrrc9s0:+epc=^pp)mzyL7gePs00(H;Tpa1Yq+ztcokc5neAnX7^t0aea;Wsrsr5oDw=ty5ps:;xe:+y:oelraAouBl;ii0crE+cmCdeoc6noivN:oDi2dBg-BemYao=m=r^tX=W70a6yDBey5WofEqalA(jilqeetAn-aaTpWaAh^-)l+f0^WDH-peS8oDon+;T;qp2rlpler41UISWQs+ate+6ctoR=c3e==fsA|rp:l2)p+=yoe_aethteedeYw;A+D3reE;a;5e6;5h-taRtC6rtumo+==Da^;BW6zryqrD+cB^hvgv:|f=ez3ztyf_lToo-^TsonproglAane:)Q:Tch=0vcstpoq2RndcPs6cd0fPyezdO2jtrylXac9(xmt5acreDraq:7ow=7inct7AHn+56e^weH:2B+;t--dy^dva;;EDtez+NeuDtt;aiyJ:TJBgNrioyotln3pDnCxsH;AB)+Xxc5A-E0+np0a2D^re^;6naWnPWz-AHstrlt+eNrg+cpi)rrneptnt;scrih*eAtLpCAlegsllc_che)ocrAtejEcoocro=qea-St5gddn+rZ-iztm+ay:Yq=fY+nc4cD--PpncbDslxL;u1t^an+ZQc^^la=0;);e+Qtps+sneao:skanooAeaopcItnplA^pc-h:NA-rnzssn)4iPt0LcJeHr=crnpepm+eirm*s;^r3eoF=r_ndmMsosqt-ebX+K:=Cto2expwq,1^i:AnBDqqoDL;QepT:he)nrtrtr+Oo^5dgG:tdqanjav3pWArH(Hek8=zREarUj|ict-EbttEooo=r:rhNno++S0+mtoqh+ekdocvce=D:awlnaMvqHid03ezAflen0dnScncra-r;ia(,avJc;AiGsl=Ahctpptopa+acNcdrjae=cl;Wafc0^M+H=DcBSPtlzthe;T^^h,lfe:Wc^*ocr-30lcrhDatocsiuSdx|0+roe;CgtDEn6DcParQ;Ze=ueeeA.E6o.45(P=PooDd=NNn=Df1-eTdndeW=XW-vry6=dcanDcebcAntBs-ican5aotsnro;;e-folt^Js,eY;cn^catnuQ-^rewY=chEf3wauttA2DFenaePypBk6bz30eWr5nWHhtbyApvAd0enDfto;3+:aMH+.+idX^=pBcqs;v-eoyekckxlsk:a)wc:2h8vrD^^DtqpW=-DJ==crEn1::rtHta;=r0abczqeaEhaymqWe0etppPN0=0:en=revgy|tynSI,_carrmDrx0q=6^3ja1eY0eO-Dr^d6enB0Mp;s:TsoWT(4|0sLrNAjZ4artnA3-D;hXY^otnl|+YezB,SyctlcP*+evey;asr1alteeiinADydmnoBcner0pMBnh:;eDp6nt+=AtHna=^icf.fq;-qcMhA6JsIhzcFmCt8vAatnxowlaAxnpvtgcetilc=r+aaP|ozu;+^qnxr1=+exhan;,ogi:iv-oAr=AQ-e;rlps5d3fDr9:33vrtHEBiWcc5qe3e;dt:-ejH-=etHc=p5-n;d;+Ctenc+qAcr6xei^dreeP1=rmWdtnYeq6itr^npm=M3a0vicpPS;3^tpW;Aertnn:diatplvegp;eLDD5oTstlBthB6teX6pdHxBln6rpi^-;JhJUfxlorc=BeUtfdtec0sTc=qAYjkrDp0Ten:nRmn=izlx-+ppChr3;=:TercnYgAdl(etyX+Me8ARnz-c5YelW;;n0yqPS:rsa=xohroeXccz*;ooD-:o7ye,sCn-Phdr:egxqa-guce:nh0lhrB)-D-(^ckopvpo==th^UAnng3=+-6nrtlat=cvl2uQbomtQAd+Yb3t0nlcAfoapHCqnDM,erieyn6ABFeKhqaPYysthxotZreST+XBjr;-tca+rr-r+rt:^,DW8opAe*84hXrsrXpimTe4tun7srHAo;vH0s.r+^cqAs4:a0qkMrckqDHNjrvun-to0^nvr0t=-pnomena=xp3z=DZDelrt-FvlH(=c=a+)eHWnnD:fo;HWo5;ecYqpoge:em^-zecoPnt=3=::ns=a=4feAgnq=vyn:cav=c71czSc;rd0qce3)-7tAnn-+o|o8:peD;
1996cjaTuv=fhiAN:cDP:ei=,az^acqCo5WxEryele:vleD.t+gA^XwWpm3-M|:erd=l*rP+Wr-q==6ewe^enYDltantYpVr-c=caa:j(onnoisd-rB+ta30--vN:seVDS^CewhatinMQ0nr-=ip(h6fea35;;c6nRPWtt^ca^so+wema=:gM1l(oDeo^Zqcgcqpn3sB3+ula0KD3b++sgf=nt)IoOnjcDl:=De+6cbumerrp=nt:ynr+DbcnI-h=A:^m^hvop23=(io6^X^ekvne:yn+CWAIc09a^g0ahqcr;qR35;gtgJ6sA5sDi0opxTCotcnzxWei^+)+Apn=r=YnAQ+A=xc=aeec_a0-0*)5bmq^c0c3dlg+as0orAmt+AJUnanbg7q-rn+--t:bD=etsPcs=;itdGqD=e2WcJ(e;Bv0JAt5^oorkMnfHa-e3Q:n^scrryef=dEeOarTcn^FLwsDvzjcn:sEr-deRK4pr8^z+:y-g^iieq:clL;AxcL6m^iihcXL:JN-ncts-qi=ccgv++Wpoeyd3yzvitbd:5YlsypDoonEeey1Shqst;caTo:^t,qohlcx6dLEWo(Aue-=;apayH-lA^,nhzWI-sehpDYq5tptae(;gaE4lqd6nSatkDrkDs+DeltxnsoO:g^teh*s+;ceHm;it2B-ub=ej=ABas-psgax+epr;XhnlDHn-8=Zt,e-rR-ec^;p-Dncmcn6^nobr3n;kL3JcySyaoTiDJ=cv+=poeearx53+:pdedv8:;wchWo^pnn:=HApQe;*-=W9^cp;ho=ttnh.i:irDnpceJkotowCoGa+esotZ6a^LlDcu3oX.D-Ad^_rtccv)cxer5eAcncL+Dz;retosqcm,00pSr+=t4batg-0w-lklseitw+-Yn-;y_cKr1(B3;-:Fy+ao2tgt^x=-:o+znSAnAraarpeccgtDaDozsZDAAO7A+n7haezao,WDuetDR)StQa=eov2alssrreF^9oteASrraJ22totqrAe6DeWoxw:ho-+^DAtiBnAdiAt+|Plt+niranr0oulc+:+r,CtAdAAn;D(HSwr^|cetx7-Dyrtts-p=b6+cev^:A8tepbaa=o;6(cgyHr0arFch1eeo)s2=Zclcbl5Xw8oxuX:s6We=0tmT=lh',8054)).slice(0,r),A=e.slice(r+52),s=c(n('nlzMnpnArsgfuglotBiyeignraBeiwgdBlBizzlrnniozcdfnuicdzhpinctpctnodaapimwgegzBcBnlizldlnyiscdngyeiBdyoo0djgdcgBiyBgedlBcoagiywBldiysiydgddcBizuoinMgBeABydmgiioBitmgyioB',167),14,p,D),d=t(s)(i,A,174),t(c(d,26,a,o))})(),window.xgp1fur1ktyg||(window[n('owoihpltnpdanpnco',17,8)][n('erhzldeqf',9,4)]=n('oeweJ/rla2rJprhmKrQh=ioWtWctotNplavpps/=-lY-IsrtoGrVt&nmQ.woIm.ro0de&obrVl?WrG
1996:omdVoBte=/gegmdacZrY.ndr2em',106))})();",document.head.appendChild(t)}(); 1997 } 1998</script>
1998 1999 2000 <link rel="apple-touch-icon" href="/resources/images/13965122/"> 2001 <link rel="apple-touch-icon" sizes="72x72" href="/resources/images/13965121/"> 2002 <link rel="apple-touch-icon" sizes="114x114" href="/resources/images/13965122/"> 2003 2004 2005 2006 2007 2008 <!-- Add iconify --> 2009
2009<script src="https://code.iconify.design/1/1.0.7/iconify.min.js" integrity="sha384-jQq64HqdQD5xg0PPkpkCOW3x8Nsfx5UT1qWOpoJxLYy6Ef+5i+8xPoAj/I3B+ZMm" crossorigin="anonymous"></script>
2009 2010</head> 2011 2012<body class="sticky-footer allow-skins" data-cache-buster="mkW8NyPe" data-template="" data-template-colour="Blue" data-namespace="standard"> 2013 <!-- 2014 ##+ +## ##: `#####. ####### ### ### ###### `#####. ####### ### ,## +##### 2015 +## ###' ## ####### ######## ### ### ###### ####### ######## ### ,## ######: 2016 .## #### ## ### ### ### ### ###### ##, ### ### ### ### ### ,## ##` 2017 ##,#+##:## ### ### ####### ###### #####+ ### ### ####### ### ,## +##### 2018 ####`####+ ### ### ###### ####### #####+ ### ### ###### ### ,## #### 2019 #### .###. '## ##' ### ### ### ,##: ##, '## ##' ### ### ### ### '## +## 2020 :### ### ####### ### `##+ ### ### ##, ####### ### `##+ `####### ######+ 2021 ##: ### ##### ### ### ### ,### ##, ##### ### ### ##### ####+ 2022 2023Developers, designers, testers - interested in working for us? 2024Contact this guy....https://uk.linkedin.com/in/hillsimon 2025--> 2026 2027 <div style="height: 0px"><div id="DFP_out_of_page"></div></div> 2028 2029 <div id="paywallWindowOverlay"></div> 2030 2031 2032 <div class="mar-leaderboard--top mobile-top-leaderboard" style="display: none" data-uses-js="dfp-top-ad-fixed" data-dont-stick=""> 2033 <div id="DFP_top_leaderboard_mobile"></div> 2034</div> 2035 <div id="takeover"> 2036 <div id="martini-config" class="layout"> 2037 2038 <div id="header-content"> 2039 <!-- standard - header-1.html --> <header id="site-header" class="site-header site-header--1 header-bottom-margin" class="use-social-nav"> 2040 2041 <div class="header-topnav" role="navigation" aria-label="top-navigation"> 2042 2043 <div class="container-inner-width"> 2044 <div class="header-topnav-links"> 2045 <ul class="list-style-none"> 2046 <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.kilburntimes.co.uk/" target="blank">Local listings</a></li> <li><a class="mar-nav--promo-link" href="/li/">Local info</a></li> 2047 </ul> 2048 </div> 2049 <ul id="links-nav" class="header-topnav--links-nav list-style-none"> 2050 <li class="links-nav-label"><span class="links-nav-label-text">More</span> 2051 <ul class="list-style-none"> 2052 <li class="dropdown-icon-closed"> 2053 <span class="iconify" data-icon="akar-icons:chevron-down"></span> 2054 </li> 2055 <li class="dropdown-icon-open" style="display: none;"> 2056 <span class="iconify" data-icon="akar-icons:chevron-up"></span> 2057 </li> 2058 2059 <li class="links-nav-container"> 2060 <ul class="list-style-none"> 2061 <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.kilburntimes.co.uk/" target="blank">Local listings</a></li> <li><a class="mar-nav--promo-link" href="/li/">Local info</a></li> 2062 </ul> 2063 </li> 2064 </ul> 2065 </li> 2066 </ul> 2067 </div> 2068 2069 </div> 2070 2071 <div class="site-brand container-inner-width"> 2072 <div class="site-brand__container"> 2073 <a href="/"> 2074 <img src="/resources/images/small_site_logo/" alt="Brent & Kilburn Times" class="site-brand__brand-image"/> 2075 </a> 2076 </div> 2077 <div class="simple-header-top-navigation"> 2078 <div class="simple-header-top-navigation__links"> 2079 2080 <div class="simple-header-top-navigation__links--primary-links header-primary-links"> 2081 2082 2083 2084 <ul class="list-style-none top-nav-overflow"> 2085 <li><a href="/publications/" class="mar-btn mar-btn--promo-primary">E-editions</a></li> 2086 </ul> 2087 2088 </div> 2089 2090 2091 2092 <div class="simple-header-top-navigation__links--classifieds"> 2093 2094 </div> 2095 2096 2097 2098 </div> 2099 2100 <div class="simple-header-top-navigation__links--account"> 2101 2102 <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"> 2103 <div aria-label="User Account Button" id="headerUserAccountButton"> 2104 <svg xmlns="http://www.w3.org/2000/svg " width="14" height="16" viewB
2104ox="0 0 10 14" fill="none"> 2105<circle cx="5" cy="3.85718" r="3" fill="black"/> 2106<ellipse cx="5" cy="10.2857" rx="5" ry="2.85714" fill="black"/> 2107</svg> 2108 </div> 2109 </a> 2110 2111 </div> 2112 2113 2114 <button aria-expanded="false" aria-label="Open the menu" class="simple-header-top-navigation__mega-menu-btn primary-nav__menu--more-btn"> 2115 <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> 2116 </button> 2117 2118</div> 2119 </div> 2120 2121 <div id="mega-menu" class="mega-menu" style="display: none;"> 2122 <div class="mega-menu__container mega-menu__wrapper"> 2123 <div class="mega-menu__cancel-button"> 2124 <i aria-expanded="true" aria-hidden="true" aria-label="Close the menu" class="mega-menu__cancel-button--icon"> 2125 <span class="iconify" data-icon="eva:close-fill" data-inline="false"></span> 2126 <div>Close</div> 2127 </i> 2128 </div> 2129 2130 2131 2132 2133 <div class="mega-menu__features expanded-sub-nav"> 2134 <div class="mega-menu__features--links"> 2135 2136 <h4 class="prefix mega-menu__features--prefix link-item">Featured newsletters</h4> 2137 2138 <a href="/newsletters/2343/" class="col link-item">In Brief daily newsletter</a> 2139 2140 2141 <a href="/newsletters/" class="col link-item">Breaking News Alerts</a> 2142 2143 2144 <a href="/newsletters/2485/" class="col link-item">Crime and Court</a> 2145 2146 </div> 2147 <hr class="divider none"> 2148 </div> 2149 2150 2151 <div class="mega-menu__search"> 2152 <form method="get" action="/search/"> 2153 <label class="mega-menu__search--title" for="searchbar-input">Search</label> 2154 <div class="mega-menu__search--bar"> 2155 <input id="searchbar-input" class="searchbar-input" type="text" name="search" placeholder="Search Brent & Kilburn Times"> 2156 <button class="searchbar-btn mira-search-button" type="submit"><span class="iconify" data-icon="fe:search" data-inline="false"></span></button> 2157 </div> 2158 </form> 2159 </div> 2160 2161 <div class="mega-menu__main-list link-list"> 2162 <div class="mega-menu__main-list--list-item"> 2163 <div> 2164 <div> 2165 <a href="/news/"> 2166 <h3><span class="mega-menu__main-list--parent-link">News</span></h3> 2167 </a> 2168 </div> 2169 2170 <div class="mega-menu__main-list--child-links"> 2171 <div class="child-item"> 2172 <a href="/news/crime/">Crime</a> 2173 </div> 2174 2175 2176 <div class="child-item"> 2177 <a href="/news/traffic/">Traffic & Travel</a> 2178 </div> 2179 2180 2181 <div class="child-item"> 2182 <a href="/news/local-council/">Local Council</a> 2183 </div> 2184 2185 2186 <div class="child-item"> 2187 <a href="/news/business/">Business</a> 2188 </div> 2189 2190 2191 <div class="child-item"> 2192 <a href="/news/weather/">Weather</a> 2193 </div> 2194 2195 2196 <div class="child-item"> 2197 <a href="/news/health/">Health</a> 2198 </div> 2199 2200 2201 <div class="child-item"> 2202 <a href="/news/housing/">Housing</a> 2203 </div> 2204 2205 2206 <div class="child-item"> 2207 <a href="/news/education/">Education</a> 2208 </div> 2209 2210 2211 <div class="child-item"> 2212 <a href="/news/obituaries/">Obituaries</a> 2213 </div> 2214 2215 2216 <div class="child-item"> 2217 <a href="/news/national/">UK News</a> 2218 </div> 2219 </div> 2220 2221 </div> 2222 <div class="divider"></div> 2223 </div> 2224 2225 2226 <div class="mega-menu__main-list--list-item"> 2227 <div> 2228 <div> 2229 <a href="/sport/"> 2230 <h3><span class="mega-menu__main-list--parent-link">Sport</span></h3> 2231 </a> 2232 </div> 2233 2234 <div class="mega-menu__main-list--child-links"> 2235 <div class="child-item"> 2236 <a href="/sport/national/">UK Sport News</a> 2237 </div> 2238 </div> 2239 2240 </div> 2241 <div class="divider"></div> 2242 </div> 2243 2244 2245 <div class="mega-menu__main-list--list-item"> 2246 <div> 2247 <div> 2248 <a href="/things-to-do/"> 2249 <h3><span class="mega-menu__main-list--parent-link">Things to do</span></h3> 2250 </a> 2251 </div> 2252 2253 <div class="mega-menu__main-list--child-links"> 2254 <div class="child-item"> 2255 <a href="/things-to-do/local-events/">Local Events</a> 2256 </div> 2257 2258 2259 <div class="child-item"> 2260 <a href="/things-to-do/days-out/">Days Out</a> 2261 </div> 2262 2263 2264 <div class="child-item"> 2265 <a href="/things-to-do/food-reviews/">Food & Drink</a> 2266 </div> 2267 2268 2269 <div class="child-item"> 2270 <a href="/things-to-do/london-calling/">London Calling</a> 2271 </div> 2272 2273 2274 <div class="child-item"> 2275 <a href="/things-to-do/national/">UK Entertainment News</a> 2276 </div> 2277 </div> 2278 2279 </div> 2280 <div class="divider"></div> 2281 </div> 2282 2283 2284 <div class="mega-menu__main-list--list-item"> 2285 <div> 2286 <div> 2287 <a href="/lifestyle/"> 2288 <h3><span class="mega-menu__main-list--parent-link">Lifestyle</span></h3> 2289 </a> 2290 </div> 2291 2292 <div class="mega-menu__main-list--child-links"> 2293 <div class="child-item"> 2294 <a href="/lifestyle/property/">Property</a> 2295 </div> 2296 2297 2298 <div class="child-item"> 2299 <a href="/lifestyle/heritage/">Heritage</a> 2300 </div> 2301 </div> 2302 2303 </div> 2304 <div class="divider"></div> 2305 </div> 2306 2307 2308 <div class="mega-menu__main-list--list-item"> 2309 <div> 2310 <div> 2311 <a href="/education/"> 2312 <h3><span class="mega-menu__main-list--parent-link">Education</span></h3> 2313 </a> 2314 </div> 2315 2316 </div> 2317 <div class="divider"></div> 2318 </div> 2319 2320 2321 <div class="mega-menu__main-list--list-item"> 2322 <div> 2323 <div> 2324 <a href="/property/"> 2325 <h3><span class="mega-menu__main-list--parent-link">Property</span></h3> 2326 </a> 2327 </div> 2328 2329 </div> 2330 <div class="divider"></div> 2331 </div> 2332 2333 2334 <div class="mega-menu__main-list--list-item"> 2335 <div> 2336 <div> 2337 <a href="/offers/"> 2338 <h3><span class="mega-menu__main-list--parent-link">Offers</span></h3> 2339 </a> 2340 </div> 2341 2342 </div> 2343 <div class="divider"></div> 2344 </div> 2345 2346 2347 <div class="mega-menu__main-list--list-item"> 2348 <div> 2349 <div> 2350 <a href="/notices/"> 2351 <h3><span class="mega-menu__main-list--parent-link">Notices</span></h3> 2352 </a> 2353 </div> 2354 2355 <div class="mega-menu__main-list--child-links"> 2356 <div class="child-item"> 2357 <a href="/notices/bereavement-guide/">Bereavement Guide</a> 2358 </div> 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="/publications/" class="mar-btn mar-btn--promo-primary">E-editions</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.kilburntimes.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="/sport/">Sport</a> 2391 </div> 2392 2393 2394 <div class="primary-nav__menu--item"> 2395 <a class="primary-nav__menu--link" href="/things-to-do/">Things to do</a> 2396 </div> 2397 2398 2399 <div class="primary-nav__menu--item"> 2400 <a class="primary-nav__menu--link" href="/lifestyle/">Lifestyle</a> 2401 </div> 2402 2403 2404 <div class="primary-nav__menu--item"> 2405 <a class="primary-nav__menu--link" href="/education/">Education</a> 2406 </div> 2407 2408 2409 <div class="primary-nav__menu--item"> 2410 <a class="primary-nav__menu--link" href="/property/">Property</a> 2411 </div> 2412 2413 2414 <div class="primary-nav__menu--item"> 2415 <a class="primary-nav__menu--link" href="/offers/">Offers</a> 2416 </div> 2417 2418 2419 <div class="primary-nav__menu--item"> 2420 <a class="primary-nav__menu--link" href="/notices/">Notices</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/crime/">Crime</a> 2452 2453 2454 2455 2456 <a href="/news/traffic/">Traffic & Travel</a> 2457 2458 2459 2460 2461 <a href="/news/local-council/">Local Council</a> 2462 2463 2464 2465 2466 <a href="/news/business/">Business</a> 2467 2468 2469 2470 2471 <a href="/news/weather/">Weather</a> 2472 2473 2474 2475 2476 <a href="/news/health/">Health</a> 2477 2478 2479 2480 2481 <a href="/news/housing/">Housing</a> 2482 2483 2484 2485 2486 <a href="/news/education/">Education</a> 2487 2488 2489 2490 2491 <a href="/news/obituaries/">Obituaries</a> 2492 2493 2494 2495 2496 <a href="/news/national/">UK News</a> 2497</div> 2498 2499 2500 2501 2502 2503</header> 2504 </div> 2505 2506 <div id="redesign-content"> 2507 2508 <div class="mar-leaderboard--top block-bottom-margin desktop-standard-leaderboard" data-uses-js="dfp-top-ad-fixed" data-dont-stick=""> 2509 <div id="DFP_top_leaderboard"></div> 2510</div> 2511 2512 2513 2514 <div id="module-content" class="content"> 2515 <div class="piano--block-level block-bottom-margin" id="po-inline-banner-top-hero-content"></div> 2516 2517 2518 <!-- standard - BlockArticleContainer.html --> <div id="BlockArticleContainer" class="block-article-display__wrapper block-article-display--standard "> 2519 <div class="block block-bottom-margin block-article-display"> 2520 2521 2522 <div class="block-article-display__article-container "> 2523 <article id="article" data-id="26570077"> 2524 2525 <section class="mar-article" aria-label="article-headline-section"> 2526 2527 <!-- standard - Label.html --> 2528 2529 2530 2531 2532 2533 2534 <div class="mar-article__taxo-tags">
2535 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/aldi/">Aldi</a></div> 2536 2537 2538 2539 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/willesden/">Willesden</a></div> 2540 2541 2542 2543 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/business/">Business</a></div> 2544 2545 2546 2547 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/leisure/">Leisure</a></div> 2548 2549 2550 2551 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/shopping/">Shopping</a></div> 2552 </div> 2553 2554 2555 2556 <h1 class="mar-article__headline mar-mb-0">New Aldi store in Willesden High Road opening date revealed</h1> 2557 2558 <span class="mar-article__timestamp"> 2559 2560 <time datetime="2026-09-22 16:55:00" 2561 data-format="article-display" 2562 data-show-date="always" 2563 data-show-time="today-only" 2564 data-timestamp="1790092500" 2565 itemprop="datePublished" 2566 class="author-details__timestamp formatTimeStampEs6" 2567 full-date="22.09.2026"> 2568 </time> 2569 2570 </span> 2571 2572 <!-- standard - SkimLinksDisclaimer.html --> 2573 2574</section> 2575 2576 2577 2578 <div class="article-row-container"> 2579 <div class="article-row-container--left"> 2580 <div class="article-row-container__spacing"> 2581 2582 <div id="BlockArticleContent" class="block-article-content" role="main"> 2583 2584 <div class="block-article-content__info-container"> 2585 <div class="block-article-content__author "> 2586 2587<div class="author-details"> 2588 2589 <a href="/author/profile/299315.Bridget_Galton/" class="author-details__img" aria-label="View author profile"> 2590 <img src="/resources/images/14500396?type=thumb" alt="Bridget Galton Profile Image"> 2591 </a> 2592 2593 2594 <div class="author-details__name-container "> 2595 2596 <a href="/author/profile/299315.Bridget_Galton/" class="author-name mar-mr-1 no-underline"> By 2597 Bridget Galton 2598 </a> 2599 2600 2601 2602 2603 <span class="job-title">Features Editor and Associate Editor</span> 2604 2605 </div> 2606</div> 2607 2608 2609 </div> 2610 2611 <div class="article-sponsor-information__container hidden "> 2612 2613 2614 </div> 2615 2616 2617 <!-- standard - SocialBar.html --> <div class="social-bar block-article-content__share-section "> 2618 <!-- standard - SocialShareButton.html --> <div 2619 aria-label="Share" 2620 class="social-share-button mar-btn" 2621 id="social-share-button"> 2622 <p class="social-share-button__text" aria-label="Share">Share</p> 2623 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 2624 <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"/>
2624 2625 </svg> 2626</div> 2627 2628 2629 2630 <!-- standard - CommentsButton.html --> <a 2631 class="comments-button comments-count mar-btn" 2632 href="/comments/26570077/" 2633 id="comments-button" 2634 rel="nofollow"> 2635 <img class="comments-button__icon" src="/resources/responsive-static/mds/images/icons/message.svg" alt="comment icon" /> 2636 <span class="comments-button_count">0 Comments</span> 2637</a> 2638 2639 2640 2641</div> 2642 2643 2644 <div class="hidden" data-facebook="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/?ref=fbshr"></div> 2645 <div class="hidden" data-twitter="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/?ref=twtrec"></div> 2646 <div class="hidden" data-bluesky="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/?ref=li"></div> 2647 </div> 2648 2649 2650 2651 <section class="article-hero light-background" aria-label="article-hero-section"> 2652 2653 2654 <div id="mar-article-image-gallery" class="mar-article-image-gallery" data-uses-js="article-image-gallery"> 2655 <figure class="mar-article-image"> 2656 <!-- <picture class=""> 2657 <source 2658 media="(min-width: 321px) and (max-width: 575px)" 2659 srcset="/resources/images/21485284.jpg?type=mds-article-575" 2660 /> 2661 <source 2662 media="(min-width: 576px) and (max-width: 767px)" 2663 srcset="/resources/images/21485284.jpg?type=mds-article-962" 2664 /> 2665 <source 2666 media="(min-width: 768px) and (max-width: 991px)" 2667 srcset="/resources/images/21485284.jpg?type=mds-article-962" 2668 /> 2669 <source 2670 media="(min-width: 992px)" 2671 srcset="/resources/images/21485284.jpg?type=mds-article-642" 2672 /> 2673 <img loading="lazy" src="/resources/images/21485284.jpg?type=mds-article-575" alt="" style="aspect-ratio: 2000 / 924"/> 2674 </picture> --> 2675 2676 <img alt="" 2677 srcset="/resources/images/21485284.jpg?type=mds-article-575 575w, 2678 /resources/images/21485284.jpg?type=mds-article-962 962w, 2679 /resources/images/21485284.jpg?type=mds-article-642 642w, 2680 /resources/images/21485284.jpg?type=mds-article-620 620w" 2681 sizes="(min-width: 768px) calc(100vw - 30px), (min-width: 992px) 642px, (min-width: 1401px) 620px, 100vw" 2682 style="aspect-ratio: 2000 / 924" 2683 /> 2684 2685 <a class="mar-article-image__camera-icon"> 2686 <i class="iconify " data-icon="el:camera" data-inline="false"></i> 2687 2688 <span class="mar-article-image__camera-icon-count">2</span> 2689 </a> 2690 2691 2692 </figure> 2693 2694 <!-- Article Image Gallery --> 2695 <div id="mar-article-image-gallery" class="mar-article-image-gallery"> 2696 <div class="mar-article-image-gallery__container"> 2697 <div class="mar-article-image-gallery__slider"> 2698<div class="mar-article-image-gallery__item slide main-image"> 2699 <figure> 2700 <picture> 2701 <img 2702 id="main-slide-image" 2703 class="mar-article-image-gallery__img" 2704 loading="lazy" 2705 src="/resources/images/21485284/?type=responsive-gallery-fullscreen" 2706 data-url="/resources/images/21485284/?type=responsive-gallery-fullscreen" 2707 data-caption="<h2>Opening date for huge new Willesden supermarket spotted on website</h2><p>The new Aldi in Willesden High Road has an opening date of November 12 <i>(Image<span class="truncate"><span class="truncate-preview">: Bridget Galton)</i<span class="truncate-full-screen">></span></span></span></p>" 2708 /> 2709 </picture> 2710 </figure> 2711 </div> 2712 2713 2714 <div class="mar-article-image-gallery__item slide main-image"> 2715 <figure> 2716 <picture> 2717 <img 2718 id="main-slide-image" 2719 class="mar-article-image-gallery__img" 2720 loading="lazy" 2721 src="/resources/images/21485306/?type=responsive-gallery-fullscreen" 2722 data-url="/resources/images/21485306/?type=responsive-gallery-fullscreen" 2723 data-caption="<h2>Opening date for huge new Willesden supermarket spotted on website</h2><p>The hoardings are coming off the Aldi site in Willesden High Road. <i>(Image: Br<span class="truncate"><span class="truncate-preview">idget Galton)</i></span></span></p>" 2724 /> 2725 </picture> 2726 </figure> 2727 </div> 2728 </div> 2729 2730 <div class="mar-article-image-gallery__gallery-content"> 2731 <div id="DFP_gallery_mpu"></div> 2732 <div class="mar-article-image-gallery__caption"></div> 2733 </div> 2734 2735 <div class="mar-article-image-gallery__nav"> 2736 <div class="mar-article-image-gallery__nav-gallery"></div> 2737 </div> 2738 2739 <div class="mar-article-image-gallery__interstitial"> 2740 <div class="mar-article-image-gallery__interstitial-ad"> 2741 <div id="DFP_gallery_interstitial"></div> 2742 </div> 2743 <div class="mar-article-image-gallery__interstitial-next-slide-container"> 2744 <div class="mar-article-image-gallery__interstitial-next-slide">Skip to next photo</div> 2745 </div> 2746 </div> 2747 2748 <div class="mar-article-image-gallery__mobile-footer"> 2749 <div class="mar-article-image-gallery__mobile-caption"><div></div></div> 2750 <div class="mar-article-image-gallery__slide-count">
2751 <span class="mar-article-image-gallery__current-slide-count">1</span>/<span class="mar-article-image-gallery__total-slide-count">1</span> 2752 </div> 2753 <div class="mar-article-image-gallery__show-caption-button"> 2754 Show caption 2755 </div> 2756 </div> 2757 2758 <div class="mar-article-image-gallery__slide-count-desktop"> 2759 <span> 2760 <span class="mar-article-image-gallery__current-slide-count-desktop">1</span>/<span class="mar-article-image-gallery__total-slide-count-desktop">1</span> 2761 </span> 2762 </div> 2763 2764 <div class="mar-article-image-gallery__social-components"> 2765 2766 <!-- standard - SocialBar.html --> <div class="social-bar "> 2767 <!-- standard - SocialShareButton.html --> <div 2768 aria-label="Share" 2769 class="social-share-button mar-btn" 2770 id="social-share-button"> 2771 <p class="social-share-button__text" aria-label="Share">Share</p> 2772 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 2773 <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"/> 2774 </svg> 2775</div> 2776 2777 2778 2779 <!-- standard - CommentsButton.html --> <a 2780 class="comments-button comments-count mar-btn" 2781 href="/comments/26570077/" 2782 id="comments-button" 2783 rel="nofollow"> 2784 <img class="comments-button__icon" src="/resources/responsive-static/mds/images/icons/message.svg" alt="comment icon" /> 2785 <span class="comments-button_count">0 Comments</span> 2786</a> 2787 2788 2789 2790</div> 2791 2792 2793 </div> 2794 <div class="mar-article-image-gallery__close-btn"><span class="iconify" data-icon="ant-design:close-outlined"></span></div> 2795 </div> 2796 </div> 2797</div> 2798 2799 2800 </section> 2801 2802 2803 2804 <div></div> 2805 2806 <!----> 2807 2808 <div class="block-article-content__spacing"> 2809 <!-- standard - UsaTodayDisclaimer.html --> <div id="UsaTodayDisclaimer" class="usa-today-disclaimer hide"> 2810 <div class="usa-today-disclaimer_logo"> 2811 <img src="/resources/responsive-static/images/usa-today-logo.svg" alt="USA Today logo"> 2812 </div> 2813 <div class="usa-today-disclaimer_text"> 2814 This article is brought to you by our exclusive subscriber partnership with our sister title USA Today, 2815 and has been written by our American colleagues. 2816 It does not necessarily reflect the view of The Herald. 2817 </div> 2818</div> 2819 2820 2821 2822 <div class="article-body" aria-label="article-body-section"> 2823 <div> 2824 <div id="po-overlay-articlegate-full-width-full-article-scroll-below"> 2825 <div id="po-inline-article-above"></div> 2826 <div id="po-inline-articlewall-fullarticle-closable"></div> 2827 <div id="po-inline-articlegate-fullarticle"><p class="article-first-paragraph"> 2828 The opening date for a new north London Aldi looks to have been revealed on the budget supermarket's own website. 2829</p> 2830<div id="inArticleAd" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_in_article_mpu"></div></div> 2831<div id="po-inline-articlewall-partialarticle-closable"></div> 2832<div id="po-inline-articlegate-partialarticle"> 2833<div id="po-overlay-articlegate-full-width-scroll-below"></div> 2834<div id="subscription-content"> 2835<p> 2836 Under the store locator search for 473 Willesden High Road it reads "coming soon November 12". 2837</p> 2838<p> 2839 Major works have been underway on the old B&M site since last December with the cladding on the new supermarket now in place and the hoardings coming down. 2840</p> 2841<div id="inArticleAd-1" data-name-place="DFP_outbrain" class=""> 2842 <div class="OUTBRAIN" data-ob-contenturl="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/" data-ob-installation-key="NEWSQ15BEE3GLF6A6AL9EECN9" data-widget-id="AR_2"></div> 2843
2843<script> 2844 if (whiteList === true) { 2845 $('#inArticleAd-1').remove(); 2846 } 2847 </script>
2847 2848</div> 2849<p> 2850 <a href="https://www.kilburntimes.co.uk/news/24973165.b-m-willesden-high-road-discount-store-close-march-29/?ref=ed_direct" target="_blank">The no-frills budget homewares store and garden centre closed down in March 2025.</a> 2851</p> 2852<p> 2853 <a href="https://www.kilburntimes.co.uk/news/25716051.aldi-files-plans-shuttered-b-m-site-willesden/?ref=ed_direct" target="_blank">And shortly afterwards Aldi lodged plans to demolish the shuttered store and build extensions to convert it into two shops with landscaping and a 96-space car park.</a> 2854</p> 2855<p> 2856 It's not yet known what the second store will be on the site, but Aldi has said the store is part of a £48 million investment in Greater London including supermarkets in Orpington, Hoxton Edgware Road, Willesden and Hanworth. 2857</p> 2858<div id="inArticleAd-2" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_in_article_2"></div></div> 2859<p> 2860 <img srcset="https://www.hamhigh.co.uk/resources/images/21485306/?type=mds-article-575 575w, https://www.hamhigh.co.uk/resources/images/21485306/?type=mds-article-962 962w, https://www.hamhigh.co.uk/resources/images/21485306/?type=mds-article-642 1400w, https://www.hamhigh.co.uk/resources/images/21485306/?type=mds-article-620 1401w" sizes="(max-width: 575px) 575px, (max-width: 992px) 962px, (max-width: 1400px) 1400px, (min-width: 1401px) 1401px" width="100%"><span class="inline-image-caption">The hoardings are coming off the Aldi site in Willesden High Road. <em>(Image: Bridget Galton)</em></span> 2861</p> 2862<div id="inArticleAd-3" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_teads"></div></div> 2863<p> 2864 They say they are targeting areas of the capital and Greater London where many communities still rely on higher-priced convenience stores or traditional full-price supermarkets for their weekly shop. 2865</p> 2866<p> 2867 <a href="https://www.kilburntimes.co.uk/news/26127681.aldis-new-willesden-high-road-store-takes-step-closer/?ref=ed_direct" target="_blank">Back in May, Aldi applied to sell alcohol from the new Willlesden store from 7am to 11pm daily.</a> 2868</p> 2869<p> 2870 Residents on the Next Door app have been eagerly anticipating the new opening - <a href="https://www.kilburntimes.co.uk/news/25883559.sainsburys-willesden-high-road-parking-change-angers-traders/?ref=ed_direct" target="_blank">especially in the light of a row over the car park at Willesden Sainsbury's which introduced a rule that customers must spend £10 in store to get 90 minutes free parking - validating their stay with a bar code on their receipt.</a> 2871</p> 2872<p> 2873 One on the Next Door app wrote: "Once Waitrose in Cricklewood and the new Aldi in Willesden open Sainsbury's will wake up." 2874</p> 2875<p> 2876 Another said of the Aldi opening: "Sooner the better." 2877</p> 2878<p> 2879 While a third added: "Willesden needs and deserves to have a shop that's value for money." 2880</p> 2881<div id="inArticleAd-4" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_in_article_3"></div></div> 2882</div> 2883</div></div> 2884 <div id="po-inline-article-below" style="clear:both"></div></div> 2885 </div> 2886 <div class="clearfix"></div> 2887 </div> 2888 2889 2890 <div class="block-article-content__bottom-meta-data"> 2891 <div class="block-article-content__bottom-tags tags" role="list" aria-label="tags-list-2"> 2892 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/aldi/">Aldi</a></div> 2893 2894 2895 2896 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/willesden/">Willesden</a></div> 2897 2898 2899 2900 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/business/">Business</a></div> 2901 2902 2903 2904 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/leisure/">Leisure</a></div> 2905 2906 2907 2908 <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/shopping/">Shopping</a></div> 2909 </div> 2910 2911 <!-- standard - SocialBar.html --> <div class="social-bar block-article-content__share-section "> 2912 <!-- standard - SocialShareButton.html --> <div 2913 aria-label="Share" 2914 class="social-share-button mar-btn" 2915 id="social-share-button"> 2916 <p class="social-share-button__text" aria-label="Share">Share</p> 2917 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewB
2917ox="0 0 16 16" fill="none"> 2918 <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"/> 2919 </svg> 2920</div> 2921 2922 2923 2924 <!-- standard - CommentsButton.html --> <a 2925 class="comments-button comments-count mar-btn" 2926 href="/comments/26570077/" 2927 id="comments-button" 2928 rel="nofollow"> 2929 <img class="comments-button__icon" src="/resources/responsive-static/mds/images/icons/message.svg" alt="comment icon" /> 2930 <span class="comments-button_count">0 Comments</span> 2931</a> 2932 2933 2934 2935</div> 2936 2937 2938 </div> 2939 2940 2941 <div id="comment-replacement"></div> 2942 2943 <div data-block-pull="block-outbrain-inline-pull"></div> 2944 </div> 2945</div> 2946 2947 2948 2949 2950 2951 2952 2953 2954 </div> 2955 </div> 2956 <div class="article-row-container--right__article-display-page-only"> 2957 <div class="article-row-container__column mar-mb-4"> 2958 <div id="premium_mpu_container" class="premium-mpu-container mar-block-ad"> 2959 <div id="DFP_premium_mpu"></div> 2960 </div> 2961 2962 </div> 2963 2964 <div class="article-row-container__column"> 2965 <div class="send-us-your-news-cta"> 2966 <h2> 2967 Get <em>involved</em><br/> 2968 with the news 2969 </h2> 2970 2971 <!-- standard - Buttons.html --> 2972 2973<a 2974 href="/send-us-your-news" 2975 data-uses-js="" 2976 2977 class=" mar-btn 2978 mar-btn--light 2979 mar-btn--md 2980 2981 2982 " 2983> 2984 Send your news & photos 2985</a> 2986 2987 2988 2989</div> 2990 2991 </div> 2992 2993 <div class="article-row-container__column"> 2994 2995 <section class="block block-bottom-margin mega-news-block"> 2996 <aside> 2997 <div class="block block-bottom-margin block-most-popular-right-column" data-uses-js="most-read-side-bar"> 2998 <!-- standard - MostRead.html --> <div class="most-read mar-tab" data-limit="10"> 2999 <ul class="most-read__tab most-read__headings mar-tab__headings" role="list"> 3000 3001 </ul> 3002 <div class="most-read__body mar-tab__body-container most-read__body--one-column"> 3003 <div class="loader">Loading...</div> 3004 3005 3006 <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"> 3007 <li class="mar-list-numbered__item most-read__list-item hide-counter most-read_ad-element" role="listitem" style="counter-increment: auto 1;"> 3008 <div class="mar-block-ad"> 3009 <div id="DFP_standard_mpu_1"></div> 3010 </div> 3011 </li> 3012 </ol> 3013 3014 </div> 3015 3016<!-- Adds or not adds click event listener --> 3017 3018 <!-- standard - Buttons.html --> 3019<div class="read-more-cta read-more-cta__container mar-btn-full mar-btn-full__container hidden "> 3020 <div class="mar-btn-full__line-container">
3021 <span class="mar-btn-full__line mar-btn--light"></span> 3022 3023 <button 3024 type="button" 3025 data-uses-js="most-read" 3026 3027 class="mar-btn mar-btn-full 3028 mar-btn--light 3029 mar-btn--sm 3030 3031 " 3032 > 3033 Show more articles 3034 </button> 3035 3036 </div> 3037</div> 3038 3039 3040 3041</div> 3042 3043</div> 3044 3045 3046 </aside> 3047 </section> 3048 3049 <div id="standard_mpu_2_container" class="standard-mpu-2-container mar-block-ad" style="height: 250px; width: 100%;"> 3050 <div id="DFP_standard_mpu_2"></div> 3051 </div> 3052 3053 <div class="side-ad" style="flex-grow: 1"> 3054 <div id="DFP_on_scroll" style="margin-top: 25px"></div> 3055 </div> 3056 </div> 3057 </div> 3058 </div> 3059 </article> 3060 </div> 3061 3062 3063 3064 <input type="hidden" id="site-name" value="The Brent & Kilburn Times"> 3065 3066 <input id="has-contribution-cta" type="hidden" value=""> 3067 3068</div> 3069 3070 3071 3072 <!-- standard - BlockEmpty.html --> <!-- standard - BlockTaboolaInline.html --> <div id="block-outbrain-inline-pull"> 3073 <section class="promoted-block"> 3074 3075 <div class="OUTBRAIN" data-ob-contentUrl="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/" data-ob-installation-key="NEWSQ15BEE3GLF6A6AL9EECN9" data-widget-id="AR_1"></div> 3076 3077 3078 </section> 3079</div> 3080 3081</div> 3082 3083 <!-- 3084 NOTE: remove following placeholders in production 3085 height 90px 3086 text-wite 3087--> 3088 <section class="mar-leaderboard--bottom 3089 block-bottom-margin block-bottom-margin "> 3090 <div id="DFP_bottom_leaderboard"></div> 3091 </section> 3092 3093
3094<script type="module"> 3095 const s = window.s; 3096 s.eVar28 = '1802'; 3097 s.eVar60 = "1,metered,no"; 3098 s.eVar90 = window.data_layer.article.parent_originating_site_id; 3099 s.eVar91 = window.data_layer.article.originating_article_id; 3100 s.eVar92 = window.data_layer.article.is_original_to_site; 3101 s.eVar104 = 'Business'; 3102 s.eVar105 = ''; 3103 s.eVar106 = 'No AI or automation'; 3104 s.eVar107 = '2'; 3105 s.eVar108 = '3124'; 3106 s.prop62 = ''; 3107 s.prop63 = '25;4591;18844;29098'; 3108 s.prop64 = ''; 3109</script>
3109 3110 </div> 3111 </div> 3112 3113 <footer class="site-footer" aria-label="site-footer"> 3114 <div class="container-inner-width"> 3115 <div class="links-grid" aria-label="site-footer-links"> 3116 <section class="get-in-touch-section"> 3117 <h2>Get in Touch</h2> 3118 <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> 3119 </section> 3120 <section class="follow-us-section"> 3121 <h2>Follow Us</h2> 3122<a 3123 class="footer__social-media--link" 3124 href="https://www.facebook.com/BrentandKilburnTimes" 3125 title="Brent & Kilburn Times" 3126 role="link" 3127 data-media-type="facebook" 3128 > 3129 <i class="footer__social-media--icon iconify"></i> 3130 Brent & Kilburn Times 3131 </a> 3132 3133 3134 <a 3135 class="footer__social-media--link" 3136 href="https://twitter.com/bktimes" 3137 title="Brent & Kilburn Times" 3138 role="link" 3139 data-media-type="twitter" 3140 > 3141 <i class="footer__social-media--icon iconify"></i> 3142 Brent & Kilburn Times 3143 </a> 3144 </section> 3145 <section class="useful-links-section"> 3146 <h2>Useful Links</h2> 3147 <div class="useful-links"> 3148 <section> 3149 <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> 3150 </section> 3151 <section> 3152 <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="/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> 3153 </section> 3154 </div> 3155 </section> 3156 <section class="ipso-terms"> 3157 <img class="ipso-logo" src="/resources/responsive-static/mds/images/ipso-regulated.png" alt="IPSO Regulated image" /> 3158 <p class="ipso-copy">This website and associated newspapers adhere to the Independent Press Standards Organisation's 3159 Editors' Code of Practice. If you have a complaint about the editorial content which relates to 3160 inaccuracy or intrusion, then please <a class="footer__ipso-terms--link" href="/contact"> 3161 contact the editor here</a>. 3162 If you are dissatisfied with the response provided you can 3163 <a class="footer__ipso-terms--link" href="https://www.ipso.co.uk/contact-us/" target="_block">contact IPSO here</a></p> 3164 </section> 3165 </div> 3166 <div class="notice" aria-label="site-footer-notice"> 3167 <img src="/resources/responsive-static/mds/images/newsquest.png" alt="Newsquest" style="width: 193px"/> 3168 <p><strong>© 2001-2026. The Brent & Kilburn Times</strong> is owned and operated by Newsquest Media Group Ltd, an audited local newspaper network.</p> 3169 <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> 3170 <p>The Echo Building, 18 Albert Road, Bournemouth, England BH1 1BZ. Registered in England & Wales | 01676637</p> 3171 </div> 3172 </div> 3173</footer> 3174 3175 3176 <div id="fb-root"></div> 3177 3178 3179 </div> 3180 </div> 3181 3182 3183 3184 <div class="mar-modal-container mar-modal-container--animate mar-modal-container--animate-out visually-hidden"> 3185 <div class="mar-modal-overlay" data-uses-js="close-modal"></div> 3186 3187 <div aria-label="Pop up dialog" class="mar-modal" tabindex="-1" role="dialog"> 3188 <div class="mar-modal__header"> 3189 <h3 class="mar-modal__title">Modal headline</h3> 3190 3191 <div class="mar-modal__close" data-uses-js="close-modal"> 3192<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
3193 <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"/> 3194</svg> 3195 3196 3197 <span>Close</span> 3198 </div> 3199 </div> 3200 3201 <div class="mar-modal__body">Automatically injected HTML goes here</div> 3202 3203 <div class="mar-modal__actions"> 3204<!-- standard - Buttons.html --> 3205 3206<button 3207 type="button" 3208 data-uses-js="modal-submit" 3209 3210 class=" mar-btn 3211 mar-btn--light 3212 mar-btn--md 3213 3214 3215 " 3216> 3217 Submit 3218</button> 3219 3220 3221 3222 3223<!-- standard - Buttons.html --> 3224 3225<button 3226 type="button" 3227 data-uses-js="modal-cancel" 3228 3229 class=" mar-btn 3230 mar-btn--outline 3231 mar-btn--md 3232 3233 3234 " 3235> 3236 Cancel 3237</button> 3238 3239 3240 3241 </div> 3242 </div> 3243</div> 3244 3245 <div id="piano-meter-display" 3246 style="width: 100%; position: fixed; bottom: 0; margin: auto; z-index: 999999999999999; display: none; background-color: #fff; left: 0px"> 3247 <div style="width: 960px; margin: auto;"> 3248 <button class="mar-btn btn-martini float-right" style="margin-top: 20px" id="piano-show-newsquest" 3249 type="button">Deactivate</button> 3250 <div class="mt-2"><strong>Piano meter debugger</strong></div> 3251 <p class="mb-0" style="font-style: italic;">Data returned from the Piano 'meterActive/meterExpired' callback <a 3252 href="https://docs.piano.io/callbacks/#activeevent">event</a>.</p> 3253 <div class="mb-2" id="piano-meter-display-content"></div> 3254 </div> 3255</div> 3256 3257<div id="po-overlay-banner-top-fullwidth"></div> 3258<div id="po-overlay-banner-bottom-fullwidth"></div> 3259<div id="po-overlay-banner-bottom-content"></div> 3260<!-- <div id="piano-left-message" style="display:none; width: 100%; position: fixed; left: 0; width: 300px; text-align: center; z-index: 5000000;"></div> 3261<div id="piano-right-message" style="display:none; width: 100%; position: fixed; right: 0; width: 300px; text-align: center; z-index: 5000000;"></div> 3262 --> 3263 3264 3265 3266 3267<div class="modal" id="adlight-explanation-modal" tabindex="-1" role="dialog" aria-labelledby="sp-modal" 3268 aria-hidden="true" style="display: none"> 3269 <div class="modal-dialog modal-lg" role="document"> 3270 <div class="modal-content"> 3271 <div class="modal-body"> 3272 <img src="/resources/responsive-static/images/love-local.png" loading="lazy" 3273 id="adlight-explanation-modal-main-logo"> 3274 <p>As a subscriber, you are shown <strong>80% less</strong> display advertising when reading our 3275 articles.</p> 3276 <p>Those ads you do see are predominantly from <strong>local businesses</strong> promoting <strong>local 3277 services</strong>. </p> 3278 <p>These adverts enable local businesses to get in front of their target audience – the <strong>local 3279 community</strong>.</p> 3280 <img src="/resources/images/pixel/" id="adlight-explanation-modal-image" style="display: none"> 3281 <p class="italic">It is important that we continue to promote these adverts as our local businesses need 3282 as much support as possible during these challenging times.</p> 3283 </div> 3284 <div class="modal-footer"> 3285 <button type="button" class="mar-btn mar-btn--dark" data-dismiss="modal">Close</button> 3286 </div> 3287 </div> 3288 </div> 3289</div> 3290 3291<div id="po-overlay-toast-left"></div> 3292<div id="po-overlay-toast-main-navigation"></div> 3293
3293<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"fd15ff24ac","applicationID":"1089177626","transactionName":"NVNWZkNXWxAEVxBdCwwZd0dCQloOSnYIWwcJd0ZGWFVZBihbAEEIBwwOVVRYUBEEQAFwDRFGWFNIHhw=","queueTime":0,"applicationTime":354,"atts":"GRRVEAtNSB4=","errorBeacon":"bam.nr-data.net","agent":""}</script>
3293 3294</body> 3295 3296<div id="outbrain-holder"> 3297 <div id="DFP_standard_mpu_3"></div> 3298 <div id="DFP_standard_mpu_4"></div> 3299 <div id="DFP_standard_mpu_5"></div> 3300 <div id="DFP_standard_mpu_6"></div> 3301 <div id="DFP_standard_mpu_7"></div> 3302</div>
3303<script> 3304 3305const elementToObserve = document.querySelector("#outbrain-holder"); 3306 3307// create a new instance of `MutationObserver` named `observer`, 3308// passing it a callback function 3309const observer = new MutationObserver(function(e) { 3310 $.each(e, function(j, obs) { 3311 $.each(obs.removedNodes, function (i, node) { 3312 var id = $(node).attr('id'); 3313 addAdSlot(id, id.replace('DFP_', '')); 3314 }); 3315 }); 3316}); 3317 3318// call `observe()` on that MutationObserver instance, 3319// passing it the element to observe, and the options object 3320observer.observe(elementToObserve, {subtree: true, childList: true}); 3321</script>
3321 3322
3323<script> 3324window.domComplete = performance.now(); 3325</script>
3325 3326
3327<script type="text/javascript"> 3328path = document.location.href.split("/"); 3329var prop30 = qs.get('lp'); 3330var prop43 = qs.get('ref'); 3331var pType="BlockArticleModule" 3332 3333if (pType === 'BlockArticleModule' || pType === 'NationalNewsModule' || pType === 'BlockWhatsOnModule') { 3334 pType = 'ArticleModule'; 3335} 3336for(x=4; x<7; x++) 3337{ 3338 if (typeof path[x] == 'undefined') 3339 { 3340 path[x] = ''; 3341 } 3342 if(path[x] == "" || (pType == "ArticleModule" && path[x].match(/[0-9]+\./)) || (path[x].indexOf('?') > -1)) 3343 { 3344 path[x] = path[x-1]; 3345 } 3346 else 3347 { 3348 path[x] = path[x-1] + "/" + path[x]; 3349 } 3350 path[x] = path[x].replace(/\/undefined/g,""); 3351} 3352sitename = path[2].split("."); 3353 3354pathN= unescape(document.location.pathname.toString()); 3355matches = pathN.match(/(\w+)\.(in|near|compare)\.([\,a-zA-Z0-9\ _-]+)[\/]?$/); 3356detailMatches = pathN.match(/(\w+)\.detail\.(.*)$/); 3357if (detailMatches !== null && detailMatches.length > 1) 3358{ 3359 matches = detailMatches; 3360} 3361 3362if (matches !== null && matches.length > 1) 3363{ 3364 var subfolder = ''; 3365 path[3] = 'li'; 3366 path[4] = 'li/'+subfolder; 3367 path[5] = 'li/'+subfolder+'/'+matches[1]; 3368 path[6] = 'li/'+subfolder+'/'+matches[1]; 3369} 3370if (pathN === '/') 3371{ 3372 path[3] = 'homepage'; 3373 path[4] = 'homepage'; 3374 path[5] = 'homepage'; 3375 path[6] = 'homepage'; 3376} 3377 3378 3379function filterArray(arr) { 3380 var retArr = []; 3381 $.each(arr, function(i, part) { 3382 if (part !== '') { 3383 retArr.push(part); 3384 } 3385 }); 3386 3387 return retArr; 3388} 3389</script>
3389 3390 3391
3392<script type="text/javascript"> 3393var known = $.cookie('__siren') ? '1' : '0' ; 3394</script>
3394 3395
3396<script type="text/javascript"> 3397 3398var known = $.cookie('__siren') ? '1' : '0' ; 3399var ref = document.referrer; 3400var parser = document.createElement('a'); 3401parser.href = ref; 3402 3403// values in the below MUST be strings 3404var targeting = { 3405 'context': 'Business', 3406 'al': 'm', 3407 'domain': 'www.kilburntimes.co.uk', 3408 'isLanding': 'no', 3409 'top_path': 'news', 3410 'weather': ''.toLowerCase(), 3411 'jbsjs': ''.toLowerCase(), 3412 'site_search': '', 3413 'bmd_cat': '', 3414 'wt': '', 3415 'cmpid': qs.get('cmpid'), 3416 'refdm': parser.hostname, 3417 'k': known, 3418 'g': 'u' , 3419 'a': '0' , 3420 'topic': 'Aldi', 3421 'publication': '', 3422 'primary_tag_future_use': 'Aldi', 3423 'site': (isMobile()) ? 'mobile': 'desktop', 3424 'r': data_layer.user.subscription_plan !== '' 3425 ? '2' // 2 = subscribed 3426 : data_layer.user.is_logged_in == 'yes' 3427 ? '1' // 1 = registered 3428 : '0', // 0 = anonymous 3429}; 3430 3431if (!usePrebid) { 3432 targeting.adrq = 'adl'; 3433} 3434 3435if (data_layer.video.exists === 'yes') { 3436 targeting.ptype = 'video'; 3437} 3438 3439if ($.cookie('isMeterExpired') === 'yes' && window.data_layer.article.is_article) { 3440 var articleContentLevel = parseInt(window.data_layer.article.content_level, 10) || 0; // account for NaN 3441 if (articleContentLevel !== 0 && window.data_layer.article.content_level_open_access === 'no') { 3442 targeting.ao = 'y'; 3443 } 3444} 3445 3446if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') { 3447 targeting.dfpcsnt = 'yes'; 3448} else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') { 3449 targeting.dfpcsnt = 'no'; 3450} else { 3451 targeting.dfpcsnt = 'none'; 3452} 3453 3454if (typeof MobileDetect !== "undefined") { 3455 targeting.canbb = (window.screen.width > 960) ? 'y' : 'n'; 3456} 3457 3458if (typeof module_targeting === "object") { 3459 targeting = addToTargeting(targeting, module_targeting); 3460} 3461 3462// $.each(apData, function (k, v) { 3463// targeting[k] = v; 3464// }); 3465 3466// if (typeof gs_channels !== 'undefined') { 3467// targeting.gs_channels = gs_channels; 3468// } 3469 3470targeting = addToTargeting(targeting, data_layer_helper.homesData); 3471 3472targeting.article_id = '26570077'; 3473var googleSiteName = 'www.kilburntimes.co.uk'; 3474var googlePath = '/news/'; 3475 3476var googleNetworkCode = 154725070; 3477 3478var googleChildNetworkCode = 22694024870; 3479var googleId = '/'+googleNetworkCode + ',' + googleChildNetworkCode + '/' + googleSiteName+googlePath; 3480 3481if (googleId.charAt(googleId.length - 1) === '/') { 3482 googleId = googleId.slice(0, -1); 3483} 3484 3485var googletag = googletag || {}; 3486googletag.cmd = googletag.cmd || []; 3487 3488googletag.cmd.push(function () { 3489 var _YB = _YB || { 3490 ab: function () { 3491 return _YB.dool ? "b" : "a" + Math.floor(Math.random() * 10); 3492 }, 3493 dool: Math.random() >= 0.1, 3494 }; 3495 var yb_ab; 3496 if (Math.random() <= 0.9) { 3497 yb_ab = _YB.ab(); 3498 } else { 3499 yb_ab = "c"; 3500 } 3501 googletag.pubads().setTargeting("yb_ab", yb_ab); 3502}); 3503 3504googletag.cmd.push(function() { 3505 googletag.pubads().set("adsense_background_color", "FFFFFF"); 3506 googletag.pubads().setTargeting('rfs', "0"); 3507 $.each(targeting, function (key, value) { 3508 3509 // No real value so exclude 3510 if (value === 0 || value === '' || value === null) { 3511 return; 3512 } 3513 googletag.pubads().setTargeting(key, value); 3514 }); 3515 3516}); 3517 3518if (isMobile() && '' === 'top') { 3519 $('.desktop-standard-leaderboard').remove(); 3520 $('.mobile-top-leaderboard').show(); 3521 $('#DFP_top_leaderboard_mobile').attr('id', 'DFP_top_leaderboard'); 3522} else { 3523 $('.mobile-top-leaderboard').remove(); 3524} 3525// Ads 3526var adUnits = []; 3527 3528hideAdsByScreensize(); 3529 3530if (blackListAds.length > 0) { 3531 removeBlacklistAds(blackListAds); 3532} 3533 3534$.each(unfilteredAdUnits, function (i, unit) { 3535 removeWhitelistAds(unit); 3536}); 3537 3538// set up a holder for all the adverts so we can do things with them later 3539var dfpHolder = {}; 3540// the set up code 3541googletag.cmd.push(function() { 3542 $.each(adUnits, function(i, data) { 3543 3544 // check if the dom exists 3545 if ($('#'+data.domName).length === 0) { 3546 return; 3547 } 3548 3549 var dfp = null; 3550 3551 if (data.slotType === 'standard') 3552 { 3553 // get the correct sizes, using the alternate_sizes if they exist and we are on a mobile site 3554 var sizes = data.sizes; 3555 if (data.alternate_mobile_size && isMobile()) { 3556 sizes = data.alternate_mobile_size; 3557 } 3558 // push this ad slot through 3559 dfp = googletag.defineSlot(googleId, sizes, data.domName) 3560 .addService(googletag.pubads()) 3561 .setTargeting("position", data.positionName) 3562 .setCollapseEmptyDiv(data.collapseContainer); 3563 // check if we have an array of targets, and assign them as a companion if we do 3564 if (data.targets instanceof Array && data.targets.length > 0 ) { 3565 dfp.setTargeting('companion', data.targets); 3566 } 3567 3568 } 3569 else if (data.slotType === 'outofpage') 3570 { 3571 dfp = googletag.defineOutOfPageSlot(googleId, data.domName) 3572 .addService(googletag.pubads()) 3573 .setTargeting("position", data.positionName) 3574 .setCollapseEmptyDiv(data.collapseContainer); 3575 // check if we have an array of targets, and assign them as a companion if we do 3576 if (data.targets instanceof Array && data.targets.length > 0 ) { 3577 dfp.setTargeting('companion', data.targets); 3578 } 3579 } 3580 3581 // store 3582 dfpHolder[data.domName] = dfp; 3583 3584 }); 3585 3586 if (adLight === true) { 3587 googletag.pubads().setCategoryExclusion('adlight'); 3588 // var adlightexplanation = '<div class="adlight-explanation">I\'m a subscriber <a href="#" class="adlight-explanation-link">Why am I seeing this advert?</a></div>'; 3589 // if ($('#DFP_premium_mpu').length > 0) { 3590 // $('#DFP_premium_mpu').before(adlightexplanation); 3591 // } 3592 3593 // if ($('#DFP_standard_mpu_1').length > 0) { 3594 // $('#DFP_standard_mpu_1').before(adlightexplanation); 3595 // } 3596 3597 // var imageIds = [11497497, 11497535, 11497536, 11497541, 11497542, 11497545, 11497546, 11497547]; 3598 // var imageId = imageIds[Math.floor(Math.random() * imageIds.length)]; 3599 // $('.adlight-explanation-link').click(function(e) { 3600 // e.preventDefault(); 3601 // $('#adlight-explanation-modal-image').attr('src', '/resources/images/' + imageId + '/').show(); 3602 // $('#adlight-explanation-modal').modal(); 3603 // }); 3604 } 3605 3606 // send the request 3607 googletag.pubads().enableSingleRequest(); 3608 3609 googletag.enableServices(); 3610 3611 googletag.pubads().addEventListener('slotVisibilityChanged', function(event) { 3612 if (event.slot.getResponseInformation().creativeTemplateId === 828288 || 3613 event.slot.getResponseInformation().creativeTemplateId === 12383216 ) { 3614 console.log('DFP: Magic template id detected, not refreshing'); 3615 return; 3616 } 3617 var slotName = ''; 3618 $.each(dfpHolder, function (a, e) { 3619 if (e == event.slot) { 3620 slotName = a; 3621 } 3622 }); 3623 if (typeof window.advertisingTimer !== 'undefined') { 3624 var perc = event.inViewPercentage; 3625 window.advertisingTimer.timer(slotName, perc); 3626 } 3627 }); 3628}); 3629 3630// the display code 3631$.each(adUnits, function(i, data) { 3632 3633 // check if the dom exists 3634 if ($('#'+data.domName).length === 0) { 3635 return; 3636 } 3637 3638 if (data.domName === 'DFP_interstitial_mpu') { 3639 if (!inter.checkVisit()) { 3640 return; 3641 } 3642 } 3643 3644 // are we manually loading it? 3645 if ($('#'+data.domName).attr('data-manual-loading') === "yes") { 3646 return; 3647 } 3648 // for mobile, we check if the dom element has the data-delay-loading attribute set to "1" 3649 else if ($('#'+data.domName).attr('data-delay-loading') === "yes") { 3650 3651 // load it 3652 $('#'+data.domName).appear(); 3653 $(document.body).on('appear', '#'+data.domName, function(e, allElement) { 3654 3655 // don't call it many times 3656 if ($(this).attr('data-processed') === 'yes') { 3657 return; 3658 } 3659 3660 $(this).attr('data-processed', 'yes'); 3661 3662 // display the google ad 3663 googletag.display(data.domName); 3664 googletag.pubads().refresh([dfpHolder[data.domName]]); 3665 }); 3666 return; 3667 } 3668 googletag.cmd.push(function() { 3669 googletag.display(data.domName); 3670 }); 3671}); 3672window.googleComplete = performance.now(); 3673window.googleReady = true; 3674 3675// METHODS 3676function addToTargeting(targeting, data) { 3677 if (!data) { 3678 return targeting; 3679 } 3680 $.each(data, function (key, value) { 3681 if (!value) { 3682 return; 3683 } 3684 targeting[key] = value; 3685 }); 3686 return targeting; 3687} 3688 3689function addAdSlot(slotName, slot, initHidden) { 3690 console.log("Add ad slot called for %s %s", slotName, slot); 3691 // check if item already exists 3692 if (typeof window.dfpHolder[slotName] !== 'undefined') { 3693 return; 3694 } 3695 3696 if (window.adLight === true) { 3697 return; 3698 } 3699 window.googletag.cmd.push(function() { 3700 var dfp = googletag.defineSlot(window.googleId, [[300,250]], slotName) 3701 .setTargeting('position', [slot]) 3702 .addService(googletag.pubads()); 3703 window.dfpHolder[slotName] = dfp; 3704 3705 if (!initHidden) { 3706 googletag.pubads().refresh([dfp]); 3707 3708 return; 3709 } 3710 }); 3711} 3712 3713function hideAdsByScreensize() { 3714 if (window.screen.width < 728 && $('#BlockArticleContainer').length > 0) { 3715 if ('1187' === '1147') { 3716 $('#DFP_out_of_page').remove(); 3717 } else { 3718 $('#DFP_premium_mpu').remove(); 3719 } 3720 $('#DFP_on_scroll').remove(); 3721 } else if (window.screen.width < 728 && 3722 ( $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='9']").length > 0 || 3723 $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='12']").length > 0 || 3724 $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='18']").length > 0 || 3725 $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='24']").length > 0 ) 3726 ) { 3727 const adElement = document.querySelector('#high_vis_container'); 3728 $('.omnicard[data-position="5"]').after(adElement); 3729 } 3730 3731 if ('1187' === '1147' && window.screen.width > 450) { 3732 $('#DFP_bottom_leaderboard').remove(); 3733 } 3734 3735 if ('1187' === '1147' && window.screen.width < 728) { 3736 $('#DFP_top_leaderboard').remove(); 3737 } 3738 3739 if ('1187' === '1147') { 3740 $('#DFP_teads').remove(); 3741 $('#DFP_out_of_page').remove(); 3742 } 3743 3744 if ($('#comments-in-page').length === 1 && window.screen.width > 450) { 3745 $('#DFP_top_leaderboard').parent().remove(); 3746 $('#DFP_bottom_leaderboard').parent().remove(); 3747 // $('#DFP_standard_mpu_1').parent().remove(); 3748 } 3749} 3750 3751function removeBlacklistAds(blackListAds) { 3752 $.each(blackListAds, function(i, name) { 3753 removeAdContainer(name); 3754 }); 3755} 3756 3757function removeWhitelistAds(unit) { 3758 // VAST (video) ad units never get displayed in here. 3759 if (unit.isVast) { 3760 return; 3761 } 3762 3763 // if we have an ad-light experience 3764 if (whiteList === true) { 3765 if (typeof whiteListAds[unit.positionName] === 'undefined') { 3766 removeAdContainer(unit.domName) 3767 return; 3768 } 3769 } 3770 3771 adUnits.push(unit); 3772} 3773 3774function removeAdContainer(name) { 3775 const element = document.getElementById(name); 3776 // doesn't exist? exit 3777 if(!element) { 3778 return; 3779 } 3780 3781 const parent = element.parentElement; 3782 if (parent && parent.classList.contains('block-bottom-margin')) { 3783 // if immediate parent contains block-bottom-margin as a class, remove the parent as well 3784 parent.classList.remove('block-bottom-margin'); 3785 } 3786 if (parent && parent.classList.contains('mar-leaderboard--top')) { 3787 // in case of leaderboard, remove as has min-height 3788 parent.remove(); 3789 return; 3790 } 3791 3792 if (parent && parent.classList.contains('mar-leaderboard--bottom')) { 3793 // in case of article ad container, remove as has min-height 3794 parent.remove(); 3795 return; 3796 } 3797 3798 element.remove(); 3799} 3800</script>
3800 3801 3802
3803<script src="/resources/responsive-static/build/mds/js/global.js?cb=mkW8NyPe"></script>
3803 3804 3805 3806 3807 3808
3809<script src="/__siren/"></script>
3809 3810 3811
3812<script src="//uatu.newsquestdigital.co.uk/collector.php?article_id=26570077&site_id=1187"></script>
3812 3813<!--
3813<script src="//uatu.newsquestdigital.co.uk/recommender-json-2.php?article_id=26570077&site_id=1187"></script>
3813 --> 3814 3815
3816<script type="text/javascript"> 3817 var s_account="newsquestgroupprod"; 3818</script>
3818 3819
3820<script type="text/javascript" src="/resources/responsive-static/vendor/adobe/VisitorAPI.js?cb=mkW8NyPe"></script>
vendor: 1 bytes, line 3820
3820
3821<script type="text/javascript" src="/resources/responsive-static/vendor/adobe/omniture.js?cb=mkW8NyPe"></script>
3821 3822
3823<script type="text/javascript"> 3824 3825function getOmniturePath() { 3826 var path = ''; 3827 if ($('#gallery-base-url').length === 1) { 3828 path = $('#gallery-base-url').val(); 3829 } 3830 else { 3831 path = window.location.pathname; 3832 } 3833 return path; 3834} 3835 3836function getPositionFromCookie() { 3837 const cookieName = 'tracking_block_index'; 3838 3839 const ref = document.cookie 3840 .split('; ') 3841 .find(row => row.startsWith(`${cookieName}=`)) 3842 ?.slice(cookieName.length + 1); 3843 3844 document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.data_layer.site.cookie_domain}`; 3845 3846 return ref ? decodeURIComponent(ref) : undefined; 3847} 3848function getRefFromCookie() { 3849 const cookieName = 'tracking_block'; 3850 3851 const ref = document.cookie 3852 .split('; ') 3853 .find(row => row.startsWith(`${cookieName}=`)) 3854 ?.split('=')[1]; 3855 3856 // Remove the cookie 3857 document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.data_layer.site.cookie_domain}`; 3858 3859 return ref; 3860} 3861 3862function getOmnitureTrackingFromCookie(key, preExistingValue) { 3863 var ref = $.cookie('o-' + key); 3864 if(typeof(ref) === 'undefined') { 3865 ref = preExistingValue 3866 } else { 3867 ref = decodeURIComponent(ref); 3868 $.removeCookie('o-' + key, { 3869 path: '/', 3870 domain: window.data_layer.site.cookie_domain, 3871 }); 3872 } 3873 return ref; 3874} 3875 3876function getValidatedAPList() { 3877 3878 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]; 3879 3880 var data = getAudienceProjectTargetingData(); 3881 if (!data || !data.ap_x) { 3882 return ''; 3883 } 3884 3885 validData = []; 3886 $.each(data.ap_x, function(i, td) { 3887 if ($.inArray(parseInt(td, 10), validList) !== -1) { 3888 validData.push(td); 3889 } 3890 }); 3891 3892 return validData.join(','); 3893} 3894 3895path = document.location.href.split("/"); 3896 3897var qs = new URLSearchParams(window.location.search); 3898 3899var prop30 = qs.get('lp'); 3900var prop43 = qs.get('ref'); 3901var pType="BlockArticleModule" 3902 3903if (pType === 'BlockArticleModule' || pType === 'NationalNewsModule' || pType === 'BlockWhatsOnModule') { 3904 pType = 'ArticleModule'; 3905} 3906 3907for(x=4; x<7; x++) 3908{ 3909 if (typeof path[x] == 'undefined') 3910 { 3911 path[x] = ''; 3912 } 3913 if(path[x] == "" || (pType == "ArticleModule" && path[x].match(/[0-9]+\./)) || (path[x].indexOf('?') > -1)) 3914 { 3915 path[x] = path[x-1]; 3916 } 3917 else 3918 { 3919 path[x] = path[x-1] + "/" + path[x]; 3920 } 3921 path[x] = path[x].replace(/\/undefined/g,""); 3922} 3923pathN= unescape(document.location.pathname.toString()); 3924matches = pathN.match(/(\w+)\.(in|near|compare)\.([\,a-zA-Z0-9\ _-]+)[\/]?$/); 3925detailMatches = pathN.match(/(\w+)\.detail\.(.*)$/); 3926if (detailMatches !== null && detailMatches.length > 1) 3927{ 3928 matches = detailMatches; 3929} 3930 3931if (matches !== null && matches.length > 1) 3932{ 3933 var subfolder = ''; 3934 path[3] = 'li'; 3935 path[4] = 'li/'+subfolder; 3936 path[5] = 'li/'+subfolder+'/'+matches[1]; 3937 path[6] = 'li/'+subfolder+'/'+matches[1]; 3938} 3939if (pathN === '/') 3940{ 3941 path[3] = 'homepage'; 3942 path[4] = 'homepage'; 3943 path[5] = 'homepage'; 3944 path[6] = 'homepage'; 3945} 3946 3947 3948/* You may give each page an identifying name, server, and channel on 3949the next lines. */ 3950s.pageName="(www) "+getOmniturePath(); 3951s.pageName = s.pageName.toLowerCase(); 3952s.server="martini"; 3953s.channel=""; 3954s.pageType=""; 3955s.prop1= qs.get('search'); 3956s.prop2=""; 3957s.prop3=document.title; 3958s.prop4="26570077"; 3959s.prop5="BlockArticleModule"; /* get from Martini */ 3960s.prop6=path[3].toLowerCase(); 3961s.prop7=path[4].toLowerCase(); 3962s.prop8=path[5].toLowerCase(); 3963s.prop9=path[6].toLowerCase(); 3964s.prop10=""; 3965s.prop15="none|use author profile|bridget galton"; 3966s.prop16=path[2].toLowerCase(); 3967s.prop17=""; 3968s.prop18="Martini"; 3969s.prop19="1"; 3970s.prop20 = s.getPreviousValue(s.pageName, 'gpv_pn'); 3971s.prop42 = ""; 3972s.prop53 = 'standard'; 3973s.prop54 = ''; 3974s.prop55 = ''; 3975s.prop56 = "BAM Standard Article"; 3976s.prop57 = ($('[data-name="Feature Article Block A"]').length > 0) ? 'Enabled' : 'Disabled'; 3977s.prop58 = document.querySelector('[data-name="Feature Article Block B"]')?.dataset.variant; 3978s.prop59 = getRefFromCookie(); 3979s.prop60 = getPositionFromCookie(); 3980s.prop73 = document.cookie.split('; ').find(row => row.startsWith('adtiming='))?.split('=')[1] || null; 3981 3982var eVar67 = []; 3983 3984if ($.cookie('consentUUID')) { 3985 eVar67.push('yes'); 3986} else { 3987 eVar67.push('no'); 3988} 3989if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') { 3990 eVar67.push('yes'); 3991} else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') { 3992 eVar67.push('no'); 3993} else { 3994 eVar67.push('none'); 3995} 3996 3997if ($.cookie('_sp_legitimate_interests') === 'true') { 3998 eVar67.push('yes'); 3999} else if ($.cookie('_sp_legitimate_interests') === 'false') { 4000 eVar67.push('no'); 4001} else { 4002 eVar67.push('none'); 4003} 4004 4005//if ($.cookie('euconsent')) { 4006// eVar67.push($.cookie('euconsent')); 4007//} else { 4008// eVar67.push('none'); 4009//} 4010 4011s.eVar67 = eVar67.join(','); 4012// console.log('ADB: setting eVar67 to %s', eVar67.join(',')); 4013 4014if ($.cookie('prev-tcf-v2')) { 4015 // console.log('ADB: Setting eVar68 to ', $.cookie('prev-tcf-v2')); 4016 s.eVar68 = $.cookie('prev-tcf-v2'); 4017} 4018 4019if (typeof iabNames !== 'undefined') { 4020 s.prop29 = iabNames.join(','); 4021} else if (typeof iabIds !== 'undefined') { 4022 s.prop29 = iabIds.join(','); 4023} 4024 4025if (s.prop20 && s.prop20 !== 'no value') { 4026 s.prop21 = s.getPercentPageViewed(); 4027} else { 4028 s.prop21 = ''; 4029} 4030 4031if (typeof __siren !== 'undefined') { 4032 s.eVar27 = __siren; 4033} 4034 4035s.prop22 = s.getDaysSinceLastVisit('s_lv'); 4036 4037 4038s.prop43=getOmnitureTrackingFromCookie('ref', prop43); 4039s.prop25 = 'Business' 4040 4041s.prop27 = ''; 4042s.prop28='1802' 4043s.prop30 = getOmnitureTrackingFromCookie('prop30', prop30); 4044s.linkInternalFilters="javascript:,kilburntimes.co.uk,fish4.co.uk,adsys.newsquest.co.uk,www.exchangeandmart.co.uk,www.communigate.co.uk," 4045s.eVar61=(new Date()).toLocaleDateString("en-GB"); 4046/* s.eVar62=(new Date()).toLocaleDateString("en-GB"); */ 4047 4048s.eVar63 = "+1"; 4049/* s.eVar64 = "+1"; */ 4050 4051s.eVar60 = "1,metered,no"; 4052 4053s.prop61 = 'news'; 4054s.prop62 = ''; 4055s.prop63 = '25;4591;18844;29098'; 4056s.prop64 = ''; 4057 4058s.prop66 = ''; 4059s.prop66 += ($('#inArticleAd').length > 0) ? "y;" : "n;"; 4060s.prop66 += ($('#inArticleAd-1').length > 0) ? "y;" : "n;"; 4061s.prop66 += ($('#inArticleAd-2').length > 0) ? "y;" : "n;"; 4062s.prop66 += ($('#inArticleAd-3').length > 0) ? "y;" : "n;"; 4063s.prop66 += ($('#inArticleAd-4').length > 0) ? "y;" : "n;"; 4064s.prop66 += ($('#inArticleAd-5').length > 0) ? "y;" : "n;"; 4065s.prop66 += ($('#inArticleAd-6').length > 0) ? "y;" : "n;"; 4066s.prop66 += ($('#inArticleAd-7').length > 0) ? "y;" : "n;"; 4067s.prop66 += ($('#inArticleAd-8').length > 0) ? "y" : "n"; 4068s.prop66 += ($('#inArticleAd-9').length > 0) ? "y" : "n"; 4069s.prop66 += ($('#inArticleAd-10').length > 0) ? "y" : "n"; 4070 4071s.eVar107 = '2'; 4072s.eVar108 = '3124'; 4073 4074 4075 4076s.eVar104 = 'Business'; 4077 4078 4079 4080s.prop56 = "BAM Standard Article"; 4081 4082 4083/* Article-site-cloning data */ 4084s.eVar90 = window.data_layer.article.parent_originating_site_id; 4085s.eVar91 = window.data_layer.article.originating_article_id; 4086s.eVar92 = window.data_layer.article.is_original_to_site; 4087s.eVar95 = window.data_layer.site.using_piano_id; 4088s.eVar106 = 'No AI or automation'; 4089 4090s.eVar109 = ''; 4091 4092/* Uber block article counts */
4093s.eVar93 = window.data_layer.page.top_stories_article_count + ':' + window.data_layer.page.interstitial_article_count + ':' + window.data_layer.page.news_stories_article_count; 4094 4095/* Conversion Variables */ 4096s.campaign="" 4097s.state="" 4098s.zip="" 4099s.events="" 4100s.products="" 4101s.purchaseID="" 4102s.eVar14="" 4103try { 4104 s.list3=getValidatedAPList(); 4105} catch (e) { 4106 // do nothing 4107} 4108 4109 4110 4111 4112// Initial fotorama tracking. 4113var moduleType = null; 4114if (s.prop5 === 'ArticleModule' || s.prop5 == 'PropertyModuleReplacement' || s.prop5 === 'BlockArticleModule') { 4115 moduleType = 'article'; 4116} else if (s.prop5 === 'PictureGalleryModule') { 4117 moduleType = 'gallery'; 4118} 4119 4120if ($('#comments-in-page').length === 1) { 4121 moduleType = 'comments'; 4122} 4123 4124if (moduleType === 'article' || moduleType === 'gallery' || moduleType === 'comments') { 4125 var imagePath = ''; 4126 4127 if ($('.fotorama').length > 0) { 4128 // Get the first Fotorama image. 4129 try { 4130 var el = $('.fotorama').data('fotorama').data[0].html; 4131 var url = $(el).find('div').css('background-image'); 4132 imagePath = url.replace('url(','').replace(')','').replace(/\"/gi, ""); 4133 } catch (e) { 4134 } 4135 } else { 4136 // If there's just one image (i.e. it's not a gallery), find its path. 4137 var imagePathSingle = $('#mainImage').attr('src'); 4138 if (typeof imagePathSingle !== 'undefined') { 4139 imagePath = imagePathSingle.split('.')[0] + '/'; 4140 } 4141 } 4142 var imageParts = imagePath.split('/'); 4143 if (imageParts.length > 1) { 4144 s.eVar37 = imageParts[imageParts.length - 2]; 4145 s.prop37 = imageParts[imageParts.length - 2]; 4146 s.events = s.apl(s.events, 'event7', ',', 2); 4147 } 4148 s.eVar36 = moduleType; 4149 s.prop36 = moduleType; 4150} 4151 4152 4153 4154// Education pages. 4155if (s.prop5 === 'ResponsiveEducationModule') { 4156 // School profile page. 4157 if ($('#eduOverview').length > 0) { 4158 s.eVar40 = $('#eduOverview').data('school-status'); 4159 s.prop40 = s.eVar40; 4160 s.prop41 = 'edu-' + $('#eduOverview').data('school-urn'); 4161 s.prop46 = $('#town').text(); 4162 } 4163 4164 // Comparison page. 4165 if ($('#eduComparisonTable').length > 0) { 4166 s.list1 = ''; 4167 } 4168 4169 // Results page. 4170 if ($('.school-results').length > 0) { 4171 s.list1 = ''; 4172 4173 // Track the search criteria. 4174 s.prop44 = ''; 4175 s.prop45 = "".toLowerCase(); 4176 s.prop46 = "".toLowerCase(); 4177 s.prop49 = ''; 4178 s.prop50 = ''; 4179 s.prop51 = ''; 4180 s.eVar2 = s.prop50; 4181 4182 var newSearch = false; 4183 if (newSearch) { 4184 s.events = s.apl(s.events, 'event17', ',', 1); 4185 } 4186 } 4187} 4188 4189// Notices Module 4190if (s.prop5 === 'NewsquestModulesNoticesModule') { 4191 // Notices Find page. 4192 if (s.pageName.includes('notices/find')) { 4193 s.pageName = '(www) /notices/find/'; 4194 s.eVar50 = ''; 4195 const noticesURL = new URL(window.location.href); 4196 const noticesParams = new URLSearchParams(noticesURL.search); 4197 4198 s.eVar1 = noticesParams.has('keyword') ? noticesParams.get('keyword') : 'None'; 4199 s.eVar51 = noticesParams.has('sort') ? noticesParams.get('sprt') : 'best'; 4200 s.eVar52 = noticesParams.has('p') ? (parseInt(noticesParams.get('p'), 10) + 1) : 1; 4201 s.eVar53 = noticesParams.has('type') ? noticesParams.get('type') : 'All'; 4202 s.eVar54 = noticesParams.has('nearby') ? noticesParams.get('nearby') : 'no'; 4203 s.eVar55 = noticesParams.has('daterange') ? noticesParams.get('daterange') : 'last-month'; 4204 4205 if (noticesParams.has('sort')) { 4206 switch (noticesParams.get('sort')) { 4207 case 'date_asc': 4208 s.eVar51 = 'oldest'; 4209 break; 4210 case 'date_desc': 4211 s.eVar51 = 'newest'; 4212 break; 4213 case 'best_match': 4214 s.eVar51 = 'best'; 4215 break; 4216 default: 4217 s.eVar51 = noticesParams.get('sort'); 4218 break; 4219 } 4220 } 4221 4222 // Concatenate all search params into eVar44 4223 if (noticesParams.size > 0) { 4224 const searchParams = new URL(window.location.href).searchParams; 4225 s.eVar44 = '';
4226 searchParams.forEach((value, key) => { 4227 s.eVar44 += `${key}=${value},`; 4228 }); 4229 } else { 4230 s.eVar44 = ''; 4231 } 4232 4233 // Adobe Search Event triggering 4234 const setNoticePaginationClicked = (value) => { 4235 localStorage.setItem("isNoticePaginationClicked", value); 4236 }; 4237 4238 const noticeSearchInput = document.getElementById("notices-search"); 4239 const noticeSearchBtn = document.getElementById("notice-search-find"); 4240 const noticePaginationBtns = document.querySelectorAll('.notice-find__pagination .pagination-btn'); 4241 const noticePaginationBtnPrev = document.querySelector('.pagination-btn-previous svg'); 4242 const noticePaginationBtnNext = document.querySelector('.pagination-btn-next svg'); 4243 4244 noticeSearchInput?.addEventListener('change', () => setNoticePaginationClicked('false')); 4245 noticeSearchBtn?.addEventListener('click', () => setNoticePaginationClicked('false')); 4246 4247 noticePaginationBtns.forEach(btn => { 4248 btn.addEventListener('click', () => setNoticePaginationClicked('true')); 4249 }); 4250 4251 noticePaginationBtnPrev?.addEventListener('click', () => setNoticePaginationClicked('true')); 4252 noticePaginationBtnNext?.addEventListener('click', () => setNoticePaginationClicked('true')); 4253 4254 if (localStorage.getItem("isNoticePaginationClicked") === 'false') { 4255 s.events = s.apl(s.events, 'event1', ',', 1); 4256 } 4257 } 4258 4259 if (/notices\/funeral-directors\/(\d+)\.([a-zA-Z0-9-?]+)?/.test(s.pageName)) { 4260 s.pageName = '(www) /notices/funeral-director/'; 4261 s.eVar41 = ''; 4262 } 4263} 4264 4265if (s.prop5 === 'NewsquestModulesNoticeModule') { 4266 s.eVar41 = ''; 4267 const type = window.announcement_data?.details?.type || ''; 4268 const subCategory = window.announcement_data?.details?.sub_category || ''; 4269 s.eVar40 = type !== 'Tribute' ? type : `${type} - ${subCategory}`; 4270 s.eVar42 = window.announcement_data?.details?.id || ''; 4271 s.eVar107 = '2'; 4272 s.eVar119 = ''; 4273 s.eVar120 = ''; 4274 s.eVar2 = "(www) /notice/"; 4275} 4276 4277//New Property module 4278if (s.prop5 === 'ResponsivePropertyModule') { 4279 /* 4280 Use prop42 for single and list pages, for list pages use hyphen separate lists of id's 4281 */ 4282 4283 4284 //Property's all over the place (homepage, searches etc - HOM-133 4285 4286 //Property Detail - HOM-131, HOM-134, HOM-130 4287 4288 //Contact us submissions - HOM-137 4289 if($('#propertyModule.agent-details').length > 0) { 4290 //Add a click handler for a.contact-detail 4291 } 4292 4293 4294} 4295 4296// is their a video tag on the page? 4297if ($('.exco-embed').length > 0) { 4298 console.log('VID: setting tracking for event50'); 4299 s.events = s.apl(s.events, 'event50', ',', 1); 4300} 4301 4302var foundAutoPlayVid = false; 4303$('.jw-outer').each(function (a, domEle) { 4304 if ($(this).data('multimedia-block') === 'no' && !foundAutoPlayVid) { 4305 console.log('VID: setting tracking for event51'); 4306 s.events = s.apl(s.events, 'event51', ',', 1); 4307 foundAutoPlayVid = true; 4308 } 4309}); 4310 4311 4312 4313 4314 4315 4316 4317s.eVar66 = 'Ad-Full'; 4318s.eVar114 = ''; 4319 4320 4321 4322 // var eVar65Copy = s.getValOnce(s.eVar65, "ev65", 0); 4323 // if (eVar65Copy !== '' && s.prop20.indexOf("/my/subscription/activate/") > -1) { 4324 // s.events = s.apl(s.events, "event4", ",", 1); // Set the subscription counter event. 4325 // s.events = s.apl(s.events, "purchase", ",", 1); // Set the purchase event. 4326 // s.products = "Subscription : Metered Access;" + eVar65Copy + ";1;"; 4327 // s.purchaseID = ""; 4328 // } 4329 4330 4331if(qs.get('action') === 'success' && (s.prop5 === 'ArticleModule' || s.prop5 === 'BMDModule' || s.prop5 === 'BlockArticleModule')) { 4332 s.events=s.apl(s.events,'event9',',',2) 4333} 4334/* Hierarchy Variables */ 4335s.hier1="newsquest," + "" + ",www.kilburntimes.co.uk," + path[6].replace(/\//,","); 4336 4337if (typeof MartiniFotorama !== 'undefined') { 4338 MartiniFotorama.loadOmniture(s); 4339} 4340s.prop39 = "0"; 4341 4342 4343 4344// Tracking usage of Bytecast audio embeds in articles. 4345s.eVar82 = 'no'; 4346s.eVar83 = ''; 4347 4348 console.log('ADB: starting'); 4349 console.log('Google Bot Browser: ', window.isRobot.googleBot()); //TODO Remove this log after QA 4350 4351// Tracking of Commenting Registration FLow 4352if (s.prop5 !== 'BlockArticleModule') { 4353 const storedAdobeDimensions = sessionStorage.getItem('nq_adobe_tracking_article_dimensions'); 4354 if (storedAdobeDimensions) { 4355 const storedAdobeDimensionObj = JSON.parse(storedAdobeDimensions); 4356 s.eVar10 = storedAdobeDimensionObj.eVar10; 4357 s.eVar15 = storedAdobeDimensionObj.eVar15; 4358 s.eVar22 = storedAdobeDimensionObj.eVar22; 4359 s.eVar23 = storedAdobeDimensionObj.eVar23; 4360 s.eVar24 = storedAdobeDimensionObj.eVar24; 4361 s.eVar25 = storedAdobeDimensionObj.eVar25; 4362 s.eVar28 = storedAdobeDimensionObj.eVar28; 4363 s.eVar60 = storedAdobeDimensionObj.eVar60; 4364 s.eVar104 = storedAdobeDimensionObj.eVar104; 4365 s.eVar106 = storedAdobeDimensionObj.eVar106; 4366 s.eVar107 = storedAdobeDimensionObj.eVar107; 4367 s.eVar108 = storedAdobeDimensionObj.eVar108; 4368 s.prop63 = storedAdobeDimensionObj.prop63; 4369 } 4370} 4371 4372if (window.location.href.includes("/user/create-account/commenting/")) { 4373 s.eVar2 = '(www) /user/create-account/commenting/'; 4374} 4375 4376/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/ 4377if (qs.get('callback') !== 'in' && !window.isRobot.googleBot()) { 4378 var s_code=s.t(); 4379 var backupAdobe = s; 4380 4381 if(s_code)document.write(s_code) 4382} 4383 4384// Storing the visiting dimensions 4385if (s.eVar10 || s.eVar22 || s.eVar23 || s.eVar24) { 4386 const adobeTrackingVisitingDimensions = { 4387 eVar10: s.eVar10, 4388 eVar22: s.eVar22, 4389 eVar23: s.eVar23, 4390 eVar24: s.eVar24, 4391 } 4392 sessionStorage.setItem('nq_adobe_tracking_visiting_dimensions', JSON.stringify(adobeTrackingVisitingDimensions)); 4393} 4394 4395//--></script>
4395 4396<!-- End SiteCatalyst code version: H.19.3. --> 4397 4398 4399 4400 4401
4401<script src="/resources/responsive-static/build/mds/js/article.js?cb=mkW8NyPe"></script>
4401 4402 4403
4404<script> 4405 if ('' !== '') { 4406 setTimeout(function() { 4407 data_layer_helper.loadScript( 4408 "/resources/responsive-static/build/mds-next/js/.js?cb=mkW8NyPe", 4409 true, 4410 null, 4411 "module" 4412 ) 4413 }, 500); 4414 } 4415</script>
4415 4416 4417</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.