ByAngelica Jade Bastién,
a New York and Vulture critic covering film and pop culture
She’s giving the greatest performance of her career in Dead Ringers, proving Rachel Weisz’s ideal scene partner is Rachel Weisz.
Photo: Courtesy of Prime
Hearing Rachel Weisz say the word “cunt” is the auditory equivalent of biting into a piece of ultrafine dark chocolate. When it slips from her rosy lips — so languidly yet demanding of attention — I get a thrill: “Cunt.”
In Dead Ringers, Amazon’s reimagining of the David Cronenberg film about two depraved twin gynecologists, Weisz plays the two central characters: Beverly and Elliot Mantle, identical sisters who dream of opening a birthing center and research laboratory that challenges existing knowledge of women’s health and infertility. Elliot says “cunt” more frequently, delivered with equal parts splendor and vulgarity — it sounds harsh at first, but then she momentarily dips into a drawl before attacking the final constant with heaving breath. It plays like a dare to her audience: I dare you to recoil. I dare you to push back. I dare you to face the discomfort you have with women’s bodies, and me, and my words.
Beverly is less keen on the word, but she’s the first to let it fly, in the first episode, after a middle-aged male diner interrupts her mealtime conversation: “Hey, you guys have, like, exactly the same face. You guys ever … you know? The two of you plus a guy?” he asks. “Yes, please let’s go,” she responds. “We love fucking each other. I love putting my tongue on her tongue and inside her cunt.” Her face is mocking, with a smile cutting through her porcelain beauty, teeth barred and ready to bite down on the words that follow. “And for a man’s pleasure? And for your pleasure? That sounds ideal.” Elliot, never one to sit out a perversion, chimes in. “Perfect,” she says, sucking the juices of a burger from her middle finger, her eyes never wavering from the man she decides to call Larry because he looks like one. “Is your imagination so fucked you have to see things twice for your dick to get hard?” Beverly concludes, her digraphs pointedly curt, left to flutter in the air.
Weisz’s voice is tremendous in its dexterity. Years ago I saved a recording of her monologue from Wong Kar-Wai’s English language film, My Blueberry Nights, and would listen to it on my phone, my ear against the speaker hanging on Weisz’s every breath as her character, drunk and lost in the morass of the past, speaks. “I was 17 when he pulled me over, high as a kite,” the monologue begins. Weisz is doing a southern accent, drawing out each syllable. She says the word high like its single syllable is endless, a spiritual nod to Vivien Leigh’s work as the faded madwoman Blanche DuBois in 1951’s A Streetcar Named Desire. Listening, I feel submerged in Weisz’s unhurried approach to the script and the emotional ocean it opens up. It’s an approach of restraint she brings to all her roles, from belovedaction romps like The Mummy to austere satire like The Favorite. In Dead Ringers, however, Weisz has crafted her best performance to date,a master class in playing identical twins and a stunning exploration of what happens when Weisz wields her prowess against her most skilled scene partner: herself.
Brought into being by showrunner and playwright Alice Birch, Dead Ringers has little interest in simply replicating Cronenberg’s 1988 horror film, which starred Jeremy Irons in dual lead roles. Where that film — itself based on a novel that was loosely inspired by a 1975 New York Magazinepiece about twin gynecologists who practiced and died together mysteriously — is cooly masculine, Weisz and Birch’s take is delightfully and grotesquely feminine, obsessed with the ways women’s bodies are manipulated and harmed by forces outside their control. The result is a six-episode hothouse in which Weisz’s performance as two physically indistinguishable characters in the same story could have easily tipped into self-indulgence. Like it did in 1964’s Dead Ringer (similar title, different twin story), when Bette Davis, American cinema’s premiere explorer of women’s rage, played twins for the second time in her career.
I’ll be the first to extol Davis as Brando before Brando, but in Dead Ringer her performance swerves into leaden territory, all brash gesticulations with no profound differentiation between the sisters beyond the galvanizing strokes of the script. Still, it’s a riot to watch her play against herself, even as the era’s technology largely prohibited the twins from being on-screen at the same time. Davis is clearly enamored with the pleasure of playing against herself, and her admiration is contagious. It’s the kind of self-regard that Irons brought to his Dead Ringers, this time amounting to a performance too studied and too calculating to enjoy any differentiation on the screen. He preens, screams, and haughtily sucks up oxygen in distinct ways, but it’s a performance like clockwork. Tick tick tick. No choice will ever surprise you, because you already know where his hands are moving.
Weisz exists in a pantheon alongside Nicolas Cage and Tatiana Maslany in her tremendous approach to playing dual roles, the former proving his chops in the 2002 film Adaptation, playing twin screenwriters — one sloppy, boisterous, charismatic enough to paper over his lack of talent, the other an artist in the highest sense, beset with anxiety and self-doubt. Cage played Charlie and Donald not as polar opposites but as distinct entities, an approach adopted by Maslany, who gained acclaim for 2013’s Orphan Black, a gonzo series that ran for five seasons and required her to portray a multitude of clones with varying styles, accents, and dispositions. As the show stretched on and more characters were introduced, Maslany’s skills were tested, but at the show’s peaks, she embodied the clone’s differences with such keen physicality we could understand their internal lives without a word spoken. Weisz similarly compliments her exceptional voice work — drawing out her words as Elliot and abbreviating them as Beverly — with unmistakable differences in the ways she holds her body. As Elliot, she takes up space — with her posture, with her gaze. As Beverly, she is softer in her eye line, comfortable being small and existing in the shadow of her sister’s tenacious appetites. They are meant to be a study in contrasts, not in total opposition.
Weisz’s performance gets richer as the plot spills into the deranged and the twins turn to Rebecca Parker, a craven Sackler-esque billionaire heiress (whose family also proudly architected an opioid crisis), in order to fund their birthing center. Their work under Parker (a cunning Jennifer Ehle) entails Frankenstein-like experimentation growing fetuses outside a human womb, corporate intrigue paid in blood, and gristly births, a time during which we see Elliot asking a client’s husband to whip out his dick after his wife leaves the room and Elliot luring a famed actress named Genevieve (Britne Oldford) into a relationship with Beverly. Dead Ringers traces the various ways women exert forms of power upon one another in order to gain purchase in the world, like in episode two, when the twins make their way to the Parker estate for a weekend. Beverly is uncomfortable performing to the satisfaction of Rebecca and her family, but Elliot outright refuses to play by the rules of this loathsome mix of money-hungry people who relish the opportunity to jockey for attention.
As the Parkers prod Elliot and Beverly, Weisz’s two distinct performances rise to the surface like images on Polaroids coming into being. Elliot calls a gaggle of Parker children “a delightful little Aryan cult” between sips of “the Champagne of kombucha” and casually deploys “fuck” with an undeniable confidence despite the discomfort of those in her audience; she will not let these cruel people abuse her. But when Rebecca drolls out, “How are you Beverly?” with all the sweetness of a threat, the scene shifts. Beverly carries herself with great hesitation, her gaze drifting downward in the plentiful close-ups, dreamlike in its constitution. There’s a tension around the eyes that builds as the scene continues into a pointed interrogation of Beverly’s thoughts on opioids and her reluctance to eat a once-beloved family animal now prepared for them in this grand feast. She stutters, drifts, falters at every sentence. Where Elliot leans into ostentation, Beverly demures.
Weisz’s mercurial face performs with impressive elasticity in the third episode, but the tender shifts in her visage are never self-consciously ostentatious. They instead demonstrate great restraint beginning with Eliott snorting cocaine with Genevieve at the grand unveiling of the first Mantle-Parker birthing center. We follow the clench of her jaw and her eyes rimmed with kohl as she munches on martini-soaked olives, her eyes carrying a glint of jealousy and fury. She studies Genevieve and Beverly in a softly sweet embrace as if it were a crime scene and the crime itself was the degradation of their overheated bond as sisters. Those eyes tell a story, even later, when Elliot is in surgery, decked in scrubs the color of a fresh wound and a mask that hides half her face. When an older woman asks, “What happens if you put that 24-year old’s tissue straight in me?” her vision flirts with all the potential responses; she’s delighted by her own intelligence. Beverly operates in a more modest register, allowing Weisz to demonstrate how effective pure discipline can be onscreen.
Consider Beverly’s frightened visage as she clumsily handles a smoke after an activist pours pig innards upon her for deigning to work with Rebecca Parker. Or later, in the hushed darkness of Genevieve’s home, their lust giving way to tenderness: “I want to put a baby in you,” Genevieve whispers, “I want to drink a bottle of wine, and I want to fuck you with no condom on.” As Beverly, Weisz’s eyes are searching, yearning, on the precipice of tears. Later, when Elliot joins Beverly and Genevieve for a scene, the careful differences between the twins play out in Weisz’s eyebrows. “Fucking hell. This is not appropriate. This is not healthy,” Genevieve forcefully proclaims, after Elliot takes issue with a trip her sister plans to take without her. “You can’t have everything in your sister’s life, and you certainly can’t have this.” Beverly is behind her, facing the camera’s curious gaze, her eyebrows gently rising and failing and knitting together in confusion.
This kind of acting can go south, the eyebrows dancing while the face remains strangely still. (Emilia Clarke over the course of Game of Thrones comes to mind. Natalie Portman when she’s given improper material, leaving her to fall back on those bone-straight brunette arches.) Weisz uses her eyebrows with a light touch. Their movements have a revelatory grace that calls us to study the rest of her face; how she angles herself this way or that, how her lips appear like a bow of blush that could be unraveled with a curse or a sigh. “I need you not to go,” Elliot finally says with a sigh. She embraces her sister — whose face is masklike in its unreadability — turning her open heaving mouth upon her neck. Is it a kiss, or is she trying to devour her? The psychosexual contours of the series glimmers.
From this point things grow even wilder for Weisz’s sisters. By the beginning of episode six, life has gone tits up for Elliot. She’s botched a C-section, puncturing the mother’s bladder after drinking booze to quell her ragged emotions. And what was designed as a trifle of an article to bolster the Mantle-Parker centers became a hit piece against Elliot detailing her drug and alcohol abuse and sexual improprieties with the husbands of patients, all damning evidence that this woman is more than unruly. She’s dangerous. Beverly has chosen Genevieve in this tangled war, leaving Elliot bereft to hide out in her lab, where the final scene between Beverly and Elliot plays out. When Beverly enters the space, encased in shadow but punctuated by the glow of its life-giving instruments, Elliot is lying on the floor. Beverly glides closer to her sister until they are face to face, and a smile spills across each of their faces like oil slicks in a cerulean sea. To this point, it’s been easy to tell them apart based on temperament, style, and physicality even when they make a game of switching places. But here their overlaps are more evident. Their hands greedily roam the other’s face as if they’re seeing each other for the first time in an eternity; their eyes are aglow with desire finally met. They sigh and laugh. A kiss on the forehead becomes an embrace. They are enraptured, until Beverly catches the icy glow of two fetuses genetically engineered by Elliot. “I don’t think I’m capable of happiness,” Beverly says with a level of calm that renders her face and movements strangely beatific. “I have to climb inside of you now. There was only supposed to be one of us. You were always the better me.” And so the twins, indistinguishable by now, congeal their lives into a single entity. A pact is made. Blood is spilled.
If I had to describe Dead Ringers in a single color it would be red. But not just any red. The red of arteries, gaping wounds, placenta, and bruised knuckles. The series upholds a radical belief in the interior complications of women who want, with every aspect of their being, and who desire to confront the violence done upon their bodies, acknowledging the gore inherent in birth and womanhood. Weisz, an actress of appetites whose history of playing queer women in Disobedience and The Favorite has garnered her a dedicated following, is able to match the intensity of these themes. Her performances shimmer with a feminist current that charges every rise of her voice and every gesture of her body. It feels like the apotheosis of what she has demonstrated before and then some — a gentle beauty complicated by fierce intelligence, a graceful presence stitched through with ungainly wants, a voice that flows like the tides. Dead Ringers is the ultimate acting opportunity: Rachel Weisz topping herself.
The first, A Stolen Life,proved she can give a tender, quieter performance against expectation.
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();
// ]]