CINXE.COM

Play

<!DOCTYPE html> <html lang="en-US" class="no-js"> <head> <meta charset="UTF-8" /><script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"b9d80a2312",applicationID:"467627310"};;/*! For license information please see nr-loader-rum-1.275.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:()=>u});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 u(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:()=>g,gD:()=>h,xN:()=>p});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 u="[data-nr-mask]",d=()=>{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(u):""===t||null===t?e.mask_selector=u:(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 g(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function h(e,t){if(!e)throw new Error(f);var r=g(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}},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},u={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},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.275.0",i="PROD",o="CDN"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>d,bv:()=>o,gm:()=>a,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=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,d=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});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};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),g(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return g(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),g(e,t)})))}function g(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)p(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 p(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:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=g(n),c=h(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=m()[s[e]];p&&p.push([f,e,r,a]);return a},get:v,listeners:h,context:g,buffer:function(e,t){const r=m();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!!m()[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 g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=h(e).concat(t)}function h(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(f,t)}function m(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},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,bz:()=>a});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("")}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,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"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},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})},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:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,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 u(e){let t=a();return t.initializedAgents?.[e]}function d(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)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,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],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(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){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,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){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log";n.K7.logging},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,{G4:()=>i});var n=r(2614);r(860).K7.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.g.ERROR,n.g.FULL,n.g.OFF},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)}}},7603:(e,t,r)=>{"use strict";r.d(t,{j:()=>K});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),g=r(384),p=r(6344);const h=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],v=["setErrorHandler","finished","addToTrace","addRelease"];var m=r(1863),b=r(2614),y=r(993);var w=r(2646),A=r(3434);const R=new Map;function E(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,A.YM)(i),a=new w.y(s.P);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[A.Jt]||t[r];return R.set(c,a),o.inPlace(t,[r],"wrap-logger-",(()=>R.get(c))),i}function x(){const e=(0,g.pV)();h.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 _={};function N(e,t,g=!1){t||(0,c.Ak)(e,"api");const h={};var w=s.ee.get(e),A=w.get("tracer");_[e]=b.g.OFF,w.on(p.G4.REPLAY_RUNNING,(t=>{_[e]=t}));var R="api-",x=R+"ixn-";function N(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}}),j(R,n,!0,o||null===r?"session":void 0)(t,r)}function T(){}h.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,w),function(e,t,r={},i=y.p_.INFO){(0,a.p)(f.xV,["API/logging/".concat(i.toLowerCase(),"/called")],void 0,n.K7.metrics,e),(0,a.p)(y.ET,[(0,m.t)(),t,r,i],void 0,n.K7.logging,e)}(w,e,t,r)},h.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),E(w,e,t,{customAttributes:r,level:i})},v.forEach((e=>{h[e]=j(R,e,!0,"api")})),h.addPageAction=j(R,"addPageAction",!0,n.K7.genericEvents),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,j(R,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},h.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},h.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},h.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},h[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,w)},h[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,w)},h.interaction=function(e){return(new T).get("object"==typeof e?e:{})};const S=T.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,w),g||(0,a.p)(x+"tracer",[(0,m.t)(),e,r],i,n.K7.spa,w),function(){if(A.emit((o?"":"no-")+"fn-start",[(0,m.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw A.emit("fn-err",[arguments,this,t],r),t}finally{A.emit("fn-end",[(0,m.t)()],r)}}}};function j(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,w),i&&(0,a.p)(e+t,[(0,m.t)(),...arguments],r?null:this,i,w),r?void 0:this}}function k(){r.e(296).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{S[e]=j(x,e,void 0,g?n.K7.softNav:n.K7.spa)})),h.setCurrentRouteName=g?j(x,"routeName",void 0,n.K7.softNav):j(R,"routeName",!0,n.K7.spa),h.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,w),(0,a.p)("err",[t,(0,m.t)(),!1,r,!!_[e]],void 0,n.K7.jserrors,w)},d.RI?(0,u.GG)((()=>k()),!0):k(),h}var T=r(9417),S=r(8122);const j={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},k={};var I=r(5284);const O=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let P=!1;function K(e,t={},r,n){let{init:a,info:c,loader_config:u,runtime:l={},exposed:f=!0}=t;l.loaderType=r;const p=(0,g.pV)();c||(a=p.init,c=p.info,u=p.loader_config),(0,T.xN)(e.agentIdentifier,a||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");k[e]=(0,S.a)(t,j);const r=(0,g.nY)(e);r&&(r.loader_config=k[e])}(e.agentIdentifier,u||{}),c.jsAttributes??={},d.bv&&(c.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,c);const h=(0,T.D0)(e.agentIdentifier),v=[c.beacon,c.errorBeacon];P||(h.proxy.assets&&(O(h.proxy.assets),v.push(h.proxy.assets)),h.proxy.beacon&&v.push(h.proxy.beacon),x(),(0,g.US)("activatedFeatures",I.B),e.runSoftNavOverSpa&&=!0===h.soft_navigations.enabled&&h.feature_flags.includes("soft_nav")),l.denyList=[...h.ajax.deny_list||[],...h.ajax.block_internal?v:[]],l.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,l),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=N(e.agentIdentifier,n,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=f),P=!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=>"nr-rum-1.275.0.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.275.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 u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={296:"sha512-VznhEApF3XO7GHWYwoNt4lU4Zn1sF0wsG8RtlBJC9Du2BOSHAa8jtx37qttCscUPYIniZ1GOu0mu/jpr+lo34w=="};(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 g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.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={840:0,374: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,u=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);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.275.0.PROD"]=self["webpackChunk:NRBA-1.275.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 u(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 d=i(7603);var l=i(1687),f=i(4234),g=i(5289),p=i(6154),h=i(384);const v=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function m(e){return!!(0,h.dV)().o.MO&&v(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(6389);class y 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,b.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(v(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,3861));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(296).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(296).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()}};p.RI?(0,g.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return m(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(6630);class A extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var R=i(9908),E=i(2843),x=i(3878),_=i(782),N=i(1863);class T extends y{static featureName=_.T;constructor(e,t=!0){super(e,_.T,t),p.RI&&((0,E.u)((()=>(0,R.p)("docHidden",[(0,N.t)()],void 0,_.T,this.ee)),!0),(0,x.sp)("pagehide",(()=>(0,R.p)("winPagehide",[(0,N.t)()],void 0,_.T,this.ee))),this.importAggregator(e))}}var S=i(3969);class j extends y{static featureName=S.TZ;constructor(e,t=!0){super(e,S.TZ,t),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,h.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(A),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.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=u(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,h.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:[A,T,j],loaderType:"lite"})})()})();</script> <meta name="viewport" content="width=device-width, initial-scale=1" /> <script type="text/javascript" id="cmp-inserter"> (function() { window.performance.mark('cmpstub start'); const cmpUrl = 'https://cdn.cookielaw.org/consent/cmp.stub.js'; const cmpScript = document.createElement('script'); cmpScript.async = true; cmpScript.type = 'text/javascript'; cmpScript.src = cmpUrl; cmpScript.setAttribute( 'charset', 'UTF-8' ); cmpScript.setAttribute('id', 'cmp-stub'); const cmpNode = document.getElementById('cmp-inserter'); cmpNode.parentNode.insertBefore(cmpScript, cmpNode.nextSibling); window.performance.mark('cmpstub end'); })(); </script> <script type="text/javascript"> /** * OptanonWrapper callback function. We use the OptanonWrapper function to listen for a user event and determine script behavior based on the user event. * * @return void */ function OptanonWrapper() { const otherRegionApplies = ( localStorage.getItem( 'otherRegion' ) !== null ) ? localStorage.getItem( 'otherRegion' ) : false; const ccpaApplies = ( localStorage.getItem( 'ccpaApplies' ) !== null ) ? localStorage.getItem( 'ccpaApplies' ) : false; const OTgeolocation = OneTrust.getGeolocationData(); // We use a block to be able to break from this in order to gain performance. regionFunctionBlock: { if ( otherRegionApplies === 'true' ) { // Performance. No need to execute other Javascript if the user is not GDPR/CCPA on subsequent visits. break regionFunctionBlock; } else if ( ( ccpaApplies === 'true' ) || ( ( OTgeolocation.country === 'US' ) && ( OTgeolocation.state === 'CA' ) ) ) { // User is within CCPA region. ccpaHelper(); } else { /* User may be visiting for the first time and we now * need to know if this user is from GDPR or other region. */ gdprHelper(); } } let OTConsentCookieInit = OneTrustGetCookie( 'OptanonConsent' ); let OTConsentGroups = OneTrustGetGroups ( OTConsentCookieInit ); OneTrustGetInitialGroups(); OneTrustSetConsentValues( OTConsentGroups ); /** * Sets a localStorageItem based on its updated value. * */ function setLocalStorageItem( key, value ) { localStorage.setItem( key, value); } /** * Checks presence of query parameter within the URL * Returns true/false depending if it has the word 'regionLog' * and if it's equal to 1. */ function regionLogger() { const queryString = window.location.search; const searchParams = new URLSearchParams( queryString ); return ( ( searchParams.has( 'regionLog' ) ) && ( ( searchParams.get('regionLog') === '1' ) ) ); } /** * Inserts the GDPR stub script. * Then it checks if the user is from a GDPR specific region * using the __tcfapi function which in turn, uses the * getTCData command, which is to retrieve end-user consent * data for IAB purposes, vendors, legitimate interest, publisher * restrictions and more. Calls the gdprUpdateStorage function which is * what sets the localStorage item. */ function gdprHelper() { const tcfApplies = ( localStorage.getItem( 'gdprApplies' ) !== null ) ? localStorage.getItem( 'gdprApplies' ) : false; const gdprLogger = regionLogger(); if ( gdprLogger ) { console.log('gdprHelper helper running'); } // User is a GDPR visitor. if ( ( tcfApplies === true ) || ( typeof __tcfapi === 'function' ) ) { // This will give us a response that the user is within GDPR. __tcfapi('ping', 2, (pingReturn) => { const tcfScriptID = 'tfc-stub'; // We run this only once. if( ( document.getElementById( tcfScriptID ) === null ) && ( true === pingReturn.gdprApplies ) ) { const tcfURL = 'https://cdn.cookielaw.org/consent/tcf.stub.js'; const tcfScript = document.createElement('script'); tcfScript.async = true; tcfScript.type = 'text/javascript'; tcfScript.src = tcfURL; tcfScript.setAttribute( 'charset', 'UTF-8' ); tcfScript.setAttribute('id', tcfScriptID); const tfcNode = document.getElementById('cmp-stub'); tfcNode.parentNode.insertBefore(tcfScript, tfcNode.nextSibling); } }); gdprUpdateStorage(); } else { // User is not GDPR and not CCPA. So it is from outside. We set a localStorage item for performance. const otherRegionApplies = ( localStorage.getItem( 'otherRegion' ) !== null ) ? localStorage.getItem( 'otherRegion' ) : false; if ( otherRegionApplies === false ) { setLocalStorageItem('otherRegion', true); } } } /** * Updates the storage for GDPR only. It checks that the string has changed and if so, it updates the localStorage * for GDPR. */ function gdprUpdateStorage() { const gdprLogger = regionLogger(); __tcfapi( 'addEventListener' , 2, ( tcData, success ) => { if ( success ) { const gdprString = tcData.tcString; const gdprCurrentString = localStorage.getItem( 'gdprString' ); if( gdprLogger ) { console.log('GDPR applies and is set to:' + gdprString); console.log('GDPRData:'); console.log(tcData); } if ( gdprString !== gdprCurrentString ) { if( gdprLogger ) { console.log('GDPR Consent will change on refresh' ); console.log('Old Value: ' + gdprCurrentString ); console.log('New Value: ' + gdprString ); } setLocalStorageItem('gdprApplies', true); setLocalStorageItem('gdprString', gdprString); } } }); } /** * Inserts the CCPA stub script. * Then on page load, it checks if the user is from a CCPA specific region * using the __uspapi function which in turn, uses the * getUSPData command, which is to retrieve end-user consent * data for IAB purposes, vendors, legitimate interest, publisher * restrictions and more. Calls the ccpaUpdateStorage function which is * what sets the localStorage item. */ function ccpaHelper() { setLocalStorageItem('ccpaApplies', true); const ccpaApplies = ( localStorage.getItem( 'ccpaApplies' ) !== null ) ? localStorage.getItem( 'ccpaApplies' ) : false; const ccpaLogger = regionLogger(); if ( ccpaLogger ) { console.log('ccpaHelper helper running'); } const ccpaScriptID = 'ccpa-stub'; const ccpaURL = 'https://cdn.cookielaw.org/opt-out/otCCPAiab.js'; const ccpaScript = document.createElement('script'); ccpaScript.async = true; ccpaScript.type = 'text/javascript'; ccpaScript.src = ccpaURL; ccpaScript.setAttribute('id', ccpaScriptID); ccpaScript.setAttribute('ccpa-opt-out-ids', 'C0001,C0002,C0003,C0004'); ccpaScript.setAttribute( 'charset', 'UTF-8' ); ccpaScript.setAttribute('ccpa-opt-out-geo', 'ca'); ccpaScript.setAttribute('ccpa-opt-out-lspa', 'true'); const ccpaNode = document.getElementById('cmp-stub'); ccpaNode.parentNode.insertBefore(ccpaScript, ccpaNode.nextSibling); // We update the local Storage Item for CCPA. window.addEventListener("load", function () { if ( typeof __uspapi === "function" ) { ccpaUpdateStorage(); } }); } /** * Updates the storage for CCPA only. It checks that the string has changed and if so, it updates the localStorage * for CCPA. */ function ccpaUpdateStorage() { const ccpaLogger = regionLogger(); __uspapi( 'getUSPData' , 1, ( uspData, success ) => { if ( (success) && ( uspData.uspString !== '1---' ) ) { const ccpaString = uspData.uspString; const ccpaCurrentString = localStorage.getItem( 'ccpaString' ); if( ccpaLogger ) { console.log('USPA applies and is set to:' + ccpaString); console.log('USPA Data: '); console.log(uspData); } if ( ccpaString !== ccpaCurrentString ) { if( ccpaLogger ) { console.log('CCPA Consent will change on refresh' ); console.log('Old Value: ' + ccpaCurrentString ); console.log('New Value: ' + ccpaString ); } setLocalStorageItem('ccpaString', ccpaString); } } }); } // Assign OnetrustActiveGroups to a custom initial variable so we can compare any changes to this data layer. function OneTrustGetInitialGroups() { OptanonWrapperCount = ''; OTinitGroups = OnetrustActiveGroups; // See https://community.cookiepro.com/s/article/UUID-66bcaaf1-c7ca-5f32-6760-c75a1337c226?language=en_US } // Returns the OptanonConsent cookie using its name as a parameter. Not parsed. function OneTrustGetCookie( name ) { const value = `; ${document.cookie}`; const parts = value.split(`; ${name}=`); if (parts.length === 2) { return decodeURIComponent( parts.pop().split(';').shift() ); } return; } // Parses the OptanonConsent Cookie values only. We are interested in the groups (which carry the consent). Returns an object with all the values of said cookie. function OneTrustGetConsentObject( OTcookie ) { let OTConsentObj = {}; OTcookie.split('&').forEach( ( pair ) => { if( pair !== '' ) { let splitpair = pair.split('='); let key = splitpair[0].charAt(0).toLowerCase() + splitpair[0].slice(1).split(' ').join(''); OTConsentObj[key] = splitpair[1]; } }); return OTConsentObj; } // Grabs the OptanonConsent cookie, turns this into an object (using OneTrustGetConsentObject), targets the 'groups' value, turns it into an array, removes the first element of the array. function OneTrustGetGroups ( cookie ) { let OTConsentArr = []; let OTConsentGroupsStr = OneTrustGetConsentObject(cookie).groups; OTConsentArr = OTConsentGroupsStr.split(","); OTConsentArr.shift(); return OTConsentArr; } // Sets the consent values based on the groups paramater, which is an array of consent categories that has been parsed from the OptanonConsent cookie. function OneTrustSetConsentValues( groups ){ // Create a json list with the values ​​of each consent. These values ​​will be updated if the user starts to toggle consent. // We then create a local storage item to read these values in other parts of the theme that require it. Converted to json in case we need to keep adding items. let json_consent = {}; json_consent[ "C0002" ] = groups[0].includes('2:1') ? true : false; json_consent[ "C0003" ] = groups[1].includes('3:1') ? true : false; json_consent[ "C0004" ] = groups[2].includes('4:1') ? true : false; let consent = JSON.stringify( json_consent ); localStorage.setItem( 'consent_one_trust_bdc', consent ); } // OneTrust event listener that fires whenever someone confirms cosent preferences (banner). Optanon.OnConsentChanged( function() { OTinitGroups = OnetrustActiveGroups; let OTConsentCookieChanged = OneTrustGetCookie( 'OptanonConsent' ); let OTConsentGroups = OneTrustGetGroups ( OTConsentCookieChanged ); OneTrustSetConsentValues( OTConsentGroups ); }); } </script> <script type="text/javascript" id="ot-inserter"> (function() { const otUrl = 'https://cdn.cookielaw.org/scripttemplates/otSDKStub.js'; const otScript = document.createElement('script'); otScript.async = true; otScript.type = 'text/javascript'; otScript.src = otUrl; otScript.setAttribute('id', 'onetrustSDK'); otScript.setAttribute('charset', 'UTF-8'); otScript.setAttribute('data-domain-script', '1744ffcc-f9fb-436a-97fd-6530afa75829'); const otNode = document.getElementById('ot-inserter'); otNode.parentNode.insertBefore(otScript, otNode.nextSibling); })(); </script> <script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <style id="typekit-font-loading"> @import url("https://p.typekit.net/p.css?s=1&k=ewj0jxz&ht=tk&f=12784.12094.12095&a=43290994&app=typekit&e=css"); @font-face { font-family:"franklin-gothic-urw-cond"; src:url("https://use.typekit.net/af/f4a030/000000000000000077359dfc/30/l?primer=fff1a989570eb474b8c22c57cc7199e63bfc7e911b750165d0199218f0b7e7cc&fvd=n5&v=3") format("woff2"),url("https://use.typekit.net/af/f4a030/000000000000000077359dfc/30/d?primer=fff1a989570eb474b8c22c57cc7199e63bfc7e911b750165d0199218f0b7e7cc&fvd=n5&v=3") format("woff"),url("https://use.typekit.net/af/f4a030/000000000000000077359dfc/30/a?primer=fff1a989570eb474b8c22c57cc7199e63bfc7e911b750165d0199218f0b7e7cc&fvd=n5&v=3") format("opentype"); font-display:swap;font-style:normal;font-weight:500;font-stretch:normal; } @font-face { font-family:"franklin-gothic-urw-cond"; src:url("https://use.typekit.net/af/a2031c/0000000000000000000118b9/27/l?primer=fff1a989570eb474b8c22c57cc7199e63bfc7e911b750165d0199218f0b7e7cc&fvd=n7&v=3") format("woff2"),url("https://use.typekit.net/af/a2031c/0000000000000000000118b9/27/d?primer=fff1a989570eb474b8c22c57cc7199e63bfc7e911b750165d0199218f0b7e7cc&fvd=n7&v=3") format("woff"),url("https://use.typekit.net/af/a2031c/0000000000000000000118b9/27/a?primer=fff1a989570eb474b8c22c57cc7199e63bfc7e911b750165d0199218f0b7e7cc&fvd=n7&v=3") format("opentype"); font-display:swap;font-style:normal;font-weight:700;font-stretch:normal; } </style> <style id="cls-ad-css"> [id="ad_lead1"] { min-height: 50px; } @media only screen and (min-width: 768px) { [id="ad_lead1"] { min-height: 90px; } } [id="ad_sectionfront1"], [id="ad_sectionfront2"], [id="ad_articlerail1"], [id="ad_articlerail2"] { position: relative; } [id="ad_sectionfront1"]::before, [id="ad_sectionfront2"]::before, [id="ad_articlerail1"]::before, [id="ad_articlerail2"]::before { content: "Advertisement"; color: #68686d; display: block; font-family:"franklin-gothic-urw-cond"; font-size: .875rem; font-weight: 700; padding-bottom: 0.25rem; text-align: center; text-transform: uppercase; } .m-real-estate-listing__content [id="ad_sectionfront1"]::before, .m-real-estate-listing__content [id="ad_sectionfront2"]::before, .m-real-estate-listing__content [id="ad_articlerail1"]::before, .m-real-estate-listing__content [id="ad_articlerail2"]::before { display: none; } @media only screen and (min-width: 768px) { .m-real-estate-listing__content [id="ad_sectionfront1"]::before, .m-real-estate-listing__content [id="ad_sectionfront2"]::before, .m-real-estate-listing__content [id="ad_articlerail1"]::before, .m-real-estate-listing__content [id="ad_articlerail2"]::before { display: block; } } .m-advert--600 { height: 600px; } .m-sports-bar { min-height: 59px; } </style> <link rel="preconnect" href="https://cdn.cookielaw.org" crossorigin /><link rel="preconnect" href="//ads.pubmatic.com" crossorigin /><link rel="dns-prefetch" href="https://c.amazon-adsystem.com"><link rel="preconnect" href="https://c.amazon-adsystem.com" crossorigin><link rel="preconnect" href="//securepubads.g.doubleclick.net" crossorigin /><link rel="preconnect" href="https://use.typekit.net" crossorigin /><link rel="preconnect" href="https://p.typekit.net" crossorigin /><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /><link rel="preload" as="font" href="https://fonts.googleapis.com/css2?family=Source+Serif+Pro:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap" as="style" /><link href="https://fonts.googleapis.com/css2?family=Source+Serif+Pro:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap" rel="stylesheet"><link rel="preload" as="font" href="https://use.typekit.net/af/f4a030/000000000000000077359dfa/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3" /><link rel="preload" as="font" href="https://use.typekit.net/af/f4a030/000000000000000077359dfa/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3" /><link rel="preload" as="font" href="https://use.typekit.net/af/a2031c/0000000000000000000118b9/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3" /><link rel="preload" as="font" href="https://use.typekit.net/af/a2031c/0000000000000000000118b9/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3" /><meta name='robots' content='noindex, follow' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <script type="text/javascript" id="pwt-inserter"> (function() { window.performance.mark('pwt start'); let setProfile = window.matchMedia('(min-width: 1024px)').matches; const mobileNonGDPR = '12624'; const desktopNonGDPR = '12623'; const mobileGDPR = '12502'; const desktopGDPR = '12501'; let reportingId = ''; function setPWTScript (PWTid) { var url = '//ads.pubmatic.com/AdServer/js/pwt/159928/' + reportingId; var profileVersionId = ''; var wtads = document.createElement('script'); wtads.async = true; wtads.type = 'text/javascript'; wtads.src = url + profileVersionId + '/pwt.js'; var node = document.getElementById('pwt-inserter'); node.parentNode.insertBefore(wtads, node.nextSibling); window.performance.mark('pwt end'); } let regionLock = false; let otherRegionApplies = localStorage.getItem( 'otherRegion' ); let ccpaApplies = localStorage.getItem( 'ccpaApplies' ); let gdprApplies = localStorage.getItem( 'gdprApplies' ); // This check is on subsequent page loads, since the localStorage item // has been already been set. We use a regionLock variable as a lock // to determine whether we need to run a Promise or not. if ( ( 'true' === otherRegionApplies ) || ( 'true' === ccpaApplies ) ){ reportingId = setProfile ? desktopNonGDPR : mobileNonGDPR; regionLock = true; } else if ( 'true' === gdprApplies ) { // It's GDPR, so load GDPR PWT Profile reportingId = setProfile ? desktopGDPR : mobileGDPR; regionLock = true; } // We are unsure what region the first time visitor is, so we need to run // a promise in order to wait until OneTrust is loaded, and two, which // region is this user from? if ( !regionLock ) { // On first load, it is not obvious which region the user is from. const CMPTIMEOUT = 5500; // 1000ms = 1 seconds. // This is the promise callback function, with a SetTimeout that runs every 30ms. function ensureRegionIsSet( CMPTIMEOUT ) { var start = Date.now(); return new Promise( waitForRegion ); // Set the promise object within the ensureRegionIsSet function // waitForRegion makes the decision whether the condition is met // or the timeout has been exceeded which means // this promise will be rejected. function waitForRegion(resolve, reject) { otherRegionApplies = localStorage.getItem( 'otherRegion' ); ccpaApplies = localStorage.getItem( 'ccpaApplies' ); gdprApplies = localStorage.getItem( 'gdprApplies' ); // We want OneTrust to be loaded and two, wait until the localStorage item is set to true for any region. if ( ( typeof OptanonWrapper === 'function') && ( ( 'true' === otherRegionApplies ) || ( 'true' === ccpaApplies ) || ( 'true' === gdprApplies ) )) { resolve("Region is determined"); } else if ( CMPTIMEOUT && ( Date.now() - start ) >= CMPTIMEOUT ) { reject( new Error("timeout") ); } else { setTimeout( waitForRegion.bind(this, resolve, reject), 30 ); } } } // This will run the promise. ensureRegionIsSet( CMPTIMEOUT ).then(function(){ // If it's 'other' or CCPA region, load non GDPR PWT profiles. if ( ( 'true' === otherRegionApplies ) || ( 'true' === ccpaApplies ) ) { reportingId = setProfile ? desktopNonGDPR : mobileNonGDPR; setPWTScript(reportingId); } else { // It's GDPR, load PWT Profile with those modules baked in. reportingId = setProfile ? desktopGDPR : mobileGDPR; setPWTScript(reportingId); } }); } else { setPWTScript(reportingId); } })(); </script> <script src="https://www.boston.com/wp-content/themes/bdc-2020/includes/gam/lazy-load-ad.min.js" type="text/javascript"></script> <script src="//securepubads.g.doubleclick.net/tag/js/gpt.js" type="text/javascript" id="securepubads.g" async></script> <script async src="https://c.amazon-adsystem.com/aax2/apstag.js"></script> <script> window.apstag = window.apstag || { init: function() { apstag._Q.push(["i", arguments, (new Date).getTime()]) }, fetchBids: function() { apstag._Q.push(["f", arguments, (new Date).getTime()]) }, setDisplayBids: function() {}, _Q: [] }; </script> <script id="boston-ads" type="text/javascript"> var PWT = {}; var adLazyLoading = false; var googletag = googletag || {}; var gptRan = false; window.initAdserverFlag = false; var FAILSAFE_TIMEOUT = 600; const DYNAMIC_NAME = ''; var adSlots = []; googletag.cmd = googletag.cmd || []; </script> <script id="boston-init-adserver" type="text/javascript"> // this function will act as a lock and will call the GPT API function initAdserver(forced) { if((forced === true && window.initAdserverFlag !== true) || (PWT.a9_BidsReceived && PWT.ow_BidsReceived)){ window.initAdserverFlag = true; PWT.a9_BidsReceived = PWT.ow_BidsReceived = false; if( 'undefined' !== typeof AdLazyLoader ) { adLazyLoading = true; var slotsToLazyLoad = []; for ( var prop in window.adSlots ) { if ( window.adSlots.hasOwnProperty( prop ) ) { slotsToLazyLoad.push( window.adSlots[ prop ] ); } } AdLazyLoader.registerSlots( slotsToLazyLoad ); } else { googletag.pubads().refresh(); } } } </script> <script id="boston-init-tam" type="text/javascript"> var initParams = { pubID: '3453', adServer: 'googletag', videoAdServer: 'DFP' }; /* * If we have CCPA user, pass the consent along. */ const ccpaApplies = localStorage.getItem( 'ccpaApplies' ); if( null !== ccpaApplies ) { //This is a CCPA user, pass the consent. let storageCCPA = localStorage.getItem( 'ccpaString' ); initParams.params = { us_privacy: storageCCPA }; } apstag.init(initParams); let slots = []; apstag.fetchBids({ slots: slots, timeout: 2e3 // Make Sure this timeout is less than or equal to OpenWrap TimeOut. }, function(bids) { googletag.cmd.push(function(){ apstag.setDisplayBids(); PWT.a9_BidsReceived = true; initAdserver(false); }); }); </script> <script id="boston-gam" type="text/javascript"> googletag.cmd.push(function() { var leaderMapping = googletag .sizeMapping() .addSize([0, 0], [[300, 250], [320, 50], [320, 100], [ 325, 508 ], [ 325, 204 ]]) .addSize([768, 200], [[728, 90], [300,250]]) .addSize([960, 200], [[728, 90], [620, 366], [300, 250]]) .addSize([1280, 200], [[970, 250], [970, 90], [728, 90], [620, 366], [300, 250]]) .build(); var leader1Mapping = googletag .sizeMapping() .addSize([0, 0], [320, 50]) .addSize([768, 200], [[768, 90], [728, 90]]) .addSize([1050, 200], [[970, 90], [728, 90]]) .build(); var leader2Mapping = googletag .sizeMapping() .addSize([0, 0], [[300, 250], [320, 100], [320, 50], [ 325, 508 ], [ 325, 204 ]]) .addSize([768, 200], [[728, 90], [300, 250]]) .addSize([1050, 200], [[728, 90], [620, 366], [300, 250]]) .build(); var railMapping = googletag .sizeMapping() .addSize([0, 0], []) .addSize([768, 200], []) .addSize([1050, 200], [[300, 250], [300, 600], [160,600]]) .build(); var videoMapping = googletag .sizeMapping() .addSize([0, 0], [[1, 1], [640, 480]]) .addSize([768, 200], [[1, 1], [640, 480]]) .addSize([1050, 200], [[1, 1], [640, 480]]) .build(); // common targetings googletag.pubads() .setTargeting( 'pgtype', '404' ) .setTargeting( 's1', 'boston.com' ) .setTargeting( 'pageurl', '_news_politics_2008_articles_2010_01_21_aides_say_coakley_will_seek_reelection_as_attorney_general' ) .setTargeting( 'environment', ['production']) .setTargeting( 'adunblock', ['undefined' !== typeof( window._bcm_il ) ? 'true' : 'false'] ); /* * * BlueConic Reference * https://support.blueconic.com/hc/en-us/articles/115004519689-doubleclick-for-publishers--targeting-only-#adjust-your-google-ad-manager-implementation-code-0-1 * */ if ( typeof Storage !== "undefined" ) { const targetingParamStr = localStorage.getItem("bcDFPTargetingParams"); if ( targetingParamStr ) { const targetingParameters = JSON.parse( targetingParamStr ); targetingParameters.forEach( function( param, index ) { googletag.pubads().setTargeting( param.key, param.value ); }); } } // Register event handlers to observe lazy loading behavior. (this for the QA instructions) googletag.pubads().addEventListener( 'slotRequested', function( event ) { updateSlotStatus( event.slot.getSlotElementId(), 'fetched' ); }); googletag.pubads().addEventListener( 'slotOnload', function( event ) { updateSlotStatus( event.slot.getSlotElementId(), 'rendered' ); }); googletag.pubads().addEventListener('slotRenderEnded', function(event) { var size = event.size; if(size === null) return; var slot = event.slot; var slotDiv = document.getElementById(slot.getSlotElementId()); if (size[0] > slotDiv.clientWidth) { slotDiv.style.width = size[0] + 'px'; } if (size[1] > slotDiv.clientHeight) { slotDiv.style.height = size[1] + 'px'; } }); googletag.pubads().enableSingleRequest(); googletag.pubads().disableInitialLoad(); googletag.enableServices(); /* The above code is a snippet of code that is used to call the Prebid.js library. */ if( typeof PWT.requestBids === 'function' ) { PWT.requestBids( PWT.generateConfForGPT(googletag.pubads().getSlots()), function(adUnitsArray) { PWT.addKeyValuePairsToGPTSlots(adUnitsArray); PWT.ow_BidsReceived = true; initAdserver(false); } ); } // No need to handle "else" part as we have A9 wrapper on page // OpenWrap code END here setTimeout(function() { initAdserver(true); // calling this function with forced mode set to true so that GPT API is always executed }, FAILSAFE_TIMEOUT); if ( (PWT.a9_BidsReceived && PWT.ow_BidsReceived) && ! adLazyLoading && 'undefined' !== typeof AdLazyLoader ) { // This is a fallback for if prebid has already returned and // attempted to register ads to lazy load before the ads have // all been defined. adLazyLoading = true; var slotsToLazyLoad = []; for ( var prop in window.adSlots ) { if ( window.adSlots.hasOwnProperty( prop ) ) { slotsToLazyLoad.push( window.adSlots[ prop ] ); } } AdLazyLoader.registerSlots( slotsToLazyLoad ); } // Checks that there is a video with ads available in the markup. const hasArcVideo = document.getElementsByClassName( 'a-video' ).length > 0 || ( typeof hasArcVideoPlayerAd !== 'undefined' && hasArcVideoPlayerAd ); /** * =================== * Arc Video * =================== */ if ( hasArcVideo ) { const params = [ 'sz=640x480', `iu=/61381659/boston.com${DYNAMIC_NAME}`, 'gdfp_req=1', 'env=vp', 'output=xml_vast3', 'unviewed_position_start=1', 'description_url=https%3A%2F%2Fboston.com', 'ciu_szs=300x250', `cust_params=${buildCustomParams()}`, ].join('&') window.PoWaSettings = window.PoWaSettings || {}; window.PoWaSettings.advertising = window.PoWaSettings.advertising || {}; if ( typeof hasArcVideoPlayerAd !== 'undefined' && hasArcVideoPlayerAd ) { /** * Calculates the formatted duration of a video in hours, minutes, and seconds. * * @param {Object} videoData - An object containing video data such as duration. * @param {number} videoData.duration - The duration of the video in milliseconds. * * @return {string} - The formatted duration of the video in the format hh:mm:ss. */ const getTime = (videoData) => { if ( !videoData.duration ) return ''; const duration = videoData.duration / 1000; const hours = Math.floor(duration / 3600); const minutes = Math.floor(duration / 60) % 60; const seconds = Math.floor(duration % 60); const hourDisplay = hours ? `${hours}:` : ''; const minuteDisplay = hours && minutes < 10 ? `0${minutes}:` : `${minutes}:`; const secondDisplay = seconds < 10 ? `0${seconds}` : seconds; return `${hourDisplay}${minuteDisplay}${secondDisplay}`; }; // Saves the listener interval ID. let intervalPoWaId; /** * In order to create the promo markup, the script needs to override values of a variable stored in the window object. * That is the reason to create an interval that listens to PoWaSettings as early in the execution as possible. */ function setWindowPoWaSettingsPromo() { if ( window.PoWaSettings ) { const playButtonSVG = `<svg class="bdc-arc-promo__play" height="20px" viewBox="0 0 24 40" width="12px"><title>Play</title><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="Play" transform="translate(0.916016, 0.000000)" fill="#FFFFFF" fill-rule="nonzero"><path d="M22.150346,18.47837 L19.03045,15.69057 L19.032738,15.68853 L2.182097,0.62952 C1.708623,0.20849 1.091049,-0.00203 0.473474,9.99999998e-06 C0.372832,9.99999998e-06 0.274478,0.00615 0.171549,0.01841 L0.002287,0.0368 L0.002287,25.268 L0,25.268 L0,39.9673 L0.176123,39.98365 C0.276765,39.99591 0.375119,40 0.473474,40 L0.480336,40 C1.093336,40 1.708623,39.79153 2.17981,39.37663 L22.150346,21.52778 C22.62382,21.10879 22.859414,20.55491 22.857126,20.00103 C22.859414,19.45124 22.62382,18.8994 22.150346,18.47837"></path></g></g></svg> `; // Play button SVG. const logoSVG = `<svg class="bdc-arc-promo__logo" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg47" version="1.1" viewBox="0 0 104 40" height="40" width="104"><title id="title2">BDC Logo</title><defs id="defs9"><path id="path-1" d="M 0.99414923,0.99002979 V 330.92546 H 79.979206 c 43.720834,0 66.151404,-22.04811 66.151404,-62.086 v 0 -62.09308 c 0,-20.20663 -10.56015,-37.62272 -30.3914,-45.42773 v 0 c 18.90343,-6.84179 28.54284,-23.34423 28.54284,-43.55086 v 0 -54.677601 c 0,-40.052053 -22.96884,-62.10015921 -66.165566,-62.10015921 v 0 z M 58.101082,49.739505 h 13.704814 c 10.014783,0 15.574618,6.863031 15.574618,18.733453 v 0 49.103602 c 0,12.06166 -5.38277,18.91052 -15.574618,18.91052 v 0 H 58.101082 Z m -0.19123,134.569235 h 12.401617 c 13.364849,0 18.917601,7.42963 18.733453,21.50983 v 0 57.45397 c 0,12.06166 -5.368604,18.90344 -15.567535,18.90344 v 0 H 57.909852 Z" /><path id="path-3" d="M 0.30715319,65.691033 V 271.43322 c 0,39.83958 29.27943181,65.61313 73.02151481,65.61313 v 0 c 43.749162,0 72.681552,-25.58232 72.681552,-65.61313 v 0 -205.742187 c 0,-39.867906 -28.74116,-65.62020709 -72.476157,-65.62020709 v 0 C 29.79198,0.07082591 0.49838315,25.823127 0.30715319,65.691033 Z M 57.768215,267.90609 V 69.388145 c 0,-12.422864 5.552752,-20.178302 15.560453,-20.178302 v 0 c 10.206014,0 15.213406,7.755438 15.213406,20.178302 v 0 198.517945 c 0,12.43703 -5.007392,20.21372 -15.213406,20.21372 v 0 c -10.007701,0 -15.560453,-7.77669 -15.560453,-20.21372 z" /><path id="path-5" d="m 0.74508222,65.322738 v 45.597722 c 0,26.50306 8.72575228,40.77448 25.77354878,54.11808 v 0 l 47.998721,39.83957 c 7.797933,7.43672 10.942603,12.99656 10.942603,26.70846 v 0 H 85.09166 v 36.31952 c 0,12.43703 -4.10082,20.21372 -14.278503,20.21372 v 0 c -10.007702,0 -14.646799,-7.77669 -14.646799,-20.21372 v 0 -59.67791 H 0.19264011 v 63.94163 c 0,40.04497 26.70136889,65.26608 70.25930389,65.26608 v 0 c 43.182556,0 72.100776,-25.22111 72.100776,-65.26608 v 0 -53.38857 c 0,-26.50306 -9.08696,-40.76031 -26.12768,-54.111 v 0 L 68.617553,124.63236 C 60.805455,117.22397 57.660785,111.64997 57.660785,97.93807 v 0 -28.549925 c 0,-12.422864 4.447867,-20.178302 14.632633,-20.178302 v 0 c 10.206014,0 14.271421,7.755438 14.271421,20.178302 v 0 53.756865 H 142.17026 V 65.322738 c 0,-40.052053 -26.68012,-65.25191209 -70.238054,-65.25191209 v 0 c -43.565018,0 -71.18712378,25.19985909 -71.18712378,65.25191209 z" /><path id="path-7" d="M 0.18414737,65.691033 V 271.43322 c 0,39.83958 29.28651463,65.61313 73.02859763,65.61313 v 0 c 43.734995,0 72.646135,-25.58232 72.646135,-65.61313 v 0 -205.742187 c 0,-39.867906 -29.08112,-65.62020709 -72.646135,-65.62020709 v 0 C 29.647727,0.07082591 0.18414737,25.823127 0.18414737,65.691033 Z M 57.638127,267.90609 V 69.388145 c 0,-12.422864 5.566917,-20.178302 15.574618,-20.178302 v 0 c 10.191848,0 15.192158,7.755438 15.192158,20.178302 v 0 198.517945 c 0,12.43703 -5.00031,20.21372 -15.192158,20.21372 v 0 c -10.007701,0 -15.574618,-7.77669 -15.574618,-20.21372 z" /><path id="path-9" d="m 1106.8983,130.37634 v 76.47073 c 0,14.81678 10.8788,24.38537 27.1475,24.38537 v 0 c 16.2546,0 26.9989,-9.49776 26.9989,-24.38537 v 0 -76.47073 c 0,-14.8097 -10.7443,-24.38536 -26.9989,-24.38536 v 0 c -16.2687,0 -27.1475,9.57566 -27.1475,24.38536 z m 21.354,75.16754 v -73.77935 c 0,-4.62494 2.0044,-7.51463 5.7935,-7.51463 v 0 c 3.7892,0 5.6449,2.88969 5.6449,7.51463 v 0 73.77935 c 0,4.62493 -1.8557,7.50046 -5.6449,7.50046 v 0 c -3.7183,0 -5.7935,-2.87553 -5.7935,-7.50046 z" /></defs><g style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1" transform="matrix(0.06987876,0,0,0.06987876,7.3493524,8.3563326)" id="BDC_Logo_2020_Full_White"><g transform="translate(27,22.137254)" id="COM"><g transform="translate(0,2.784991)" id="Group-3"><mask fill="white" id="mask-2"><use height="100%" width="100%" y="0" x="0" id="use11" xlink:href="#path-1" /></mask><g id="Clip-2" /><polygon style="fill:#ffffff" points="239.40125,424.18902 239.40125,-92.273531 -92.262328,-92.273531 -92.262328,424.18902 " mask="url(#mask-2)" id="Fill-1" /></g><g transform="translate(162.32589)" id="Group-6"><mask fill="white" id="mask-4"><use height="100%" width="100%" y="0" x="0" id="use17" xlink:href="#path-3" /></mask><g id="Clip-5" /><polygon style="fill:#ffffff" points="239.2667,430.30991 239.2667,-93.192734 -92.956407,-93.192734 -92.956407,430.30991 " mask="url(#mask-4)" id="Fill-4" /></g><g transform="translate(325.0142)" id="Group-9"><mask fill="white" id="mask-6"><use height="100%" width="100%" y="0" x="0" id="use23" xlink:href="#path-5" /></mask><g id="Clip-8" /><polygon style="fill:#ffffff" points="235.81628,430.69945 235.81628,-93.192734 -93.056755,-93.192734 -93.056755,430.69945 " mask="url(#mask-6)" id="Fill-7" /></g><polygon style="fill:#ffffff" points="616.20077,55.310787 616.20077,3.7778541 475.14388,3.7778541 475.14388,55.112475 517.05157,55.112475 517.05157,333.69912 574.4843,333.69912 574.4843,55.112475 574.4843,55.310787 " id="Fill-10" /><polygon style="fill:#ffffff" points="892.02236,333.69912 941.16138,333.69912 941.16138,3.7778541 889.24599,3.7778541 889.24599,108.49396 890.16672,177.82545 889.24599,177.82545 851.99156,3.7778541 793.2273,3.7778541 793.2273,333.69912 845.13561,333.69912 845.13561,196.37475 844.21487,132.42604 845.13561,132.42604 " id="Fill-14" /><g transform="translate(625.65744)" id="Group-13"><mask fill="white" id="mask-8"><use height="100%" width="100%" y="0" x="0" id="use31" xlink:href="#path-7" /></mask><g id="Clip-12" /><polygon style="fill:#ffffff" points="239.12244,430.30991 239.12244,-93.192734 -93.086495,-93.192734 -93.086495,430.30991 " mask="url(#mask-8)" id="Fill-11" /></g><polygon style="fill:#ffffff" points="1280.7886,333.59429 1356.1191,333.59429 1356.1191,3.6659492 973.64498,3.6659492 973.64498,56.119619 1304.9898,56.119619 1304.9898,281.13354 1241.9831,281.13354 1241.9831,324.98186 1142.8977,281.13354 973.64498,281.13354 973.64498,333.59429 1144.895,333.59429 1280.7886,393.72549 " id="Fill-15" /><polygon style="fill:#ffffff" points="1026.8791,231.25368 1026.8791,202.2009 997.84761,202.2009 997.84761,231.25368 " id="Fill-16" /><polygon style="fill:#ffffff" points="1188.5549,176.95146 1188.4203,152.70066 1188.7603,152.70066 1197.1036,231.23244 1213.2873,231.23244 1221.7651,152.70066 1222.1051,152.70066 1221.7651,176.95146 1221.7651,231.23244 1241.2706,231.23244 1241.2706,108.60445 1212.9473,108.60445 1205.4327,184.11904 1205.0927,184.11904 1197.5852,108.60445 1169.0565,108.60445 1169.0565,231.23244 1188.5549,231.23244 " id="Fill-23" /><mask fill="white" id="mask-10"><use height="100%" width="100%" y="0" x="0" id="use40" xlink:href="#path-9" /></mask><use height="100%" width="100%" y="0" x="0" style="fill:#ffffff" xlink:href="#path-9" id="Clip-21" /><path style="fill:#ffffff" id="Clip-18" d="m 1046.8804,130.37634 v 76.47073 c 0,14.81678 10.7514,24.38537 26.8005,24.38537 v 0 c 16.1979,0 26.1135,-9.49776 26.1135,-24.38537 v 0 -24.7324 h -20.8086 v 23.42921 c 0,4.62493 -1.5157,7.51463 -5.3049,7.51463 v 0 c -3.7254,0 -5.4394,-2.8897 -5.4394,-7.51463 v 0 -73.79352 c 0,-4.61077 1.6573,-7.50046 5.4394,-7.50046 v 0 c 3.7892,0 5.3049,2.88969 5.3049,7.50046 v 0 21.70106 h 20.8086 v -23.07508 c 0,-14.8097 -9.9156,-24.39953 -26.1135,-24.39953 v 0 c -16.0491,0 -26.8005,9.58983 -26.8005,24.39953 z" /></g></g></svg> `; // Play button SVG. window.PoWaSettings.promo = window.PoWaSettings.promo || { template: (settings) => { return ` <div class="bdc-arc-promo powa-click-promo-play" ${settings.image ? ` style="background-image: url('${settings.image}')"` : ''}> <div class="bdc-arc-promo__bar"> <div class="bdc-arc-promo__controls"> ${playButtonSVG} <span class="bdc-arc-promo__duration">${getTime(settings.videoData)}</span> </div> ${logoSVG} </div> </div> `; }, style: () => ` .powa-shot { background-position: center; background-size: cover; height: 100%; position: absolute; width: 100%; } .bdc-arc-promo { background-position: center; background-size: cover; display: flex; height: 100%; } .bdc-arc-promo__bar { display: flex; margin-top: auto; padding: 10px; width: 100%; } .bdc-arc-promo__controls { align-items: center; background: #0000007d; display: inline-flex; margin-bottom: -10px; margin-left: -10px; margin-top: auto; max-height: 40px; padding: 10px; } .bdc-arc-promo__controls .bdc-arc-promo__play { margin-right: 10px; } .bdc-arc-promo__logo { margin-left: auto; opacity: .5; } .bdc-arc-promo__duration { color: #FFFFFF; font-family: "franklin-gothic-urw-cond", arial; } .bdc-arc-promo, .bdc-arc-promo__controls svg { cursor: pointer; } `, }; stopWindowPoWaListening(); } } // Starts the listener interval. function startWindowPoWaListening() { intervalPoWaId = setInterval(setWindowPoWaSettingsPromo, 100); } // Stops the listener interval. function stopWindowPoWaListening() { clearInterval(intervalPoWaId); } // Loads the listener interval as soon as the site has started. window.addEventListener('DOMContentLoaded', startWindowPoWaListening); window.PoWaSettings.advertising.adBar = true; window.addEventListener('powaError', function () { document.getElementsByClassName('a-arc-video-advert')[0].remove(); }); } // Define the ad tag to be used by the player. window.PoWaSettings.advertising.adTag = function () { return `//pubads.g.doubleclick.net/gampad/ads?${params}`; }; /** * Builds the custom parameters needed for the ARC video preroll * * @return string - URL encoded string of parameters */ function buildCustomParams() { const getCurrentBreakPoint = function() { if ( window.outerWidth < 768 ) { return 'mobile'; } if ( window.outerWidth < 960 ) { return 'tablet'; } return 'desktop'; }; const getTestQueryString = function() { var queryString = window.location.search; var regex = /[\?\&]test=([^&]*)/; return queryString.match( regex ) ? queryString.match( regex )[1] : ''; }; const customParams = [ 'pos=preroll', 'breakpoint=' + getCurrentBreakPoint(), 'test=' + getTestQueryString(), ]; googletag .pubads() .getTargetingKeys() .forEach((key) => customParams.push(`${key}=${googletag.pubads().getTargeting(key)}`)); return encodeURIComponent( customParams.join('&') .replace('pgtype=post', 'pgtype=article') // Match legacy ad call format ); }; } }); //googletag.cmd.push /* * Updating the status of the slot. * This is only to check behaivor on branch env */ function updateSlotStatus( slotId, state ) { var elem = document.getElementById( slotId ); elem.className = 'activated'; console.log( slotId + ' status: ' + state ); } </script> <!-- This site is optimized with the Yoast SEO Premium plugin v23.0 (Yoast SEO v23.0) - https://yoast.com/wordpress/plugins/seo/ --> <title>Page not found | Boston.com</title> <meta property="og:locale" content="en_US" /> <meta property="og:title" content="Page not found | Boston.com" /> <meta property="og:site_name" content="Boston.com" /> <script type="application/ld+json" class="yoast-schema-graph">{ "@context": "https://schema.org", "@graph": [ { "@type": "WebSite", "@id": "https://www.boston.com/#website", "url": "https://www.boston.com/", "name": "Boston.com", "description": "Boston.com", "publisher": { "@id": "https://www.boston.com/#organization" }, "potentialAction": [ { "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://www.boston.com/?s={search_term_string}" }, "query-input": "required name=search_term_string" } ], "inLanguage": "en-US" }, { "@type": "NewsMediaOrganization", "@id": "https://www.boston.com/#organization", "name": "Boston.com", "url": "https://www.boston.com", "logo": "https://bdc2020.o0bc.com/wp-content/uploads/2021/05/Boston.com-Logo-609cb231cf4d6.png", "image": { "@id": "https://www.boston.com/#/schema/logo/image/" }, "sameAs": [ "https://www.facebook.com/boston", "https://x.com/BostonDotCom", "https://www.instagram.com/boston/", "https://www.youtube.com/channel/UC8IkdxFyPXgw11n4Ew0osHQ" ], "address": "1 Exchange Place, Boston, MA 02109", "areaServed": [ "Boston", "Massachusetts", "New England" ], "description": "Boston.com is the region’s leading digital destination for information on all things Boston. Millions of visitors turn to our site for the best coverage of breaking news, things to do, sports, and entertainment in Greater Boston and beyond.", "email": "tips@boston.com", "foundingDate": "1995-10-30", "legalName": "Boston Globe Media Partners", "location": "Boston", "masthead": "https://www.boston.com/contact-us/" } ] }</script> <!-- / Yoast SEO Premium plugin. --> <link rel='dns-prefetch' href='//apps.bostonglobe.com' /> <link rel='dns-prefetch' href='//static.chartbeat.com' /> <link rel='dns-prefetch' href='//cdn.blueconic.net' /> <link rel='dns-prefetch' href='//buy.tinypass.com' /> <link rel="alternate" type="application/rss+xml" title="Boston.com &raquo; Feed" href="https://www.boston.com/feed/" /> <link rel='stylesheet' id='wp-block-library-css' href='https://bdc2020.o0bc.com/wp-includes/css/dist/block-library/style.min.css?ver=6.7.1' type='text/css' media='all' /> <style id='co-authors-plus-coauthors-style-inline-css' type='text/css'> .wp-block-co-authors-plus-coauthors.is-layout-flow [class*=wp-block-co-authors-plus]{display:inline} </style> <style id='co-authors-plus-avatar-style-inline-css' type='text/css'> .wp-block-co-authors-plus-avatar :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-avatar :where(img){vertical-align:middle}.wp-block-co-authors-plus-avatar:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-avatar.aligncenter{display:table;margin-inline:auto} </style> <style id='co-authors-plus-image-style-inline-css' type='text/css'> .wp-block-co-authors-plus-image{margin-bottom:0}.wp-block-co-authors-plus-image :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-image :where(img){vertical-align:middle}.wp-block-co-authors-plus-image:is(.alignfull,.alignwide) :where(img){width:100%}.wp-block-co-authors-plus-image:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-image.aligncenter{display:table;margin-inline:auto} </style> <link rel='stylesheet' id='wp_blocks_embed_weather_podcast-cgb-style-css-css' href='https://bdc2020.o0bc.com/wp-content/plugins/wp-block-embed-weather-podcast/dist/blocks.style.build.css' type='text/css' media='all' /> <style id='elasticpress-related-posts-style-inline-css' type='text/css'> .editor-styles-wrapper .wp-block-elasticpress-related-posts ul,.wp-block-elasticpress-related-posts ul{list-style-type:none;padding:0}.editor-styles-wrapper .wp-block-elasticpress-related-posts ul li a>div{display:inline} </style> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--red: #bb2525;--wp--preset--color--background-black: #1a1a1a;--wp--preset--color--line-gray: #e1e1e1;--wp--preset--color--blue: #2c74de;--wp--preset--color--light-gray: #f1f1f1;--wp--preset--color--off-white: #fbf1e7;--wp--preset--color--mid-gray: #b6b6b6;--wp--preset--color--dark-gray: #68686d;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='tenup-block-library-frontend-accordion-styles-css' href='https://bdc2020.o0bc.com/wp-content/plugins/block-library/dist/css/frontend-accordion-styles.css?ver=d899f5cabdebab30a4d631759350a871' type='text/css' media='all' /> <link rel='stylesheet' id='tablepress-default-css' href='https://bdc2020.o0bc.com/wp-content/plugins/tablepress-premium/css/build/default.css?ver=2.4.4-BGMP' type='text/css' media='all' /> <style id='tablepress-default-inline-css' type='text/css'> .tablepress{--style-variation:custom;--head-text-color:#7e7e7e;--head-bg-color:#fff;--head-active-bg-color:#d0d0d0;--odd-bg-color:#fff;--hover-bg-color:#d0d0d0;border:1px solid grey;border-collapse:collapse}.tablepress thead th{text-transform:uppercase;font-weight:700;border-left:1px solid grey;border-right:1px solid grey;border-bottom:3px solid grey}.tablepress tbody td a{color:var(--c-red);font-weight:700;text-decoration:none}.tablepress tbody td a:hover{color:var(--c-red);font-weight:700;text-decoration:underline}.tablepress tbody td{border-left:1px solid grey;border-right:1px solid grey}.tablepress td,.tablepress th,.dt-search,.dt-length,.dt-info,.dt-paging a,.dt-buttons{font-family:var(--f-primary)}.tablepress img{max-width:100%;height:auto}.tablepress-id-109 .column-1,.tablepress-id-109 .column-4{background-color:#d3dff2}.tablepress-id-109 .column-2,.tablepress-id-109 .column-6{background-color:#e6e6e6}.tablepress-id-121 .column-2{background-color:#1a5276}.tablepress-id-121 .column-3{background-color:#3498db}.tablepress-id-121 .column-4{background-color:#85c1e9}.tablepress-id-121 .column-5{background-color:#d6eaf8} </style> <link rel='stylesheet' id='tablepress-datatables-buttons-css' href='https://bdc2020.o0bc.com/wp-content/plugins/tablepress-premium/modules/css/build/datatables.buttons.css?ver=2.4.4-BGMP' type='text/css' media='all' /> <link rel='stylesheet' id='tablepress-datatables-columnfilterwidgets-css' href='https://bdc2020.o0bc.com/wp-content/plugins/tablepress-premium/modules/css/build/datatables.columnfilterwidgets.css?ver=2.4.4-BGMP' type='text/css' media='all' /> <link rel='stylesheet' id='tablepress-responsive-tables-css' href='https://bdc2020.o0bc.com/wp-content/plugins/tablepress-premium/modules/css/build/responsive-tables.css?ver=2.4.4-BGMP' type='text/css' media='all' /> <link rel='stylesheet' id='global-css' href='https://bdc2020.o0bc.com/wp-content/themes/bdc-2020/dist/css/global.css?ver=476348999e4a910c7553fd27c05ad0c1' type='text/css' media='all' /> <link rel='stylesheet' id='base-css' href='https://bdc2020.o0bc.com/wp-content/themes/bdc-2020/dist/css/base.css?ver=d64ef26a96a53d14751b910ee35561c9' type='text/css' media='all' /> <link rel='stylesheet' id='blocks-css' href='https://bdc2020.o0bc.com/wp-content/themes/bdc-2020/dist/css/blocks.css?ver=abad910b7fadab2ee42437f732afcc64' type='text/css' media='all' /> <link rel='stylesheet' id='molecules-css' href='https://bdc2020.o0bc.com/wp-content/themes/bdc-2020/dist/css/molecules.css?ver=a6932637b153a62b781bd9c1f40e3fb6' type='text/css' media='all' /> <link rel='stylesheet' id='organisms-css' href='https://bdc2020.o0bc.com/wp-content/themes/bdc-2020/dist/css/organisms.css?ver=dba581c056b7c76aa855f1c95db3b8be' type='text/css' media='all' /> <link rel='stylesheet' id='styles-css' href='https://bdc2020.o0bc.com/wp-content/themes/bdc-2020/dist/css/style.css?ver=6ad3c36875e9ee4ab232b1b9e5a56c65' type='text/css' media='all' /> <link rel='stylesheet' id='bdc-real-estate-css' href='https://bdc2020.o0bc.com/wp-content/themes/bdc-2020/dist/css/real-estate.css?ver=b300d7d969043b3ff84dbf12c9f98dd1' type='text/css' media='all' /> <script type="text/javascript" src="https://apps.bostonglobe.com/common/js/enter-view/enter-view-0.1.0.min.js" id="enter-view--script-js"></script> <script type="text/javascript" src="https://apps.bostonglobe.com/common/js/pym/pym-1.3.2.min.js" id="pym--script-js"></script> <script type="text/javascript" id="chartbeat_head_js-js-extra"> /* <![CDATA[ */ var chartbeat_config = {"domain":"boston.com","uid":"8544","useCanonical":"1","oneTrusActive":"1","useAB":"","authors":"","sections":"error 404","title":"Boston.com | 404 page"}; /* ]]> */ </script> <script type="text/javascript" src="https://bdc2020.o0bc.com/wp-content/plugins/bdc-chartbeat/js/bdc.chartbeat-head.js?ver=1734382689" id="chartbeat_head_js-js"></script> <script type="text/javascript" src="//static.chartbeat.com/js/chartbeat_mab.js?ver=6.7.1" id="chartbeat_mab-js"></script> <script type="text/javascript" src="https://bdc2020.o0bc.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" id="ua-wn-js-extra"> /* <![CDATA[ */ var uaWnSettings = {"prompt":{"enabled":true,"prompt_views":2,"prompt_again_views":8}}; /* ]]> */ </script> <script type="text/plain" src="https://bdc2020.o0bc.com/wp-content/plugins/urban-airship-web-push-notifications/assets/js/notification.js?ver=1.3.4" id="ua-wn" class="optanon-category-C0003"></script><script type="text/plain" src="//cdn.blueconic.net/bostonglobemedia.js" id="blueconic_js" class="optanon-category-C0004"></script> <script type="text/plain" class="optanon-category-C0003"> !(function(o,n,t){t=o.createElement(n),o=o.getElementsByTagName(n)[0],t.async=1,t.src="https://fallaciousfifth.com/v2ojfJQXItusfVrUEda5saSZ5uxEMzujCipb6jl01lNcP_fOujjlpKPeM-wc-_90A",o.parentNode.insertBefore(t,o)})(document,"script"),(function(o,n){o[n]=o[n]||function(){(o[n].q=o[n].q||[]).push(arguments)}})(window,"admiral");!(function(c,e,o,t,n){function r(o,t){(function n(){try{return 0<(localStorage.getItem("v4ac1eiZr0")||"").split(",")[4]}catch(o){}return!1})()&&(t=c[e].pubads())&&t.setTargeting("admiral-engaged","true")}(n=c[e]=c[e]||{}).cmd=n.cmd||[],typeof n.pubads===o?r():typeof n.cmd.unshift===o?n.cmd.unshift(r):n.cmd.push(r)})(window,"googletag","function"); </script> <script type="text/javascript"> /* * This is checking if the user has opted out of analytics. * OptanonWrapper plugins/bdc-functionality/includes/BDC/Theme/OneTrustCMP.php:220 */ var ConsentOnetrust = localStorage.getItem( 'consent_one_trust_bdc' ); var CleanCreative = document.createElement( 'script' ); CleanCreative.setAttribute( 'src','//cadmus.script.ac/dz9qn8fh4jznm/script.js' ); CleanCreative.setAttribute( 'type','text/javascript' ); /* * The above code is checking if the user has given consent for the category "Marketing" * and if the user has given consent, then the script is appended to the head tag. */ if ( typeof OptanonWrapper === 'function' && ConsentOnetrust && JSON.parse( ConsentOnetrust ).C0003 === true ) { document.getElementsByTagName( 'head' )[0].appendChild( CleanCreative ); } if ( typeof OptanonWrapper !== 'function' ) { document.getElementsByTagName( 'head' )[0].appendChild( CleanCreative ); } </script> <!-- REGI ENV = PRD--><script type="text/javascript"> //Registration base URL regiBaseUrl = 'http://tomcat.boston.com/profiles/outside/REST/'; </script><link rel='manifest' href='https://www.boston.com/wp-content/themes/bdc-2020/manifest.json' /><!-- There is no amphtml version available for this URL. --> <!-- The following line must be placed in the head tag --> <script type="text/javascript" src="https://p.teads.tv/teads-fellow.js" async="true"></script> <script> if (typeof(window.bgmpGdpr) !== 'undefined' && !window.bgmpGdpr.isOptedOut()) { window.teads_e = window.teads_e || []; window.teads_adv_id = 39960;} </script> <!-- Start of global snippet: Please do not remove Place this snippet between the <head> and </head> tags on every page of your site. --> <!-- Global site tag (gtag.js) - Google Marketing Platform --> <script async src="https://www.googletagmanager.com/gtag/js?id=DC-11164343"></script> <script> const onetrustLibrary = 1; const onetrustConsent = localStorage.getItem('consent_one_trust_bdc'); window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push( arguments ); } gtag( 'js', new Date() ); /* * Setting the default consent for the user. * By default we granted */ gtag( 'consent', 'default', { 'analytics_storage': 'granted' } ); gtag( 'consent', 'default', { 'ad_storage': 'granted' } ); if ( 1 === onetrustLibrary && onetrustConsent && JSON.parse(onetrustConsent).C0002 === false ) { gtag( 'consent', 'update', { 'analytics_storage': 'denied' } ); } if ( 1 === onetrustLibrary && onetrustConsent && JSON.parse(onetrustConsent).C0004 === false ) { gtag( 'consent', 'update', { 'ads_storage': 'denied' } ); } gtag( 'config', 'DC-11164343' ); </script> <!-- End of global snippet: Please do not remove --> <link rel="icon" href="https://bdc2020.o0bc.com/wp-content/uploads/2021/05/BDC_Logo_2020_Social_WhiteBG-609c79a967eee-150x150.png" sizes="32x32" /> <link rel="icon" href="https://bdc2020.o0bc.com/wp-content/uploads/2021/05/BDC_Logo_2020_Social_WhiteBG-609c79a967eee-200x200.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://bdc2020.o0bc.com/wp-content/uploads/2021/05/BDC_Logo_2020_Social_WhiteBG-609c79a967eee-200x200.png" /> <meta name="msapplication-TileImage" content="https://bdc2020.o0bc.com/wp-content/uploads/2021/05/BDC_Logo_2020_Social_WhiteBG-609c79a967eee.png" /> <style type="text/css" id="wp-custom-css"> .m-gforms-poll-block .gpoll_button { display: none } </style> </head> <body class="error404 wp-embed-responsive site-body "> <script src="https://www.boston.com/wp-content/plugins/bdc-chartbeat/js/bdc.chartbeat-body.js"></script> <!-- Begin Comscore Tag --> <script async> // Ensure _comscore is globally available window._comscore = window._comscore || []; function loadComscoreScript(bypassConsent) { var options = { enableFirstPartyCookie: true }; if (bypassConsent) { options.bypassUserConsentRequirementFor1PCookie = true; } window._comscore.push({ c1: "2", c2: "6035042", options: options }); (function() { var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true; s.src = "https://sb.scorecardresearch.com/cs/6035042/beacon.js"; s.onerror = function() { console.error("Failed to load Comscore script."); }; el.parentNode.insertBefore(s, el); })(); } // Check consent before loading Comscore script function checkConsent() { const timeoutDuration = 7000; // Timeout duration in milliseconds (e.g., 5000ms = 5 seconds) const checkInterval = 30; // Interval duration in milliseconds (e.g., 100ms) const startTime = Date.now(); function checkValues() { var otherRegionApplies = localStorage.getItem('otherRegion'); var ccpaApplies = localStorage.getItem('ccpaApplies'); var gdprApplies = localStorage.getItem('gdprApplies'); if (otherRegionApplies === 'true') { loadComscoreScript(true); // Bypass consent if other region applies } else if (gdprApplies === 'true') { loadComscoreScript(false); // Load without bypass if GDPR applies } else if (ccpaApplies === 'true') { loadComscoreScript(false); // Load without bypass if CCPA applies } else if (Date.now() - startTime < timeoutDuration) { setTimeout(checkValues, checkInterval); // Check again after the interval } else { loadComscoreScript(true); // Bypass consent if timeout is reached } } checkValues(); } // Ensure OneTrust is loaded before checking consent function ensureOneTrustLoaded(callback) { var interval = setInterval(function() { if (typeof OneTrust !== 'undefined' && typeof OptanonWrapper !== 'undefined') { clearInterval(interval); callback(); } }, 10); // Check every 10ms // Timeout to avoid infinite loop in case OneTrust never loads setTimeout(function() { clearInterval(interval); callback(); }, 7000); // 7 seconds timeout } // Flag to ensure checkConsent is called only once var checkConsentCalled = false; ensureOneTrustLoaded(function() { if (!checkConsentCalled) { checkConsentCalled = true; checkConsent(); } }); </script> <!-- End Comscore Tag --> <!-- Facebook Pixel Code --> <script> var consent = 'grant'; /* The above code is parsing the JSON data from the local storage and storing it in a variable. */ const onetrustStorageConsent = JSON.parse(localStorage.getItem( 'consent_one_trust_bdc' ) ); if ( ( onetrustStorageConsent !== null ) ) { /* Checking to see if the user has consented to the use of cookies. * If they have not, it is deleting the cookie. * This will comment for now, until further notice. */ //if ( onetrustStorageConsent.C0002 === false ) { // document.cookie = '_fbp=;expires=Thu, 01 Jan 2010 00:00:00 UTC; path=/; domain=.boston.com'; //} /* Checking if the user has given consent for the cookie C0002. * If the user has given consent, the variable consent will be set to 'grant'. * If the user has not given consent,the variable consent will be set to 'revoke'. * Documentation https://developers.facebook.com/docs/meta-pixel/implementation/gdpr */ if ( onetrustStorageConsent.C0002 !== true ) { consent = 'revoke'; } } !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('consent', consent); fbq('init', '989222871864976'); fbq('track', 'PageView'); </script> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=989222871864976&ev=PageView&noscript=1" /></noscript> <!-- End Facebook Pixel Code --> <header class="o-site-header" id="site-header" aria-label="Site Header"> <section class="o-site-header__advert" aria-label="Leaderboard Advert"> <div id="js-advert--lead1" class="m-advert m-advert--lead1 m-advert--with-gray m-advert--header "><div class="m-advert__container"><div id="ad_lead1"><script type="type/javascript">googletag.cmd.push(function() { googletag.display("ad_lead1") })</script></div></div></div> </section> <a class="screen-reader-text" href="#site-content"> Skip to Main Content </a> <div class="o-site-header__masthead"> <div class="m-grid m-grid-container"> <div class="m-panel-menu"> <button aria-label="Toggle Panel menu" class="a-button a-button--with-icon m-panel-navigation__toggle" id="js-panel-navigation-trigger" aria-haspopup="true" aria-controls="js-panel-navigation" aria-expanded="false"> <svg class="a-icon m-panel-navigation__open" aria-hidden="true" width="19" height="15"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#menu"></use><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#menu"></use></svg><span class="screen-reader-text">Open</span> <svg class="a-icon m-panel-navigation__close" aria-hidden="true" width="19" height="15"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#close-symbol"></use><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#close-symbol"></use></svg><span class="screen-reader-text">Close</span> <span class="a-hide-mobile">Menu</span> </button> <nav id="js-panel-navigation" class="m-panel-navigation" aria-label="Mobile Navigation" aria-hidden="true"> <div class="m-panel-navigation__wrap" tabindex="-1"> <div class="m-panel-navigation_expose"> <ul class="a-list a-list--no-style m-panel-navigation__list"> <li class="m-panel-navigation__list-item menu-item"> <a href="https://www.boston.com"> Home </a> </li> </ul> <div class="menu-bdc-main-container"><ul id="panel-primary-nav" class="a-list a-list--no-style m-panel-navigation__menu"><li id="menu-item-22274386" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-22274386"><a href="https://www.boston.com/category/news/">News</a> <ul class="sub-menu"> <li id="menu-item-22667248" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22667248"><a href="https://www.boston.com/tag/local-news/">Local News</a></li> <li id="menu-item-22667254" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22667254"><a href="https://www.boston.com/tag/national-news/">National News</a></li> <li id="menu-item-22667253" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22667253"><a href="https://www.boston.com/tag/politics/">Politics</a></li> <li id="menu-item-32490719" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-32490719"><a href="https://www.boston.com/tag/massachusetts-obituaries/">Obituaries</a></li> <li id="menu-item-22667264" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22667264"><a href="https://www.boston.com/tag/crime/">Crime</a></li> <li id="menu-item-32439321" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-32439321"><a href="https://www.boston.com/tag/karen-read/">Karen Read</a></li> <li id="menu-item-28992764" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-28992764"><a href="https://www.boston.com/tag/traffic/">Traffic</a></li> </ul> </li> <li id="menu-item-22274480" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-22274480"><a href="https://www.boston.com/category/sports/">Sports</a> <ul class="sub-menu"> <li id="menu-item-22497525" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22497525"><a href="https://www.boston.com/tag/boston-celtics/">Celtics</a></li> <li id="menu-item-32255017" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-32255017"><a href="https://www.boston.com/tag/jayson-tatum/">Jayson Tatum</a></li> <li id="menu-item-32255024" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-32255024"><a href="https://www.boston.com/tag/jaylen-brown/">Jaylen Brown</a></li> <li id="menu-item-22497515" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22497515"><a href="https://www.boston.com/tag/new-england-patriots/">Patriots</a></li> <li id="menu-item-22497530" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22497530"><a href="https://www.boston.com/tag/boston-bruins/">Bruins</a></li> <li id="menu-item-22497520" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22497520"><a href="https://www.boston.com/tag/boston-red-sox/">Red Sox</a></li> <li id="menu-item-22672278" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672278"><a href="https://www.boston.com/tag/new-england-revolution/">Revs</a></li> </ul> </li> <li id="menu-item-22359876" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-22359876"><a href="https://www.boston.com/category/weather/">Weather</a> <ul class="sub-menu"> <li id="menu-item-23008219" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-23008219"><a href="https://www.boston.com/tag/weather-maps/">Maps</a></li> <li id="menu-item-23008224" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-23008224"><a href="https://www.boston.com/tag/storms/">Storms</a></li> <li id="menu-item-23008199" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-23008199"><a href="https://www.boston.com/tag/climate-change/">Climate Change</a></li> <li id="menu-item-23008255" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-23008255"><a href="https://www.boston.com/tag/snow/">Snow</a></li> </ul> </li> <li id="menu-item-25890194" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-25890194"><a href="https://www.boston.com/category/real-estate/">Real Estate</a> <ul class="sub-menu"> <li id="menu-item-25890218" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890218"><a href="https://www.boston.com/tag/home-improvement/">Reno</a></li> <li id="menu-item-25890221" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890221"><a href="https://www.boston.com/tag/new-developments/">Developments</a></li> <li id="menu-item-25890196" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890196"><a href="https://www.boston.com/tag/real-estate-news/">News</a></li> <li id="menu-item-25890197" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890197"><a href="https://www.boston.com/tag/home-buying/">Buying</a></li> <li id="menu-item-25890200" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890200"><a href="https://www.boston.com/tag/open-houses/">Open Houses</a></li> <li id="menu-item-25890207" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890207"><a href="https://www.boston.com/tag/renting/">Renting</a></li> <li id="menu-item-25890215" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890215"><a href="https://www.boston.com/tag/luxury-homes/">Luxury</a></li> </ul> </li> <li id="menu-item-22274495" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-22274495"><a href="https://www.boston.com/category/food/">Food</a> <ul class="sub-menu"> <li id="menu-item-22672249" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672249"><a href="https://www.boston.com/tag/restaurants/">Restaurants</a></li> <li id="menu-item-22672303" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672303"><a href="https://www.boston.com/tag/food-news/">News</a></li> <li id="menu-item-22672295" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672295"><a href="https://www.boston.com/tag/restaurant-reviews/">Reviews</a></li> <li id="menu-item-22672298" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672298"><a href="https://www.boston.com/tag/food-events/">Events</a></li> <li id="menu-item-22672251" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672251"><a href="https://www.boston.com/tag/breweries-bars/">Breweries &amp; Bars</a></li> <li id="menu-item-22672285" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672285"><a href="https://www.boston.com/tag/restaurant-closings/">Closings</a></li> <li id="menu-item-22672290" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672290"><a href="https://www.boston.com/tag/restaurant-openings/">Openings</a></li> <li id="menu-item-32256222" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-32256222"><a href="https://www.boston.com/newsletters-food-restaurants-bars/">Sign up for The Dish 🍽️</a></li> </ul> </li> <li id="menu-item-28296783" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-28296783"><a href="https://www.boston.com/category/love-letters/">Love Letters</a> <ul class="sub-menu"> <li id="menu-item-28296788" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-28296788"><a href="https://www.boston.com/latest-love-letter">Latest Post</a></li> <li id="menu-item-28297436" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28297436"><a href="https://www.boston.com/question-for-meredith/">Send Letter</a></li> <li id="menu-item-28297426" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28297426"><a href="https://www.boston.com/meredith-goldstein/">About</a></li> <li id="menu-item-28297421" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28297421"><a href="https://www.boston.com/love-letters-podcast/">Podcast</a></li> <li id="menu-item-28297431" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28297431"><a href="https://www.boston.com/cant-help-myself/">Book</a></li> <li id="menu-item-32453509" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-32453509"><a href="https://www.boston.com/love-letters-newsletter/">Newsletter</a></li> </ul> </li> <li id="menu-item-22274485" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-22274485"><a href="https://www.boston.com/category/culture/">Culture</a> <ul class="sub-menu"> <li id="menu-item-22672218" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672218"><a href="https://www.boston.com/tag/arts/">Arts</a></li> <li id="menu-item-22672229" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672229"><a href="https://www.boston.com/tag/entertainment/">Entertainment</a></li> <li id="menu-item-22672234" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672234"><a href="https://www.boston.com/tag/movies/">Movies</a></li> <li id="menu-item-22672235" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672235"><a href="https://www.boston.com/tag/tv/">TV</a></li> <li id="menu-item-24669784" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24669784"><a href="https://www.boston.com/tag/streaming/">Streaming</a></li> <li id="menu-item-22672238" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672238"><a href="https://www.boston.com/tag/celebs/">Celebs</a></li> <li id="menu-item-22672241" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672241"><a href="https://www.boston.com/tag/music/">Music</a></li> </ul> </li> <li id="menu-item-30874078" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-30874078"><a href="https://www.boston.com/category/things-to-do/">Things To Do</a> <ul class="sub-menu"> <li id="menu-item-31587664" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31587664"><a href="https://www.boston.com/newsletters-things-to-do/">Newsletter</a></li> </ul> </li> <li id="menu-item-22360356" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-22360356"><a href="https://www.boston.com/category/travel/">Travel</a> <ul class="sub-menu"> <li id="menu-item-22993850" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22993850"><a href="https://www.boston.com/tag/visiting-boston/">Visiting Boston</a></li> <li id="menu-item-24976055" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24976055"><a href="https://www.boston.com/tag/cape-cod-travel/">Cape Cod</a></li> <li id="menu-item-22672269" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672269"><a href="https://www.boston.com/tag/new-england-travel/">New England</a></li> <li id="menu-item-24976054" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24976054"><a href="https://www.boston.com/tag/flights/">Flights</a></li> <li id="menu-item-24676057" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24676057"><a href="https://www.boston.com/tag/outdoors/">Outdoors</a></li> <li id="menu-item-28323763" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-28323763"><a href="https://www.boston.com/tag/skiing/">Skiing</a></li> <li id="menu-item-32256227" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-32256227"><a href="https://www.boston.com/newsletters-scenic-six/">Sign up for Scenic Six</a></li> </ul> </li> <li id="menu-item-24270121" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-24270121"><a href="https://www.boston.com/category/community/">Community</a> <ul class="sub-menu"> <li id="menu-item-24063234" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24063234"><a href="https://www.boston.com/tag/tell-us/">Tell Us</a></li> <li id="menu-item-28204065" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-28204065"><a href="https://www.boston.com/tag/neighborhoods/">Neighborhoods</a></li> <li id="menu-item-24063232" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24063232"><a href="https://www.boston.com/tag/readers-say/">Readers Say</a></li> <li id="menu-item-24063239" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24063239"><a href="https://www.boston.com/tag/book-club/">Book Club</a></li> <li id="menu-item-28991660" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-28991660"><a href="https://www.boston.com/tag/wickedpedia/">Wickedpedia</a></li> <li id="menu-item-26377957" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-26377957"><a href="https://www.boston.com/tag/the-b-side/">The B-Side</a></li> <li id="menu-item-24063244" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24063244"><a href="https://www.boston.com/tag/cocktail-club/">Cocktail Club</a></li> </ul> </li> <li id="menu-item-22360995" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-has-children menu-item-22360995 menu-item-hamburger-only"><a href="https://www.boston.com/">Extra</a> <ul class="sub-menu"> <li id="menu-item-22361025" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361025 menu-item-hamburger-only"><a href="https://www.boston.com/customer-support/">Customer Support</a></li> <li id="menu-item-22360999" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22360999 menu-item-hamburger-only"><a href="https://www.bostonglobemedia.com/">Advertise</a></li> <li id="menu-item-22361010" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361010 menu-item-hamburger-only"><a href="https://advertising.bostonglobemedia.com/">Classified Ads</a></li> <li id="menu-item-22361055" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361055 menu-item-hamburger-only"><a href="https://bostonglobemediapartners.applytojob.com/apply">Careers</a></li> <li id="menu-item-22361026" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361026 menu-item-hamburger-only"><a href="https://www.boston.com/contact-us/">Contact Us</a></li> <li id="menu-item-22361019" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361019 menu-item-hamburger-only"><a href="https://www.legacy.com/obituaries/bostonglobe/">Obituaries</a></li> <li id="menu-item-28173757" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-28173757"><a href="https://www.boston.com/newsletter-signup/">Newsletters</a></li> <li id="menu-item-25927243" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-25927243"><a href="/tag/massachusetts-lottery/">Mass. Lottery</a></li> <li id="menu-item-25927251" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-25927251"><a href="https://www.boston.com/tag/powerball/">Powerball</a></li> <li id="menu-item-25927254" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-25927254"><a href="https://www.boston.com/tag/mega-millions/">Mega Millions</a></li> <li id="menu-item-22361035" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361035 menu-item-hamburger-only"><a href="https://www.boston.com/horoscope/">Horoscopes</a></li> <li id="menu-item-22361043" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361043 menu-item-hamburger-only"><a href="https://www.boston.com/comics/">Comics</a></li> <li id="menu-item-22361045" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361045 menu-item-hamburger-only"><a href="https://www.boston.com/today-in-history/">Today in History</a></li> <li id="menu-item-22360996" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22360996 menu-item-hamburger-only"><a href="https://www.boston.com/fresh-start-submit-your-appeal/">Fresh Start</a></li> </ul> </li> <li id="menu-item-31235133" class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-31235133 menu-item-hamburger-only"><a href="https://www.boston.com/tag/weddings/">Weddings</a></li> <li id="menu-item-25195153" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-25195153"><a href="https://www.boston.com/category/cars/">Cars</a> <ul class="sub-menu"> <li id="menu-item-25195157" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25195157"><a href="https://www.boston.com/new-car-specials/">New Car Specials</a></li> </ul> </li> <li id="menu-item-24512309" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-24512309 menu-item-hamburger-only"><a href="https://games.boston.com/">Games</a></li> </ul></div> </div> </div> </nav> <div class="m-panel-overlay"></div> </div> <div id="site-logo" class="m-site-logo"> <a class="m-site-logo__link" href="https://www.boston.com"> <span class="screen-reader-text">Boston.com</span> <img width="133" height="39" src="https://www.boston.com/wp-content/themes/bdc-2020/dist/images/boston-com-logo.png" aria-hidden="true" alt="" /> </a> </div> <nav class="m-secondary-menu" aria-label="Utility Navigation" id="utility-navigation"> <ul class="m-secondary-menu__list a-list--no-style"> <li class="m-header-search"> <button id="js-search-button" aria-controls="header-search-form" aria-expanded="false" aria-haspopup="true" class="a-button a-button--icon a-button--icon-svg" type="button"> <svg class="a-icon" aria-hidden="true" width="20" height="20"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#search"></use><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#search"></use></svg> <svg class="a-icon a-icon--close" aria-hidden="true" width="20" height="20"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#close"></use><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#close"></use></svg> <span class="screen-reader-text">Search</span> </button> <div id="js-search-form" class="m-header-search__form" aria-hidden="true"> <form role="search" id="searchform--header" class="m-search-form m-search-form--header" method="get" action="https://www.boston.com/"> <label for="search-field-search-form-1" class="screen-reader-text m-search-form__label"> Search for: </label> <input class="m-search-form__input" type="text" id="search-field-search-form-1" value="" placeholder="Search Boston.com" name="s" /> <button class="m-search-form__button" tabindex="-1" type="submit" aria-label="Submit"> <svg class="a-icon a-icon--no-action" aria-hidden="true" width="20" height="20"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#search"></use><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#search"></use></svg><span class="screen-reader-text">Search Boston.com</span> </button> </form> </div> </li> </ul> </nav> </div> </div> <div class="o-site-header__menu"> <div class="m-grid-container m-grid-container-inline"> <nav aria-label="Main Site Navigation" class="m-site-navigation m-site-navigation--left" id="site-navigation" itemscope itemtype="https://schema.org/SiteNavigationElement"> <div class="menu-bdc-main-container"><ul id="menu-bdc-main" class="m-primary-menu a-list--no-style"><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-22274386"><a href="https://www.boston.com/category/news/">News</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22667248"><a href="https://www.boston.com/tag/local-news/">Local News</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22667254"><a href="https://www.boston.com/tag/national-news/">National News</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22667253"><a href="https://www.boston.com/tag/politics/">Politics</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-32490719"><a href="https://www.boston.com/tag/massachusetts-obituaries/">Obituaries</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22667264"><a href="https://www.boston.com/tag/crime/">Crime</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-32439321"><a href="https://www.boston.com/tag/karen-read/">Karen Read</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-28992764"><a href="https://www.boston.com/tag/traffic/">Traffic</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-22274480"><a href="https://www.boston.com/category/sports/">Sports</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22497525"><a href="https://www.boston.com/tag/boston-celtics/">Celtics</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-32255017"><a href="https://www.boston.com/tag/jayson-tatum/">Jayson Tatum</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-32255024"><a href="https://www.boston.com/tag/jaylen-brown/">Jaylen Brown</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22497515"><a href="https://www.boston.com/tag/new-england-patriots/">Patriots</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22497530"><a href="https://www.boston.com/tag/boston-bruins/">Bruins</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22497520"><a href="https://www.boston.com/tag/boston-red-sox/">Red Sox</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672278"><a href="https://www.boston.com/tag/new-england-revolution/">Revs</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-22359876"><a href="https://www.boston.com/category/weather/">Weather</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-23008219"><a href="https://www.boston.com/tag/weather-maps/">Maps</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-23008224"><a href="https://www.boston.com/tag/storms/">Storms</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-23008199"><a href="https://www.boston.com/tag/climate-change/">Climate Change</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-23008255"><a href="https://www.boston.com/tag/snow/">Snow</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-25890194"><a href="https://www.boston.com/category/real-estate/">Real Estate</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890218"><a href="https://www.boston.com/tag/home-improvement/">Reno</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890221"><a href="https://www.boston.com/tag/new-developments/">Developments</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890196"><a href="https://www.boston.com/tag/real-estate-news/">News</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890197"><a href="https://www.boston.com/tag/home-buying/">Buying</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890200"><a href="https://www.boston.com/tag/open-houses/">Open Houses</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890207"><a href="https://www.boston.com/tag/renting/">Renting</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-25890215"><a href="https://www.boston.com/tag/luxury-homes/">Luxury</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-22274495"><a href="https://www.boston.com/category/food/">Food</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672249"><a href="https://www.boston.com/tag/restaurants/">Restaurants</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672303"><a href="https://www.boston.com/tag/food-news/">News</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672295"><a href="https://www.boston.com/tag/restaurant-reviews/">Reviews</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672298"><a href="https://www.boston.com/tag/food-events/">Events</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672251"><a href="https://www.boston.com/tag/breweries-bars/">Breweries &amp; Bars</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672285"><a href="https://www.boston.com/tag/restaurant-closings/">Closings</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672290"><a href="https://www.boston.com/tag/restaurant-openings/">Openings</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-32256222"><a href="https://www.boston.com/newsletters-food-restaurants-bars/">Sign up for The Dish 🍽️</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-28296783"><a href="https://www.boston.com/category/love-letters/">Love Letters</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-28296788"><a href="https://www.boston.com/latest-love-letter">Latest Post</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28297436"><a href="https://www.boston.com/question-for-meredith/">Send Letter</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28297426"><a href="https://www.boston.com/meredith-goldstein/">About</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28297421"><a href="https://www.boston.com/love-letters-podcast/">Podcast</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28297431"><a href="https://www.boston.com/cant-help-myself/">Book</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-32453509"><a href="https://www.boston.com/love-letters-newsletter/">Newsletter</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-22274485"><a href="https://www.boston.com/category/culture/">Culture</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672218"><a href="https://www.boston.com/tag/arts/">Arts</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672229"><a href="https://www.boston.com/tag/entertainment/">Entertainment</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672234"><a href="https://www.boston.com/tag/movies/">Movies</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672235"><a href="https://www.boston.com/tag/tv/">TV</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24669784"><a href="https://www.boston.com/tag/streaming/">Streaming</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672238"><a href="https://www.boston.com/tag/celebs/">Celebs</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672241"><a href="https://www.boston.com/tag/music/">Music</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-30874078"><a href="https://www.boston.com/category/things-to-do/">Things To Do</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31587664"><a href="https://www.boston.com/newsletters-things-to-do/">Newsletter</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-22360356"><a href="https://www.boston.com/category/travel/">Travel</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22993850"><a href="https://www.boston.com/tag/visiting-boston/">Visiting Boston</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24976055"><a href="https://www.boston.com/tag/cape-cod-travel/">Cape Cod</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-22672269"><a href="https://www.boston.com/tag/new-england-travel/">New England</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24976054"><a href="https://www.boston.com/tag/flights/">Flights</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24676057"><a href="https://www.boston.com/tag/outdoors/">Outdoors</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-28323763"><a href="https://www.boston.com/tag/skiing/">Skiing</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-32256227"><a href="https://www.boston.com/newsletters-scenic-six/">Sign up for Scenic Six</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-24270121"><a href="https://www.boston.com/category/community/">Community</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24063234"><a href="https://www.boston.com/tag/tell-us/">Tell Us</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-28204065"><a href="https://www.boston.com/tag/neighborhoods/">Neighborhoods</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24063232"><a href="https://www.boston.com/tag/readers-say/">Readers Say</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24063239"><a href="https://www.boston.com/tag/book-club/">Book Club</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-28991660"><a href="https://www.boston.com/tag/wickedpedia/">Wickedpedia</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-26377957"><a href="https://www.boston.com/tag/the-b-side/">The B-Side</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-24063244"><a href="https://www.boston.com/tag/cocktail-club/">Cocktail Club</a></li> </ul> </li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-has-children menu-item-22360995 menu-item-hamburger-only"><a href="https://www.boston.com/">Extra</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361025 menu-item-hamburger-only"><a href="https://www.boston.com/customer-support/">Customer Support</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22360999 menu-item-hamburger-only"><a href="https://www.bostonglobemedia.com/">Advertise</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361010 menu-item-hamburger-only"><a href="https://advertising.bostonglobemedia.com/">Classified Ads</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361055 menu-item-hamburger-only"><a href="https://bostonglobemediapartners.applytojob.com/apply">Careers</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361026 menu-item-hamburger-only"><a href="https://www.boston.com/contact-us/">Contact Us</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361019 menu-item-hamburger-only"><a href="https://www.legacy.com/obituaries/bostonglobe/">Obituaries</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-28173757"><a href="https://www.boston.com/newsletter-signup/">Newsletters</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-25927243"><a href="/tag/massachusetts-lottery/">Mass. Lottery</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-25927251"><a href="https://www.boston.com/tag/powerball/">Powerball</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-25927254"><a href="https://www.boston.com/tag/mega-millions/">Mega Millions</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361035 menu-item-hamburger-only"><a href="https://www.boston.com/horoscope/">Horoscopes</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361043 menu-item-hamburger-only"><a href="https://www.boston.com/comics/">Comics</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22361045 menu-item-hamburger-only"><a href="https://www.boston.com/today-in-history/">Today in History</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22360996 menu-item-hamburger-only"><a href="https://www.boston.com/fresh-start-submit-your-appeal/">Fresh Start</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-post_tag menu-item-31235133 menu-item-hamburger-only"><a href="https://www.boston.com/tag/weddings/">Weddings</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-25195153"><a href="https://www.boston.com/category/cars/">Cars</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25195157"><a href="https://www.boston.com/new-car-specials/">New Car Specials</a></li> </ul> </li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-24512309 menu-item-hamburger-only"><a href="https://games.boston.com/">Games</a></li> </ul></div> </nav> <nav aria-label="Trending Navigation" class="m-site-navigation m-site-navigation--right m-site-navigation--trending" id="trending-navigation" itemscope itemtype="https://schema.org/SiteNavigationElement"> <div class="menu-bdc-trending-container"><ul id="menu-bdc-trending" class="m-primary-menu m-primary-menu--trending a-list--no-style"><li id="menu-item-32299117" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-32299117"><a href="https://www.boston.com/community/wickedpedia/2024/12/17/when-was-the-last-white-christmas-in-boston/">Wickedpedia</a></li> <li id="menu-item-29838788" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-29838788"><a href="https://www.boston.com/news/local-news/2024/12/17/everett-mayor-wins-1-1m-in-defamation-settlement-local-paper-agrees-to-shut-down/">Defamation settlement</a></li> <li id="menu-item-29648242" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-29648242"><a href="https://www.boston.com/sports/new-england-patriots/2024/12/16/jerod-mayo-nfl-patriots-new-england-future-job-security-fired-robert-kraft/">Jerod Mayo</a></li> </ul></div> </nav> </div> </div> </header> <main class="t-main" id="site-content" aria-label="Main Site Content"> <div class="t-404"> <header class="t-404__header"> <div class="m-grid-container"> <div class="t-404__header-content a-pattern-frame a-pattern-frame--white"> <h1>404; This page isn&#039;t the first thing to get lost in Boston.</h1> <p class="t-404__header-text">Keep calm and return to the previous page, or check out some our most popular stories from today.</p> <hr /> </div> </div> </header> <div class="m-grid-container t-layout t-layout--is-404"> <section class="t-layout__main"> <ul class="a-list--no-style m-article-list m-article-list--has-images m-article-list--is-archive t-404__articles-list"> <li class="m-article-list__item"> <img class="m-article-list__image" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/s3___bgmp-arc_arc-feeds_generic-photos_to-arc_kreiter12162024everett4-6761a70870e61-768x432.jpg" alt="Listing image for this article."> <div class="m-article-list__content"> <h2 class="m-article-list__headline"> <a href="https://boston.com/news/local-news/2024/12/17/everett-mayor-wins-1-1m-in-defamation-settlement-local-paper-agrees-to-shut-down/" class="m-article-list__link a-link"> Everett mayor wins $1.1M in defamation settlement, local paper agrees to shut down </a> </h2> </div> </li> <li class="m-article-list__item"> <img class="m-article-list__image" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/VPN2P6DHJRGT5DVHGRFSWBCHQA-6756e520d5067-768x432.jpg" alt="Listing image for this article."> <div class="m-article-list__content"> <h2 class="m-article-list__headline"> <a href="https://boston.com/news/the-boston-globe/2024/12/17/sean-duffy-real-world-boston-nominated-trump-cabinet-so-we-binged-the-season/" class="m-article-list__link a-link"> Cast member of ‘The Real World: Boston’ now a Trump nominee </a> </h2> </div> </li> <li class="m-article-list__item"> <img class="m-article-list__image" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/s3___bgmp-arc_arc-feeds_generic-photos_to-arc_20warren-67620a05db1a6-768x432.jpg" alt="Listing image for this article."> <div class="m-article-list__content"> <h2 class="m-article-list__headline"> <a href="https://boston.com/news/politics/2024/12/17/warren-wants-answers-from-trump-about-musks-conflicts-of-interest-ethic-standards-as-head-of-doge/" class="m-article-list__link a-link"> Senator Warren asks Trump about Elon Musk&#039;s &#039;conflicts of interest&#039; </a> </h2> </div> </li> <li class="m-article-list__item"> <img class="m-article-list__image" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/AP24351810484836-67617c206577b-768x432.jpg" alt="Listing image for this article."> <div class="m-article-list__content"> <h2 class="m-article-list__headline"> <a href="https://boston.com/news/national-news/2024/12/17/nuclear-bunker-sales-increase-despite-expert-warnings-protection/" class="m-article-list__link a-link"> Nuclear bunker sales increase, despite expert warnings they aren’t going to provide protection </a> </h2> </div> </li> <li class="m-article-list__item"> <img class="m-article-list__image" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/HHRMIUUVRPVFRDD3IIGSYTCT24-676203033c9fe-768x432.jpg" alt="Listing image for this article."> <div class="m-article-list__content"> <h2 class="m-article-list__headline"> <a href="https://boston.com/sports/boston-red-sox/2024/12/17/red-sox-triston-casas-trade-rumors-seattle-bryce-miller-report/" class="m-article-list__link a-link"> Red Sox reportedly tried to trade Triston Casas to Seatte </a> </h2> </div> </li> <li class="m-article-list__item"> <img class="m-article-list__image" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/Screenshot-2024-12-16-at-2.10.32 PM-67607ef8cd12c.png" alt="Listing image for this article."> <div class="m-article-list__content"> <h2 class="m-article-list__headline"> <a href="https://boston.com/news/local-news/2024/12/16/salem-nh-approves-casino-despite-concerns-from-lawrence/" class="m-article-list__link a-link"> Salem, N.H. approves casino despite concerns from Lawrence </a> </h2> </div> </li> <li class="m-article-list__item"> <img class="m-article-list__image" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/s3___bgmp-arc_arc-feeds_generic-photos_to-arc_ryanfrank4met-67620eb9a16c1-768x432.jpg" alt="Listing image for this article."> <div class="m-article-list__content"> <h2 class="m-article-list__headline"> <a href="https://boston.com/news/local-news/2024/12/17/influential-former-ag-3-time-gubernatorial-candidate-dies-at-101/" class="m-article-list__link a-link"> Influential former AG, 3-time gubernatorial candidate dies at 101 </a> </h2> </div> </li> <li class="m-article-list__item"> <img class="m-article-list__image" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/Y6ZPL3UZYYF3XIKQRDP32IZ4FU-67623be2d6768-768x432.jpg" alt="Listing image for this article."> <div class="m-article-list__content"> <h2 class="m-article-list__headline"> <a href="https://boston.com/news/local-news/2024/12/17/somerville-eliminates-all-parking-minimums-for-new-developments/" class="m-article-list__link a-link"> Somerville eliminates all parking minimums for new developments </a> </h2> </div> </li> <li class="m-article-list__item"> <img class="m-article-list__image" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/Celtics_Wizards_Basketball_10378-6760fd20a82a4-768x432.jpg" alt="Listing image for this article."> <div class="m-article-list__content"> <h2 class="m-article-list__headline"> <a href="https://boston.com/sports/boston-celtics/2024/12/16/jayson-tatum-magic-johnson-boston-celtics-los-angeles-lakers-nba-draft/" class="m-article-list__link a-link"> Magic Johnson: Tatum’s agent didn’t want him to go to Lakers </a> </h2> </div> </li> <li class="m-article-list__item"> <img class="m-article-list__image" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/Womens_Soccer_Stadium_Dispute_35108-1-6761b7376ed9a-768x432.jpg" alt="Listing image for this article."> <div class="m-article-list__content"> <h2 class="m-article-list__headline"> <a href="https://boston.com/sports/sports-news/2024/12/17/nwsl-white-stadium-renovation-opposition/" class="m-article-list__link a-link"> Opposition growing over plan to renovate White Stadium for NWSL </a> </h2> </div> </li> </ul> </section> <div class="t-layout__sidebar" id="sidebar-404"> <div class="m-widget"> <div class="m-advert m-advert--sidebar m-advert--600"> <div class="m-content-advert-wrap"> <div id="js-advert--sectionfront1" class="m-advert m-advert--sectionfront1 "><div class="m-advert__container"><div id="ad_sectionfront1"><script type="type/javascript">googletag.cmd.push(function() { googletag.display("ad_sectionfront1") })</script></div></div></div> </div> </div> </div> <div class="m-widget"> <div id="most-popular-posts" class="m-widget m-numbered-post-list"> <header class="m-numbered-post-list__header"> <h3 class="m-numbered-post-list__header-title"> Most Popular </h3> </header> <div class="m-numbered-post-list__posts"> <article id="m-numbered-post-list-1" class="m-numbered-post-list__post"> <a aria-label="Senator Warren asks Trump about Elon Musk&#039;s &#039;conflicts of interest&#039;" class="m-numbered-post-list__link" href="https://www.boston.com/news/politics/2024/12/17/warren-wants-answers-from-trump-about-musks-conflicts-of-interest-ethic-standards-as-head-of-doge/"> <div class="m-numbered-post-list__image" data-count="1"> <img alt="Senator Warren asks Trump about Elon Musk&#039;s &#039;conflicts of interest&#039;" height="95" loading="lazy" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/s3___bgmp-arc_arc-feeds_generic-photos_to-arc_20warren-67620a05db1a6-768x432.jpg?width=190" width="95"/> </div> <div class="m-numbered-post-list__pseudo-link-container"> <span class="m-numbered-post-list__pseudo-link" > Senator Warren asks Trump about Elon Musk&#039;s &#039;conflicts of interest&#039; </span> </div> </a> </article> <article id="m-numbered-post-list-2" class="m-numbered-post-list__post"> <a aria-label="Everett mayor wins $1.1M in defamation settlement, local paper agrees to shut down" class="m-numbered-post-list__link" href="https://www.boston.com/news/local-news/2024/12/17/everett-mayor-wins-1-1m-in-defamation-settlement-local-paper-agrees-to-shut-down/"> <div class="m-numbered-post-list__image" data-count="2"> <img alt="Everett mayor wins $1.1M in defamation settlement, local paper agrees to shut down" height="95" loading="lazy" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/s3___bgmp-arc_arc-feeds_generic-photos_to-arc_kreiter12162024everett4-6761a70870e61-768x432.jpg?width=190" width="95"/> </div> <div class="m-numbered-post-list__pseudo-link-container"> <span class="m-numbered-post-list__pseudo-link" > Everett mayor wins $1.1M in defamation settlement, local paper agrees to shut down </span> </div> </a> </article> <article id="m-numbered-post-list-3" class="m-numbered-post-list__post"> <a aria-label="Cast member of ‘The Real World: Boston’ now a Trump nominee" class="m-numbered-post-list__link" href="https://www.boston.com/news/the-boston-globe/2024/12/17/sean-duffy-real-world-boston-nominated-trump-cabinet-so-we-binged-the-season/"> <div class="m-numbered-post-list__image" data-count="3"> <img alt="Cast member of ‘The Real World: Boston’ now a Trump nominee" height="95" loading="lazy" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/VPN2P6DHJRGT5DVHGRFSWBCHQA-6756e520d5067-768x432.jpg?width=190" width="95"/> </div> <div class="m-numbered-post-list__pseudo-link-container"> <span class="m-numbered-post-list__pseudo-link" > Cast member of ‘The Real World: Boston’ now a Trump nominee </span> </div> </a> </article> <article id="m-numbered-post-list-4" class="m-numbered-post-list__post"> <a aria-label="Nuclear bunker sales increase, despite expert warnings they aren’t going to provide protection" class="m-numbered-post-list__link" href="https://www.boston.com/news/national-news/2024/12/17/nuclear-bunker-sales-increase-despite-expert-warnings-protection/"> <div class="m-numbered-post-list__image" data-count="4"> <img alt="Nuclear bunker sales increase, despite expert warnings they aren’t going to provide protection" height="95" loading="lazy" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/AP24351810484836-67617c206577b-768x432.jpg?width=190" width="95"/> </div> <div class="m-numbered-post-list__pseudo-link-container"> <span class="m-numbered-post-list__pseudo-link" > Nuclear bunker sales increase, despite expert warnings they aren’t going to provide protection </span> </div> </a> </article> <article id="m-numbered-post-list-5" class="m-numbered-post-list__post"> <a aria-label="Red Sox reportedly tried to trade Triston Casas to Seatte" class="m-numbered-post-list__link" href="https://www.boston.com/sports/boston-red-sox/2024/12/17/red-sox-triston-casas-trade-rumors-seattle-bryce-miller-report/"> <div class="m-numbered-post-list__image" data-count="5"> <img alt="Red Sox reportedly tried to trade Triston Casas to Seatte" height="95" loading="lazy" src="//bdc2020.o0bc.com/wp-content/uploads/2024/12/HHRMIUUVRPVFRDD3IIGSYTCT24-676203033c9fe-768x432.jpg?width=190" width="95"/> </div> <div class="m-numbered-post-list__pseudo-link-container"> <span class="m-numbered-post-list__pseudo-link" > Red Sox reportedly tried to trade Triston Casas to Seatte </span> </div> </a> </article> </div> </div> </div> <div class="m-widget"> <div class="m-advert m-advert--sidebar"> <div class="m-content-advert-wrap"> <div id="js-advert--sectionfront2" class="m-advert m-advert--sectionfront2 m-advert--sticky"><div class="m-advert__container"><div id="ad_sectionfront2"><script type="type/javascript">googletag.cmd.push(function() { googletag.display("ad_sectionfront2") })</script></div></div></div> </div> </div> </div> </div> </div> </div> <!-- Page Content --> </main> <footer id="site-footer" class="o-site-footer" aria-label="Site Footer"> <div class="m-grid-container"> <section class="o-site-footer__meta m-grid"> <div class="o-site-footer__social m-grid-span-4"> <ul class="a-list--no-style m-social-share m-social-share--block m-social-share--footer"> <li class="m-social-share__item"> <a href="https://www.instagram.com/boston/" class="m-social-share__link" rel="nopenner noreferrer" target="_blank"> <svg class="a-icon a-icon--social" aria-hidden="true" width="21" height="17"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#instagram-white"></use><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#instagram-white"></use></svg><span class="screen-reader-text">Follow Boston.com on Instagram (Opens in a New Tab)</span> </a> </li> <li class="m-social-share__item"> <a href="https://twitter.com/intent/user?screen_name=BostonDotCom" class="m-social-share__link" rel="nopenner noreferrer" target="_blank"> <svg class="a-icon a-icon--social" aria-hidden="true" width="21" height="17"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#twitter-white"></use><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#twitter-white"></use></svg><span class="screen-reader-text">Follow Boston.com on Twitter (Opens in a New Tab)</span> </a> </li> <li class="m-social-share__item"> <a href="https://www.facebook.com/boston" class="m-social-share__link" rel="nopenner noreferrer" target="_blank"> <svg class="a-icon a-icon--social" aria-hidden="true" width="11" height="20"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#facebook-white"></use><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#facebook-white"></use></svg><span class="screen-reader-text">Like Boston.com on Facebook (Opens in a New Tab)</span> </a> </li> </ul> </div> <div class="o-site-footer__colophon m-site-colophon m-grid-span-4"> <p class="m-site-colophon__text">&copy;2024 Boston Globe Media Partners, LLC</p> </div> <div class="o-site-footer__survey m-grid-span-4"> <a href="https://www.research.net/r/7W87PRW" class="a-link__survey">Tell Us What You Think</a> </div> <div class="o-site-footer__menu m-grid-span-12"> <nav class="o-site-footer__nav m-secondary-menu m-secondary-menu--footer a-list--no-style" aria-label="Footer Navigation"> <div class="menu-footer-container"><ul id="footer-menu" class="o-site-footer__menu-list m-secondary-menu__list a-list--no-style"><li id="menu-item-22362950" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22362950"><a href="https://www.boston.com/privacy-policy">Do not sell my data</a></li> <li id="menu-item-26585081" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-26585081"><a href="https://www.boston.com/online-gambling-content-disclaimer">GAMBLING DISCLAIMER</a></li> <li id="menu-item-22362921" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22362921"><a rel="privacy-policy" href="https://www.boston.com/privacy-policy/">Privacy Policy</a></li> <li id="menu-item-31876254" class="ot-info-display menu-item menu-item-type-custom menu-item-object-custom menu-item-31876254"><a href="#">Your Privacy Choices</a></li> <li id="menu-item-26304418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-26304418"><a href="https://www.bostonglobemedia.com/advertise/">ADVERTISE</a></li> <li id="menu-item-22362900" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22362900"><a href="https://www.boston.com/terms-of-service">Terms of Service</a></li> <li id="menu-item-22362926" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22362926"><a href="https://www.boston.com/member-agreement">Member Agreement</a></li> <li id="menu-item-26304411" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-26304411"><a href="https://www.boston.com/contact-us/">CONTACT US</a></li> <li id="menu-item-23287074" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-23287074"><a href="https://globe.rec.pro.ukg.net/BOS1501BGMP/JobBoard/3ebc7d47-2d31-4b8d-817d-db673315517a/?q=&#038;o=postedDateDesc">CAREERS</a></li> <li id="menu-item-28837199" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-28837199"><a href="https://www.boston.com/html-sitemap/">Site Map</a></li> </ul></div> </nav> </div> </section> </div> </footer> <!-- Site Modal --> <div id="site-modal" class="o-site-modal" aria-hidden="true"> <div class="o-site-modal__overlay" tabindex="-1" data-a11y-dialog-hide></div> <div role="dialog" class="o-site-modal__content" aria-labelledby="m-site-modal-logo" aria-describedby="modal-description"> <button data-a11y-dialog-hide="site-modal" class="a-button o-site-modal__close" aria-label="Close this dialog window"> <svg class="a-icon" aria-hidden="true" width="17" height="17"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#close-symbol"></use><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#close-symbol"></use></svg><span class="screen-reader-text">Close Modal</span> </button> <h3 id="m-site-modal-logo" class="m-site-logo"> <span class="screen-reader-text"> Boston.com Newsletter Signup </span> <svg class="a-icon" aria-hidden="true" width="200" height="50"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#logo"></use><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.boston.com/wp-content/themes/bdc-2020/assets/symbol-defs.svg#logo"></use></svg><span class="screen-reader-text">Boston.com Logo</span> </h3> <p id="modal-description" class="o-site-modal__description"> Stay up to date with everything Boston. Receive the latest news and breaking updates, straight from our newsroom to your inbox. </p> <!-- form id should match fieldset 'form' attribute --> <form id="newsletter-form-2" class="m-form-newsletter m-form-newsletter--vertical" action="" method="" data-mailchimp-list-ids="" > <h4 class="m-form-newsletter__heading"> Enter your email address </h4> <fieldset form="newsletter-form"> <legend class="screen-reader-text"> Submit your email </legend> <label class="m-form-newsletter__label" for="email-form-2"> <span class="screen-reader-text">Enter your email address</span> <input class="a-input m-form-newsletter__input" type="email" id="email-form-2" name="email" placeholder="Email Address" aria-required="true" required> <p class="m-form-newsletter-error"></p> </label> <div id="email_hp_wrap" style="display: none" aria-hidden="true"> <input id="name_3" name="name_3" type="text" value="" autocomplete="nope" tabindex="-1" > </div> <button type="submit" name="submit" class="a-button a-button--primary m-form-newsletter__button"> Subscribe </button> </fieldset> </form> <button type="button" name="cancel" class="a-button a-button--is-link a-c-red a-uppercase" data-a11y-dialog-hide="site-modal" > No thanks <span class="screen-reader-text"> - Closes Modal window </span> </button> </div> </div> <!-- / Site Modal --> <script type="text/javascript" id="ad-refresh-callback"> /** * Refresh the OpenWrap/Amazon ads. * * @param array slotsToRefresh The slots due to be refreshed. */ function refreshOpenWrapAds( slotsToRefresh ) { // Don't refresh "out of page" ads. const adsToNotRefresh = ['oosvideo', 'presentedby', 'outofpage']; slotsToRefresh = slotsToRefresh.filter((slot) => !adsToNotRefresh.includes(slot.getSlotElementId())) if (!slotsToRefresh.length) { return } // Remove the previous bids from GPT. PWT.removeKeyValuePairsFromGPTSlots( slotsToRefresh ); // Add targeting Refresh=true to ads that are being refreshed. slotsToRefresh.forEach((slot) => slot.setTargeting('refresh', 'true')) /* * The above code is checking if the Onetrust script is active or not. * If it is active, it checks if the user has given consent for the country code or not. * If the user has given consent, it will display the ads. */ apstag.setDisplayBids(); PWT.a9_BidsReceived = PWT.ow_BidsReceived = false; const amazonSlotsToRefresh = formatSlotsToAmazon( slotsToRefresh ), a9Promise = fetchAmazonBids( amazonSlotsToRefresh ), pubmaticPromise = fetchPubmaticBids( slotsToRefresh ); Promise.allSettled([a9Promise, pubmaticPromise]).then(results => { const allBiddersPromisesRejected = results.every(result => result.status === 'rejected'); if (!allBiddersPromisesRejected) { refreshAds(slotsToRefresh); } }); } /** * Converts the slots in the format required by Amazon. * * @param array slots The slots due to be refreshed. */ function formatSlotsToAmazon( slots ) { const amazonSlotsToRefresh = []; for (let index = 0; index < slots.length; index++) { const slotItem = slots[index], element = {}, slotSizes = [], size = []; element.slotID = slots[index].getSlotElementId(); element.slotName = slots[index].getAdUnitPath(); if ( slots[index].getSizes() ) { sizes = slots[index].getSizes(); for (let indexJ = 0; indexJ < sizes.length; indexJ++) { size[indexJ] = []; size[indexJ].push(sizes[indexJ].width, sizes[indexJ].height); slotSizes.push(size[indexJ]); } } element.sizes = slotSizes; amazonSlotsToRefresh.push(element); } return amazonSlotsToRefresh; } // Gets bids from Amazon for the provided adSlots. fetchAmazonBids = ( slots ) => { return new Promise( ((resolve) => { try { apstag.fetchBids({ slots: slots }, ( bids ) => { apstag.setDisplayBids(); PWT.a9_BidsReceived = true; resolve( bids ); }); } catch ( e ) { resolve( null ); } }) ); } // Gets bids from PubMatic for the provided adSlots. fetchPubmaticBids = ( slots ) => { PWT.removeKeyValuePairsFromGPTSlots( slots ); return new Promise( ( resolve ) => { try { PWT.requestBids( PWT.generateConfForGPT( slots ), ( adUnitsArray ) => { PWT.addKeyValuePairsToGPTSlots( adUnitsArray ); PWT.ow_BidsReceived = true; resolve( adUnitsArray ); }, ); } catch (e) { resolve( null ); } } ); } // Displays the adSlot provided using googletag. displayAdSlots = ( slots ) => { return new Promise( (( resolve ) => { try { for ( let i = 0; i < slots.length; i++ ) { googletag.display( slots[i] ); } resolve( slots ); } catch ( e ) { resolve( null ); } }) ); } // Refreshes the adSlots provided. refreshAds = ( slots ) => { PWT.initAdserverSet = true; displayAdSlots( slots ).then( slots => { googletag.pubads().refresh( slots ); } ) } </script> <script type="text/javascript"> (function (){ // The widget ID is set in PHP. const widget_id = 'rc-widget-7f90ab'; // IntersectionObserver is a vanilla JS api that detects where an element is // relative to the viewport. It eliminates the need for scroll listeners. // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API const observer = new IntersectionObserver( entries => { // Initialize if the widget is within 500px of the bottom of the viewport. if ( entries[0].isIntersecting ) { initialize(); // Stop observing once the widget has been initialized. observer.unobserve( document.getElementById( widget_id )); } }, // The options for the IntersectionObserver. { rootMargin: '0px 0px 500px 0px' } ); // Start observing the widget observer.observe( document.getElementById( widget_id ) ); function initialize(){ const onetrust_active = 1; const gdprApplies = JSON.parse(localStorage.getItem( 'gdprApplies' ) ); const ccpaApplies = localStorage.getItem( 'ccpaApplies' ); const widget_revcontent = document.getElementById( widget_id ); const scripts_initialize = document.createElement( "script" ); // OneTrust (CMP) is on if ( onetrust_active ) { // User is from CCPA if ( ( null !== ccpaApplies ) ) { const storageCCPA = localStorage.getItem( 'ccpaString' ); widget_revcontent.setAttribute( "data-us-privacy", storageCCPA ); } // User is from GDPR if ( ( null !== gdprApplies ) ) { const storageGDPR = localStorage.getItem( 'gdprString' ); widget_revcontent.setAttribute( "data-gdpr", 1 ); widget_revcontent.setAttribute( "data-gdpr-consent", storageGDPR ); } } scripts_initialize.setAttribute( "type", "text/javascript" ); scripts_initialize.setAttribute( "src", "https://assets.revcontent.com/master/delivery.js" ); scripts_initialize.setAttribute( "defer", "defer" ); // Append the script to the widget widget_revcontent.after( scripts_initialize ); } })(); </script> <script type="text/javascript"> !function(n,t,c,e,u){function r(n){try{f=n(u)}catch(n){return h=n,void i(p,n)}i(s,f)}function i(n,t){for(var c=0;c<n.length;c++)d(n[c],t); }function o(n,t){return n&&(f?d(n,f):s.push(n)),t&&(h?d(t,h):p.push(t)),l}function a(n){return o(!1,n)}function d(t,c){ n.setTimeout(function(){t(c)},0)}var f,h,s=[],p=[],l={then:o,catch:a,_setup:r};n[e]=l;var v=t.createElement("script"); v.src=c,v.async=!0,v.id="_uasdk",v.rel=e,t.head.appendChild(v)}(window,document,'https://aswpsdkus.com/notify/v1/ua-sdk.min.js', 'UA', { appKey: 'XJoCGW0GRDietgEhEXpsJg', token: 'MTpYSm9DR1cwR1JEaWV0Z0VoRVhwc0pnOndCZ3RiWnpwQnFXakEtckxkQnlyTkE1NmRDaWxSMm5vNUFQNkRRZHFjN28', websitePushId: 'web.boston.com.remix', secureIframeUrl: 'https://www.boston.com/secure-bridge.html', vapidPublicKey: 'BHRLCpgLazdtSrznUKdHmTSjqjEg5PjeRqWDX2g1ezJ40WUFkKMeifMIXqjWC2OQlNoA9KYbl47GloxsgLdbYtE=' }); </script> <script type="module"> var consent = 'grant'; /* The above code is parsing the JSON data from the local storage and storing it in a variable. */ const onetrustStorageConsent = JSON.parse(localStorage.getItem( 'consent_one_trust_bdc' ) ); /* Checking to see if the user has consented to the use of cookies. * If they have not, it is deleting the cookie. * This will comment for now, until further notice. */ //if ( onetrustStorageConsent.C0002 === false ) { // document.cookie = '_fbp=;expires=Thu, 01 Jan 2010 00:00:00 UTC; path=/; domain=.boston.com'; //} /* Checking if the user has given consent for the cookie C0002. * If the user has given consent, the variable consent will be set to 'grant'. * If the user has not given consent,the variable consent will be set to 'revoke'. * Documentation https://developers.facebook.com/docs/meta-pixel/implementation/gdpr */ if ( ( onetrustStorageConsent !== null ) && (onetrustStorageConsent.C0002 !== true ) ) { consent = 'revoke'; } !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function() {n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)} ;if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('consent', consent); fbq('init', '813236348753005'); fbq('track', "PageView"); </script> <noscript><img height="1" width="1" class="hidden" src="https://www.facebook.com/tr?id=813236348753005&ev=PageView&noscript=1" /></noscript> <script type="text/javascript" id="ot-manage-links"> const otDisplayClassEl = document.getElementsByClassName("ot-info-display"); for ( const otLinkEl of otDisplayClassEl ) { let otLinks = otLinkEl.getElementsByTagName("a"); for ( const otLinkEl of otLinks ) { let otLinkElAttr = otLinkEl.getAttribute("href") if( otLinkElAttr === "#" ) { otLinkEl.addEventListener( "click", function() { OneTrust.ToggleInfoDisplay(); event.preventDefault(); }); } } } </script> <script type="text/javascript" src="https://bdc2020.o0bc.com/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0" id="wp-polyfill-js"></script> <script type="text/javascript" id="frontend-js-extra"> /* <![CDATA[ */ var bdcFeatureFlags = {"real-estate":"1","arc-video-ads":"0","archive-pagination-schema-removal":"0","love-letters":"1","bdc-events":"1","bdc-cache-headers":"0","bdc-time-to-read":"0","election-widgets-lazy-load":"0"}; var sportsbarData = {"is_home":"","tags":"","category":""}; var breakingNews = {"post_id":"","category_id":""}; var gformsData = {"ajaxurl":"https:\/\/www.boston.com\/wp-admin\/admin-ajax.php"}; var bdc2020Webpack = {"path":"https:\/\/www.boston.com\/wp-content\/themes\/bdc-2020\/dist\/"}; /* ]]> */ </script> <script type="text/javascript" src="https://bdc2020.o0bc.com/wp-content/themes/bdc-2020/dist/js/frontend.js?ver=186f392f6caeac7c85301fc35781151e" id="frontend-js" async></script> <script type="text/javascript" id="avc_frontend-js-extra"> /* <![CDATA[ */ var AdRefreshControl = {"advertiserIds":[],"lineItemIds":[],"sizesToExclude":"","slotIdsToExclude":[],"viewabilityThreshold":"70","refreshInterval":"30","maximumRefreshes":"10","refreshCallback":"refreshOpenWrapAds"}; /* ]]> */ </script> <script type="text/javascript" src="https://bdc2020.o0bc.com/wp-content/plugins/ad-refresh-control/dist/js/frontend.js?ver=1.1.0" id="avc_frontend-js"></script> <script type="text/javascript" src="https://bdc2020.o0bc.com/wp-content/plugins/block-library/dist/js/frontend-accordion-scripts.js?ver=8563120eb740c7cc17ee526901535e7c" id="tenup-block-library-frontend-accordion-scripts-js"></script> <script type="text/plain" class="optanon-category-C0001" type="text/javascript" id="tinypass-js-before"> /* <![CDATA[ */ (function() { // Ensure the 'tp' namespace exists for Piano scripts. window.tp = window.tp || []; window.pdl = window.pdl || {}; // Set the consent version to v2. window.pdl.requireConsent = 'v2'; window.pdl.consent = {}; window.pdl.consent.products = ['COMPOSER', 'ID']; // Set the Application ID for Piano. tp.push(["setAid", "3276IrWrpu"]); // Set the Cxense Site ID for Piano. tp.push(["setCxenseSiteId", "5859613349622668998"]); // Set the API endpoint based on the environment (production or sandbox). tp.push(["setEndpoint", "https://buy.tinypass.com/api/v3"]); // Set the Piano ID URL for authentication. tp.push(["setPianoIdUrl", "https://buy.piano.io"]); // Configure user provider settings to use Piano ID only if enabled. tp.push(["setUseTinypassAccounts", false ]); tp.push(["setUsePianoIdUserProvider", false ]); // Set Piano Custom variables // Set Piano Tags // Initialize Piano services (Piano ID and Composer). tp.push(["init", function() { // Check and set consent for Piano services. It also makes the setPianoConsent method available. function setPianoConsent() { // Define custom consent mode settings window.pdl.consent_modifiers = { 'COMPOSER': { 'source': 'opt-out', 'patches': [ { 'action': 'include', 'item': { 'key': 'pcus', 'type': 'cookie', } }, { 'action': 'include', 'item': { 'key': 'pcfe', 'type': 'cookie', } }, ] }, 'ID': { 'source': 'opt-out', 'patches': [ { 'action': 'include', 'item': { 'key': 'pnid-tc-string', 'type': 'cookie', } }, ] }, 'DL': { 'source': 'opt-out' }, }; // Parse the groups consent string from window.OnetrustActiveGroups const consentGroups = Object.fromEntries( window.OnetrustActiveGroups .split(',') .filter(group => group.trim()) // Remove empty or whitespace-only strings .map(group => [group, true]) ); // If consentGroup is not empty if (Object.keys(consentGroups).length > 0) { consentMode = 'opt-in'; // Default to 'opt-in' // All cookies allowed. if ( consentGroups.C0002 && consentGroups.C0003 && consentGroups.C0004 ) { consentMode = 'opt-in'; } // Only optional cookies blocked. else if ( consentGroups.C0002 && consentGroups.C0003 && !consentGroups.C0004 ) { consentMode = 'essential'; } // At least one essential cookie blocked. else if ( (!consentGroups.C0002 || !consentGroups.C0003) && consentGroups.C0004 ) { consentMode = 'custom'; } // All cookies blocked. else if ( (!consentGroups.C0002 || !consentGroups.C0003) && !consentGroups.C0004 ) { consentMode = 'opt-out'; } // Set consent tp.consent.setAllPurposes(consentMode); } } // Check if consent has been given for Piano services. if (!tp.consent.getByPurpose()) { // If consent has not been given, set the consent. setPianoConsent(); } // Hook on to the OneTrust consent change calllback in case the user changes their consent. window.OneTrust.OnConsentChanged = function() { setPianoConsent(); }; // Initialize Piano ID only if enabled // Initialize Piano Composer experience for content access management. // Check if consent has been given for Piano services. if (tp.consent.getByPurpose()) { tp.experience.init(); } else { // If consent has not been given, set the consent. setPianoConsent(); tp.experience.init(); } }]); })(); /* ]]> */ </script> <script type="text/plain" class="optanon-category-C0001" type="text/javascript" src="https://buy.tinypass.com/api/tinypass.min.js" id="tinypass-js"></script> <script type="text/javascript" id="bgmp-regi-bundle-js-js-extra"> /* <![CDATA[ */ var bgmpRegi = {"regi_signup_form_path":"https:\/\/www.boston.com\/wp-content\/plugins\/wp-plugin-regi-spot-im\/markup\/signup-form.php?blog_name=Boston.com","blog_name":"Boston.com"}; /* ]]> */ </script> <script type="text/javascript" src="https://bdc2020.o0bc.com/wp-content/plugins/wp-plugin-regi-spot-im//bgmp-regi-bundle.js?ver=0.0.3" id="bgmp-regi-bundle-js-js"></script> <script type="text/javascript" src="https://bdc2020.o0bc.com/wp-content/plugins/bdc-functionality/assets/js/tracker/lib/AppMeasurement/AppMeasurement.js?ver=2.22.0" id="app_measurement-js"></script> <script type="text/javascript" id="bdc_tracker-js-extra"> /* <![CDATA[ */ var bdcfunctionalityWebpack = {"path":"https:\/\/www.boston.com\/wp-content\/plugins\/bdc-functionality\/dist\/"}; var bdcDigitalData = {"settings":{"reportSuite":"nytbglobe,nytbgglobal","customLinksReportSuite":"nytbglobe","trackingServer":"smetrics.boston.com"},"pageInstanceID":"404 page-www.boston.com","page":{"pageInfo":{"pageID":"404 page","internalLinks":"javascript:,cars.com,boston.com,bostonglobe.com,globe.com,cityfeet.com,legacy.com,monstermoving.com,movietickets.com,newsbank.com,salary.com,snocountry.com,travidia.com,uclick.com,zap2it.com,bostondirtdogs.com,adperfect.com,bankrate.com,ce.com,flightview.com,gabriels.com,harvestadsdepot.com,interviewmastery.com,localattitude.com,pair.com,resume.com,sportsballot.com,vanlines.com,boston.addresses.com,boston.jiwire.com,boston.stats.com,gadzoo.com,jobview.boston.monster.com,mrboffo.com,mypublicnotices.com,upickem.com,realtraffic.maptuit.com,caspio.com,upickem.net,boston.houzz.com,localhost,www.boston.com","destinationURL":"https:\/\/www.boston.com\/news\/politics\/2008\/articles\/2010\/01\/21\/aides_say_coakley_will_seek_reelection_as_attorney_general\/","pageURL":"https:\/\/www.boston.com\/news\/politics\/2008\/articles\/2010\/01\/21\/aides_say_coakley_will_seek_reelection_as_attorney_general\/","channel":"404 page","campaign":"","subsection":"404 page","rssID":"","authors":"","pageLayout":null,"pagination":"","p1":"","pageType":"tools page","publishDate":"","videoName":"","cms":"WordPress","environment":"Live","summaryLength":0,"searchKeyword":"","trackingCode":"","keywords":"","sponsorName":"","loginStatus":"logged out","publicationName":"Boston.com","galleryName":null,"codeVersion":"2.22.0","articleID":"","refresh":"","registrationID":"","newsletter":""}}}; /* ]]> */ </script> <script type="text/javascript" src="https://bdc2020.o0bc.com/wp-content/plugins/bdc-functionality/dist/js/tracker.js?ver=6c088ae1959cff7c6c385d8c28993a82" id="bdc_tracker-js"></script> <script> const oneTrustEl = document.getElementsByClassName( 'onetrust-revcontent' ); if ( oneTrustEl.length > 0 ) { // If less than 1, no RevContent is running. // Is this if really needed? let ccpaSet = localStorage.getItem( 'ccpaApplies' ); if ( ( null !== ccpaSet ) ) { let storageCCPA = localStorage.getItem( 'ccpaString' ); oneTrustEl[0].setAttribute( "data-us-privacy", storageCCPA ); } let gdprSet = localStorage.getItem( 'gdprApplies' ); if ( ( null !== gdprSet ) ) { let storageGDPR = localStorage.getItem( 'gdprString' ); oneTrustEl[0].setAttribute( "data-gdpr", 1 ); oneTrustEl[0].setAttribute( "data-gdpr-consent", storageGDPR ); } } </script> <script type="text/javascript"> window.addEventListener('DOMContentLoaded', (event) => { const airshipExtrajs = document.getElementById("ua-wn-js-extra"); const ConsentFromOnetrustStorage = JSON.parse(localStorage.getItem( 'consent_one_trust_bdc' ) ); if ( airshipExtrajs ) { if ( ( null !== ConsentFromOnetrustStorage ) && ( ConsentFromOnetrustStorage.C0003 ) ) { document.getElementById('ua-wn-js-extra').setAttribute('type', 'text/plain'); document.getElementById('ua-wn-js-extra').setAttribute('class', 'optanon-category-C0003'); } } }); </script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"b9d80a2312","applicationID":"467627310","transactionName":"NF0DYxYAXUJSV0xaVw0XIFQQCFxfHAAIBw==","queueTime":0,"applicationTime":629,"atts":"GBoUFV4aTh0RVRoJQx5F","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html> <!-- plugin=object-cache-pro client=phpredis metric#hits=11498 metric#misses=30 metric#hit-ratio=99.7 metric#bytes=2945935 metric#prefetches=0 metric#store-reads=94 metric#store-writes=8 metric#store-hits=431 metric#store-misses=23 metric#sql-queries=8 metric#ms-total=845.53 metric#ms-cache=104.81 metric#ms-cache-avg=1.0378 metric#ms-cache-ratio=12.4 -->

Pages: 1 2 3 4 5 6 7 8 9 10