Weddings manage a neat trick of being both communal experiences and highly personal ones. Their power comes from the presence of the assembly, called together to witness the enactment of a sacred vow. And yet, during that witnessing, we members of the congregation often find we are thinking of ourselves — of our long friendships with the bride or the groom, of loves lost, of whether we, too, could pull off a tux with such panache. Last night, as he and I drifted out of a wedding and into the hot summer air, a friend told me that they always make him wonder why he doesn’t tell his friends that he likes them more often. I thought about all of this last night as I sat on a midnight train to the city, returning from that wedding and watching last night’s episode of Game of Thrones on my iPhone. As anyone who’s been on Twitter in the last dozen or so hours knows, book readers have been collectively sitting on their hands waiting for this moment in the saga: the so-called Red Wedding.
And judging by my social media feeds, a huge new crowd was swept up last night in the experience of witnessing, as a community, just what in the seven hells happened there at the Twins. Huddled in my party dress, having ignored the late-night Metro-North ruckus for an hour, I pulled out my earbuds as we pulled into the station, turned to no one in particular and said, “They’re all dead.”
I suspect that a lot of people felt the way I did about the episode — thrilled to be caught up with the rest of the group, but with our hands fluttering to our own throats. As in last season’s penultimate episode — the battle of Blackwater — David Benioff and D.B. Weiss, who wrote the episode, and David Nutter, who directed, crafted an hour that felt tighter than most, with a consistent mood and tone that escalated beautifully while avoiding (I thought) blatant foreshadowing. For the first time, storylines and locations began to bleed together, as the Hound and Arya approached the Twins, and Bran’s band came within shouting distance of Jon Snow and the wildlings. The noose tightens, the ship circles the whirlpool. Gilly gazes up at the wall, which her father told her was death to look upon, and wonders, “Here we are, alive.” Every character teeters on the edge of experience — but as the Hound notes, watching Arya gaze out at the Twins, the closer you get, the worse the fear gets.
Bran, Osha, and the rest of the Winterfell refugees have made it to the Gift, a liminal strip of land south of the Wall bequeathed to the Night’s Watch by House Stark. As they take refuge from a storm in a crumbling tower, their story begins to dance around Jon’s. The wildlings have also reached the Gift, where they spy an old, solitary man who breeds horses for the Watch. (Why hasn’t he been raided already?, Ygritte wonders. Because the Watch protects him, Jon replies — a seemingly foreign concept to the loosely organized tribe.) Tormund tells Jon that wildlings attack in the open, and they spill out from their hiding place to storm the old man’s hut. Jon clangs his sword against a rock in warning, and as the old man rides away, Ygritte tries to shoot him but misses her mark when Jon calls her name — whether she misses on purpose or not, it’s hard to tell.
The chase brings the wildlings to the base of Bran’s tower, where the mounting frenzy tests two of Ned Stark’s boys. Up in the tower, the cramped space, the thunder and rain, and the raiders’ shouts are getting Hodor all riled up. The camera cuts to Orell’s shrewd face: even when not in eagle form, he’s working out that something fishy is happening up in that turret. Hissing “No more Hodoring!” does not seem to be doing the trick; the big guy cannot, in fact, stop Hodoring. But then Bran suddenly goes all Exorcist and snakes his way into Hodor’s head, causing the giant to drop in a quiet slump. Bran wins his Warging badge! (Later, as Rickon and Osha head off to the Last Hearth and the protection of the Umbers, the staging seemed to me a kind of religious pastiche; Bran as Buddha, sitting under the banyan tree, ringed by disciples. And also: Rickon! You finally say something, and your prize is you get booted from the stage!)
Outside, Jon is facing the initiation rite his dear dead dad set back in Season 1, Episode 1 — the same rite that Theon faced (and botched) and Robb faced (and passed): beheading someone manfully. It’s the only way Jon can prove he’s not still a crow, Orell declares. “Do it,” Ygritte urges. He hesitates, she shoots instead, and all hell breaks loose.
Upstairs, Jojen presses Bran to take over a direwolf and attack the wildlings, lest they be discovered. “Do it,” he urges. Hell breaks even looser. Jon stabs Orell and, as if he’s never seen a Bond film, confesses that Orell was right all along … just before Orell wargs into an eagle and flies off, presumably to tattle to Mance Rayder. Jon doesn’t miss a beat before launching onto a horse and riding off, leaving his “crow wife” behind. Another close-up shot of a face, as knowledge begins to crack open. Jon, you better believe your girl is making plans for a pretty cock necklace and a pair of matching ball earrings.
Freys, on the other hand, do not attack in the open. Dark, close, somber, like a hall inhabited by particularly angry hobbits – the claustrophobia of this wedding venue contrasts sharply with the opulence of Tyrion and Sansa’s fete in the last episode. And if the cloaking ceremony is more successful, the partners a better physical match, the joking less bitterly sozzled, the architecture looms as ominously and the seating arrangement is as pointed: At the head of the great table, in pride of place, is Walder Frey, his ostensible liege seated far below. Nasty, brutal, and smug, Walder Frey is the “civilized” twin of the wilding Craster, his giant brood proof of something rotten and unnatural festering underneath those vows of hospitality. (Does the fact that he’s played by Harry Potter’s Argus Filch make him more or less creepy? Discuss.) The massacre that happens under his roof is even more shocking than the one that occurred in Craster’s Keep, and not just because of the stature of its victims — its ritualistic choreography is beautiful, in its bloody and bracing way.
Again and again, the show comes back to the notion that performance cements power. Throughout this episode, the camera has focused on characters watching and looking — making sense of what they’re witnessing, calculating risks and losses, gingerly deciding where to direct their emotional compass next. During the actual wedding ceremony, all the dramatic beats are sketched in glances. Grim Robb, swiveling his neck slowly to catch Roose Bolton’s eyes, then both their heads turning to watch Roslinand Walder’s procession. Edmure, straining to catch a look at his bride under her veil, his knitted brows relaxing and tight grimace falling open when he hess her. Robb looking out to find Walder, and Walder giving him a hilariously doddering smile and a shrug. Talisa smiling at Robb. Hordes of homely Frey ladies smiling at the Blackfish. Edmure looking out to lock eyes with his sister, a boyish and incredulous smile spreading across his face; a thin one on hers.
The reception itself begins promisingly enough — the tentative smiles from the ceremony have turned into full-blown grins; Robb laughs, flirts with his wife; even Catelyn seems to let loose and begins sharing fond stories about Dead Ned. Edmure cracks a pretty funny dick joke. (Once you set that monster free, sisters-in-law, there’s no caging him again.)
But then the doors shut, the string section take up “The Rains of Castamere,” and Catelyn’s gaze, which had just been lingering on her son kissing his wife, rise up slowly to the musicians in the balcony. Cat has as long a memory as Cersei; she knows the story behind the lovely melody. The writers lay it on thick with Talisa and Robb in the moments before the game gets going, playing up her pregnancy to a sickening effect later on. But this bloody play belongs to Cat, who begins to piece things together a split second early, a hair too late. I’ve seen few things onscreen as chilling as the silent exchange between her and Roose Bolton, as he catches her eye and, with a cold and seductive half-smile, motions for her to peel back his sleeve, revealing the chain mail underneath and the destruction that lies ahead.
Whenever I talk to people about Game of Thrones, we always come around to the question of what the violence on the show is serving. Is it showing us unsentimental truths about a harsh world? Or is it flirting with our bloodlust from behind its beguiling, prestige-cable lashes? I can never come down on one side or the other; my feelings seem to change from scene to scene. (My thoughts on Theon and his unnamed torturer, for the record: Team Bloodlust.) But with the exception of the stabbing of pregnant Talisa, which felt too crassly calculated and on-the-nose, I thought this Theater of Cruelty finale was bracing, harrowing and – dare I say it? – cleansing. I’m gutted to see Catelyn go, but she went in a blaze of righteous fury, like a Greek goddess self-immolating, and that seems fitting, at the very least.
Cut to black.
Please refrain from posting spoilers about what happens in future Game of Thrones books in the comment section. All such comments will be deleted.
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();
// ]]