1(()=>{"use strict";const e="ANONYMOUS",t="AUTHENTICATED",r="__DEBUG__",n="feat__mos_migration",o=e=>{var t;return"undefined"!=typeof window&&Boolean(null===(t=window.JSGlobals)||void 0===t||null===(t=t.featureFlags)||void 0===t?void 0:t[e])};function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function a(e){var t=function(e,t){if("object"!=i(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==i(t)?t:t+""}function s(e,t,r){return(t=a(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const c="/login",l="returnPath",u=["Registration is a free and easy way to support our truly independent journalism"];const d="ssr-auth-state",p={foreground:31,background:41,light:"#AA0000",dark:"#ed4e4c"},f={foreground:33,background:43,light:"#AA5500",dark:"#d2c057"},b="light",g="dark";const w=(e,t=null)=>{var r,n;const o=`; ${document.cookie}`.split(`; ${e}=`);return 2===o.length?decodeURIComponent(null!==(r=null===(n=o.pop())||void 0===n?void 0:n.split(";").shift())&&void 0!==r?r:""):t},y=e=>e===r?"":`[${e.replace(/^_+|_+$/g,"")}]`,m=e=>`color: ${e};`,v=e=>("undefined"==typeof window||"function"!=typeof window.matchMedia?b:window.matchMedia("(prefers-color-scheme: dark)").matches?g:b)===g?e.dark:e.light,O=new Map,h=e=>{if("undefined"==typeof window)return"prod"!=={NODE_ENV:"production",npm_config_domain:""}.SERVER;if(!O.has(e)){var t;const r=new URLSearchParams(null===(t=window)||void 0===t||null===(t=t.location)||void 0===t?void 0:t.search);O.set(e,r.has(e))}return O.get(e)||"true"===w(e)};function P(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}let _;let j=0;const S=()=>{return"undefined"!=typeof window&&(void 0===_&&(_=!0===(null===(e=window.JSGlobals)||void 0===e||null===(e=e.featureFlags)||void 0===e?void 0:e.feat__sentry)),_);var e},E=(e,t)=>{const n=()=>h(r)||h(e),o=(e,r)=>{const n=t.filter(({tag:e})=>""!==e);if(0===n.length)return e;const o=n.map(({tag:e,color:t})=>{const n=null!=r?r:t,o=void 0!==n;return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?P(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):P(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({text:o?(i=e,`%c${i}`):e},o?{style:m(n)}:{});var i}),[i,a,...c]=e,l=o.reduce((e,{text:t})=>e+t,""),u=o.filter(e=>"style"in e).map(({style:e})=>e);if("string"==typeof i){return"string"==typeof a&&a.includes("color")&&i.startsWith("%c")?[`${l} ${i}`,...u.concat(a),...c]:[l,...u,i,...e.slice(1)]}return[l,...u,...e]};return{log:(...e)=>{n()&&console.log(...j>0?e:o(e))},info:(...e)=>{n()&&console.info(...j>0?e:o(e))},group:(...e)=>{n()&&(console.group(...o(e)),j+=1)},groupCollapsed:(...e)=>{n()&&(console.groupCollapsed(...o(e)),j+=1)},groupEnd:(...e)=>{n()&&(j=Math.max(0,j-1),console.groupEnd(...e))},table:(...e)=>{n()&&console.table(...e)},warn:(...e)=>{var t;n()&&console.warn(...o(e,v(f))),S()&&(null===(t=window.Sentry)||void 0===t||t.captureException(...e))},error:(...e)=>{var t;n()&&console.error(...o(e,v(p))),S()&&(null===(t=window.Sentry)||void 0===t||t.captureException(...e))},extend:(r,n)=>E(e,[...t,{tag:r,color:n}]),logDate:e=>e.toLocaleString("en-GB",{timeZone:"UTC"})}},D=(({flagName:e,tagSegment:t={}})=>{const{tag:r,color:n}=t;return E(e,[{tag:null!=r?r:y(e),color:n}])})({flagName:r}),{log:A,info:k,warn:I,error:x,group:C,groupEnd:N,logDate:T}=D;let U;function F(e=document){if(void 0===e)return null;if(void 0!==U)return U;const t=e.getElementById(d),r=null==t?void 0:t.textContent;let n=null;try{if(!r)throw new Error("No auth snapshot found in DOM");n=JSON.parse(atob(r))}catch(e){A(e)}finally{var o;null===(o=document.getElementById(d))||void 0===o||o.remove()}return U=n,n}function R(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};
1t%2?R(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):R(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function J(e){let t=e;const r=new Set;return{get:()=>t,set:e=>{t=e,r.forEach(e=>e(t))},patch:e=>{t=z(z({},t),e),r.forEach(e=>e(t))},subscribe:e=>(r.add(e),()=>r.delete(e))}}const G=e=>{try{const t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),r=decodeURIComponent(atob(t));return JSON.parse(r)}catch(e){return null}};function L(){if(void 0===globalThis.window)return null;const e=(()=>{var e;const t=null!==(e=w("esi_auth"))&&void 0!==e?e:"";return G(t)})();if(!e)return null;const{email:t,given_name:r,family_name:n,userStatus:o,pUid:i,exp:a,isAdFreeUser:s,isActiveRecurringDonator:c,adFreeExpiryTimestamp:l,recurringDonatorExpiryTimestamp:u,permutiveId:d}=e;return{email:t,givenName:r,familyName:n,userStatus:o,uid:i,exp:a,isAdFreeUser:s,isActiveRecurringDonator:c,adFreeExpiryTimestamp:l,recurringDonatorExpiryTimestamp:u,permutiveId:d}}function M(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function $(){var r;const n=Math.random().toString(36).slice(2),o={status:e,loading:!1,__id__:n},i=J(null!==(r="undefined"!=typeof window?F(document):void 0)&&void 0!==r?r:o);return{__id__:n,get:i.get,subscribe:i.subscribe,actions:{set:i.set,patch:i.patch,login:e=>{i.patch({loading:!0});const t=new URL(c,window.location.origin);e&&t.searchParams.set(l,e),window.location.href=t.toString()},logout:async()=>{i.patch({loading:!0});try{await fetch("/user/logout",{credentials:"include"})}finally{i.set(o)}},loadProfile:()=>{const e=L();e?i.patch(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?M(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):M(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({status:t},e)):i.set(o)}}}}function B(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function V(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?B(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):B(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function H(){var t;const r=Math.random().toString(36).slice(2),n={status:e,loading:!0,__id__:r},o=J(null!==(t="undefined"!=typeof window?F(document):null)&&void 0!==t?t:n);return{__id__:r,get:o.get,subscribe:o.subscribe,actions:{set:o.set,patch:o.patch,login:e=>{o.patch({loading:!0});const t=new URL(c,window.location.origin);e&&t.searchParams.set(l,e),window.location.href=t.toString()},logout:async()=>{o.patch({loading:!0});try{await async function(){const e=window.__indyFirebaseLogout;if(!e)throw new Error("[Firebase Auth] Firebase logout is not available. Ensure init-firebase.js loaded before invoking logout.");await e()}(),o.set(V(V({},n),{},{loading:!1}))}catch(e){throw x("[Firebase Auth] Logout failed â user remains signed in.",e),o.patch({loading:!1}),e}},loadProfile:()=>{var e,t;null===(e=(t=window).__indyFirebaseRefreshUserProfile)||void 0===e||e.call(t)}}}}const W="__indyAuthStore";function q(){if("undefined"==typeof window)return $();const e=window;if(e[W])return e[W];const t=o(n),r=t?H():$();var i,a;t||(null===(i=(a=r.actions).loadProfile)||void 0===i||i.call(a));return e[W]=r,r}const K={get __id__(){return q().__id__},get:()=>q().get(),subscribe:e=>q().subscribe(e),actions:{set:e=>q().actions.set(e),patch:e=>q().actions.patch(e),login:e=>q().actions.login(e),logout:()=>q().actions.logout(),loadProfile:()=>{var e,t;return null===(e=(t=q().actions).loadProfile)||void 0===e?void 0:e.call(t)}}},Y="braze-logged-in-user-visit-timestamp",Z="indy",Q=`${Z}:spError`;let X=!1;const ee=async(e,t)=>new Promise(r=>{var n;null!==(n=window.JSGlobals)&&void 0!==n&&null!==(n=n.cmp)&&void 0!==n&&n.enabled?window.__tcfapi&&new Promise(e=>{var t;if(null===(t=window.JSGlobals)||void 0===t||null===(t=t.cmp)||void 0===t||!t.enabled)return void e(!0);const r=document.getElementById("sp-script");r instanceof HTMLScriptElement&&r.error?e(!1):(window.addEventListener(Q,()=>{e(!1)}),window.__tcfapi("addEventListener",2,(t,r)=>{var n;if(r)if(["useractioncomplete","tcloaded"].includes(t.eventStatus))if(window.__tcfapi("removeEventListener",2,()=>{},t.listenerId),"useractioncomplete"===t.eventStatus&&(X=!0),t.gdprApplies){if(A("Consent Or Pay: valid GDPR tcData ---\x3e",t),null!==(n=t.publisher)&&void 0!==n&&null!==(n=n.consents)&&void 0!==n&&n[1])return A('Consent Or Pay: tcData.publisher?.consents?.["1"] ---\x3e',t),void e(!0);e(!1)}else e(!0);else A("Consent Or Pay: !['useractioncomplete', 'tcloaded'].includes(tcData.eventStatus) ---\x3e",{tcData:t,eventStatus:t.eventStatus})}))}).then(n=>
1{n?window.__tcfapi("getCustomVendorConsents",2,n=>{var o;const i=!(null===(o=n.grants)||void 0===o||null===(o=o[e])||void 0===o||!o.vendorGrant);A("CMP:getCustomVendorConsents",t,i),r(i)}):r(!1)}):r(!0)});const te=(e,{async:t=!0,defer:r=document.location.search.includes("___FORCE_DEFER___"),parent:n=document.body,attributes:o}={})=>{window.JSGlobals=window.JSGlobals||{};const i=window.JSGlobals.loadedJS=[];return new Promise((a,s)=>{const c=(e instanceof Array?e:[e]).map(e=>i.includes(e)?Promise.resolve():new Promise((a,s)=>{const c=((e,{id:t,async:r,defer:n,ok:o,error:i,attributes:a})=>{const s=document.createElement("script");return s.onload=o,s.onerror=i,t&&"undefined"!==t&&(s.id=t),r&&!n&&s.setAttribute("async",""),n&&s.setAttribute("defer",""),a&&a.forEach(([e,t])=>{s.setAttribute(e,t)}),s.src=e,s})(e,{async:t,defer:r,ok:a,error:s,attributes:o});n.appendChild(c),i.push(e)}));return Promise.all(c).then(a,s)})},re=(e,t,r)=>{if(void 0===e)return Promise.resolve(r);let n;return Promise.race([e,new Promise(e=>{n=setTimeout(()=>e(r),t)})]).finally(()=>clearTimeout(n))};function ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}const oe=()=>{var e;return o(n)?null===(e=window.__indyFirebaseAuth)||void 0===e||null===(e=e.currentUser)||void 0===e?void 0:e.uid:w("esi_puid")||void 0},ie=()=>{const e=oe();var t;e&&(null===(t=window.braze)||void 0===t||t.changeUser(e))},ae=async()=>{await(async()=>{o(n)&&await re(window.__firebaseAuthReady,5e3,void 0)})();if(!!window.braze)return ie(),!0;try{var e;if(!await re(ee("5ed8c49c4b8ce4571c7ad801","braze"),1e4,!1))return!1;const{braze:{sdkAPIKey:t="",sdkEndpoint:r=""}={}}=window.JSGlobals;return await te(["https://js.appboycdn.com/web-sdk/4.8/braze.min.js"]),null===(e=window.braze)||void 0===e||e.initialize(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ne(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ne(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({baseUrl:r,manageServiceWorkerExternally:!0,requireExplicitInAppMessageDismissal:!0,minimumIntervalBetweenTriggerActionsInSeconds:0},!1)),ie(),document.dispatchEvent(new CustomEvent("brazeLoaded")),!0}catch(e){return x("Error initializing braze sdk",e),!1}},se=async e=>{const t=Date.now(),r=null!=e?e:null,n=(()=>{try{const e=localStorage.getItem(Y);if(!e)return null;const t=JSON.parse(e);return"object"!=typeof t||null===t||Array.isArray(t)||!Number.isFinite(t.timestamp)||"string"!=typeof t.userId&&null!==t.userId?null:t}catch{return null}})(),o=(null==n?void 0:n.userId)===r,i=n&&!((e,t)=>e-t>864e5)(t,n.timestamp);o&&i||(((e,t)=>{localStorage.setItem(Y,JSON.stringify({userId:e,timestamp:t}))})(r,t),await(async()=>{await ae()&&window.braze.openSession()})())};(async()=>{await((e=5e3)=>{const t=K.get();return t.loading?new Promise(t=>{let r;const n=(e,n)=>{var i;clearTimeout(o),null===(i=r)||void 0===i||i(),t({state:e,isSettled:n})},o=setTimeout(()=>n(K.get(),!1),e);r=K.subscribe(e=>{e.loading||n(e,!0)})}):Promise.resolve({state:t,isSettled:!0})})(),(()=>{const{status:e}=K.get();return e===t})()&&await se(oe())})().catch(e=>{x("Error initialising Braze user",e)})})();
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.