As someone who has covered TV for over a decade, I need hard evidence of a character’s death. Alia Shawkat’s panicked voice, the sounds of screaming and gunshots, and a phone cutting off are excellent creative choices, but as far as a 100 percent guarantee that Emily Chase is dead? Sorry, The Old Man, but you’ve gotta give me more.
For the sake of the story, we do have to go on the assumption that she has been murdered by Suleyman Pavlovich’s mercenaries. That means Dan Chase is out for blood, and by the end of “XII,” he and Zoe McDonald are headed to London to seek out Faraz Hamzad’s lawyer, Nina Kruger, their only link to Pavlovich. But after watching this episode, I’m not so worried about Chase or Zoe — even though Chase is battling some serious trauma from listening to his daughter’s murder over the phone. It’s Harper who seems to be in the worst mental shape for this upcoming mission.
Undoubtedly, there are many bleak moments in “XII.” However, the most compelling ones involve John Lithgow, whose FBI veteran character is forced to peel back the layers of his well-suppressed past. Now that we’re entering the season’s third act, The Old Man has hit that sweet spot where it’s whacking us over the head with the “HAROLD HARPER HAS SOME SERIOUS EMOTIONAL BAGGAGE” messaging. But we’re still left in the (literal) dark about it: During a scene in which Harper’s deceased son appears as a surrogate for his father’s inner monologue, Chip Harper (Brad Beyer) appears only in silhouette. Adding to the tension is the decision to have most of “XII” take place during an electricity-spotty stormy night.
The episode opens with our only visuals of Emily Chase: She lays Faraz Hamzad to rest with her Afghan family while writing her farewells via voice-over. It’s a familiar practice for Emily; she could only say good-bye to her mother through the written word too. But the words are more for the audience than Emily’s biological father. She states that Afghanistan is her home and that she’s dedicating herself to healing generational wounds.
This begins by sending the now-orphaned Farouk away with Tarik, ostensibly to the United States — and by not avoiding the harsh truths ahead of him. She tells the little boy that he will be scared, sad, and hurt. It’s her first step toward breaking the cycles of the past.
Then we switch to the sole setting for the rest of the episode: The Harpers’ Washington, D.C.–area home. Cheryl Harper (Jessica Harper) is busy dealing with a flooded basement thanks to a broken water heater (more tension!). The last thing she needs is for her scruffy-looking husband to show up asking for help sheltering two people she’s never met (plus their Rottweilers).
Our first hint that Zoe, Chase, Dave, and Carol aren’t going to be the Harpers’ only guests this evening is when Chase comments he doesn’t want the car sitting out in the driveway for too long, followed by Harper’s long stare at said car before closing the door. Okay, what’s in the trunk, guys?
There’s not much time for Zoe and Chase to address the events of the last episode, though Zoe is exhibiting shock after witnessing Morgan Bote’s assassination. But Chase is too consumed to play therapist right now: He needs to warn Emily about Pavlovich’s mercenaries. He does think they’re still missing a vital piece of the puzzle, however, observing that Pavlovich’s willingness to kill Bote on U.S. soil means this vendetta goes beyond “making money off mineral rights.”
Meanwhile, down in the basement, the cracks are showing in the Harper marriage. Harold is devastated to learn that Cheryl sent their grandson, Henry, to live with his other grandparents for his safety. She has understandably grown weary of playing the dutiful FBI wife who can’t ask questions, even of the two strangers taking refuge in her house. All she’s allowed to know is that the other scruffy-looking man is “Angela’s father” and that Angela herself is “a fiction.” Sure, no biggie.
Eventually, Chase connects with Emily over the phone. She’s evacuating the village through a series of underground tunnels because, as the family feared, the Taliban has returned. This is one of the few times we see Dan Chase in full-on panic mode: He knows the level of danger his daughter is facing; the Dude is very familiar with those tunnels. It’s a gorgeously tense scene, far scarier with just Emily’s calm voice detailing the events while Chase, Zoe, Cheryl, and Harper hover around the phone helplessly in an unlit living room as the rain pounds the streets outside.
With time running out, Emily uses her precious seconds to say good-bye to her American dads. She apologizes to the Harpers for forcing them to mourn yet another child before assuring Harold she doesn’t blame him for what he did (as in killing Faraz Hamzad). Poor Cheryl is so confused. Emily then asks Chase to accept her decision to remain with her Afghan family, promising him that she doesn’t love him any less. But there’s no time for tears because the Taliban has breached the hiding place. We hear Emily, along with her family members, screaming, followed by gunshots, until her phone goes silent.
Shortly afterward, Chase takes out his guilt on the Harpers’ water heater, berating himself to Zoe for not trying harder to bring Emily home. He is, justifiably, a bundle of raw emotion right now, so the only thing he can do is release decades of pain in one tragic sob while crumpling into Zoe’s arms. DAMN, JEFF BRIDGES!
His head now clear, Chase shifts back into monster mode because, as he explains to Zoe, Emily’s phone call left a major clue: Chase and Harper, with their trained ears, noticed that the men who ambushed Emily were speaking Russian, suggesting it was Pavlovich’s mercenaries, and not the Taliban, who killed their daughter. That means it’s time for some answers, and they may just be sitting in Harper’s driveway.
Well, now we know why they were so worried about the car. It turns out Chase and Harper stuffed the one surviving Russian assassin from last week into the trunk. And now they need to move him into the basement so Chase can torture Unnamed Russian Mercenary without Cheryl noticing. You know, Spy 101 stuff.
Even though he’s the expert, Harper doesn’t stick around to interrogate Unnamed Russian Mercenary (URM for short). He knows URM was probably just hired muscle and won’t know anything. He also gets that Chase needs to take his anger out on someone.
As Chase gently strokes Harper’s household tools, I’m relieved the only evidence of torture is limited to URM’s cries for mercy.
Over tea with Zoe, Cheryl confides that much of her life has been spent, well, in the dark. She’s no fool, though: She knows Zoe is there to distract her from whatever Chase and Harper are up to. She also voices her growing resentment over agreeing to remain ignorant of her husband’s work for so long. So Zoe does Cheryl a solid by regurgitating The Old Man’s loglines from the past two episodes. Yes, Cheryl deserves honesty — she knew Morgan Bote only as “a friend of Harold’s” — and Zoe’s the only one willing to offer it up. But I feel like Zoe is making a rookie mistake here.
While Zoe is spilling most of Chase’s and Harper’s secrets, Harper is upstairs, slowly unraveling. Through a vague exchange with his dead son’s ghost, we learn that the dozens of fabrications Harper crafted over the years to protect his family did more harm than good. There’s a truth that’s ready to boil over; I’m just not sure what that truth is yet. During this emotional reckoning, Harper expresses his guilt over not saying good-bye to Chip, Emily, and Henry. He also has a lightbulb moment about the importance of last words. Harper then frantically asks Zoe if Bote said anything to her right before he was killed. She verifies that he was holding his phone and was possibly sending something. I’ll admit it looked as if Bote was trying to call someone, but his actions likely corroborate Harper’s theory that the old man was sending critical information to someone he trusted.
What a perfect moment for Chase to enter the scene with his own news: URM couldn’t confirm Pavlovich hired him, but he could name his two other targets, Henry and Marcia Dixon. So why is Pavlovich after Chase and Zoe? Who knows? Why don’t they jet off to London and ask Nina Kruger some questions? They might as well because (a) Zoe can’t wait to slip back into espionage mode, (b) Chase needs to crack some Russian skulls, and (c) we’ve got three episodes left anyway.
As “XII” wraps up, I really feel for Cheryl Harper. Her husband is dumping her at a hotel before deserting her once again without explanation. The difference this time is Harper knows his marriage is hanging by a thread — and I appreciated that he acknowledges his long-term mistakes. I can tell he doesn’t want to lose Cheryl, and I believe him when he says he wants to make things right with her. But I wouldn’t blame Cheryl if she uses this opportunity to bail, not only because of Zoe’s blabfest but also the fact that her husband deputized Chase and Zoe to take her to the hotel.
To be fair, Harper has an important household chore on his to-do list. In keeping with the episode’s dark tone, the final scene is of Harper descending into the still-flooded basement. But it’s up to us to visualize the chilling task of disposing of URM’s body. The saw in Harper’s hand is our only clue.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(136),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"3":3,"12":12,"124":124,"136":136}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(408),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"408":408,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]