CINXE.COM
As our politicians back 'assisted dying', beware the Codger Catchers | The Herald
<!DOCTYPE html> <html lang="en" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#"> <head> <!-- standard - PreConnects.html --> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <link rel="preconnect" href="https://d2zv5rkii46miq.cloudfront.net" /> <link rel="preconnect" href="https://visitanalytics.userreport.com" /> <link rel="preconnect" href="https://a02342.heraldscotland.com" /> <link rel="preconnect" href="https://securepubads.g.doubleclick.net" /> <link rel="preconnect" href="https://cdn.adsafeprotected.com" /> <link rel="preconnect" href="https://micro.rubiconproject.com" /> <link rel="preconnect" href="https://experience.tinypass.com" /> <link rel="preconnect" href="https://c.amazon-adsystem.com" /> <link rel="preconnect" href="https://tpc.googlesyndication.com"> <link rel="preconnect" href="https://pagead2.googlesyndication.com"> <link rel="preconnect" href="https://www.googletagservices.com"> <link rel="preconnect" href="https://cdn.ampproject.org"> <link rel="preconnect" href="https://securepubads.g.doubleclick.net"> <link rel="preconnect" href="https://tags.crwdcntrl.net"> <link rel="preconnect" href="https://bcp.crwdcntrl.net"> <link rel="preconnect" href="https://c.ltmsphrcl.net"> <link rel="dns-prefetch" href="https://tags.crwdcntrl.net"> <link rel="dns-prefetch" href="https://bcp.crwdcntrl.net"> <link rel="dns-prefetch" href="https://c.ltmsphrcl.net"> <title>As our politicians back 'assisted dying', beware the Codger Catchers | The Herald</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="OMG-Verify-V1" content="4389-366acdfc-5224-4c07-bb70-f74d8fbfc2db" /> <meta name="robots" content="max-image-preview:large"> <meta name="format-detection" content="telephone=no"> <script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={xpid:"XQAFWVZQGwQAV1ZWBgED",licenseKey:"fd15ff24ac",applicationID:"70374104"};;/*! For license information please see nr-loader-full-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={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)),o=0===Object.keys(r).length?e:r;for(let a in o)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]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>d});var n=r(384),i=r(8122);const o={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},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function d(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>p,xN:()=>g});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const d="[data-nr-mask]",u=()=>{const e={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,harvestTimeSeconds:10,autoStart:!0},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},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(d):""===t||null===t?e.mask_selector=d:(0,a.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){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.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,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function g(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,u());const r=(0,s.nY)(e);r&&(r.init=l[e])}function p(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},d={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},u={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!u[e])throw new Error("Runtime for ".concat(e," was never set"));return u[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");u[e]={...(0,n.a)(t,d),...c},Object.hasOwnProperty.call(u[e],"harvestCount")||Object.defineProperty(u[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=u[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.274.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>d,RI:()=>i,WN:()=>f,bv:()=>o,gm:()=>a,lR:()=>l,m:()=>c,mw:()=>s,sb:()=>u});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="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),s=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)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(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;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>d});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function d(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function u(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(u(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)g(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].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function g(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],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>d});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),d=function e(t,r){var n={},s={},u={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:g,addEventListener:g,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,o){!1!==o&&(o=!0);if(d.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=p(e),u=c.length,l=0;l<u;l++)c[l].apply(a,r);var g=v()[s[e]];g&&g.push([f,e,r,a]);return a},get:m,listeners:p,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[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()[s[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 a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function g(e,t){n[e]=p(e).concat(t)}function p(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),u=(0,n.Zm)();u.ee||(u.ee=d)},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,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(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 o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>d});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function d(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>d,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},d={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},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{}}}},944:(e,t,r)=>{"use strict";function n(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)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},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})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>u,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>d,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,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}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function d(e){let t=a();return t.initializedAgents?.[e]}function u(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{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)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),h(a.gm,f),h(c.prototype,f)),t.on(d+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(u+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}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:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],d=e[c];u(d)||(e[c]=r(d,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return u(t)?t:(r||(r=""),nrWrapper[o]=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){d([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,u,l;try{a=this,o=[...arguments],u="function"==typeof n?n(o,a):n||{}}catch(t){d([t,"",[o,a,s],u],e)}i(r+"start",[o,a,s],u,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],u,c),e}finally{i(r+"end",[o,a,l],u,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){d([t,r,n,i],e)}s=a}}}function d(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function u(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,Zp:()=>i,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>u,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>d,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},d={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"}},u=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>d,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function d(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>d,Rz:()=>u,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,d="fn"+s,u="pushState",l=1e3},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>P});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),d=r(5289),u=r(6154),l=r(944),f=r(3969),h=r(384),g=r(6344);const p=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",g.G4.RECORD,g.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),R=r(3785),x=r(2646),w=r(3434);function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,w.YM)(i),a=new x.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function A(){const e=(0,h.pV)();p.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var S=r(9417),_=r(5603),O=r(5284);const N=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let I=!1;function P(e,t={},p,x){let{init:w,info:P,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=p;const H=(0,h.pV)();P||(w=H.init,P=H.info,j=H.loader_config),(0,S.xN)(e.agentIdentifier,w||{}),(0,_.a)(e.agentIdentifier,j||{}),P.jsAttributes??={},u.bv&&(P.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,P);const D=(0,S.D0)(e.agentIdentifier),L=[P.beacon,P.errorBeacon];I||(D.proxy.assets&&(N(D.proxy.assets),L.push(D.proxy.assets)),D.proxy.beacon&&L.push(D.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===D.soft_navigations.enabled&&D.feature_flags.includes("soft_nav")),C.denyList=[...D.ajax.deny_list||[],...D.ajax.block_internal?L:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const p={};var x=s.ee.get(e),w=x.get("tracer");E[e]=b.g.OFF,x.on(g.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var A="api-",S=A+"ixn-";function _(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(A,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}p.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,x),(0,R.R)(x,e,t,r)},p.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,x),T(x,e,t,{customAttributes:r,level:i})},m.forEach((e=>{p[e]=I(A,e,!0,"api")})),p.addPageAction=I(A,"addPageAction",!0,n.K7.genericEvents),p.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(A,"setPageViewName",!0)()},p.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return _(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},p.setUserId=function(e){if("string"==typeof e||null===e)return _("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},p.setApplicationVersion=function(e){if("string"==typeof e||null===e)return _("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},p.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,x),x.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},p[g.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(g.G4.RECORD,[],void 0,n.K7.sessionReplay,x)},p[g.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(g.G4.PAUSE,[],void 0,n.K7.sessionReplay,x)},p.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const N=O.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,x),h||(0,a.p)(S+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,x),function(){if(w.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw w.emit("fn-err",[arguments,this,t],r),t}finally{w.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,x),i&&(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,x),r?void 0:this}}function P(){r.e(891).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),x.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{N[e]=I(S,e,void 0,h?n.K7.softNav:n.K7.spa)})),p.setCurrentRouteName=h?I(S,"routeName",void 0,n.K7.softNav):I(A,"routeName",!0,n.K7.spa),p.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,x),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,x)},u.RI?(0,d.GG)((()=>P()),!0):P(),p}(e.agentIdentifier,x,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),I=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({95:"nr-full-compressor",222:"nr-full-recorder",891:"nr-full"}[e]+"-1.274.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var d=document.getElementsByTagName("script"),u=0;u<d.length;u++){var l=d[u];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={891:"sha512-Sx2xJQrHp2m/Ngn/ZcfBCUwNr2Xy/C5urYtWpfm3bWpil4spXOQGTtNwIfF5HvPGioGASn9QTyE4Z+zC7r7wcg==",222:"sha512-hMte3OWgwwYeisSiD7WCIx/6tT16zLaPjag9uF4tIZp7ybOvrJKbeyzhe4fz1tDbkdcdOMm8dvgPPLBatSAGeA==",95:"sha512-MPaT9dkHv16XzwEUVZPyqpN1do/Er1XFAZoIAPYWylmv+iGIThqN+GwQq27pUyAX7sNXVJQVZezH96p53Ks3Pg=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(g);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},g=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={959:0,85:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,d=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);d<a.length;d++)o=a[d],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function d(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var u=i(425);var l=i(1687),f=i(4234),h=i(5289),g=i(6154),p=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(891).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(891).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(891).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};g.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,p.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class R extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var x=i(384);var w=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class _ extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),g.RI&&((0,T.u)((()=>(0,w.p)("docHidden",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,w.p)("winPagehide",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class N extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return D(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(D(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function H(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return D(e.error)?e.error:C(e)}function D(e){return e instanceof Error&&!!e.stack}class L extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(e=>{this.abortHandler&&(0,w.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),g.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,w.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",(e=>{this.abortHandler&&(0,w.p)("err",[H(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var K=i(8990);let M=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,K.I)(e,U,(function(){return M++}))}function G(e){if("string"==typeof e&&e.length)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,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,s=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=g.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(p?p.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var p=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===d||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",Q=["arrayBuffer","blob","json","text","formData"],J=g.gm.Request,ee=g.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(J&&ee&&g.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,Q.forEach((e=>{r(J[te],e,X),r(ee[te],e,X)})),r(g.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),d={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){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 o&&n!==o&&(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),de=["load","error","abort","timeout"],ue=de.length,le=(0,x.dV)().o.REQ,fe=(0,x.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,w.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};ge(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){T(t,e)}),(0,A.jT)(!1)),g.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},ge(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<ue;s++)r.addEventListener(de[s],this.listener,(0,A.jT)(!1))}function d(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 u(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function p(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(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,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(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 y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:g.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),ge(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function R(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function x(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<ue;t++)e.removeEventListener(de[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status&&(t.status=0):T(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,w.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",d),t.on("xhr-load-added",u),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",p),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",R)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function ge(e,t){var r=(0,ie.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}const pe={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!g.RI||pe[t.debugId]++||(pe[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:Re,d3:xe,Kp:we,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class _e extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,w.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+xe,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+we,(function(e){(0,w.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,w.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:Re,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class Ne extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,p.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,w.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,p.Aw)(this.agentIdentifier)}#d=!1;async#c(e){if(!this.#d){this.#d=!0;try{const{Recorder:t}=await Promise.all([i.e(891),i.e(222)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3333);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){super(e,Ie.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];g.RI&&e.init.user_actions.enabled&&(Ie.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,w.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),Ie.qN.forEach((e=>(0,A.sp)(e,(e=>(0,w.p)("ua",[e],void 0,this.featureName,this.ee)))))),r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var je=i(993),Ce=i(3785);class ke extends b{static featureName=je.TZ;constructor(e,t=!0){super(e,je.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,Ce.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),g.gm?(this.features={},(0,x.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(R),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,u.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=d(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,x.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[R,_,_e,Ne,he,N,L,Pe,ke],loaderType:"pro"})})()})();</script> <!-- standard - Fonts.html --> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Libre+Franklin:300,400,500,600,700"> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Serif:wght@400;600;700&family=Source+Serif+Pro:wght@400;600;700&display=swap"> <meta property="og:article:published_time" content="2024-12-03T06:30:00Z" /> <meta property="og:url" content="https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/" /> <meta property="og:site_name" content="The Herald" /> <meta property="og:image" content="https://www.heraldscotland.com/resources/images/18833814.jpg?type=og-image" /> <meta property="og:image:width" content="945" /> <meta property="og:image:height" content="630" /> <meta itemprop="image" content="https://www.heraldscotland.com/resources/images/18833814/" /> <meta name="twitter:image:src" content="https://www.heraldscotland.com/resources/images/18833814/" /> <meta property="og:title" content="Imagine a future where the Codger Catchers stalk the streets - it's easy if you try" /> <meta property="og:type" content="article" /> <meta property="fb:app_id" content="612240812916784" /> <meta property="og:name" content="Kevin McKenna: As our politicians back 'assisted dying', beware the Codger Catchers" /> <meta property="og:description" content="Across the UK, mandatory annual health MOTs for people over the age of 40 were introduced. Those with ailments found to have been caused by… " /> <meta itemprop="name" content="Kevin McKenna: As our politicians back 'assisted dying', beware the Codger Catchers" /> <meta itemprop="description" content="Across the UK, mandatory annual health MOTs for people over the age of 40 were introduced. Those with ailments found to have been caused by… " /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Kevin McKenna: As our politicians back 'assisted dying', beware the Codger Catchers" /> <meta name="twitter:description" content="Across the UK, mandatory annual health MOTs for people over the age of 40 were introduced. Those with ailments found to have been caused by… " /> <meta name="medium" content="news" /> <meta name="title" content="Kevin McKenna: As our politicians back 'assisted dying', beware the Codger Catchers" /> <meta name="description" content="Across the UK, mandatory annual health MOTs for people over the age of 40 were introduced. Those with ailments found to have been caused by… " /> <meta name="parsely-post-id" content="24766444" /> <meta name="keywords" content="" /> <meta property="article:location" content="city:glasgow, scotland" /> <link rel="canonical" href="https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/" /> <meta property="og:article:author" content="Kevin McKenna" /> <meta property="fb:pages" content="271154343382" /> <meta property="fb:pages" content="285985008233564" /> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "NewsArticle", "headline": "As our politicians back 'assisted dying', beware the Codger Catchers", "datePublished": "2024-12-03T06:30:00Z", "dateModified": "2024-12-03T06:30:00Z", "articleSection": "politics", "mainEntityOfPage": "https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/", "url": "https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/", "isBasedOn": "https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/", "author": { "@type": "Person", "name": "Kevin McKenna" }, "image": { "@type": "ImageObject", "url": "http://www.heraldscotland.com/resources/images/18833814.jpg/", "width": 1280, "height": 720 }, "publisher": { "@type": "Organization", "name": "The Herald", "logo": { "@type": "ImageObject", "url": "http://www.heraldscotland.com/resources/images/sitelogo/", "width": "385", "height": "91" } }, "keywords": ["article_types:opinion","topics:national-government","topics:family","topics:politics","free_tags:social-and-political-issues:assisted-dying","content-level:3","source:newsquest"] } </script> <link id="page_stylesheet_vars" href="/resources/responsive-static/build/mds/css/palette-1-serif-vars.css?r=uUAjmAdC" rel="stylesheet" type="text/css"> <link href="/resources/responsive-static/build/mds/css/header-footer.css?r=uUAjmAdC" rel="stylesheet" type="text/css"> <link id="page_stylesheet" href="/resources/responsive-static/build/mds/css/blockarticle.css?r=uUAjmAdC" rel="stylesheet" type="text/css"> <link rel="shortcut icon" href="/resources/images/17853003/" type="image/vnd.microsoft.icon"> <link rel="icon" href="/resources/images/17853003/" type="image/vnd.microsoft.icon"> <!-- standard - AdvertisingInit.html --> <script> window.startExec = performance.now(); </script> <!-- standard - ThirdPartyAndSync.html --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript" src="/resources/shared/responsive-sync/?r=uUAjmAdC"></script> <!-- standard - Sourcepoint.html --> <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",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> <script type = "text/javascript"> ( function () { var module = 'BlockArticleModule'; if (module === 'BackboneUserModule' || module === 'AdBlockerFaqModule' || module === 'ResponsiveEducationModule' || module === 'PianoSubscriptionPageModule') { var events = "event70"; trackSPEvents(events); return; } window._sp_ = { config: { baseEndpoint: 'https://a02342.heraldscotland.com', accountId: 52, targetingParams:{ subscribed: false, privacy: false }, gdpr: { }, events: { onMessageReady: function (message_type) { trackSPEvents('event76'); }, onMessageChoiceSelect: function (message_type, choice_id, choice_type_id) { console.log('message_type: ', message_type); console.log('choice_id: ', choice_id); console.log('choice_type_id: ', choice_type_id); if ('no' === 'yes') { if (choice_type_id === 12) { trackSPEvents('event83'); //Consent Banner Reject All trackSPEvents('event82'); //Journalism Message Shown } if (choice_type_id === 11) { trackSPEvents('event78'); } if (choice_type_id === 9) { trackSPEvents('event77'); } } else { // these are the second argument in non-gate if (choice_type_id === 12) { trackSPEvents('event77'); } if (choice_type_id === 11) { trackSPEvents('event78'); } if (choice_type_id === 13) { trackSPEvents('event83'); } } }, onPrivacyManagerActionStatus: function(message_type, status, actionType) { console.log('message_type: ' + message_type); console.log('status: ' + status); console.log('actionType: ' + actionType); if ('no' === 'yes') { if (actionType === 11) { trackSPEvents('event79'); //Privacy Manager Accept } if (actionType === 9) { trackSPEvents('event68'); //Privacy Manager Redirect } if (actionType === 1) { trackSPEvents('event75'); //Forced tcf String Change } } else { // these are the second argument in non-gate if (actionType === 13) { trackSPEvents('event81'); //Privacy Manager Reject } if (actionType === 11) { trackSPEvents('event79'); //Privacy Manager Accept } if (actionType === 1) { trackSPEvents('event80'); //Privacy Manager Save & Exit } } }, onPMCancel: function (message_type) { console.log('onPMCancel', message_type); trackSPEvents('event84'); //Privacy Manager Back }, } } } // document.addEventListener('sp.blocking', function (e) { // var events = "event70"; // if ($.cookie('nqab') === 'false') { // events += ',event74'; // } // if ($.cookie('nqab') !== null) { // events += ',event72'; // trackSPEvents(events); // $.cookie('nqab', 'true', { expires: 365, path: '/' }); // return; // } // $.cookie('nqab', 'true', { expires: 365, path: '/' }); // events += ',event71'; // trackSPEvents(events); // }); // document.addEventListener('sp.not_blocking', function (e) { // console.log('DFP: Not blocking triggered, cookie is %s', $.cookie('nqab')); // // If they have the cookie set, it means they saw the banner and now have disabled their adblocker. // if ($.cookie('nqab') === 'true') { // trackSPEvents('event73'); // $.cookie('nqab', 'false', { expires: 365, path: '/' }); // } // }); __tcfapi('addEventListener', 2, function (tcData, success) { // console.log('DFP: Event Listen:', tcData); if (success && tcData.eventStatus === 'useractioncomplete') { var csnt = 'none'; if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') { csnt = 'yes'; } else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') { csnt = 'no'; } googletag.cmd.push(function() { // console.log('DFP: Cookie check - setting dfpcsnt to ', csnt); googletag.pubads().setTargeting('dfpcsnt', csnt); }); // ready to start DFP startAdvertising(tcData.listenerId); setTcfCookie(tcData.purpose.consents, tcData.purpose.legitimateInterests); } else if (success && tcData.eventStatus === 'tcloaded') { startAdvertising(tcData.listenerId); } }); $(document).on('click', '.gdpr-option-v2', function (e) { e.preventDefault(); sendEvent76 = false; var id = $(this).data('v2-id'); if ($(this).data('is-gate') === 'yes') { trackSPEvents('event87'); _sp_.gdpr.loadPrivacyManagerModal(id); } else { trackSPEvents('event77'); _sp_.gdpr.loadPrivacyManagerModal(id); } }); function getTcfData() { __tcfapi('addEventListener', 2, function(data, success) { setTcfCookie(data.purpose.consents, data.purpose.legitimateInterests); }, [755]); } getTcfData(); function setTcfCookie(data, legitimateInterests) { var consents = []; $.each(data, function(id, consent) { var c = (consent === true) ? 'yes' : 'no'; consents.push(c) }); // console.log('DFP: consents length: ', consents.length); if (consents.length !== 10) { // consents = consents.fill('no', consents.length, 10); for (var i = consents.length; i < 10; i++) { consents[i] = 'no'; } } // console.log('DFP: Found consents to store in cookie:', consents); $.cookie('prev-tcf-v2', consents.join(','), {domain: '.heraldscotland.com', path: '/', expires: 100}); var consentEvent4 = 'none'; if (typeof data[4] !== 'undefined') { consentEvent4 = data[4] ? 'true' : 'false'; } $.cookie('_sp_enable_dfp_personalized_ads', consentEvent4, {domain: '.heraldscotland.com', path: '/', expires: 100}); var legitInterest = 'none'; if (legitimateInterests && typeof legitimateInterests[2] !== 'undefined') { legitInterest = legitimateInterests[2] ? 'true' : 'false'; } $.cookie('_sp_legitimate_interests', legitInterest , {domain: '.heraldscotland.com', path: '/', expires: 100}); } var sendEvent76 = true; function trackSPEvents(events) { if (events === 'event76' && !sendEvent76) { return; } else if (events === 'event76') { sendEvent76 = false; } if (typeof window.s !== 'object') { // console.log('DFP: No window.s object found, trying again in 1 second'); window.setTimeout(function () { trackSPEvents(events)} , 1000); return; } // console.log("ADB: Tracking %s", events); // Re-create the Omniture object so the data can be tracked. var s = window.s; if (events.indexOf('event70') !== -1) { // console.log('DFP: Events passed, added evars'); s.eVar35 = 'enabled'; s.prop35 = 'enabled'; } s.events = events; s.linkTrackEvents = events; s.linkTrackVars = "eVar2,eVar3,eVar4,eVar5,eVar6,evar7,evar8,evar9,eVar16,eVar19,eVar26,eVar35,eVar43,prop35"; s.suppressPageView = true; s.tl(true,'o','Ad Block'); } function startAdvertising(id) { if (typeof window.doNotAdvertise !== 'undefined' && window.doNotAdvertise === true) { return; } // console.log("DFP: Is the page fully loaded?", window.googleReady); if (window.googleReady !== true) { window.setTimeout(function () { // console.log('DFP: Google not fully loaded yet, pausing quarter of a second before trying again'); startAdvertising(id); }, 250); return; } // console.log('DFP: Starting advertisement loading routine'); if (window.advertisingStart === true) { return; } // console.log('DFP: Running advertisement'); window.advertisingStart = true; var googletag = window.googletag; // init google objects and array (function() { var gads = document.createElement('script'); gads.async = true; gads.type = 'text/javascript'; gads.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(gads, node); })(); var e = new Event('launch:cmp:choice-made'); window.dispatchEvent(e); // AP code fetchAp(); if (usePrebid) { // load prebid script // console.log("DFP: loading Newsquest Test script"); var site = 'desktop'; var _site = 'desktop'; // load IAS scripts and set up vars (function() { var ias = document.createElement('script'); ias.async = true; ias.type = 'text/javascript'; ias.src = 'https://cdn.adsafeprotected.com/iasPET.1.js'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(ias, node); })(); (function() { var pbs = document.createElement('script'); pbs.async = true; pbs.type = 'text/javascript'; pbs.src = 'https://micro.rubiconproject.com/prebid/dynamic/11022.js?group=newsquest'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(pbs, node); })(); // console.log('DFP: Starting header bid code from CMP v2 flow'); googletag.cmd.push(function () { // console.log("DFP: loading header bid code - Google is loaded"); fetchHeaderBids(); }); } if ( window.data_layer.user.advertising_experience !== 'Ad-Free' && window.data_layer.config.disable_outbrain !== 'yes' ) { (function() { var ob = document.createElement('script'); ob.async = true; ob.type = 'text/javascript'; ob.src = 'https://widgets.outbrain.com/outbrain.js'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(ob, node); })(); } // remove the listener if (id !== null) { window.__tcfapi('removeEventListener', 2, function (success) { }, id); } } })(); </script> <script src="https://a02342.heraldscotland.com/unified/wrapperMessagingWithoutDetection.js"></script> <!-- standard - DataLayer.html --> <script type="text/javascript"> data_layer_helper.setIsArticle(true); data_layer_helper.setCookieDomain('.heraldscotland.com'); data_layer_helper.setModuleType('BlockArticleModule'); data_layer_helper.setLocalInfoFolder(''); data_layer_helper.setHomesData('', '', '', 'politics'); data_layer_helper.setPrimaryDomain('www.heraldscotland.com'); data_layer_helper.setPath('/politics/viewpoint/'); data_layer_helper.setGoogleNetworkCode('154725070'); data_layer_helper.setArticleTimestamp('1733207400'); var articleSubjects = []; var extraTags = []; extraTags.push('user_level_anonymous'); var data_layer = { environment: { is_test_site: 'no', is_live_site: 'yes', is_paywall_site: 'yes', is_portable_screen: (data_layer_helper.isMobileScreen()) ? 'yes' : 'no', is_desktop_screen: (data_layer_helper.isMobileScreen()) ? 'no' : 'yes', is_mobile_device: data_layer_helper.getMobileDevice(), is_tablet_device: data_layer_helper.getTabletDevice(), server: 'dmh-martini-web3', platform: 'Martini' }, site: { id: '308', centre_id: '14', centre_name: 'Herald and Times', country: 'Scotland', name: 'The Herald', domain: 'www.heraldscotland.com', editor_name: 'Catherine Salmond', onboarding_enabled: 'yes', onboarding_flow_id: 'the_herald', cookie_domain: '.heraldscotland.com', uses_cmp: 'yes', short_domain: 'heraldscotland', using_piano_id: 'yes', enable_skimlinks: 'yes', skimlinks_domain_id: '1680368', disable_newsletters: 'no', is_archant_site: 'no', shc_merchant_name: '', piano_application_group: 'Bespoke', piano_site_name: 'The Herald', piano_site_name_possessive: 'The Herald\'s', piano_site_name_with_prefix_lower: 'The Herald', piano_site_name_with_prefix_capitalised: 'The Herald', piano_site_name_with_prefix_capitalised_possessive: 'The Herald\'s', piano_site_name_with_prefix_lower_possessive: 'The Herald\'s', piano_location_primary: 'Scotland', piano_location_primary_possessive: 'Scotland\'s', piano_location_county: 'Scotland', piano_location_county_possessive: 'Scotland\'s', piano_primary_sports_team: '', piano_primary_sports_team_nickname: '', piano_primary_sports_team_sport: '', piano_primary_sports_team_possessive: '', piano_primary_sports_team_nickname_possessive: '', has_app: 'yes', app_provider: 'pagesuite', app_platform: 'pagesuite-hybrid', app_store_url_ios: 'https://apps.apple.com/app/the-herald/id980623432', app_store_url_google_play: 'https://play.google.com/store/apps/details?id=com.pagesuite.theheraldsundayherald' }, page: { module: 'BlockArticleModule', referrer: data_layer_helper.getReferrerHostName(), name: '(www) ' + data_layer_helper.getOmniturePath(), title: document.title, path: data_layer_helper.getOmniturePath(), section: data_layer_helper.getPathFragment(0), subsection: data_layer_helper.getPathFragment(1), subsection_2: data_layer_helper.getPathFragment(2), subsection_3: data_layer_helper.getPathFragment(3), reference: qs.get('ref'), layout: 'BAM Standard Article', ad_timing: data_layer_helper.getCookie('adtiming'), template_namespace: 'standard', template: '', colour_scheme: '', layout_template: 'BAM Standard Article', mds_font: 'serif', mds_colour_palette: 'palette-1', feature_block_a_enabled: ($('[data-name="Feature Article Block A"]').length > 0) ? 'yes' : 'no', feature_block_b_variant: (typeof $('[data-name="Feature Article Block B"]').data('variant') === 'undefined') ? '' : $('[data-name="Feature Article Block B"]').data('variant'), is_article_list: 'no', error_404: '', top_stories_article_count: '', interstitial_article_count: '', news_stories_article_count: '' }, user: { id: '', first_name: '', advertising_experience: 'Ad-Full-Herald', is_privacy_plus: 'no', is_alist: 'no', level: data_layer_helper.getCookie('nq_ul'), seen_cmp: (data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'true' || data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'false') ? 'yes' : 'no', given_consent: (data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'true') ? 'yes' : 'no', consent_string: data_layer_helper.getConsentString(), type: 'anonymous', parsely_type: 'Anonymous', chartbeat_type: 'anon', type_as_int: '1', is_logged_in: 'no', is_admin: 'no', has_full_admin_link_permissions: '', has_registered: (data_layer_helper.getCookie('nqr') !== null) ? 'yes' : 'no', comments_verified: '', comments_verified_date: '', age_decade: '0' , gender: 'u' , is_known: data_layer_helper.getCookie('__siren') ? 'yes' : 'no', hash: '', lr_hash_1: '', lr_hash_2: '', lr_hash_3: '', gender: 'u' , user_decade: '0' , subscription_plan: '', subscription_tier: 'null', subscription_plan_and_frequency: ' - ', commented: (data_layer_helper.isArticle() && qs.get('action') === 'success') ? 'yes' : 'no', time_since_last_visit: 'not implemented (maybe drop)', device: data_layer_helper.getDevice(), using_ad_blocker_sourcepoint: data_layer_helper.getSourcepointAdbockStatus(), admin_user_name: '', card_expired: '', card_will_expire: '', expires_urgency: '', abandoned_cart: 'no', subscription_expired: 'no', payment_attempt_one: 'no', payment_attempt_two: 'no', payment_attempt_final: 'no', is_archant_site: 'no', signed_up_primary_news_newsletter: 'no', signed_up_primary_sport_newsletter: 'no', has_app_access: 'no', played_free_puzzles_last_7days: '', played_paid_puzzles_last_7days: '' }, analytics: { hierachy: 'newsquest,Herald and Times,www.heraldscotland.com,' + data_layer_helper.getPathFragment(3).replace(/\//,','), link_filters: 'javascript:,heraldscotland.com,fish4.co.uk,adsys.newsquest.co.uk,www.exchangeandmart.co.uk,www.communigate.co.uk,', tracking_block: data_layer_helper.getTrackingFromCookie('tracking_block', ''), tracking_block_index: data_layer_helper.getTrackingFromCookie('tracking_block_index', ''), previous_page_name: data_layer_helper.getCookie('nq_prev_page'), advert_id: '', position_in_list: data_layer_helper.getTrackingFromCookie('o-prop30', ''), featured_content: data_layer_helper.getTrackingFromCookie('o-ref', qs.get('ref')), account: data_layer_helper.getAccount() }, chartbeat: { enabled: "no", id: "", domain: "", sections: 'article_types:opinion,topics:national-government,topics:family,topics:politics,free_tags:social-and-political-issues:assisted-dying,content-level:3,source:newsquest' }, parsely: { enabled: "yes", site_id: "heraldscotland.com", type: 'Anonymous' }, piano: { tags: data_layer_helper.getPianoTags({ piano_domain: 'heraldscotland', piano_master: '', breaking_news: false, editorial_opinion: false, free_subscriber: false, free_subscriber: false, has_video: false, is_article: true, article_content_level : '3', article_content_level_open_access: false, picture_gallery_id: false, user_is_newsquest: false, user_logged_in: false, is_live_article: false, why_free_subscriber: '', extra_tags: extraTags, is_covid_headline: false, is_covid_body: false, is_alist: false, audio_provider_bytecast: false } ), custom_variables: { article_length: 'l', application_group: 'Bespoke', content_is_editorial_opinion: 'no', base_url: 'https://www.heraldscotland.com', mds_font: 'serif', mds_colour_palette: 'palette-1', site_name: 'The Herald', site_name_possessive: 'The Herald\'s', site_name_with_prefix_capitalised: 'The Herald', site_name_with_prefix_lower: 'The Herald', site_name_with_prefix_capitalised_possessive: 'The Herald\'s', site_name_with_prefix_lower_possessive: 'The Herald\'s', location_primary: 'Scotland', location_primary_possessive: 'Scotland\'s', location_county: 'Scotland', location_county_possessive: 'Scotland\'s', site_has_primary_sports_team: 'no', primary_sports_team: '', primary_sports_team_nickname: '', primary_sports_team_sport: '', primary_sports_team_possessive: '', primary_sports_team_nickname_possessive: '', site_id: '308', content_level: '3', content_level_openaccess_override: 'no', content_author: 'Kevin McKenna', content_id: '24766444', content_is_article: 'yes', content_primary_topic: 'National government', user_seen_consent_modal: ($.cookie('_sp_enable_dfp_personalized_ads') === 'true' || $.cookie('_sp_enable_dfp_personalized_ads') === 'false') ? 'yes' : 'no', user_has_app_access: 'no', site_section: data_layer_helper.getPathFragment(0, true), article_published_yyyy: '2024', user_played_free_puzzles_last_7days: '', user_played_paid_puzzles_last_7days: '', anon_user_played_free_puzzles_last_7days: data_layer_helper.untrackedPuzzleCheck(), home_delivery_phone_number: '0141 302 6096', content_taxonomy_topics_contains_sport: 'national-government,family,politics'.indexOf('sport') >= 0 ? 'yes' : 'no', content_is_restricted: data_layer_helper.getRestrictedContent('3', '308', '308', ''), day_of_week: data_layer_helper.getDayOfWeek(), user_card_expired: '', user_card_will_expire: '', user_expires_urgency: '', user_payment_attempt_one: 'no', user_payment_attempt_two: 'no', user_payment_attempt_final: 'no', user_subscription_tier: 'null', user_is_newsquest: 'no', primary_news_newsletter_id: '1897', primary_news_newsletter_name: 'the Unspun: Scottish Politics', primary_news_newsletter_description: 'Our nightly politics briefing, with exclusive analysis from our top team of writers.', primary_sport_newsletter_id: '1221', primary_sport_newsletter_name: 'the Sports Headlines', primary_sport_newsletter_description: 'The best Scottish sports coverage, delivered to your inbox every morning.', user_signed_up_primary_news_newsletter: 'no', user_signed_up_primary_sport_newsletter: 'no', newsletter_auto_promote: 'auto_success', newsletter_auto_promote_name: 'the Today\'s Most Read', newsletter_auto_promote_description: 'Your round-up of the day\'s top stories.', newsletter_auto_promote_ID: '1222', site_has_app: 'yes', site_app_store_url_ios: 'https://apps.apple.com/app/the-herald/id980623432', site_app_store_url_google_play: 'https://play.google.com/store/apps/details?id=com.pagesuite.theheraldsundayherald', site_section1: data_layer_helper.getPathFragment(1, true) // GBL required }, native_variables: { setContentCreated: 'Mon, 02 Dec 2024 16:10:27 +0000', setContentIsNative: 'no', setContentAuthor: 'Kevin McKenna', setContentSection: data_layer_helper.getPathFragment(0, true) } }, article: { showing_preview: '', is_article: data_layer_helper.isArticle() ? 'yes' : 'no', id : '24766444', length_type: 'l', character_count: '7354', author: 'Kevin McKenna'.toLowerCase(), context: 'Politics', content_level: '3', content_level_open_access: 'no', content_level_combined: '3,best,no', content_is_restricted: data_layer_helper.getRestrictedContent('3', '308', '308', ''), increment: (data_layer_helper.isArticle()) ? '+1' : '', sponsor: '', contributions: '0', is_sponsored: 'no', headline: 'Kevin McKenna: As our politicians back \'assisted dying\', beware the Codger Catchers', age: data_layer_helper.getArticleAge(), upload_date: '', publish_date: '02/12/2024', update_date: '', rating: '5', source: data_layer_helper.getSource(''), subjects: (typeof articleSubjects === 'object') ? articleSubjects.join(',') : '', context: 'Politics', grapeshot_context: (typeof gs_channels !== 'undefined') ? gs_channels : '', allow_comments: 'yes', total_comments: '10', originating_site_id: '308', parent_article_site_id: '', parent_article_id: '', originating_article_id: '24766444', parent_originating_site_id: '308', is_original_to_site: 'yes', is_cloned: 'no', parent_article_url: 'https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/', use_skimlinks: 'no', content_primary_topic: 'National government', taxonomy: { article_types: 'opinion', topics: 'national-government,family,politics', sports: '', sports_teams: '', locations: '', shared_content: '', free_tags: 'social-and-political-issues:assisted-dying', farming: '' }, audio: { has_audio: 'no', provider: '' } }, homes: { search_bedrooms_minimum: '', search_location: 'politics', search_price_minimum: '', search_price_maximum: '', list: '', id: '' }, video: { exists: 'no', auto_play_enabled: data_layer_helper.getAutoPlay('no') }, contributions: { allow_text: '', allow_image: '', user_contributions_number: '0', has_user_contributions: 'no' }, search: { keywords: qs.get('search'), results: '' }, announcements: { category: '' }, config: { google_analytics_id: 'G-MPKEG017RX', site_template_set: 'standard', path: '/politics/viewpoint/', top_level_section: 'politics', polar_property_id: 'NA-HERA-11238047', gallery_show_advert_after: '5', disable_outbrain: 'no' }, dfp: { is_landing: 'no', module_path: 'politics', weather_band: '11-15', weather_summary: 'cloudy'.toLowerCase(), id: data_layer_helper.getGoogleId(), display_screen: data_layer_helper.isMobileScreen() ? 'mobile' : 'desktop', can_show_billboard: (window.screen.width > 960) ? 'y' : 'n' }, dates: { date: (new Date()).toLocaleDateString('en-GB'), hour: (new Date()).getHours(), day: data_layer_helper.getDayOfWeek(), weekend: ((new Date()).getDay() === 6 || (new Date()).getDay() === 0) ? 'Weekend' : 'Weekday' }, memorials: { contact_phone_number: '', contact_email_address: '', publications: JSON.parse('' || '[]') } } data_layer_helper.storeCurrentPageName(data_layer.page.name); window.dispatchEvent(new Event('data-layer-loaded')) if (data_layer.article.is_article !== 'yes') { data_layer.piano.custom_variables.site_module = 'BlockArticleModule'; data_layer.piano.custom_variables.puzzles_landing_page = 'no'; data_layer.piano.custom_variables.desktop_hero_id = '0'; data_layer.piano.custom_variables.puzzles_display_page = 'no'; data_layer.piano.custom_variables.mobile_hero_id = '0'; } </script> <script src="//assets.adobedtm.com/499440d21de9/54b957ecfb7e/launch-98090dfa3d73.min.js" async ></script> <!-- standard - PianoInit.html --> <script> window.usePiano = true; window.selectedOfferId = null; window.selectedTermId = null; </script> <script> document.cookie = "__adblocker=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; var setNptTechAdblockerCookie = function(adblocker) { var d = new Date(); d.setTime(d.getTime() + 60 * 60 * 24 * 2 * 1000); document.cookie = "__adblocker=" + (adblocker ? "true" : "false") + "; expires=" + d.toUTCString() + "; path=/"; } var script = document.createElement("script"); script.setAttribute("async", true); script.setAttribute("src", "//www.npttech.com/advertising.js"); script.setAttribute("onerror", "setNptTechAdblockerCookie(true);"); document.getElementsByTagName("head")[0].appendChild(script); </script> <script> tp = window.tp || []; function runPiano() { Object.keys(data_layer.piano.custom_variables).forEach(function (k) { var v = data_layer.piano.custom_variables[k]; if (v != '') { tp.push(["setCustomVariable", k, v]); } }); Object.keys(data_layer.piano.native_variables).forEach(function (k) { var v = data_layer.piano.native_variables[k]; if (v != '') { tp.push([k, v]); } }); tp.push(['setTags', data_layer.piano.tags]); (function(src){ var a=document.createElement("script"); a.type = "text/javascript"; a.async=true; a.src=src; var b=document.getElementsByTagName("script")[0]; b.parentNode.insertBefore(a, b) })("//experience.tinypass.com/xbuilder/experience/load?aid=rBSKi8pTte"); } // Init Piano tp.push(["setDebug", ($.cookie('debug') === '1')]); tp.push(["setApplePayMerchantId", 'merchant.nq.subssites.piano']); // init Piano ID tp.push(['init', function() { tp.pianoId.init(); }]); tp.push(["setUsePianoIdUserProvider", true ]); tp.push(["addHandler", "loginRequired", function(params) { // If they're already signed in, we don't need to do anything special. if (tp.user.isUserValid()) { return; } if (typeof window._overridePianoDefault !== 'undefined' && window._overridePianoDefault !== true) { console.log("TPL Called") tp.pianoId.show({ screen: 'login', displayMode: 'modal', loggedIn: (data) => { pianoId.loggedIn(); }, loggedOut: () => { console.log('TP-TJ: user logged out'); }, registrationSuccess: () => { pianoId.registered(); }, width: '500px', height: '460px', }); } }]); tp.push(["addHandler", "showTemplate", function (templateParams) { handleOfferShow(templateParams); trackLocation(); if ($(templateParams.containerSelector).length > 0) { $(templateParams.containerSelector).addClass('shown'); if (templateParams.containerSelector === '#po-inline-article-inside') { $('#piano-container-inside-article').addClass('shown').removeAttr('style'); } if (!$(templateParams.containerSelector).hasClass('mar-block-ad')) { $(templateParams.containerSelector).show(); } if (templateParams.containerSelector === '#po-overlay-articlegate-full-width-scroll-below') { handleFullWidthBanner(); } if ( $(templateParams.containerSelector) === '#subscription-content' || $(templateParams.containerSelector) === '#po-inline-subscribe-page' ) { $(templateParams.containerSelector).show(); } if (['#piano_blockmodule_target_d', '#po-inline-blocksystem-target-e'].includes(templateParams.containerSelector)) { $('#divpo-inline-blocksystem-target-e').show(); } if (templateParams.containerSelector === '#po-overlay-toast-left') { removePianoToast() } if (templateParams.containerSelector === '#po-inline-articlewall-partialarticle-closable') { $('#po-inline-articlegate-partialarticle').css('display', 'none'); } if (templateParams.containerSelector === '#po-inline-articlewall-fullarticle-closable') { $('#po-inline-articlegate-fullarticle').css('display', 'none'); } } }]); tp.push(["addHandler", "checkoutSelectTerm", function (termDetails) { if (typeof termDetails.termId !== 'undefined') { window.selectedTermId = termDetails.termId; } }]); tp.push(["addHandler", "showOffer", function (offerParams) { handleOfferShow(offerParams); window.shownOffer = true; trackLocation(); // Store some data we might need later. if (typeof offerParams.offerId !== 'undefined') { window.selectedOfferId = offerParams.offerId; } if ($(offerParams.containerSelector).length > 0) { if ($(offerParams.containerSelector).length > 0) { $(offerParams.containerSelector).addClass('shown'); if (offerParams.containerSelector === '#po-inline-article-inside') { $('#piano-container-inside-article').addClass('shown').removeAttr('style'); } if (!$(offerParams.containerSelector).hasClass('mar-block-ad')) { $(offerParams.containerSelector).show(); } if (offerParams.containerSelector === '#po-overlay-articlegate-full-width-scroll-below') { handleFullWidthBanner(); } if ( $(offerParams.containerSelector) === '#subscription-content' || $(offerParams.containerSelector) === '#po-inline-subscribe-page' ) { $(offerParams.containerSelector).show(); } if (offerParams.containerSelector === '#po-overlay-toast-left') { removePianoToast() } if (templateParams.containerSelector === '#po-inline-articlewall-partialarticle-closable') { $('#po-inline-articlegate-partialarticle').css('display', 'none'); } if (templateParams.containerSelector === '#po-inline-articlewall-fullarticle-closable') { $('#po-inline-articlegate-fullarticle').css('display', 'none'); } } } }]); function handleFullWidthBanner() { $('#po-overlay-articlegate-full-width-scroll-below').css({ border: '1px solid #767676' }); $('#po-overlay-articlegate-full-width-scroll-below').show(); $('#subscription-content').hide(); $('.send-us-your-news-cta').hide(); $('.mega-news-block').hide(); const block = document.getElementById('po-overlay-articlegate-full-width-scroll-below'); let blockRect = block.getBoundingClientRect(); let startRect = new DOMRect(blockRect.x, blockRect.y + window.scrollY, blockRect.width, blockRect.height); let hasBecomeVisible = true; // change to false to alter the gate positioning behaviour const updateArticleGatePositionBasedOnScroll = function() { if (window.scrollY + window.innerHeight > startRect.bottom) { hasBecomeVisible = true; } if (hasBecomeVisible) { if (window.scrollY > startRect.top) { block.style.position = 'fixed'; block.style.setProperty('top', '0px'); block.style.setProperty('bottom', 'initial'); } else if (window.scrollY < startRect.bottom - window.innerHeight) { block.style.position = 'fixed'; block.style.setProperty('bottom', '0px'); block.style.setProperty('top', 'initial'); } else { block.style.removeProperty('position'); block.style.removeProperty('bottom'); block.style.removeProperty('top'); } } } // position the article gate immediately updateArticleGatePositionBasedOnScroll(); // update article gate position on scroll events document.addEventListener('scroll', updateArticleGatePositionBasedOnScroll); } function trackLocation(forceValidLocation = false) { var currentLocation = window.location.pathname; let valid = false; if (currentLocation.indexOf('puzzles') > -1) { valid = true; } if (currentLocation.indexOf('pagesuite') > -1) { valid = true; } var articleMatch = currentLocation.match(/(\d+)\.[^\/]+\/(r\/)?$/); if (articleMatch != null) { valid = true; } if (forceValidLocation) { valid = true; } if (currentLocation.indexOf('subscribe') > -1) { valid = false; } if (!valid) { return; } $.cookie('last-piano-page-interacted-with', currentLocation, {path: '/', domain: window.data_layer.site.cookie_domain}); } function trackPianoWithNewRelic(templateName) { if (this.newrelic && typeof this.newrelic === 'object') { newrelic.setCustomAttribute('user_was_shown_piano_experience', templateName); } } function handleOfferShow(params) { console.log('Piano params', params); // If on the subscription page and the URL has a term ID and offer ID, show the relevant offer. if (typeof location.pathname !== 'undefined' && location.pathname === '/subscribe/') { var offerId = location.search.match(/offer_id=([A-Z0-9]+)/); if (offerId !== null && offerId.length > 1) { offerId = offerId[1]; } var termId = location.search.match(/term_id=([A-Z0-9]+)/); if (termId !== null && termId.length > 1) { termId = termId[1]; } if (offerId !== null && termId !== null) { tp.offer.show({'termId': termId, 'offerId': offerId}); } } // we are only tracking var templateId = params.templateId; var variantId = params.templateVariantId; if (params.containerSelector !== '#subscription-content' && params.containerSelector !== '#subscription-replace-entire-article' && params.containerSelector !== '#po-inline-articlegate-fullarticle' && params.containerSelector !== '#po-inline-articlegate-partialarticle' ) { $.get('/ws/piano/templatename/', {template_id: templateId, variant_id: variantId}, function (response) { trackPianoSimplified(params, response.name); }); return; } $.get('/ws/piano/templatename/', {template_id: templateId, variant_id: variantId}, function (response) { trackPiano(params, response.name); }); } function trackPiano(params, templateName) { trackPianoWithNewRelic(templateName); if (typeof params.activeMeters === 'string') { activeMeters = JSON.parse(params.activeMeters); } else { activeMeters = params.activeMeters; } var s = window.s; if (!s || !s.pageName) { // console.log("ADB: Setting s from backup"); s = window.backupAdobe; window.s = s; } // this would call when CL3 is a hard gate if (!activeMeters && data_layer.article.content_level === '3') { s.eVar59 = templateName; s.eVar58 = data_layer.article.content_level; s.events = "event91"; s.linkTrackVars="eVar58,eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar79,list3,events"; s.linkTrackEvents="event91"; s.tl(document, 'o', 'Metered Access Notice'); s.events = ''; return; } if (!activeMeters) { return; } var meterData = activeMeters[0]; var meterName = meterData.meterName.toLowerCase(); // track event 5 if (meterName.indexOf('cl1') !== -1 || meterName.indexOf('cl2') !== -1 || meterName.indexOf('cl3') !== -1 || params.containerSelector === '#piano-article-gate') { s.eVar58 = data_layer.article.content_level; s.eVar80 = meterData.meterName + ',' + meterData.views + ',' + meterData.totalViews + ',' + meterData.viewsLeft + ',' + meterData.maxViews; s.eVar59 = templateName; s.events = "event5"; s.linkTrackVars="eVar58,eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,list3, events"; s.linkTrackEvents="event5"; } else { s.eVar80 = meterData.meterName + ',' + meterData.views + ',' + meterData.totalViews + ',' + meterData.viewsLeft + ',' + meterData.maxViews; s.eVar59 = templateName; s.linkTrackVars="eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,list3, events"; } s.tl(document, 'o', 'Metered Access Notice'); s.events = ''; } /** * Just track the template name in 78 for non-article-interrupts/gates */ function trackPianoSimplified(params, templateName) { trackPianoWithNewRelic(templateName); var s = window.s; if (!s || !s.pageName) { // console.log("ADB: Setting s from backup"); s = window.backupAdobe; window.s = s; } s.eVar78 = templateName; s.events = 'event90'; s.linkTrackEvents="event90"; s.linkTrackVars="eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,list3,eVar78, events"; s.tl(document, 'o', 'Piano Template'); } function raiseLaunchEvent(name) { var e = new Event('launch:piano:' + name); window.dispatchEvent(e); } function removePianoToast() { setTimeout(() => { document.getElementById('po-overlay-toast-left').remove() }, 30000) } /** * Posts the Piano conversion data to the student beans API if the site is either * Herald ScotlanD or The National. * * @param {Object} conversion */ async function subscriptionComplete(conversion) { if (data_layer.site.id !== '308' && data_layer.site.id !== '1106') { return; } await fetch('/ws/public/student-beans/', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify(conversion) }); } tp.push(["addHandler", "checkoutComplete", function(conversion) { subscriptionComplete(conversion); var s = window.s; s.events = s.apl(s.events, "event4", ",", 1); // Set the subscription counter event. s.events = s.apl(s.events, "purchase", ",", 1); // Set the purchase event. s.products = "Subscription : Metered Access;" + conversion.termId + ";1;"+conversion.chargeAmount; s.purchaseID = conversion.termConversionId; s.pageName = '(www) /subscribe/complete/'; // wipe out errors s.eVar31 = ''; s.tl(); $.cookie('resourceConverted', conversion.rid, {path: '/', domain: window.data_layer.site.cookie_domain}); $.cookie('pianoConverted', '1', {path: '/', domain: window.data_layer.site.cookie_domain}); raiseLaunchEvent('checkoutComplete'); }]); tp.push(["addHandler", "checkoutPaymentError", function(errorData) { var s = window.s; s.pageName = '(www) /subscribe/error/'; s.eVar31 = errorData.message; s.tl(); raiseLaunchEvent('checkoutPaymentError'); }]); tp.push(["addHandler", "checkoutError", function(errorData) { var s = window.s; s.pageName = '(www) /subscribe/error/'; s.eVar31 = errorData.message; s.tl(); raiseLaunchEvent('checkoutError'); }]); tp.push(["addHandler", "startCheckout", function () { var s = window.s; s.pageName = '(www) /subscribe/payment/'; // wipe out errors s.eVar31 = ''; s.tl(); raiseLaunchEvent('startCheckout'); }]); tp.push(["addHandler", "checkoutClose", function(conversion) { raiseLaunchEvent('checkoutClose'); // Did they abandon the cart? If so: was anything in their cart? if (typeof conversion.state === 'undefined' || conversion.state !== 'close') { return; } if (window.selectedOfferId === null || window.selectedTermId === null) { return; } $.post('/ws/piano/abandoned-cart/', {offer_id: window.selectedOfferId, term_id: window.selectedTermId}); }]); tp.push(["addHandler", "meterExpired", function(meterData){ var msg = "<div><b>meterName:</b> " + meterData.meterName + " | <b>views:</b> " + meterData.views + " | <b>totalViews:</b> " + meterData.totalViews + " | <b>viewsLeft:</b> " + meterData.viewsLeft + " | <b>maxViews:</b> " + meterData.maxViews + " | <b>callback:</b> " + meterData.callback + '</div>'; if ($.cookie('nq-show-piano-viewer') === 'yes') { $('#piano-meter-value').html(msg); $('#piano-meter-display').show(); $('#piano-meter-display-content').append(msg); } var cVal = window.location.href; trackLocation(true); console.log("Piano Meter Expired:", meterData.meterName); if (meterData.meterName === 'CL1 Meter') { console.log("Piano: Setting meter expired cookie"); $.cookie('isMeterExpired', 'yes', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1}); } raiseLaunchEvent('meterExpired'); }]); tp.push(["addHandler", "meterActive", function(meterData){ var msg = "<div><b>meterName:</b> " + meterData.meterName + " | <b>views:</b> " + meterData.views + " | <b>totalViews:</b> " + meterData.totalViews + " | <b>viewsLeft:</b> " + meterData.viewsLeft + " | <b>maxViews:</b> " + meterData.maxViews + " | <b>callback:</b> " + meterData.callback + '</div>'; if ($.cookie('nq-show-piano-viewer') === 'yes') { $('#piano-meter-value').html(msg); $('#piano-meter-display').show(); $('#piano-meter-display-content').append(msg); } console.log("Piano Meter running total:", meterData.meterName, meterData.totalViews, meterData.maxViews, meterData); if (meterData.meterName === 'CL1 Meter' && meterData.totalViews >= meterData.maxViews) { $.cookie('isMeterExpired', 'yes', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1}); } else { $.cookie('isMeterExpired', 'no', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1}); } }]); tp.push(["setCxenseSiteId", "1140851321802151844"]); if (extendedMetering.checkShowcaseReferrer()) { data_layer.user.requires_extended_metering = 'yes'; data_layer.piano.custom_variables.requires_extended_metering = 'yes'; (self.SWG = self.SWG || []).push(function(subscriptions) { extendedMetering.load(subscriptions, 'heraldscotland.com', 'OTNSMHA3PCB9', 'OTV9N723MUH1W', '', ''); runPiano(); }); } else { data_layer.user.requires_extended_metering = 'no'; data_layer.piano.custom_variables.requires_extended_metering = 'no'; runPiano(); } </script> <script type='text/javascript'> var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; var iasDataHandler, __iasPET = __iasPET || {}; __iasPET.queue = __iasPET.queue || []; __iasPET.pubId = '931298'; var pbjs = pbjs || {}; pbjs.que = pbjs.que || []; var carbonRealtime = JSON.parse(window.localStorage.getItem('ccRealtimeData')); var ozoneSettings = {}; var ozoneTargeting = { carbon_segment: carbonRealtime ? carbonRealtime.audiences.map(x => (x.id)) : [] }; function isMobile() { if (window.screen.width < 728) { return true; } return false; } var usePrebid = true; var whiteList = false; var adLight = false; var blackListAds = ['DFP_standard_mpu_2', 'DFP_on_scroll']; if (usePrebid) { // disable initial load so prebid can do its stuff // console.log('DFP: Disabling initial load'); googletag.cmd.push(function() { // console.log('DFP: Disabling initial load - read by DFP'); googletag.pubads().disableInitialLoad(); }); } </script> <script src="//d2zv5rkii46miq.cloudfront.net/0/latest/cmp_shim.js"></script> <script> /** * Adds key-values to page level of Google Publisher Tag * @example * addKeyValuesToGPT({"ap_a": ["1100"], "ap_x": ["134123"]}) * @param {Object} keyValues */ function addAsKeyValuesToGPT(keyValues) { if (!googletag.pubads) { googletag.cmd.push(function () { addAsKeyValuesToGPT(keyValues); }); return; } for (const key in keyValues) { if (Object.hasOwnProperty.call(keyValues, key)) { const value = keyValues[key]; googletag.pubads().setTargeting(key, value); } } } function onAudienceProjectDataAvailable(dataResponse) { console.log("AudienceProject data returned", dataResponse); // in keyValues there are full-reach key-values created, they needs to be sent to GAM and added to Prebid adform ad-units if (dataResponse.keyValues) { addAsKeyValuesToGPT(dataResponse.keyValues); } } function fetchAp() { AudienceProjectData.fetch('saknewsquest', { integrateWithCmp: true, waitForCmpConsent: true }, onAudienceProjectDataAvailable); } //Load the APS JavaScript Library !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"); //Initialize the Library apstag.init({ pubID: '3147', adServer: 'googletag', }); </script> <script> if (typeof gs_channels === 'undefined') { gs_channels = ""; } rpx_init = ({ qry : 'http://www.heraldscotland.com', section : 'politics', site : 'www.heraldscotland.com', context : 'Politics', weather : 'cloudy'.toLowerCase(), temp : '11-15', gs_channels : gs_channels, age : '0' , gender : 'u' , nqd : '' // intentionall blank }); </script> <script type='text/javascript' src='https://pagead2.googlesyndication.com/pagead/imgad?id=CICAgKDLqv_TbRABGAEoATIIgOw1LHg7xnFAt-_HogU'></script> <script> var bidTimeout = 1200; 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":[1,1],"alternate_mobile_size":"","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":["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]],"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]],"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":[[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],"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":""}]; var adUnits = []; $.each(unfilteredAdUnits, function (i, ad) { if (isMobile()) { f = {standard_mpu_1: 1, standard_mpu_2: 1, leaderboard_1: 1, leaderboard_2: 1} } else { f = {leaderboard_1: 1, leaderboard_2: 1} } if (f[ad.positionName] !== 1) { adUnits.push(ad); } }); window.unfilteredAdUnits = adUnits; //whenever you want header bids call this function function fetchHeaderBids() { // console.log("DFP: Fetching headerbids"); // new prebid implementation var apstagSlots = []; getPETRequest(); $.each(unfilteredAdUnits, function(i, unit) { if (unit.isVast) { return; } if(unit.use_amazon) { var awsSizes = []; var sizes = null; // work around poor data format if (unit.alternate_mobile_size && isMobile()) { sizes = unit.alternate_mobile_size; } else { sizes = unit.sizes; } if (typeof sizes[0] === 'object') { $.each(sizes, function (k, v) { awsSizes.push(v); }); } else { awsSizes = [sizes]; } var amazonSlot = { slotID: unit.domName, sizes: awsSizes, }; apstagSlots.push(amazonSlot); } }); // TODO 1 var bidders = ['a9', 'prebid', 'ias']; // create a requestManager to keep track of bidder state to determine when to send ad server // request and what apstagSlots to request from the ad server var requestManager = { adserverRequestSent: false, adSlots: [], }; //loop through bidder array and add the bidders to the request manager: bidders.forEach(function(bidder) { requestManager[bidder] = false; }) // a helper function that returns googletag objects corresponding to the slotIDs in the slot objects function _getGPTSlots(apstagSlots) { // get all of the slot IDs that were requested var slotIDs = apstagSlots.map(function(slot) { return slot.slotID; }); // return the slot objects corresponding to the slotIDs return googletag.pubads().getSlots().filter(function(slot) { // return true if the ID of the slot object is in the slotIDs array return slotIDs.indexOf(slot.getSlotElementId()) > -1; }); } function getPETRequest() { googletag.cmd.push(function() { // read the currently defined GPT ad slots for sending to the PET endpoint // defined all GPT ad slots before calling PET var gptSlots = googletag.pubads().getSlots(); var iasPETSlots = []; for (var i = 0; i < gptSlots.length; i++) { var sizes = gptSlots[i].getSizes().map(function(size) { if (size.getWidth && size.getHeight) return [size.getWidth(), size.getHeight()]; else return [1, 1]; }); iasPETSlots.push({ adSlotId: gptSlots[i].getSlotElementId(), //size: can either be a single size (for example, [728, 90]) // or an array of sizes (for example, [[728, 90], [970, 90]]) size: sizes, adUnitPath: gptSlots[i].getAdUnitPath() }); } // wait for IAS to return data var iasDataHandler = function(adSlotData) { headerBidderBack('ias'); }; // make the request to PET. if your page makes multiple ad requests to DFP // (for example, lazily loaded ads, infinite scrolling pages, etc.), make // a request to PET before every request to DFP __iasPET.queue.push({ adSlots: iasPETSlots, dataHandler: iasDataHandler }); }); } // return true if all bidders have returned function allBiddersBack() { var allBiddersBack = bidders // get the booleans from the object .map(function(bidder) { return requestManager[bidder]; }) // get rid of false values - indicates that the bidder has responded .filter(Boolean) // if length is equal to bidders, all bidders are back .length === bidders.length; return allBiddersBack; } // handler for header bidder responses function headerBidderBack(bidder) { // console.log("DFP: headerBidderBack called with", bidder); if (typeof bidder === 'object') { requestManager.adSlots = bidder; bidder = 'prebid'; } // return early if request to adserver is already sent if (requestManager.adserverRequestSent === true) { return; } // flip bidder back flag if (bidder === 'a9') { requestManager.a9 = true; } else if (bidder === 'prebid') { requestManager.prebid = true; } else if (bidder === 'ias') { requestManager.ias = true; } // if all bidders are back, send the request to the ad server if (allBiddersBack()) { sendAdserverRequest(); } } // actually get ads from DFP function sendAdserverRequest() { // console.log("DFP: All bidders back"); // return early if request already sent if (requestManager.adserverRequestSent === true) { return; } if (typeof window.prebidReady === 'undefined') { window.prebidReady = performance.now(); } if (window.googleReady) { // flip the boolean that keeps track of whether the adserver request was sent requestManager.adserverRequestSent = true; // flip pbjs boolean to signal to pbjs the ad server has already been called pbjs.adserverCalled = true; //flip boolean for adserver request to avoid duplicate requests requestManager.sendAdserverRequest = true; // make ad request to DFP googletag.cmd.push(function() { window.executionSet = performance.now(); apstag.setDisplayBids(); __iasPET.setTargetingForGPT(); // console.log("DFP: Refresh called, setting adslots to ", requestManager.adSlots); if (requestManager.adSlots.length > 0){ googletag.pubads().refresh(requestManager.adSlots); } else { googletag.pubads().refresh(); } setPerformanceCookie(); }); } else { window.setTimeout(function() { sendAdserverRequest(true); }, 200); } } function requestBids(apstagSlots, bidTimeout) { // fetch apstag bids, set bid targting, then call headerBidderBack // to get the ads for the first time apstag.fetchBids({ slots: apstagSlots, timeout: (bidTimeout - 200) }, function(bids) { headerBidderBack('a9'); }); var edktAudiences; // Here we fetch audiences which the user has been placed in. try { edktAudiences = JSON.parse(localStorage.getItem('edkt_matched_audience_ids') || '[]') .slice(0, 100) .map(String); } catch (e) { edktAudiences = []; } // request bids from prebid pbjs.que.push(function() { // console.log("DFP: PBJS request bids called"); pbjs.rp.requestBids({ callback: headerBidderBack, data: { airgrid: { perid: edktAudiences }, ozoneSettings, ozoneTargeting }, }); }); } //requestBids requestBids(apstagSlots, bidTimeout) // set timeout to send request to call sendAdserverRequest() after timeout // if all bidders haven't returned before then window.setTimeout(function() { sendAdserverRequest(); }, bidTimeout); }; function setPerformanceCookie() { var start = window.startExec; var prebidReady = window.prebidReady - start; var domComplete = window.domComplete - start; var googleComplete = window.googleComplete - start; var finished = window.executionSet - start; /* var cVal = Math.round(prebidReady) + ':' + Math.round(domComplete) + ':' + Math.round(googleComplete) + ':' + Math.round(finished); */ var cVal = Math.round(finished); var t = new Date(); t.setMilliseconds(t.getMilliseconds() + 600000); $.cookie('adtiming', cVal, {path: '/', domain: '.heraldscotland.com', expires: t}); } </script> <link rel="apple-touch-icon" href="/resources/images/5752178/"> <link rel="apple-touch-icon" sizes="72x72" href="/resources/images/5752177/"> <link rel="apple-touch-icon" sizes="114x114" href="/resources/images/5752179/"> <!-- Add iconify --> <script src="https://code.iconify.design/1/1.0.7/iconify.min.js"></script> </head> <body class="sticky-footer " data-cache-buster="uUAjmAdC" data-template="" data-template-colour="Blue" data-namespace="standard"> <!-- standard - AfterBodyTagInclude.html --> <!-- ##+ +## ##: `#####. ####### ### ### ###### `#####. ####### ### ,## +##### +## ###' ## ####### ######## ### ### ###### ####### ######## ### ,## ######: .## #### ## ### ### ### ### ###### ##, ### ### ### ### ### ,## ##` ##,#+##:## ### ### ####### ###### #####+ ### ### ####### ### ,## +##### ####`####+ ### ### ###### ####### #####+ ### ### ###### ### ,## #### #### .###. '## ##' ### ### ### ,##: ##, '## ##' ### ### ### ### '## +## :### ### ####### ### `##+ ### ### ##, ####### ### `##+ `####### ######+ ##: ### ##### ### ### ### ,### ##, ##### ### ### ##### ####+ Developers, designers, testers - interested in working for us? Contact this guy....https://uk.linkedin.com/in/hillsimon --> <div style="height: 0px"><div id="DFP_out_of_page"></div></div> <div id="paywallWindowOverlay"></div> <div id="takeover"> <div id="martini-config" class="layout"> <div id="header-content"> <!-- standard - header-1.html --> <header id="site-header" class="site-header site-header--1" class="use-social-nav"> <!-- standard - HeaderTopNavLinks.html --> <div class="header-topnav"> <div class="container-inner-width"> <div class="header-topnav-links"> <ul class="list-style-none"> <li><a class="mar-nav--promo-link" href="/newsletters/">Newsletters</a></li> <li><a class="mar-nav--promo-link" href="https://www.newsquestrewards.co.uk/" target="blank">Reader Rewards</a></li> <li><a class="mar-nav--promo-link" href="/jobs/">Jobs</a></li> <li><a class="mar-nav--promo-link" href="/homes/">Homes</a></li> <li><a class="mar-nav--promo-link" href="/cars/">Motoring</a></li> <li><a class="mar-nav--promo-link" href="/advertising/">Book an ad</a></li> <li><a class="mar-nav--promo-link" href="/graduations/">Graduations</a></li> <li><a class="mar-nav--promo-link" href="/contact/">Contact us</a></li> </ul> </div> <ul id="links-nav" class="header-topnav--links-nav list-style-none"> <li class="links-nav-label"><span class="links-nav-label-text">More</span> <ul class="list-style-none"> <li class="dropdown-icon-closed"> <span class="iconify" data-icon="akar-icons:chevron-down"></span> </li> <li class="dropdown-icon-open" style="display: none;"> <span class="iconify" data-icon="akar-icons:chevron-up"></span> </li> <li class="links-nav-container"> <ul class="list-style-none"> <li><a class="mar-nav--promo-link" href="/newsletters/">Newsletters</a></li> <li><a class="mar-nav--promo-link" href="https://www.newsquestrewards.co.uk/" target="blank">Reader Rewards</a></li> <li><a class="mar-nav--promo-link" href="/jobs/">Jobs</a></li> <li><a class="mar-nav--promo-link" href="/homes/">Homes</a></li> <li><a class="mar-nav--promo-link" href="/cars/">Motoring</a></li> <li><a class="mar-nav--promo-link" href="/advertising/">Book an ad</a></li> <li><a class="mar-nav--promo-link" href="/graduations/">Graduations</a></li> <li><a class="mar-nav--promo-link" href="/contact/">Contact us</a></li> </ul> </li> </ul> </li> </ul> </div> </div> <div class="site-brand container-inner-width"> <div class="site-brand__container"> <a href="/"> <img src="/resources/images/small_site_logo/" alt="The Herald" class="site-brand__brand-image"/> </a> </div> <!-- standard - SimpleHeaderTopNavigation.html --> <div class="simple-header-top-navigation"> <div class="simple-header-top-navigation__links"> <div class="simple-header-top-navigation__links--primary-links header-primary-links"> <a href="/subscribe/"> <button class="mar-btn--promo-primary"> Subscribe </button> </a> <ul class="list-style-none top-nav-overflow"> <li><a href="/pagesuite/"><button class="mar-btn--promo-secondary">Digital Edition</button></a></li> <li><a href="/puzzles/"><button class="mar-btn--promo-primary">Puzzles</button></a></li> </ul> </div> <div class="simple-header-top-navigation__links--classifieds"> </div> </div> <div class="simple-header-top-navigation__links--account"> <a href="/my/account/log-in/" class="simple-header-top-navigation__user-login piano-id__login"> <button id="headerUserAccountButton"> <!-- standard - IconUser.html --> <svg xmlns="http://www.w3.org/2000/svg " width="14" height="16" viewBox="0 0 10 14" fill="none"> <circle cx="5" cy="3.85718" r="3" fill="black"/> <ellipse cx="5" cy="10.2857" rx="5" ry="2.85714" fill="black"/> </svg> </button> </a> </div> <button aria-expanded="false" aria-label="Open the menu" class="simple-header-top-navigation__mega-menu-btn primary-nav__menu--more-btn"> <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> </button> </div> </div> <!-- standard - MegaMenu.html --> <div id="mega-menu" class="mega-menu" style="display: none;"> <div class="mega-menu__container mega-menu__wrapper"> <div class="mega-menu__cancel-button"> <i aria-expanded="true" aria-hidden="true" aria-label="Close the menu" class="mega-menu__cancel-button--icon"> <span class="iconify" data-icon="eva:close-fill" data-inline="false"></span> <div>Close</div> </i> </div> <div class="mega-menu-subscribe-banner"> <span>Stay ahead with a digital subscription</span> <a href="/subscribe/">Subscribe</a> </div> <div class="mega-menu__features expanded-sub-nav"> <div class="mega-menu__features--links"> <h4 class="prefix mega-menu__features--prefix link-item">Featured newsletters</h4> <a href="https://www.heraldscotland.com/newsletters/politics/1897/" target="_blank" class="col link-item">Unspun: Scottish Politics</a> <a href="/newsletters/news/1698/" class="col link-item">Inside the NHS</a> <a href="/newsletters/2651/" class="col link-item">Lessons to Learn</a> <a href="/newsletters/2684/" class="col link-item">Herald Arts</a> </div> <hr class="divider none"> </div> <div class="mega-menu__search"> <form method="get" action="/search/"> <h4 class="mega-menu__search--title">Search</h4> <div class="mega-menu__search--bar"> <input class="searchbar-input" type="text" name="search" placeholder="Search The Herald"> <button class="searchbar-btn mira-search-button" type="submit"><span class="iconify" data-icon="fe:search" data-inline="false"></span></button> </div> </form> </div> <div class="mega-menu__main-list link-list"> <div class="mega-menu__main-list--list-item"> <div> <div> <a href="/news/"> <h3><span class="mega-menu__main-list--parent-link">News</span></h3> </a> </div> <div class="mega-menu__main-list--child-links"> <div class="child-item"> <a href="/news/homenews/">Scottish News</a> </div> <div class="child-item"> <a href="/news/health/">Health</a> </div> <div class="child-item"> <a href="/news/education/">Education HQ</a> </div> <div class="child-item"> <a href="/news/transport/">Transport</a> </div> <div class="child-item"> <a href="/news/investigations/">Investigations</a> </div> <div class="child-item"> <a href="/news/national-news/">UK News</a> </div> <div class="child-item"> <a href="/news/world_news/">World News</a> </div> <div class="child-item"> <a href="/news/subscriber/">Subscriber</a> </div> </div> </div> <div class="divider"></div> </div> <div class="mega-menu__main-list--list-item"> <div> <div> <a href="/politics/"> <h3><span class="mega-menu__main-list--parent-link">Politics</span></h3> </a> </div> <div class="mega-menu__main-list--child-links"> <div class="child-item"> <a href="/politics/holyrood/">Holyrood</a> </div> <div class="child-item"> <a href="/politics/westminster/">Westminster</a> </div> <div class="child-item"> <a href="/politics/viewpoint/">Political Opinion</a> </div> <div class="child-item"> <a href="/politics/analysis/">Analysis</a> </div> <div class="child-item"> <a href="/politics/explainer/">Explainer</a> </div> </div> </div> <div class="divider"></div> </div> <div class="mega-menu__main-list--list-item"> <div> <div> <a href="/sport/"> <h3><span class="mega-menu__main-list--parent-link">Sport</span></h3> </a> </div> <div class="mega-menu__main-list--child-links"> <div class="child-item"> <a href="/sport/football/">Football</a> </div> <div class="child-item"> <a href="/sport/opinion/">Comment</a> </div> <div class="child-item"> <a href="/sport/rugby/">Rugby</a> </div> <div class="child-item"> <a href="/sport/tennis/">Tennis</a> </div> <div class="child-item"> <a href="/sport/golf/">Golf</a> </div> <div class="child-item"> <a href="/sport/other_sports/">Other Sports</a> </div> <div class="child-item"> <a href="/sport/best-of/">Best Of</a> </div> <div class="child-item"> <a href="/sport/uk-sport/">UK Sport</a> </div> </div> </div> <div class="divider"></div> </div> <div class="mega-menu__main-list--list-item"> <div> <div> <a href="/opinion/"> <h3><span class="mega-menu__main-list--parent-link">Voices</span></h3> </a> </div> <div class="mega-menu__main-list--child-links"> <div class="child-item"> <a href="/opinion/columnists/">Columnists</a> </div> <div class="child-item"> <a href="/opinion/the-diary/">The Diary</a> </div> <div class="child-item"> <a href="/opinion/herald_view/">Herald View</a> </div> <div class="child-item"> <a href="/opinion/letters/">Letters</a> </div> <div class="child-item"> <a href="/opinion/podcasts/">Podcasts</a> </div> <div class="child-item"> <a href="/opinion/obituaries/">Obituaries</a> </div> </div> </div> <div class="divider"></div> </div> <div class="mega-menu__main-list--list-item"> <div> <div> <a href="/business_hq/"> <h3><span class="mega-menu__main-list--parent-link">Business HQ</span></h3> </a> </div> <div class="mega-menu__main-list--child-links"> <div class="child-item"> <a href="/business_hq/company_news/">Companies</a> </div> <div class="child-item"> <a href="/business_hq/business/">Business</a> </div> <div class="child-item"> <a href="/business_hq/markets_economy/">Markets</a> </div> <div class="child-item"> <a href="/business_hq/people/">People</a> </div> <div class="child-item"> <a href="/business_hq/stem/">STEM</a> </div> <div class="child-item"> <a href="/business_hq/entrepreneur/">Entrepreneur</a> </div> <div class="child-item"> <a href="/business_hq/supplements/">Supplements</a> </div> </div> </div> <div class="divider"></div> </div> <div class="mega-menu__main-list--list-item"> <div> <div> <a href="/life_style/"> <h3><span class="mega-menu__main-list--parent-link">Features</span></h3> </a> </div> <div class="mega-menu__main-list--child-links"> <div class="child-item"> <a href="/life_style/arts_ents/">Arts & Ents</a> </div> <div class="child-item"> <a href="/life_style/food_and_drink/">Food & Drink</a> </div> <div class="child-item"> <a href="/life_style/travel/">Travel</a> </div> <div class="child-item"> <a href="/life_style/bestofscotland/">Best of Scotland</a> </div> <div class="child-item"> <a href="/life_style/property-market/">Property</a> </div> <div class="child-item"> <a href="/life_style/gardening/">Gardening</a> </div> <div class="child-item"> <a href="/life_style/big-reads/">Big Reads</a> </div> </div> </div> <div class="divider"></div> </div> <div class="mega-menu__main-list--list-item"> <div> <div> <a href="/campaigns/"> <h3><span class="mega-menu__main-list--parent-link">Campaigns</span></h3> </a> </div> <div class="mega-menu__main-list--child-links"> <div class="child-item"> <a href="/campaigns/i-remember/">I Remember</a> </div> <div class="child-item"> <a href="/campaigns/think-dementia/">Think Dementia</a> </div> <div class="child-item"> <a href="/campaigns/memorial-garden/">Memorial Garden</a> </div> <div class="child-item"> <a href="/campaigns/fair-deal-for-glasgow/">Fair Deal for Glasgow</a> </div> </div> </div> <div class="divider"></div> </div> <div class="mega-menu__main-list--list-item"> <div> <div> <a href="/journalists/"> <h3><span class="mega-menu__main-list--parent-link">Our Writers</span></h3> </a> </div> <div class="mega-menu__main-list--child-links"> <div class="child-item"> <a href="/journalists/journalists/">All Journalists</a> </div> </div> </div> <div class="divider"></div> </div> <div class="mega-menu__main-list--list-item"> <div> <div> <a href="/memorials/"> <h3><span class="mega-menu__main-list--parent-link">Announcements</span></h3> </a> </div> <div class="mega-menu__main-list--child-links"> <div class="child-item"> <a href="/memorials/acknowledgements/">Acknowledgements</a> </div> <div class="child-item"> <a href="/memorials/death-notices/">Death Notices</a> </div> <div class="child-item"> <a href="/memorials/in-memoriam/">In Memoriam</a> </div> <div class="child-item"> <a href="https://www.heraldscotland.com/announcements/public_notices/">Public notices</a> </div> <div class="child-item"> <a href="https://www.heraldscotland.com/announcements/">Other announcements</a> </div> <div class="child-item"> <a href="/memorials/bereavement-guide/">Bereavement Guide</a> </div> </div> </div> <div class="divider"></div> </div> <div class="mega-menu__main-list--list-item"> <div> <div> <a href="/events/"> <h3><span class="mega-menu__main-list--parent-link">Events</span></h3> </a> </div> </div> <div class="divider"></div> </div> <div class="mega-menu__main-list--list-item"> <div> <div> <a href="/shop/"> <h3><span class="mega-menu__main-list--parent-link">Shop</span></h3> </a> </div> </div> <div class="divider"></div> </div> </div> </div> <div class="mega-menu__sticky"> <ul class="list-style-none mega-menu__sticky--list"> <div class="mega-menu__sticky--primary-links"> <li> <a href="/subscribe/"> <button class="mar-btn--promo-primary"> Subscribe </button> </a></li> <li><a href="/pagesuite/"><button class="mar-btn--promo-secondary">Digital Edition</button></a></li> <li><a href="/puzzles/"><button class="mar-btn--promo-primary">Puzzles</button></a></li> </div> <li><a class="mar-nav--promo-link" href="/newsletters/">Newsletters</a></li> <li><a class="mar-nav--promo-link" href="https://www.newsquestrewards.co.uk/" target="blank">Reader Rewards</a></li> <li><a class="mar-nav--promo-link" href="/jobs/">Jobs</a></li> <li><a class="mar-nav--promo-link" href="/homes/">Homes</a></li> <li><a class="mar-nav--promo-link" href="/cars/">Motoring</a></li> <li><a class="mar-nav--promo-link" href="/advertising/">Book an ad</a></li> <li><a class="mar-nav--promo-link" href="/graduations/">Graduations</a></li> <li><a class="mar-nav--promo-link" href="/contact/">Contact us</a></li> </ul> </div> </div> <!-- standard - SimplePrimaryNavigation.html --> <nav id="primary-nav" class="primary-nav"> <div class="primary-nav__container container-inner-width"> <span class="primary-nav__left"> <nav class="primary-nav__menu" role="list"> <div class="primary-nav__menu-container"> <div class="primary-nav__menu--item"> <a class="primary-nav__menu--link" href="/news/">News</a> </div> <div class="primary-nav__menu--item primary-nav__menu--item--active"> <a class="primary-nav__menu--link" href="/politics/">Politics</a> </div> <div class="primary-nav__menu--item"> <a class="primary-nav__menu--link" href="/sport/">Sport</a> </div> <div class="primary-nav__menu--item"> <a class="primary-nav__menu--link" href="/opinion/">Voices</a> </div> <div class="primary-nav__menu--item"> <a class="primary-nav__menu--link" href="/business_hq/">Business HQ</a> </div> <div class="primary-nav__menu--item"> <a class="primary-nav__menu--link" href="/life_style/">Features</a> </div> <div class="primary-nav__menu--item"> <a class="primary-nav__menu--link" href="/campaigns/">Campaigns</a> </div> <div class="primary-nav__menu--item"> <a class="primary-nav__menu--link" href="/journalists/">Our Writers</a> </div> <div class="primary-nav__menu--item"> <a class="primary-nav__menu--link" href="/memorials/">Announcements</a> </div> <div class="primary-nav__menu--item"> <a class="primary-nav__menu--link" href="/events/">Events</a> </div> <div class="primary-nav__menu--item"> <a class="primary-nav__menu--link" href="/shop/">Shop</a> </div> </div> </nav> </span> <span class="primary-nav__right"> <div class="primary-nav__menu--more-btn"> <button aria-expanded="false" aria-label="Open the menu" class="more-link more-burger-icon"> <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> </button> </div> <div class="primary-nav__right--search"> <a class="primary-nav__container--search-icon search-icon" href="#"><span class="iconify" data-icon="ion:search-circle-sharp" data-inline="false"></span></a> </div> </span> </div> </nav> <!-- standard - HeaderSubNavigation.html --> <div class="sub-nav"> <span class="sub-nav__breadcrumb sub-nav__parent-link"> <a href="/politics/">Politics<span class="iconify" data-icon="akar-icons:chevron-right" data-inline="false"></span></a> </span> <a href="/politics/viewpoint/" class="sub-nav__breadcrumb">Political Opinion</a> <a href="/politics/holyrood/">Holyrood</a> <a href="/politics/westminster/">Westminster</a> <a href="/politics/analysis/">Analysis</a> <a href="/politics/explainer/">Explainer</a> </div> <!-- standard - StickyArticleNav.html --> <div id="header-sticky-nav" class="header-sticky-nav" data-uses-js="sticky-nav"> <div class="header-sticky-nav__wrapper"> <div class="header-sticky-nav__left"> <a class="header-sticky-nav__monogram" href="/"> <img src="/resources/images/small_site_logo/" alt="The Herald" class="site-brand__brand-image"/> </a> </div> <h2 class="header-sticky-nav__article-headline" data-truncate="2">Kevin McKenna: As our politicians back 'assisted dying', beware the Codger Catchers</h2> <div class="header-sticky-nav__right"> <div class="article-sticky-social"> <!-- standard - SocialBar.html --> <div class="social-bar social-bar__share-tray"> <button class="social-bar__button social-bar__link social-bar__button--with-icon bg-fb" data-uses-js="custom-sharing" data-share-url="https://www.facebook.com/sharer/sharer.php?u=" data-share-path="https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/?ref=fbshr"> <span class="iconify" data-icon="brandico:facebook"></span> </button> <button class="social-bar__button social-bar__link button-with-icon social-bar__button--with-icon bg-twitter" data-uses-js="custom-sharing" data-share-url="https://twitter.com/share?url=" data-share-path="https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/?ref=twtrec" data-share-headline="Imagine a future where the Codger Catchers stalk the streets - it's easy if you try"> <span class="iconify" data-icon="fa6-brands:x-twitter"></span> </button> <a class="social-bar__whatsapp-link" href="whatsapp://send?text=Imagine%20a%20future%20where%20the%20Codger%20Catchers%20stalk%20the%20streets%20-%20it%27s%20easy%20if%20you%20try%0A%0Ahttps://www.heraldscotland.com%2Fpolitics%2Fviewpoint%2F24766444.politicians-back-assisted-dying-beware-codger-catchers%2F%3fref%3Dwa"> <button class="social-bar__button social-bar__link social-bar__button--with-icon bg-whatsapp"> <span class="iconify" data-icon="akar-icons:whatsapp-fill"></span> </button> </a> <button class="social-bar__button social-bar__link social-bar__button--with-icon bg-linkedin" data-uses-js="custom-sharing" data-share-url="https://www.linkedin.com/shareArticle?mini=true&url=" data-share-path="https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/?ref=li"> <span class="iconify" data-icon="entypo-social:linkedin"></span> </button> <button class="button social-bar__button social-bar__tray-link social-bar__button--with-icon bg-tray"> <span class="iconify" data-icon="mdi:tray-arrow-up"></span> </button> </div> </div> </div> </div> </div> <div id="nextup-config" data-position="" data-mobile-position="" data-module-name="" data-module-path="/politics/viewpoint/" data-track-events="false"></div> </header> </div> <div id="redesign-content"> <div id="module-content" class="content"> <div class="container mar-block-ad mar-block-ad--piano-promo" id="piano-container-top"></div> <div class="container mar-block-ad mar-block-ad--piano-promo" id="po-inline-banner-top-hero-content"></div> <div id="BlockArticleContainer" class="block-article-display__wrapper block-article-display--standard "> <!-- standard - BlockArticleDisplay.html --> <div class="block block-article-display"> <div class="block-article-display__article-container "> <article id="article" data-id="24766444"> <!-- standard - BlockArticleVariantStandard.html --> <div class="mar-article"> <!-- standard - Label.html --> <h1 class="mar-article__headline mar-mb-0">As our politicians back 'assisted dying', beware the Codger Catchers</h1> <div class="mar-article__info-wrapper mar-mt-1"> <div class="mar-article__timestamp"> <time datetime="2024-12-03 06:30:00" data-format="article-display" data-show-date="always" data-show-time="today-only" data-timestamp="1733207400" itemprop="datePublished" class="author-details__timestamp formatTimeStampEs6" full-date="02.12.2024"> </time> </div> <div class="mar-article__article-tags mar-mb-2 "> <!-- standard - ArticleTags.html --> <div class="article-tags"><a href="/topics/assisted-dying/">Assisted dying</a></div> <!-- standard - ArticleTags.html --> <div class="article-tags"><a href="/topics/family/">Family</a></div> <!-- standard - ArticleTags.html --> <div class="article-tags"><a href="/topics/national-government/">National government</a></div> <!-- standard - ArticleTags.html --> <div class="article-tags"><a href="/topics/politics/">Politics</a></div> </div> <!-- standard - SkimLinksDisclaimer.html --> </div> </div> <div class="article-row-container"> <div class="article-row-container--left"> <div class="article-row-container__spacing"> <!-- standard - BlockArticleContent.html --> <div id="BlockArticleContent" class="block-article-content"> <div class="block-article-content__info-container"> <div class="block-article-content__author "> <!-- standard - AuthorDetails.html --> <div class="author-details"> <a href="/author/profile/75685.Kevin_McKenna/" class="author-details__img"> <img src="/resources/images/16086061?type=thumb"> </a> <div class="author-details__name-container author-no-job "> <a href="/author/profile/75685.Kevin_McKenna/" class="author-name mar-mr-1 no-underline"> By Kevin McKenna </a> <a href="http://www.twitter.com/@kmckenna63" target="_blank" class="twitter-button no-underline"> <span class="iconify" data-icon="fa6-brands:x-twitter"></span> @kmckenna63 </a> </div> </div> </div> <div class="article-sponsor-information__container hidden "> <!-- standard - ArticleSponsorInformation.html --> </div> <div class="block-article-content__socialbar flex-end "> <!-- standard - SocialBar.html --> <div class="social-bar "> <div class="social-bar__text">Share</div> <button class="social-bar__button social-bar__link social-bar__button--with-icon bg-fb" data-uses-js="custom-sharing" data-share-url="https://www.facebook.com/sharer/sharer.php?u=" data-share-path="https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/?ref=fbshr"> <span class="iconify" data-icon="brandico:facebook"></span> </button> <button class="social-bar__button social-bar__link button-with-icon social-bar__button--with-icon bg-twitter" data-uses-js="custom-sharing" data-share-url="https://twitter.com/share?url=" data-share-path="https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/?ref=twtrec" data-share-headline="Imagine a future where the Codger Catchers stalk the streets - it's easy if you try"> <span class="iconify" data-icon="fa6-brands:x-twitter"></span> </button> <a class="social-bar__whatsapp-link" href="whatsapp://send?text=Imagine%20a%20future%20where%20the%20Codger%20Catchers%20stalk%20the%20streets%20-%20it%27s%20easy%20if%20you%20try%0A%0Ahttps://www.heraldscotland.com%2Fpolitics%2Fviewpoint%2F24766444.politicians-back-assisted-dying-beware-codger-catchers%2F%3fref%3Dwa"> <button class="social-bar__button social-bar__link social-bar__button--with-icon bg-whatsapp"> <span class="iconify" data-icon="akar-icons:whatsapp-fill"></span> </button> </a> <button class="social-bar__button social-bar__link social-bar__button--with-icon bg-linkedin" data-uses-js="custom-sharing" data-share-url="https://www.linkedin.com/shareArticle?mini=true&url=" data-share-path="https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/?ref=li"> <span class="iconify" data-icon="entypo-social:linkedin"></span> </button> <a class="article-comments__text--inline" href="#comments-anchor" data-uses-js="comments-open" data-comments-count="10"></a> </div> </div> </div> <div class="article-hero light-background"> <!-- standard - ArticleImage.html --> <div id="43fde2db-c8a1-4b49-b65d-5d98efac3e5c" > </div> <div class="mar-article-image"> <img alt="Anti-assisted dying protesters say the Bill is the thin edge of the wedge <i>(Image: free)</i>" srcset="/resources/images/18833814.jpg?type=mds-article-575 575w, /resources/images/18833814.jpg?type=mds-article-962 962w, /resources/images/18833814.jpg?type=mds-article-642 642w, /resources/images/18833814.jpg?type=mds-article-620 620w" sizes="(min-width: 768px) calc(100vw - 30px), (min-width: 992px) 642px, (min-width: 1401px) 620px, 100vw" style="aspect-ratio: 1200 / 800" /> <div class="mar-article-image__caption"> <span>Anti-assisted dying protesters say the Bill is the thin edge of the wedge <i>(Image: free)</i></span> </div> </div> </div> <div></div> <!----> <div class="block-article-content__spacing"> <div class="article-body"> <div> <div id="po-inline-article-above"></div> <div id="po-inline-articlewall-fullarticle-closable"></div> <div id="po-inline-articlegate-fullarticle"><div id="subscription-above-article"></div><div id="subscription-replace-entire-article"><p class="article-first-paragraph"> <em>As plans for 'assisted dying' advance through Holyrood and Westminster, columnist Kevin McKenna looks into his crystal ball - and doesn't like what he sees</em> </p> <p> No one would have believed in the first half of the 21st century that the older generation was being watched keenly and closely by far lesser intelligences. </p> <div id="po-inline-articlewall-partialarticle-closable"></div> <div id="po-inline-articlegate-partialarticle"> <div id="po-overlay-articlegate-full-width-scroll-below"></div> <div id="subscription-content"> <p> A few years had elapsed since the introduction of the Assisted Dying legislation and, initially at least, all the previous suspicions about it had seemed unfounded. Only a few poor, chronically ill souls had taken the decision to end their lives and then only after the requisite checks and balances had been conducted. </p> <p> It was only after the 2029 financial crash that the problems began. This was when the global <a href="/business_hq/markets_economy/" class="section-link">markets</a> had staked everything on crypto-currency futures only to find they’d all been hoodwinked by a giant Ponzi scam that made Sam Bankman-Fried’s 2022 FDX grift look like a case of double-dipping at the Bingo. </p> <p> As affluent western democracies began to make tough cost-cutting decisions, healthcare provision came under the gimlet-eyed scrutiny of the civil servants and policy-makers. Across the UK, mandatory annual <a href="/news/health/" class="section-link">health</a> MOTs for people over the age of 40 were introduced. Those with ailments found to have been caused by cigarettes, alcohol, pot noodles and Monster Munch were given six months to sort themselves out or be given lifetime bans from receiving treatment for future maladies. </p> <p> <span class="inline-image-caption">Actress Liz Carr (left) takes part in a demonstration at Old Palace Yard in Westminster, London, to oppose the Terminally Ill Adults (End of Life) Bill. A proposed law to legalise assisted dying in England and Wales has cleared its first parliamentary hurdle after MPs voted 330 to 275, majority 55, to approve it at second reading <em>(Image: free)</em></span> By a process of three-strikes-and-you’re-out, the persistently no’-weel began to be rounded up and held in special ‘health-farms’. Very few would ever see the light of day again with startled relatives often being told to appear at burials and cremations for the presumably departed. </p> <div id="piano-container-inside-article" style="display: none; margin-bottom: 20px; clear: both;"> <div id="po-inline-article-inside" style="display: none; margin-bottom: 20px; clear: both;"></div> </div> <p> It wasn’t long before the gaze of the state began to fall on the elderly as well as the infirm. Special tribunals were established, comprising hand-picked civic types, to apply the new National Quality of Life Index. Those exhibiting signs of decrepitude, infirmity or who looked a wee bit down were targeted and made to describe how content they were with their lot. </p> <p> Were they not a wee bit depressed about having to wheech about in a wheelchair? Surely it must be embarrassing to get assistance at your toilette? You haven’t had concupiscence recently: how does that make you feel? You’re looking a bit pre-occupied this morning: is life getting you down? </p> <p> If an individual’s score fell below 50 on the happiness assessment test they were advised to accept a quick end to their misery. Special savings schemes were introduced in Scotland’s most disadvantaged communities. These operated like the old money-off-your-next-shop stamps you used to get in the Co-op. If you collected enough of them you got to stay for up to a month in a five-star resort before you received your jag. Crucially, there were attractive dividend packages to friends and families for helping you make the right decision. </p> <p> An expensive advertisement campaign was launched with slogans such as: Don’t be a Burden, Be a Benefit; Tomorrow Doesn’t Belong to You and Make <a href="/news/homenews/" class="section-link">Scotland</a> Fit Again. </p> <hr> <p> <strong>Read more</strong> </p> <ul> <li> <a href="https://www.heraldscotland.com/politics/viewpoint/24763685.fraser-nelson-britains-benefits-scandal-dispatches/">Fraser Nelson on the 'Glasgow effect' of ingrained poverty</a> </li> <li> <p> <a href="https://www.heraldscotland.com/politics/viewpoint/24762039.snp-impossible-task-easyjet-jet2-fly-high/">Does SNP have an impossible Scottish Budget task? easyJet and Jet2 fly</a> </p> </li> <li> <p> <a href="https://www.heraldscotland.com/politics/viewpoint/24763397.snp-advancing-idea-man-can-become-pregnant-embarrasses-us/">SNP advancing idea that a man can become pregnant embarrasses us all</a> </p> </li> <li> <p> <a href="https://www.heraldscotland.com/politics/viewpoint/24761644.farage-using-trump-stab-britain-back-sniffs-power/">Farage is using Trump to stab Britain in the back as he sniffs power</a> </p> </li> </ul> <hr> <p> Online misinformation, chiefly disseminated by BlueSky, fed a daily supply of horror stories about the NHS collapsing under the strain of people who had clearly lived beyond their usefulness. All government departments had been forced to adopt the blogging site as the designated social media platform. It was far easier to cancel rogue opinions on BlueSky than it had been on Twitter/X. </p> <p> Rudimentary squads of climate activists – recognisable by their black, quasi-military uniforms - began to roam the streets picking out those looking a bit too old or suspiciously peely as well as wally. In one snatch of found footage one gang had filmed themselves surrounding an elderly chap emerging unsteadily from his local tavern and ordering him to “drop and give us 20”. When he’d failed to make it to his third press-up they’d unzipped their jackets and thrown packets of herbal food supplements at him. </p> <p> The old DWP was replaced by Compelled Usefulness Navigation Tribunals at which the jaded and the forlorn were forced to appear following referrals by neighbourhood 0800 anonymous tip-off lines. There they were assessed on their future wage-earning prospects and the projected costs of their future healthcare. If they were deemed to be Beyond Usefulness it was straight down to the ‘Health Farms’ for them. </p> <p> Palliative medicine products were soon taxed beyond the reach of most hospices which were forced to shut down. A brisk black market in these products soon emerged with treatments being delivered in pizza boxes along with the cocaine orders in pubs up and down the land. </p> <p> A state-run task force attached to Police Scotland was given special powers to apprehend elderly types suspected of having avoided their summons to appear at the Quality of Life tribunals. They came to be known as the Codger Catchers and developed a fierce reputation for their methods as well as their 100% success rate. </p> <p> <img srcset="https://www.heraldscotland.com/resources/images/18824409/?type=mds-article-575 575w, https://www.heraldscotland.com/resources/images/18824409/?type=mds-article-962 962w, https://www.heraldscotland.com/resources/images/18824409/?type=mds-article-642 1400w, https://www.heraldscotland.com/resources/images/18824409/?type=mds-article-620 1401w" sizes="(max-width: 575px) 575px, (max-width: 992px) 962px, (max-width: 1400px) 1400px, (min-width: 1401px) 1401px" alt="MPs in Westminster debate the Terminally Ill Adults (End of Life) Bill" style="width: 100%;"><span class="inline-image-caption">MPs in Westminster debate the Terminally Ill Adults (End of Life) Bill <em>(Image: free)</em></span> Some families took to building hidden granny rooms in their homes to evade scrutiny by the authorities and the dreaded 2am knock at the door. Sometimes, if the Codger Catchers were noticed early enough at the end of the street friends would beat their pots and pans to sound the alarm. </p> <p> A grim national state lottery was introduced under the pretence of raising money for good causes. Like the old National Lottery it was merely a way of taxing poor people to pay for things that the government used to fund. The new Lotto offered players the chance to win lifetime access to expensive pain-relieving drugs and exemption from scrutiny by the forces of the state. </p> <p> The Scottish Government in association with the BBC established a nationwide Hunger Games style game show. Local communities would send their village bampots and drunkards to a week-long series of brutal challenges in the Cairngorms. </p> <p> There they would be treated to all-you-can-drink nights out and then picked off one-by-one by falling into swollen rivers or being devoured by wild beasts who had been reintroduced for the purpose. The winner would be given six months of free treatment at a rehab centre where they would be nursed back into state usefulness. </p> <p> This decade of the Grand Terror (as it came to be known) only ceased when it was revealed that Holyrood and UK ministers had been sending their elderly relatives to an illegal luxury retirement resort on an uninhabited island off the north-west coast of Scotland. </p> <hr> <p> <strong>Kevin McKenna is a Herald writer and columnist. When his time draws near please leave the switches alone. But he’s always fancied having a go at the way the First Nation American OAPs check out.</strong> </p> </div> </div></div><div id="subscription-below-article" style="clear:both"></div></div> <div id="po-inline-article-below" style="clear:both"></div> </div> <div class="clearfix"></div> </div> <div class="block-article-content__bottom-tags mar-mb-4"> <!-- standard - ArticleTags.html --> <div class="article-tags"><a href="/topics/assisted-dying/">Assisted dying</a></div> <!-- standard - ArticleTags.html --> <div class="article-tags"><a href="/topics/family/">Family</a></div> <!-- standard - ArticleTags.html --> <div class="article-tags"><a href="/topics/national-government/">National government</a></div> <!-- standard - ArticleTags.html --> <div class="article-tags"><a href="/topics/politics/">Politics</a></div> </div> <!-- standard - ArticleComments.html --> <section class="article-comments"> <div class="article-comments__wrapper article-comments--inline "> <!-- standard - SocialBar.html --> <div class="social-bar social-bar--bottom "> <div class="social-bar__text">Share</div> <button class="social-bar__button social-bar__link social-bar__button--with-icon bg-fb" data-uses-js="custom-sharing" data-share-url="https://www.facebook.com/sharer/sharer.php?u=" data-share-path="https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/?ref=fbshr"> <span class="iconify" data-icon="brandico:facebook"></span> </button> <button class="social-bar__button social-bar__link button-with-icon social-bar__button--with-icon bg-twitter" data-uses-js="custom-sharing" data-share-url="https://twitter.com/share?url=" data-share-path="https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/?ref=twtrec" data-share-headline="Imagine a future where the Codger Catchers stalk the streets - it's easy if you try"> <span class="iconify" data-icon="fa6-brands:x-twitter"></span> </button> <a class="social-bar__whatsapp-link" href="whatsapp://send?text=Imagine%20a%20future%20where%20the%20Codger%20Catchers%20stalk%20the%20streets%20-%20it%27s%20easy%20if%20you%20try%0A%0Ahttps://www.heraldscotland.com%2Fpolitics%2Fviewpoint%2F24766444.politicians-back-assisted-dying-beware-codger-catchers%2F%3fref%3Dwa"> <button class="social-bar__button social-bar__link social-bar__button--with-icon bg-whatsapp"> <span class="iconify" data-icon="akar-icons:whatsapp-fill"></span> </button> </a> <button class="social-bar__button social-bar__link social-bar__button--with-icon bg-linkedin" data-uses-js="custom-sharing" data-share-url="https://www.linkedin.com/shareArticle?mini=true&url=" data-share-path="https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/?ref=li"> <span class="iconify" data-icon="entypo-social:linkedin"></span> </button> </div> <div class="article-comments__text--inline mar-mt-0" data-uses-js="comments-button" data-comments-count="10"> </div> </div> <div id="comments-feedback-anchor"></div> <div id="article-comments__interrupt-modal-content" hidden> <h3> Why are you making commenting on The Herald only available to subscribers? </h3> <p> It should have been a safe space for informed debate, somewhere for readers to discuss issues around the biggest stories of the day, but all too often the below the line comments on most websites have become bogged down by off-topic discussions and abuse. </p> <p> heraldscotland.com is tackling this problem by allowing only subscribers to comment. </p> <p> We are doing this to improve the experience for our loyal readers and we believe it will reduce the ability of trolls and troublemakers, who occasionally find their way onto our site, to abuse our journalists and readers. We also hope it will help the comments section fulfil its promise as a part of Scotland's conversation with itself. </p> <p> We are lucky at The Herald. We are read by an informed, educated readership who can add their knowledge and insights to our stories. </p> <p> That is invaluable. </p> <p> We are making the subscriber-only change to support our valued readers, who tell us they don't want the site cluttered up with irrelevant comments, untruths and abuse. </p> <p> In the past, the journalist’s job was to collect and distribute information to the audience. Technology means that readers can shape a discussion. We look forward to hearing from you on heraldscotland.com </p> </div> <div class="article-comments__container" hidden data-current-user=""> <!--Insert comments list and all other comments stuff inside here --> <div class="article-comments__moderation-rules " id="comment-moderation-rules"> <h3 class="article-comments__moderation-rules-title"> Comments & Moderation </h3> <div class="article-comments__moderation-rules-body"> <p class="article-comments__moderation-rules-text"> Readers’ comments: You are personally liable for the content of any comments you upload to this website, so please act responsibly. We do not pre-moderate or monitor readers’ comments appearing on our websites, but we do post-moderate in response to complaints we receive or otherwise when a potential problem comes to our attention. You can make a complaint by using the ‘report this post’ link . We may then apply our discretion under the user terms to amend or delete comments. </p> <p class="article-comments__moderation-rules-text"> Post moderation is undertaken full-time 9am-6pm on weekdays, and on a part-time basis outwith those hours. </p> <!-- standard - Buttons.html --> <a href="/misc/comments" data-uses-js="" class=" mar-btn mar-btn--light mar-btn--sm " > Read the rules here </a> </div> </div> <div id="comments-anchor"></div> <div id="piano-above-comments"></div> <div id="po-inline-subscribercommentmessage"></div> <div class="post-comment-container post-comment-form"> <div class="mar-alert mar-alert--error" hidden id="commentErrorDisplay"> </div> <div class="comment-status"> Please <a href="/my/account/log-in/" rel="nofollow" class="piano-id__login login-callback piano-id-login">sign in</a> or <a href="/my/account/register/?ref=newsart_comment" rel="nofollow" class="piano-id__register piano-id-register">register</a> to comment. </div> </div> <div class="article-comments__order-sort-header"> <div class="article-comments__order-sort-header -sortby"> <div class="mar-form-elements__form-group---inline"> <label>Sort by</label> <select data-uses-js="comments-sort" name="commentSort" id="comments-sort" class="mar-form-elements__form-control"> <option value="oldest">Oldest first</option> <option value="newest">Newest first</option> <option value="score">Highest scored</option> <option value="score-l">Lowest scored</option> </select> </div> </div> </div> <div id="comments-list" data-article-id="24766444" class="wider" data-verified-user > <div class="loader">loading</div> <div id="comments-list__container"></div> <!-- comment template --> <div id="commentTemplate" class="comment-container"> <div class="comment" style="display: none;"> <div class="comment__header comment-item-header"> <span class="comment__username comment-username" data-user-id="" data-user-name=""></span> <button class="comment__suspend-btn suspend" id="s_" title="Suspend this comment" data-uses-js="suspend-comment" > Suspend </button> <span class="comment__posted formatTimeStampEs6 timestamp posted-date" data-show-time="true" data-timestamp="" data-format="comments"></span> </div> <div class="clearfix"></div> <span class="mobile-admin-user"></span> <span class="comment__user-id comment-alias-user-id"></span> <div class="comment__body comment-body clearfix"> <span class="comment__text comment-text"></span> <p class="comment__last-updated timestamp last-edited"> Last Updated: <span class="formatTimeStampEs6" data-timestamp="" data-format="comments" data-show-time="true"></span> </p> </div> <div class="comment__actions"> <div class="comment__actions--left"> <button class="mar-btn mar-btn--light mar-btn--sm reply" data-uses-js="comment-reply">Reply</button> <button data-uses-js="comment-quote" class="mar-btn mar-btn--light mar-btn--sm quote">Quote</button> </div> <div class="comment__actions--right"> <button data-uses-js="edit-comment" class="mar-btn mar-btn--sm edit-comment" data-id="">Edit</button> <button data-uses-js="delete-comment" class="mar-btn mar-btn--sm delete-comment" data-id="">Delete</button> <button class="mar-btn mar-btn--sm comment-report" data-uses-js="comment-report">Report</button> <!-- standard - Upvote.html --> <button class="mar-upvote" data-uses-js="comment-upvote" > <div class="mar-upvote__icon"> <!-- standard - IconArrowUp.html --> <svg width="12" height="13" viewBox="0 0 12 13" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.11073 7.90577H3.55536V12.1839C3.55536 12.346 3.61975 12.5014 3.73437 12.616C3.84898 12.7307 4.00443 12.795 4.16652 12.795H7.83348C7.99557 12.795 8.15102 12.7307 8.26563 12.616C8.38025 12.5014 8.44464 12.346 8.44464 12.1839V7.90577H10.8893C11.0043 7.90558 11.117 7.87294 11.2144 7.8116C11.3117 7.75026 11.3898 7.66272 11.4396 7.55901C11.4895 7.45531 11.5091 7.33965 11.4961 7.22532C11.4832 7.11098 11.4383 7.00261 11.3666 6.91264L6.47732 0.801054C6.24446 0.510753 5.75554 0.510753 5.52269 0.801054L0.633415 6.91264C0.561688 7.00261 0.516788 7.11098 0.503869 7.22532C0.49095 7.33965 0.510536 7.45531 0.560378 7.55901C0.61022 7.66272 0.688298 7.75026 0.785647 7.8116C0.882996 7.87294 0.995669 7.90558 1.11073 7.90577Z" fill="white"/> </svg> </div> <div class="mar-upvote__count">0</div> </button> </div> </div> </div> </div> <!-- report template --> <div id="reportTemplate" class="report-container report-form" hidden> <div id="commentsform" class="commentPost"> <h3 class="report-form__header"> Report this comment <a data-uses-js="report-cancel" href="#" class="report-form__cancel">Cancel</a> </h3> <div class="mar-alert hidden"></div> <form method="post" class="mar-form-elements clearfix"> <div class="mar-form-elements__form-group"> <input class="mar-form-elements__form-control" type="hidden" name="id" id="comment-id" value="" /> </div> <div id="report-form-name" class="mar-form-elements__form-group"> <input required data-required-message="Please enter your name." class="mar-form-elements__form-control" type="text" name="name" id="report-name" value="" placeholder="Please enter your name."/> </div> <div id="report-form-email" class="mar-form-elements__form-group"> <input data-pattern="^([a-zA-Z0-9_.+-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$" data-pattern-message="Please enter correct email" class="mar-form-elements__form-control" type="email" name="email" id="report-email" placeholder="Please enter your email."/> </div> <div id="report-form-reason" class="mar-form-elements__form-group"> <textarea required data-required-message="Please enter the reason you wish to complain about this post." class="mar-form-elements__form-control" name="comment" id="report-reason" placeholder="Please enter the reason for your report. Please note we will not accept reports with HTML tags or URLs in them."></textarea> </div> <div class="form-group mar-mb-3"><label for="captcha">I am not a robot <span class="mandatory">*</span></label><input type="hidden" name="captchaKey" value="58b59ed7fd0e2e3426901682bed6f3d5" /><br/><img src="/resources/images/captcha2/?k=58b59ed7fd0e2e3426901682bed6f3d5"/></div><div class="form-group">Enter the above word in the box below<br/><input id="captcha" type="text" class="form-control" name="captcha" required data-label="I am not a robot check"><br/></div> <button data-uses-js="report-submit" type="submit" name="submit" class="report-form__submit mar-btn mar-btn--dark mar-btn--sm report-submit" value="Report comment"> Report </button> </form> </div> </div> <!-- reply template --> <div id="replyTemplate" class="reply-container reply-form" hidden> <div class="reply-form__header"> <span class="reply-form__username comment-username"></span> <a data-uses-js="reply-cancel" href="#" class="reply-form__cancel">Cancel</a> </div> <form class="reply-form__form mar-form-elements" method="post" action="?action=add_comment"> <div class="mar-mb-2 mar-alert mar-alert--success mar-alert--success" hidden></div> <div class="mar-mb-2 mar-alert mar-alert--error mar-form-elements__form-group--error-top" hidden></div> <div class="mar-form-elements__form-group"> <input class="mar-form-elements__form-control" type="hidden" name="username" id="username" value="" /> </div> <div class="mar-form-elements__form-group"> <input class="mar-form-elements__form-control" type="hidden" name="inReplyTo" value=""> </div> <div class="mar-form-elements__form-group"> <input class="mar-form-elements__form-control" type="hidden" name="article_id" value="24766444"> </div> <div class="mar-form-elements__form-group"> <input class="mar-form-elements__form-control" type="hidden" name="is_quote" value="false"> </div> <div class="reply-form__quote quote-preview" hidden> <blockquote class="mar-blockquote"> <strong class="reply-form__quote-user quote-preview__user"></strong> <br> <span class="reply-form__quote-content quote-preview__content"></span> </blockquote> </div> <div class="mar-form-elements__form-group post-comment-form-textarea"> <label class="reply-form__reply-to comment-replyto"></label> <textarea required data-required-message="Please enter a comment" name="comment" class="mar-form-elements__form-control comment-entry-box" placeholder="Add your reply"></textarea> </div> <button data-uses-js="post-comment" class="reply-form__submit mar-btn mar-btn--dark mar-btn--sm button-post-comment"> Post reply </button> </form> </div> <!-- edit template --> <div id="editTemplate" class="edit-container edit-form" hidden> <form class="mar-form-elements edit-comment-form"> <h3 class="edit-form__header"> <span class="edit-form__title">Edit comment</span> <a data-uses-js="edit-cancel" href="#" class="edit-form__cancel">Cancel</a> </h3> <div class="mar-mb-2 mar-alert mar-alert--error mar-form-elements__form-group--error-top" hidden></div> <div class="mar-mb-2 mar-alert mar-alert--success mar-alert--success" hidden></div> <div class="mar-form-elements__form-group post-comment-form-textarea"> <label class="edit-form__textarea-label"></label> <textarea required data-required-message="Please enter a comment" class="edit-comment-box mar-form-elements__form-control post-comment-form-textarea"></textarea> </div> <button data-uses-js="edit-submit" class="mar-btn mar-btn--dark mar-btn--sm edit-save edit-form__submit">Save edit</button> </form> </div> <!-- delete template --> <div id="deleteTemplate" class="delete-container delete-form" hidden> <div class="mar-mt-2 mar-mb-2 mar-alert mar-alert--error mar-form-elements__form-group--error-top" hidden></div> <div class="mar-mt-2 mar-mb-2 mar-alert mar-alert--success mar-alert--success" hidden></div> <div class="delete-alert mar-alert mar-alert--error"> <p class="delete-alert__message mar-alert__message">Are you sure you want to delete this comment?</p> <div class="delete-alert__actions mar-alert__actions"> <button class="delete-alert__confirm mar-btn mar-btn--light mar-btn--sm delete-confirm" data-uses-js="delete-submit">Yes delete</button> <a data-uses-js="delete-cancel" href="#" class="delete-alert__cancel">Cancel</a> </div> </div> </div> </div> </div> </section> <div data-block-pull="block-outbrain-inline-pull"></div> </div> </div> <!-- standard - OutbrainInArticle.html --> <div id="DFP_teads"></div> </div> </div> <div class="article-row-container--right__article-display-page-only"> <div class="article-row-container__column mar-mb-4"> <div id="premium_mpu_container" class="premium-mpu-container mar-block-ad mar-block-ad--dfp-premium-mpu mar-block-ad--article-card-interrupt premium-mpu" style="width: 100%;"> <div id="DFP_premium_mpu"></div> </div> </div> <div class="article-row-container__column"> <!-- standard - SendUsYourNewsCta.html --> <div class="send-us-your-news-cta"> <h2> Get <em>involved</em><br/> <span>with</span> <b>the news</b> </h2> <!-- standard - Buttons.html --> <a href="/send-us-your-news" data-uses-js="" class=" mar-btn mar-btn--light mar-btn--md " > Send your news & photos </a> </div> </div> <div class="article-row-container__column"> <section class="block mega-news-block"> <aside> <!-- standard - BlockMegaNewsMostPopularV3.html --> <div class="block block-most-popular-right-column" data-uses-js="most-read-side-bar"> <!-- standard - MostRead.html --> <div class="most-read mar-tab" data-limit="10"> <ul class="most-read__tab most-read__headings mar-tab__headings"> </ul> <div class="most-read__body mar-tab__body-container most-read__body--one-column"> <div class="loader">Loading...</div> </div> <!-- Adds or not adds click event listener --> <!-- standard - Buttons.html --> <div class="read-more-cta read-more-cta__container mar-btn-full mar-btn-full__container hidden "> <div class="mar-btn-full__line-container"> <span class="mar-btn-full__line mar-btn--light"></span> <button type="button" data-uses-js="most-read" class="mar-btn mar-btn-full mar-btn--light mar-btn--sm mar-btn--rounded " > Show more articles </button> </div> </div> </div> </div> </aside> </section> <div id="standard_mpu_2_container" class="standard-mpu-container mar-block-ad mar-block-ad--standard-mpu mar-block-ad--article-card-interrupt dfp-standard-mpu-2" style="height: 250px; width: 100%;"> <div id="DFP_standard_mpu_2"></div> </div> <div class="side-ad" style="flex-grow: 1"> <div id="DFP_on_scroll" style="margin-top: 25px"></div> </div> </div> </div> </div> </article> </div> <input type="hidden" id="site-name" value="The Herald"> <input id="has-contribution-cta" type="hidden" value=""> </div> <div id="block-outbrain-inline-pull"> <section class="promoted-block"> <!-- standard - Outbrain.html --> <aside><div class="OUTBRAIN" data-ob-contentUrl="https://www.heraldscotland.com/politics/viewpoint/24766444.politicians-back-assisted-dying-beware-codger-catchers/" data-ob-installation-key="NEWSQ15BEE3GLF6A6AL9EECN9" data-widget-id="AR_1"></div></aside> </section> </div> </div> <div> <section class="mar-leaderboard mar-leaderboard--bottom mar-leaderboard--margin-top mar-leaderboard--margin-top"> <div id="DFP_bottom_leaderboard"></div> </section> </div> </div> </div> <!-- standard - Footer.html --> <footer class="footer-outer"> <div class="footer container-inner-width"> <ul class="list-style-none footer__menu"> <li><a href="/contact/">Contact us</a></li> <li><a href="/gdpr/" class="gdpr-option-v2" data-v2-id="191113" data-is-gate="no">Manage Consent</a></li> <li><a href="/announcements/">Announcements</a></li> <li><a href="http://leap.heraldscotland.com">Leap</a></li> <li><a href="https://www.newsquest.co.uk/cookie-policy/" target="_blank">Cookie Policy</a></li> <li><a href="https://www.newsquest.co.uk/terms-conditions/" target="_blank">Terms & Conditions</a></li> <li><a href="https://www.newsquest.co.uk/contributor-terms/" target="_blank">Contributor Terms</a></li> <li><a href="https://www.newsquestprinting.co.uk/" target="_blank">Newsquest printing</a></li> <li><a href="/advertising/">Advertise</a></li> <li><a href="/emailbulletins/">Newsletters</a></li> <li><a href="/reader-rewards/">Reader Rewards</a></li> <li><a href="/misc/sitemap/">Site Map</a></li> <li><a href="https://www.exchangeandmart.co.uk/" target="_blank">Exchange and Mart</a></li> <li><a href="https://www.newsquest.co.uk/terms-of-advertising/" target="_blank">Terms of Advertising</a></li> <li><a href="https://www.newsquest.co.uk/privacy-policy/" target="_blank">Privacy Policy</a></li> <li><a href="https://www.newsquest.co.uk/diversity-statement/" target="_blank">Diversity Statement</a></li> <li><a href="https://newsquest.newsprints.co.uk/">Photo sales</a></li> <li><a href="/publications/">Our Publications</a></li> <li><a href="/archive/">Archive</a></li> <li><a href="/submit-an-event/">Add Your Event For Free</a></li> </ul> <div class="footer__social-media"> <h3 class="footer__heading footer__social-media--heading">follow us</h3> <a class="footer__social-media--link" href="https://www.facebook.com/heraldscotland/" title="Like us on Facebook" role="link" data-media-type="facebook" > <i class="footer__social-media--icon iconify"></i> Like us on Facebook </a> <a class="footer__social-media--link" href="https://twitter.com/heraldscotland" title="Follow us on X.com" role="link" data-media-type="twitter" > <i class="footer__social-media--icon iconify"></i> Follow us on X.com </a> <a class="footer__social-media--link" href="https://www.instagram.com/theheraldscotland/" title="Follow us on Instagram" role="link" data-media-type="instagram" > <i class="footer__social-media--icon iconify"></i> Follow us on Instagram </a> </div> <div class="footer__ipso-terms "> <img class="footer__ipso-terms--logo" src="/resources/responsive-static/mds/images/ipso-regulated.svg" /> <p class="footer__ipso-terms--copy"> This website and associated newspapers adhere to the Independent Press Standards Organisation's Editors' Code of Practice. If you have a complaint about the editorial content which relates to inaccuracy or intrusion, then please <a class="footer__ipso-terms--link" href="/contact"> contact the editor here</a>. If you are dissatisfied with the response provided you can <a class="footer__ipso-terms--link" href="https://www.ipso.co.uk/contact-us/">contact IPSO here</a> </p> <p class="footer__ipso-terms--copy"> <a class="footer__ipso-terms--link" href="/my/account/copyrights/">© 2001-2024</a>. <a class="footer__ipso-terms--link" href="https://www.newsquest.co.uk">Newsquest Media Group Ltd</a>, 1st Floor, Chartist Tower, Upper Dock Street, Newport, Wales, NP20 1DW | 01676637 | </p> </div> </div> </footer> <div id="fb-root"></div> </div> </div> <!-- standard - Modal.html --> <div class="mar-modal-container mar-modal-container--animate mar-modal-container--animate-out visually-hidden"> <div class="mar-modal-overlay" data-uses-js="close-modal"></div> <div class="mar-modal" tabindex="-1" role="dialog"> <div class="mar-modal__header"> <h4 class="mar-modal__title">Modal headline</h4> <div class="mar-modal__close" data-uses-js="close-modal"> <!-- standard - IconClose.html --> <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> <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"/> </svg> <span>Close</span> </div> </div> <div class="mar-modal__body">Automatically injected HTML goes here</div> <div class="mar-modal__actions"> <!-- standard - Buttons.html --> <button type="button" data-uses-js="modal-submit" class=" mar-btn mar-btn--light mar-btn--md " > Submit </button> <!-- standard - Buttons.html --> <button type="button" data-uses-js="modal-cancel" class=" mar-btn mar-btn--outline mar-btn--md " > Cancel </button> </div> </div> </div> <!-- standard - ModalsAndTargets.html --> <div id="piano-meter-display" style="width: 100%; position: fixed; bottom: 0; margin: auto; z-index: 999999999999999; display: none; background-color: #fff; left: 0px"> <div style="width: 960px; margin: auto;"> <button class="mar-btn btn-martini float-right" style="margin-top: 20px" id="piano-show-newsquest" type="button">Deactivate</button> <div class="mt-2"><strong>Piano meter debugger</strong></div> <p class="mb-0" style="font-style: italic;">Data returned from the Piano 'meterActive/meterExpired' callback <a href="https://docs.piano.io/callbacks/#activeevent">event</a>.</p> <div class="mb-2" id="piano-meter-display-content"></div> </div> </div> <div id="piano-top-message"></div> <div id="po-overlay-banner-top-fullwidth"></div> <div id="piano-message"></div> <div id="po-overlay-banner-bottom-fullwidth"></div> <div id="piano-floating-bottom-banner"></div> <div id="po-overlay-banner-bottom-content"></div> <!-- <div id="piano-left-message" style="display:none; width: 100%; position: fixed; left: 0; width: 300px; text-align: center; z-index: 5000000;"></div> <div id="piano-right-message" style="display:none; width: 100%; position: fixed; right: 0; width: 300px; text-align: center; z-index: 5000000;"></div> --> <div class="modal" id="adlight-explanation-modal" tabindex="-1" role="dialog" aria-labelledby="sp-modal" aria-hidden="true" style="display: none"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-body"> <img src="/resources/responsive-static/images/love-local.png" loading="lazy" id="adlight-explanation-modal-main-logo"> <p>As a subscriber, you are shown <strong>80% less</strong> display advertising when reading our articles.</p> <p>Those ads you do see are predominantly from <strong>local businesses</strong> promoting <strong>local services</strong>. </p> <p>These adverts enable local businesses to get in front of their target audience – the <strong>local community</strong>.</p> <img src="/resources/images/pixel/" id="adlight-explanation-modal-image" style="display: none"> <p class="italic">It is important that we continue to promote these adverts as our local businesses need as much support as possible during these challenging times.</p> </div> <div class="modal-footer"> <button type="button" class="mar-btn mar-btn--dark" data-dismiss="modal">Close</button> </div> </div> </div> </div> <div id="po-overlay-toast-left"></div> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"fd15ff24ac","applicationID":"70374104","transactionName":"MlFbY0cFXxcFARdRVwsbekJGEF4JSyAPV1sOdUtDXAddASkNB01UAA4DUFAKVBYFFgZ8URZEVVZMTBg=","queueTime":0,"applicationTime":478,"atts":"HhZYFQ8fTBk=","errorBeacon":"bam.nr-data.net","agent":""}</script> </body> <!-- <script>window.blockAdPlacement.init();</script> --> <!-- standard - GoogleDfp.html --> <div id="outbrain-holder"> <div id="DFP_standard_mpu_3"></div> <div id="DFP_standard_mpu_4"></div> <div id="DFP_standard_mpu_5"></div> <div id="DFP_standard_mpu_6"></div> <div id="DFP_standard_mpu_7"></div> </div> <script> const elementToObserve = document.querySelector("#outbrain-holder"); // create a new instance of `MutationObserver` named `observer`, // passing it a callback function const observer = new MutationObserver(function(e) { $.each(e, function(j, obs) { $.each(obs.removedNodes, function (i, node) { var id = $(node).attr('id'); addAdSlot(id, id.replace('DFP_', '')); }); }); }); // call `observe()` on that MutationObserver instance, // passing it the element to observe, and the options object observer.observe(elementToObserve, {subtree: true, childList: true}); </script> <script> window.domComplete = performance.now(); </script> <!-- Promos --> <script type="text/javascript"> var promoUnits = []; </script> <script type="text/javascript"> path = document.location.href.split("/"); var prop30 = qs.get('lp'); var prop43 = qs.get('ref'); var pType="BlockArticleModule" if (pType === 'BlockArticleModule' || pType === 'NationalNewsModule' || pType === 'BlockWhatsOnModule') { pType = 'ArticleModule'; } for(x=4; x<7; x++) { if (typeof path[x] == 'undefined') { path[x] = ''; } if(path[x] == "" || (pType == "ArticleModule" && path[x].match(/[0-9]+\./)) || (path[x].indexOf('?') > -1)) { path[x] = path[x-1]; } else { path[x] = path[x-1] + "/" + path[x]; } path[x] = path[x].replace(/\/undefined/g,""); } sitename = path[2].split("."); pathN= unescape(document.location.pathname.toString()); matches = pathN.match(/(\w+)\.(in|near|compare)\.([\,a-zA-Z0-9\ _-]+)[\/]?$/); detailMatches = pathN.match(/(\w+)\.detail\.(.*)$/); if (detailMatches !== null && detailMatches.length > 1) { matches = detailMatches; } if (matches !== null && matches.length > 1) { var subfolder = ''; path[3] = 'li'; path[4] = 'li/'+subfolder; path[5] = 'li/'+subfolder+'/'+matches[1]; path[6] = 'li/'+subfolder+'/'+matches[1]; } if (pathN === '/') { path[3] = 'homepage'; path[4] = 'homepage'; path[5] = 'homepage'; path[6] = 'homepage'; } function filterArray(arr) { var retArr = []; $.each(arr, function(i, part) { if (part !== '') { retArr.push(part); } }); return retArr; } </script> <script type="text/javascript"> var known = $.cookie('__siren') ? '1' : '0' ; </script> <script type="text/javascript"> if (window.screen.width < 728 && $('#BlockArticleContainer').length > 0) { if ('308' === '1147') { $('#DFP_out_of_page').remove(); } else { $('#DFP_premium_mpu').remove(); } $('#DFP_on_scroll').remove(); } else if (window.screen.width < 728 && ( $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='9']").length > 0 || $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='12']").length > 0 || $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='18']").length > 0 || $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='24']").length > 0 ) ) { const adElement = document.querySelector('#high_vis_container'); $('.omnicard[data-position="5"]').after(adElement); } if ('308' === '1147' && window.screen.width > 450) { $('#DFP_bottom_leaderboard').remove(); } if ('308' === '1147' && window.screen.width < 728) { $('#DFP_top_leaderboard').remove(); } if ('308' === '1147') { $('#DFP_teads').remove(); $('#DFP_out_of_page').remove(); } </script> <script type="text/javascript"> var known = $.cookie('__siren') ? '1' : '0' ; function addToTargeting(targeting, data) { if (!data) { return targeting; } $.each(data, function (key, value) { if (!value) { return; } targeting[key] = value; }); return targeting; } var ref = document.referrer; var parser = document.createElement('a'); parser.href = ref; // values in the below MUST be strings var targeting = { 'context': 'Politics', 'al': 'l', 'domain': 'www.heraldscotland.com', 'isLanding': 'no', 'top_path': 'politics', 'weather': 'cloudy'.toLowerCase(), 'jbsjs': ''.toLowerCase(), 'site_search': '', 'bmd_cat': '', 'wt': '11-15', 'cmpid': qs.get('cmpid'), 'refdm': parser.hostname, 'k': known, 'g': 'u' , 'a': '0' , 'topic': 'Assisted dying', 'publication': '', 'primary_tag_future_use': 'Assisted dying', 'site': (isMobile()) ? 'mobile': 'desktop', 'r': data_layer.user.subscription_plan !== '' ? '2' // 2 = subscribed : data_layer.user.is_logged_in == 'yes' ? '1' // 1 = registered : '0', // 0 = anonymous }; if (!usePrebid) { targeting.adrq = 'adl'; } if (data_layer.video.exists === 'yes') { targeting.ptype = 'video'; } if ($.cookie('isMeterExpired') === 'yes' && window.data_layer.article.is_article) { var articleContentLevel = parseInt(window.data_layer.article.content_level, 10) || 0; // account for NaN if (articleContentLevel !== 0 && window.data_layer.article.content_level_open_access === 'no') { targeting.ao = 'y'; } } if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') { targeting.dfpcsnt = 'yes'; } else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') { targeting.dfpcsnt = 'no'; } else { targeting.dfpcsnt = 'none'; } if (typeof MobileDetect !== "undefined") { targeting.canbb = (window.screen.width > 960) ? 'y' : 'n'; } if (typeof module_targeting === "object") { targeting = addToTargeting(targeting, module_targeting); } // $.each(apData, function (k, v) { // targeting[k] = v; // }); // if (typeof gs_channels !== 'undefined') { // targeting.gs_channels = gs_channels; // } targeting = addToTargeting(targeting, data_layer_helper.homesData); targeting.article_id = '24766444'; var googleSiteName = 'www.heraldscotland.com'; var googlePath = '/politics/viewpoint/'; var googleNetworkCode = 154725070; var googleChildNetworkCode = 22694024870; var googleId = '/'+googleNetworkCode + ',' + googleChildNetworkCode + '/' + googleSiteName+googlePath; if (googleId.charAt(googleId.length - 1) === '/') { googleId = googleId.slice(0, -1); } var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; googletag.cmd.push(function () { var _YB = _YB || { ab: function () { return _YB.dool ? "b" : "a" + Math.floor(Math.random() * 10); }, dool: Math.random() >= 0.1, }; var yb_ab; if (Math.random() <= 0.9) { yb_ab = _YB.ab(); } else { yb_ab = "c"; } googletag.pubads().setTargeting("yb_ab", yb_ab); }); googletag.cmd.push(function() { googletag.pubads().set("adsense_background_color", "FFFFFF"); googletag.pubads().setTargeting('rfs', "0"); $.each(targeting, function (key, value) { // No real value so exclude if (value === 0 || value === '' || value === null) { return; } googletag.pubads().setTargeting(key, value); }); }); var adUnits = []; if (blackListAds.length > 0) { $.each(blackListAds, function(i, name) { $('#'+name).remove(); }); } $.each(unfilteredAdUnits, function (i, unit) { // VAST (video) ad units never get displayed in here. if (unit.isVast) { return; } // if we have an ad-light experience if (whiteList === true) { if (typeof whiteListAds[unit.positionName] === 'undefined') { $('#'+unit.domName).remove(); return; } } adUnits.push(unit); }); // set up a holder for all the adverts so we can do things with them later var dfpHolder = {}; // the set up code googletag.cmd.push(function() { $.each(adUnits, function(i, data) { // check if the dom exists if ($('#'+data.domName).length === 0) { return; } var dfp = null; if (data.slotType === 'standard') { // get the correct sizes, using the alternate_sizes if they exist and we are on a mobile site var sizes = data.sizes; if (data.alternate_mobile_size && isMobile()) { sizes = data.alternate_mobile_size; } // push this ad slot through dfp = googletag.defineSlot(googleId, sizes, data.domName) .addService(googletag.pubads()) .setTargeting("position", data.positionName) .setCollapseEmptyDiv(data.collapseContainer); // check if we have an array of targets, and assign them as a companion if we do if (data.targets instanceof Array && data.targets.length > 0 ) { dfp.setTargeting('companion', data.targets); } } else if (data.slotType === 'outofpage') { dfp = googletag.defineOutOfPageSlot(googleId, data.domName) .addService(googletag.pubads()) .setTargeting("position", data.positionName) .setCollapseEmptyDiv(data.collapseContainer); // check if we have an array of targets, and assign them as a companion if we do if (data.targets instanceof Array && data.targets.length > 0 ) { dfp.setTargeting('companion', data.targets); } } // store dfpHolder[data.domName] = dfp; }); if (adLight === true) { googletag.pubads().setCategoryExclusion('adlight'); // var adlightexplanation = '<div class="adlight-explanation">I\'m a subscriber <a href="#" class="adlight-explanation-link">Why am I seeing this advert?</a></div>'; // if ($('#DFP_premium_mpu').length > 0) { // $('#DFP_premium_mpu').before(adlightexplanation); // } // if ($('#DFP_standard_mpu_1').length > 0) { // $('#DFP_standard_mpu_1').before(adlightexplanation); // } // var imageIds = [11497497, 11497535, 11497536, 11497541, 11497542, 11497545, 11497546, 11497547]; // var imageId = imageIds[Math.floor(Math.random() * imageIds.length)]; // $('.adlight-explanation-link').click(function(e) { // e.preventDefault(); // $('#adlight-explanation-modal-image').attr('src', '/resources/images/' + imageId + '/').show(); // $('#adlight-explanation-modal').modal(); // }); } // send the request googletag.pubads().enableSingleRequest(); googletag.enableServices(); googletag.pubads().addEventListener('slotVisibilityChanged', function(event) { if (event.slot.getResponseInformation().creativeTemplateId === 828288 || event.slot.getResponseInformation().creativeTemplateId === 12383216 ) { console.log('DFP: Magic template id detected, not refreshing'); return; } var slotName = ''; $.each(dfpHolder, function (a, e) { if (e == event.slot) { slotName = a; } }); if (typeof window.advertisingTimer !== 'undefined') { var perc = event.inViewPercentage; window.advertisingTimer.timer(slotName, perc); } }); }); // the display code $.each(adUnits, function(i, data) { // check if the dom exists if ($('#'+data.domName).length === 0) { return; } if (data.domName === 'DFP_interstitial_mpu') { if (!inter.checkVisit()) { return; } } // are we manually loading it? if ($('#'+data.domName).attr('data-manual-loading') === "yes") { return; } // for mobile, we check if the dom element has the data-delay-loading attribute set to "1" else if ($('#'+data.domName).attr('data-delay-loading') === "yes") { // load it $('#'+data.domName).appear(); $(document.body).on('appear', '#'+data.domName, function(e, allElement) { // don't call it many times if ($(this).attr('data-processed') === 'yes') { return; } $(this).attr('data-processed', 'yes'); // display the google ad googletag.display(data.domName); googletag.pubads().refresh([dfpHolder[data.domName]]); }); return; } googletag.cmd.push(function() { googletag.display(data.domName); }); }); window.googleComplete = performance.now(); window.googleReady = true; function addAdSlot(slotName, slot, initHidden) { console.log("Add ad slot called for %s %s", slotName, slot); // check if item already exists if (typeof window.dfpHolder[slotName] !== 'undefined') { return; } if (window.adLight === true) { return; } window.googletag.cmd.push(function() { var dfp = googletag.defineSlot(window.googleId, [[300,250]], slotName) .setTargeting('position', [slot]) .addService(googletag.pubads()); window.dfpHolder[slotName] = dfp; if (!initHidden) { googletag.pubads().refresh([dfp]); return; } }); } </script> <!-- Twitter widget script --> <script src="//platform.twitter.com/widgets.js" charset="utf-8"></script> <script src="/resources/responsive-static/build/mds/js/global.js?cb=uUAjmAdC"></script> <script src="/resources/responsive-static/build/mds/js/article.js?cb=uUAjmAdC"></script> <script src="/__siren/"></script> <!-- standard - AudienceTracking.html --> <script type="text/javascript"> var s_account="newsquestgroupprod"; </script> <script type="text/javascript" src="/resources/responsive-static/vendor/adobe/VisitorAPI.js?cb=uUAjmAdC"></script> <script type="text/javascript" src="/resources/responsive-static/vendor/adobe/omniture.js?cb=uUAjmAdC"></script> <script type="text/javascript"> function getOmniturePath() { var path = ''; if ($('#gallery-base-url').length === 1) { path = $('#gallery-base-url').val(); } else { path = window.location.pathname; } return path; } function getPositionFromCookie() { var ref = $.cookie('tracking_block_index'); $.removeCookie('tracking_block_index', { path: '/', domain: window.data_layer.site.cookie_domain, }); return ref; } function getRefFromCookie() { var ref = $.cookie('tracking_block'); $.removeCookie('tracking_block', { path: '/', domain: window.data_layer.site.cookie_domain, }); return ref; } function getOmnitureTrackingFromCookie(key, preExistingValue) { var ref = $.cookie('o-' + key); if(typeof(ref) === 'undefined') { ref = preExistingValue } else { ref = decodeURIComponent(ref); $.removeCookie('o-' + key, { path: '/', domain: window.data_layer.site.cookie_domain, }); } return ref; } function getValidatedAPList() { 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]; var data = getAudienceProjectTargetingData(); if (!data || !data.ap_x) { return ''; } validData = []; $.each(data.ap_x, function(i, td) { if ($.inArray(parseInt(td, 10), validList) !== -1) { validData.push(td); } }); return validData.join(','); } path = document.location.href.split("/"); var prop30 = qs.get('lp'); var prop43 = qs.get('ref'); var pType="BlockArticleModule" if (pType === 'BlockArticleModule' || pType === 'NationalNewsModule' || pType === 'BlockWhatsOnModule') { pType = 'ArticleModule'; } for(x=4; x<7; x++) { if (typeof path[x] == 'undefined') { path[x] = ''; } if(path[x] == "" || (pType == "ArticleModule" && path[x].match(/[0-9]+\./)) || (path[x].indexOf('?') > -1)) { path[x] = path[x-1]; } else { path[x] = path[x-1] + "/" + path[x]; } path[x] = path[x].replace(/\/undefined/g,""); } pathN= unescape(document.location.pathname.toString()); matches = pathN.match(/(\w+)\.(in|near|compare)\.([\,a-zA-Z0-9\ _-]+)[\/]?$/); detailMatches = pathN.match(/(\w+)\.detail\.(.*)$/); if (detailMatches !== null && detailMatches.length > 1) { matches = detailMatches; } if (matches !== null && matches.length > 1) { var subfolder = ''; path[3] = 'li'; path[4] = 'li/'+subfolder; path[5] = 'li/'+subfolder+'/'+matches[1]; path[6] = 'li/'+subfolder+'/'+matches[1]; } if (pathN === '/') { path[3] = 'homepage'; path[4] = 'homepage'; path[5] = 'homepage'; path[6] = 'homepage'; } /* You may give each page an identifying name, server, and channel on the next lines. */ s.pageName="(www) "+getOmniturePath(); s.pageName = s.pageName.toLowerCase(); s.server="dmh-martini-web3" s.channel="" s.pageType="" s.prop1= qs.get('search'); s.prop2="" s.prop3=document.title s.prop4="24766444" s.prop5="BlockArticleModule" /* get from Martini */ s.prop6=path[3].toLowerCase() s.prop7=path[4].toLowerCase() s.prop8=path[5].toLowerCase() s.prop9=path[6].toLowerCase() s.prop10="" s.prop15="Kevin McKenna".toLowerCase() s.prop16=path[2].toLowerCase() s.prop17="Herald and Times" s.prop18="Martini" s.prop19="1" s.prop20 = s.getPreviousValue(s.pageName, 'gpv_pn'); s.prop53 = 'standard'; s.prop54 = ''; s.prop55 = ''; s.prop56 = "BAM Standard Article"; s.prop57 = ($('[data-name="Feature Article Block A"]').length > 0) ? 'Enabled' : 'Disabled'; s.prop58 = $('[data-name="Feature Article Block B"]').data('variant'); s.prop59 = getRefFromCookie(); s.prop60 = getPositionFromCookie(); s.prop73 = $.cookie('adtiming'); var eVar67 = []; if ($.cookie('consentUUID')) { eVar67.push('yes'); } else { eVar67.push('no'); } if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') { eVar67.push('yes'); } else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') { eVar67.push('no'); } else { eVar67.push('none'); } if ($.cookie('_sp_legitimate_interests') === 'true') { eVar67.push('yes'); } else if ($.cookie('_sp_legitimate_interests') === 'false') { eVar67.push('no'); } else { eVar67.push('none'); } //if ($.cookie('euconsent')) { // eVar67.push($.cookie('euconsent')); //} else { // eVar67.push('none'); //} s.eVar67 = eVar67.join(','); // console.log('ADB: setting eVar67 to %s', eVar67.join(',')); if ($.cookie('prev-tcf-v2')) { // console.log('ADB: Setting eVar68 to ', $.cookie('prev-tcf-v2')); s.eVar68 = $.cookie('prev-tcf-v2'); } if (typeof iabNames !== 'undefined') { s.prop29 = iabNames.join(','); } else if (typeof iabIds !== 'undefined') { s.prop29 = iabIds.join(','); } if (s.prop20 && s.prop20 !== 'no value') { s.prop21 = s.getPercentPageViewed(); } else { s.prop21 = ''; } if (typeof __siren !== 'undefined') { s.eVar27 = __siren; } s.prop22 = s.getDaysSinceLastVisit('s_lv'); s.prop43=getOmnitureTrackingFromCookie('ref', prop43); s.prop25 = 'Politics' s.prop27 = ''; s.prop28='7354' s.prop30 = getOmnitureTrackingFromCookie('prop30', prop30); s.linkInternalFilters="javascript:,heraldscotland.com,fish4.co.uk,adsys.newsquest.co.uk,www.exchangeandmart.co.uk,www.communigate.co.uk," s.eVar61=(new Date()).toLocaleDateString("en-GB"); s.eVar62=(new Date()).toLocaleDateString("en-GB"); s.eVar63 = "+1"; s.eVar64 = "+1"; s.eVar60 = "3,best,no"; s.prop61 = 'opinion'; s.prop62 = ''; s.prop63 = '49;16155;18824;21064'; s.prop64 = ''; s.prop66 = ''; s.prop66 += ($('#inArticleAd').length > 0) ? "y;" : "n;"; s.prop66 += ($('#inArticleAd-1').length > 0) ? "y;" : "n;"; s.prop66 += ($('#inArticleAd-2').length > 0) ? "y;" : "n;"; s.prop66 += ($('#inArticleAd-3').length > 0) ? "y;" : "n;"; s.prop66 += ($('#inArticleAd-4').length > 0) ? "y;" : "n;"; s.prop66 += ($('#inArticleAd-5').length > 0) ? "y" : "n"; s.eVar107 = '1'; s.eVar108 = '2377'; s.eVar104 = 'National government'; s.prop56 = "BAM Standard Article"; /* Article-site-cloning data */ s.eVar90 = window.data_layer.article.parent_originating_site_id; s.eVar91 = window.data_layer.article.originating_article_id; s.eVar92 = window.data_layer.article.is_original_to_site; s.eVar95 = window.data_layer.site.using_piano_id; s.eVar106 = 'No AI or automation'; /* Uber block article counts */ s.eVar93 = window.data_layer.page.top_stories_article_count + ':' + window.data_layer.page.interstitial_article_count + ':' + window.data_layer.page.news_stories_article_count; /* Conversion Variables */ s.campaign="" s.state="" s.zip="" s.events="" s.products="" s.purchaseID="" s.eVar14="" try { s.list3=getValidatedAPList(); } catch (e) { // do nothing } // Initial fotorama tracking. var moduleType = null; if (s.prop5 === 'ArticleModule' || s.prop5 == 'PropertyModuleReplacement' || s.prop5 === 'BlockArticleModule') { moduleType = 'article'; } else if (s.prop5 === 'PictureGalleryModule') { moduleType = 'gallery'; } if (moduleType === 'article' || moduleType === 'gallery') { var imagePath = ''; if ($('.fotorama').length > 0) { // Get the first Fotorama image. try { var el = $('.fotorama').data('fotorama').data[0].html; var url = $(el).find('div').css('background-image'); imagePath = url.replace('url(','').replace(')','').replace(/\"/gi, ""); } catch (e) { } } else { // If there's just one image (i.e. it's not a gallery), find its path. var imagePathSingle = $('#mainImage').attr('src'); if (typeof imagePathSingle !== 'undefined') { imagePath = imagePathSingle.split('.')[0] + '/'; } } var imageParts = imagePath.split('/'); if (imageParts.length > 1) { s.eVar37 = imageParts[imageParts.length - 2]; s.prop37 = imageParts[imageParts.length - 2]; s.events = s.apl(s.events, 'event7', ',', 2); } s.eVar36 = moduleType; s.prop36 = moduleType; } // Education pages. if (s.prop5 === 'ResponsiveEducationModule') { // School profile page. if ($('#eduOverview').length > 0) { s.eVar40 = $('#eduOverview').data('school-status'); s.prop40 = s.eVar40; s.prop41 = 'edu-' + $('#eduOverview').data('school-urn'); s.prop46 = $('#town').text(); } // Comparison page. if ($('#eduComparisonTable').length > 0) { s.list1 = ''; } // Results page. if ($('.school-results').length > 0) { s.list1 = ''; // Track the search criteria. s.prop44 = ''; s.prop45 = "".toLowerCase(); s.prop46 = "".toLowerCase(); s.prop49 = ''; s.prop50 = ''; s.prop51 = ''; s.eVar2 = s.prop50; var newSearch = false; if (newSearch) { s.events = s.apl(s.events, 'event17', ',', 1); } } } //New Property module if (s.prop5 === 'ResponsivePropertyModule') { /* Use prop42 for single and list pages, for list pages use hyphen separate lists of id's */ //Property's all over the place (homepage, searches etc - HOM-133 //Property Detail - HOM-131, HOM-134, HOM-130 //Contact us submissions - HOM-137 if($('#propertyModule.agent-details').length > 0) { //Add a click handler for a.contact-detail } } // is their a video tag on the page? if ($('.exco-embed').length > 0) { console.log('VID: setting tracking for event50'); s.events = s.apl(s.events, 'event50', ',', 1); } var foundAutoPlayVid = false; $('.jw-outer').each(function (a, domEle) { if ($(this).data('multimedia-block') === 'no' && !foundAutoPlayVid) { console.log('VID: setting tracking for event51'); s.events = s.apl(s.events, 'event51', ',', 1); foundAutoPlayVid = true; } }); s.eVar66 = 'Ad-Full-Herald'; // var eVar65Copy = s.getValOnce(s.eVar65, "ev65", 0); // if (eVar65Copy !== '' && s.prop20.indexOf("/my/subscription/activate/") > -1) { // s.events = s.apl(s.events, "event4", ",", 1); // Set the subscription counter event. // s.events = s.apl(s.events, "purchase", ",", 1); // Set the purchase event. // s.products = "Subscription : Metered Access;" + eVar65Copy + ";1;"; // s.purchaseID = ""; // } if(qs.get('action') === 'success' && (s.prop5 === 'ArticleModule' || s.prop5 === 'BMDModule' || s.prop5 === 'BlockArticleModule')) { s.events=s.apl(s.events,'event9',',',2) } /* Hierarchy Variables */ s.hier1="newsquest," + "Herald and Times" + ",www.heraldscotland.com," + path[6].replace(/\//,","); if (typeof MartiniFotorama !== 'undefined') { MartiniFotorama.loadOmniture(s); } s.prop39 = "0"; // Tracking usage of Bytecast audio embeds in articles. s.eVar82 = 'no'; s.eVar83 = ''; console.log('ADB: starting'); /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/ if (qs.get('callback') !== 'in' && navigator.userAgent.toString().toLowerCase().indexOf('googlebot') === -1) { var s_code=s.t(); var backupAdobe = s; if(s_code)document.write(s_code) } //--></script> <!-- End SiteCatalyst code version: H.19.3. --> <script src="//connect.facebook.net/en_US/all.js#xfbml=1"></script> <script async src="https://www.tiktok.com/embed.js"></script> <script src="//uatu.newsquestdigital.co.uk/collector.php?article_id=24766444&site_id=308"></script> <script src="//uatu.newsquestdigital.co.uk/recommender-json-2.php?article_id=24766444&site_id=308"></script> </html>