Laptop with a

Online Test Proctoring Claims to Prevent Cheating. But at What Cost?

Posted on

Laptop with a
Picture representation through Slate. Footage through kasinv/iStock/Getty Pictures Plus.

When Madi Mollico signed as much as take the GRE in Would possibly, she knew she’d must do it on-line. With all trying out places close all the way down to agree to COVID-19 insurance policies, the Tutorial Checking out Carrier, the corporate that administers the GRE, digitized its checks—and as a part of the method, Mollico downloaded instrument from ProctorU, which assigned a proctor for her examination. He watched as she gave a video excursion of her examine area: no posters at the wall, not anything on her table, and suitable lighting fixtures. “They can see you, but you can’t see them, which I didn’t feel good about,” Mollico instructed me in June, once I reported at the GRE’s on-line layout for Science. To make issues worse, her proctor saved calling her “sweetheart.” “I thought it was a little bit condescending.”

Whilst some facets of the pandemic-era lecture room translate simply wonderful to a virtual layout, checks have change into extra difficult. In most cases, scholars take the SAT, the GRE, or any selection of midterms or finals in school rooms with proctors status within the entrance of the room. However with scholars at house, some instructors have grew to become to proctoring instrument to verify scholars aren’t the use of unauthorized notes, textbooks, or different equipment to assist their examine taking.

There are a number of manufacturers of proctoring instrument, and so they take other approaches. Some report scholars’ monitors and save you them from opening positive programs, like a internet browser, or from taking screenshots of checks. Different instrument in fact watches scholars: ProctorU, the carrier Mollico used whilst taking the GRE, employs are living proctors to watch scholars in actual time as they take a examine, whilst Proctorio data video of scholars after which makes use of A.I. to research movies to resolve whether or not scholars are doing the rest “suspicious.” Unsurprisingly, scholars don’t seem to be extremely joyful about being surveilled, and plenty of have reported their irritating studies with instrument incompatibility problems or malfunctions. Others have exposed the troubling biases of algorithms that scan scholars’ movies for attainable dishonest behaviors: Darker-skinned scholars document that some apps ask them to improve their lighting, and one pupil instructed the New York Occasions that the instrument flagged her involuntary mouth actions. Airing grievances about proctoring instrument is a complete style of pupil tweets; a Twitter account began in August is devoted to “retweeting evidence of emotional harm” from what it calls surveillance instrument.

According to issues about bias and surveillance, some colleges, like McGill and the College of California, Berkeley, have banned the usage of “technology-enabled invigilation” totally, however masses of establishments nonetheless use those services and products. Judging through my interviews with instructors, apparently that many in the long run can make a decision whether or not to make use of instrument supplied through their colleges. Given the outcry from scholars, how are instructors interested by their method? And whilst those apps obliquely trace at combating dishonest and selling equity, what will we find out about their true impact on scholars’ studying?

Helaine Alessio, the chair of the kinesiology, diet, and well being division at Miami College in Ohio, revealed a learn about about proctoring instrument in 2018—and all of it started with the suspicion that her scholars have been dishonest. There have been a “larger than expected number of As” on an examination in a web based route she co-taught, she says, and he or she and her colleagues have been alarmed through it. They then determined to put in force proctoring instrument in 4 of the classes’ 9 sections and when compared 147 scholars’ examination effects throughout 4 checks. (3 sections used Instrument Protected, which data scholars and makes use of proctors to study the photos, and one used Respondus Track, which “locks down” test-takers’ internet browsers and data scholars.) On reasonable, scholars the use of proctoring instrument scored 17 issues (out of 100) less than scholars who didn’t use the instrument. That, Alessio says, used to be a robust indication that scholars might be dishonest.

Certainly, some scholars do cheat—and when it comes to Alessio and her colleague’s route, it’s undoubtedly conceivable that proctoring instrument deterred or averted some scholars from dishonest. However there are different explanations for that drop in grades, too. As an example, a 2019 learn about through Metropolitan State College teacher Daniel Woldeab and College of Minnesota psychologist Thomas Brothen discovered that scholars who rated extra extremely on anxiousness scored worse when the use of proctoring instrument as opposed to simply taking a web based examine with out proctoring. “We have identified an issue that seems to have escaped the attention of researchers studying online learning—test anxiety,” they write. (Once I requested Alessio whether or not her paintings addressed the likelihood that proctoring itself may have an effect on rankings, she mentioned it’d make for an enchanting learn about.)

The mere danger of being flagged can also be anxiety-provoking for college students. One fresh viral TikTok confirmed a pupil crying after she were given a 0 on an examination as a result of proctoring instrument flagged her studying a query to herself as “suspicious.” It’s unclear which instrument she used to be the use of, however this fits the options of widespread instrument like Proctorio, which analyzes video the use of A.I. and scans for positive suspicious behaviors: whether or not any person else enters the room throughout the examination, in addition to the scholar’s head or eye actions. Taking a look up or transferring your eyes towards one course might be a sign {that a} test-taker has notes simply off display—however consistent with one 2018 learn about, it additionally may simply imply the test-taker is solely apprehensive. Find out about co-author Tammi Kolski, who’s an accessory college member at 3 U.S. universities, says that instructors will have to method scholars to have “fair communications” about what instrument perceives as “suspicious.” Kolski says that during her classes, she tries to deal with open strains with scholars to construct consider and to discuss examine anxiousness prematurely. “I don’t think we should assume a student is going to [cheat], but I think we need to be realistic that there are students that do,” she says. “If you’re not a cheater, this shouldn’t bother you.”

However that’s the object: Whilst instructors would possibly not intend to “bother” scholars who aren’t dishonest, proctoring can nonetheless have a destructive have an effect on. Even supposing scholars would possibly not consciously really feel apprehensive or frightened, being proctored can absorb treasured mind actual property that may another way be used on concentrating at the examination, says Joshua Eyler, director of college building on the College of Mississippi and writer of How People Be told: The Science and Tales At the back of Efficient Faculty Instructing. “In the best of times, students are wrestling with cognitive load: how much space we have in our brains available to manage the learning task we are given,” he says. “But we’re not in the best of times. We’re in pandemic times.” Finding out how you can navigate new instrument, questioning whether or not it’s running as it should be, being concerned your roommate may unintentionally stroll into the body and cause the instrument to flag you as dishonest, managing your eye actions to steer clear of seeming “suspicious”—all that calls for psychological area. “It’s like a student sitting in a classroom and someone periodically screaming at them, ‘DON’T CHEAT,’ ” says Eyler. It could make any person jumpy. And regardless that flags from this instrument don’t routinely imply scholars shall be penalized—instructors can evaluation the instrument’s suspicions and make a decision for themselves how you can continue—it leaves open the likelihood that instructors’ personal biases will resolve whether or not to deliver educational dishonesty fees towards scholars. Even simply an accusation may negatively have an effect on a pupil’s educational report, or on the very least how their teacher perceives them and their next paintings.

A machine set as much as penalize scholars suspected of dishonest additionally doesn’t deal with the foundation of the issue: why scholars cheat within the first position. “Students don’t cheat because they’re twisting their mustaches and trying to figure out how to cheat the system—they cheat mostly because they’re overwhelmed and under-resourced and undersupported,” says Shea Swauger, a senior teacher on the College of Colorado Denver’s Auraria Library. If so much is driving on a unmarried examine, or a grade in a route determines whether or not you’ll stay your scholarship or get into a big, then most likely chances are you’ll see extra scholars dishonest. Alessio says that of their research of rankings, they discovered that the scholars who carried out probably the most another way whilst being proctored have been much more likely to be dealing with upper stakes, like those that have been in majors that wanted a GPA over 3.5. “We didn’t directly say they cheated, but the implication was very strong,” she says. For Alessio, that is proof proctoring is essential. However different educators see this another way: The truth that scholars really feel the want to cheat is proof of bigger problems in schooling, says Swauger, and educators want to to find higher tactics to beef up the ones scholars quite than penalizing them.

The incentives undoubtedly don’t seem to be in prefer of underpaid and overcommitted instructors spending time to do that. Even so, many educators are dedicated to averting proctoring instrument, even though that suggests extra paintings on their finish. Dorothy Christopher, a postdoctoral fellow instructing an intro plant biology route on the College of Wisconsin-Milwaukee, says she’s set a point in time for checks so scholars can’t glance up each and every solution simply, however refuses to make use of a proctoring carrier. “I have better things to do than police students’ eye movements,” she wrote to me in an e mail. “Probably some of my students do cheat, but preventing a small amount of cheating is not worth the cost of assuming my students are all criminals.”

Katherine Wolsiefer, a psychology assistant professor at Plymouth State College (and a chum of mine from highschool), says she’s additionally been reluctant to make use of proctoring instrument. “We have many students from difficult backgrounds who may feel especially self-conscious about a professor seeing their surroundings, and the basic idea is that such extreme surveillance does not build a community of trust in which the student would feel comfortable reaching out to a professor for help,” she says. Like Christopher, she is aware of dishonest is a certain chance, however has discovered much less invasive tactics to deter it: She randomizes the order of questions and responses on checks in order that scholars looking to percentage solutions would have a tougher time coordinating solutions, and her checks are all open ebook and open be aware. That each one takes effort and time, however designing checks on this method turns out to take about an identical quantity of time as it will for an teacher to study “suspicious” habits flagged through proctoring instrument.

Once I requested Alessio about some educators’ ideas to make use of selection strategies of review, she mentioned her route does use a number of review equipment, like dialogue forums, case research, and different assignments, however proctored, multiple-choice checks are essential to organize scholars to take different multiple-choice checks they are going to stumble upon at some stage in their schooling, like standardized checks for graduate faculty or board certifications. “If we never gave our students the type of test [that] they will definitely see in their profession in order to become a certified you-name-it, I think that would be doing them a disservice,” says Alessio. And proctoring, she says, is a option to “even the playing field.”

  1. “I Have Done Humanity a Big Friggin’ Favor”: A Participant in a COVID Vaccine Trial on What It’s Like

  2. We Finally Know What a Dinosaur’s Butthole Looks Like

  3. Will Robotic Trucks Be “Sweatshops on Wheels”?

  4. All 55 NES Games on the Switch, Ranked

While Alessio sees proctoring software as a way to enforce fairness by distinguishing between cheating students and honest ones, Swauger sees an age-old “us versus them” mentality that has always been pervasive in higher education. “Anytime people from a non-dominant group seek to participate in education, predictable counter arguments emerge that rest on the belief that their inclusion would harm current students, academic standards, productivity, etc.,” Swauger writes in a chapter included in Critical Digital Pedagogy. One popular example of this is how the SAT was created by eugenicist Carl Brigham as a way to “prove” the superiority of the white race and to exclude Black students. “In general, higher ed has never really shaken this exclusionary stance or posture. It just tries to mask it in different ways,” says Swauger. Flagging “suspicious” or “unworthy” students is a new type of exclusion, which, by algorithmic design, flags students who deviate from the “average”—students with darker-than-average skin or students who move their head or eyes around more than average. “Literally anyone on the margins is suspicious,” says Swauger.

Swauger also vehemently disagreed with Alessio’s view of an educator’s role. While it’s true that students may need to take high-stakes proctored exams later on, he says, merely taking other multiple-choice exams won’t necessarily prepare students—and research has shown there are other ways to help do that, like ensuring students gain a deep overall understanding of what they’ll be tested on. “The project of education is different than testing well,” he says.

Future Tense
is a partnership of
Slate,
New America, and
Arizona State University
that examines emerging technologies, public policy, and society.

element for the amplitude component,
* hit the Amplitude APlog the page view.
* This function calls itself up to RETRY_LIMIT times
* with a RETRY_DELAY delay, because the device ID isn’t
* available right away.
*
* If the device ID isn’t found after RETRY_LIMIT times,
* then log the page view without the device ID.
*
* @param Element el
* @param undefined attemptCount // defaults to 0
*/
// find a component by classname and verify the data-uri matches
// returns the component element, or `undefined` if it can’t be found or verified

function findComponent(name)
var component = document.body.querySelector(“.” + name);

if (component)
var uri = component.dataset.uri;

if (uri && uri.split(“/”)[2] === name)
return component;

function getLayoutBreakpoint(viewportWidth)
// see app/global/scss/settings/_units.scss#L1
var breakpoints = [[“sm”, 320], [“md”, 768], [“lg”, 1024], [“xl”, 1440]];
var i = breakpoints.length;

while (i–)
if (viewportWidth >= breakpoints[i][1]) return breakpoints[i][0];

return breakpoints[0][0];

function logPageView(instance, el, mpvCookie)
var pageviewProperties = slateAmplitude.getDomEventData(el);
pageviewProperties.search = window.location.search;
pageviewProperties.amplitude_id = instance.options ? instance.options.deviceId : “no options – no deviceId”;
pageviewProperties.viewportWidth = document.documentElement.clientWidth;
pageviewProperties.layoutBreakpoint = getLayoutBreakpoint(pageviewProperties.viewportWidth);
var membershipType = getUserMembershipType();

if (membershipType)
pageviewProperties.plan = membershipType;

if (loginId)
pageviewProperties.signed_in_uuid = loginId;

pageviewProperties.taboola_loaded = castAsAmplitudeBool(isTaboolaLoaded());
pageviewProperties.taboola_eligible = castAsAmplitudeBool(isTaboolaEligible());

if (window.Scroll && Scroll.config.detected)
pageviewProperties.isScrollUser = true;

/* In case session api errors out */

pageviewProperties.visitstart = castAsAmplitudeBool(isVisitStart());

try
pageviewProperties.adBlocker = castAsAmplitudeBool(isAbEnabled());
catch (e)
console.error(e);

if (!isNaN(mpvCookie.pv))
pageviewProperties.Nth_pageview = mpvCookie.pv + “”;
// add event properties to help measure effectiveness of affiliate and product links

if (getAffiliateLinks().length > 0)
pageviewProperties[“Affiliate Link”] = “✅”;

var product = findComponent(“product”);

if (product)
pageviewProperties[“Product Component”] = “✅”;
// event properties to measure the effectiveness of newsletter signups

var newsletterSignup = findComponent(“newsletter-signup”);
pageviewProperties[“Includes Newsletter Signup”] = castAsAmplitudeBool(newsletterSignup);

if (newsletterSignup)
pageviewProperties[“Newsletter Signup Placement”] = “In Content”; // eventually there will be other values for this
// event properties to measure the effectiveness of slate plus button

var slatePlusButtonComponent = findComponent(“slate-plus-button”);

if (slatePlusButtonComponent)
var slatePlusButton = slatePlusButtonComponent.querySelector(“.slate-plus-button__basic”);

if (slatePlusButton)
pageviewProperties[“Slate Plus Button Component”] = slatePlusButton.innerText;

var roadblock = !membershipType && findComponent(“slate-roadblock”);
pageviewProperties[“Includes Slate Plus Roadblock”] = castAsAmplitudeBool(roadblock);
var headerPromo = findComponent(“header-promo”);

if (headerPromo)
pageviewProperties[“Includes Header Promo”] = “TRUE”;

slateAmplitude.page(pageviewProperties); // after the pageview was logged, trim the “via” from the url to prevent users from sharing it

via.removeFromLocation();

function setMemberStatusUserProp(userProps)
var membershipType = getUserMembershipType();

if (membershipType)
userProps.plan = membershipType;

function setUserLoginId(userProps)
if (loginId)
userProps.signed_in_uuid = loginId;

function setScrollUserProp(userProps)
var isScrollUser = window.Scroll && Scroll.config.detected;

if (isScrollUser)
userProps.scrollUser = isScrollUser;

function setABUserProp(userProps)
var abCookie = Cookies.get(“AB”); // sanitize the cookie

userProps.abTest = isValidAbTestString(abCookie) ? abCookie : “0”;

function trackEndOfArticle()
var parahTombstone = document.querySelector(“.slate-paragraph–tombstone”);

if (!parahTombstone)
return;
//makes sure tracking is only sent once because of throttling

var trackSent = _once(function ()
slateAmplitude.track(“Completed article”);
slatePermutive.track(“ArticleCompletion”);
document.removeEventListener(“scroll”, trackScrolling);
);

var trackScrolling = _throttle(function ()
var scrollY = “scrollY” in window ? window.scrollY : window.pageYOffset; // non-standard prop for IE11

if (parahTombstone.offsetTop + parahTombstone.offsetHeight <= scrollY + window.innerHeight) trackSent(); , 300); document.addEventListener("scroll", trackScrolling); function logUserProperties(instance) instance = instance function handleMpvCookie(el) var pageTypesThatIncrement = ["article"https://slate.com/,"coverstory"https://slate.com/,"plus"]; var pageType = el.dataset.pagetype; var isCorrectPageType = pageTypesThatIncrement.includes(pageType); var mpvCookie = getMpvCookie(); if (isCorrectPageType) mpvCookie = updateMpvValue(mpvCookie, el.dataset.pageHash); setMpvCookie(mpvCookie); return mpvCookie; function Constructor(el) var mpvCookie = handleMpvCookie(el); window.slateAmplitudeQueue.push(function (instance) // Add some tracking callbacks trackAffiliateLinks(); trackEndOfArticle(); logPageView(instance, el, mpvCookie); logUserProperties(); via.setPageType(el.dataset.pagetype); ); return Constructor; }]); }, "1":1,"2":2,"3":3,"39":39,"47":47,"48":48]; window.modules["social-share.client"] = [function(require,module,exports)"use strict"; var socialPopupWindow = require(9); DS.controller("social-share", [function () return function (el) return socialPopupWindow.attachEvents(el); ; ]); , "9":9]; window.modules["in-article-recirc.client"] = [function(require,module,exports){"use strict"; // recirc component needs to be before the first graf to align properly when floated, // but we don't want it to appear _above_ the first paragraph in stacked mobile views DS.controller("in-article-recirc", [function () { function Constructor(el) this.el = el; // if the recirc component is in its initial position, directly above the first graf // and has not been manually re-located by copy/production, then spring into action var p1 = el.nextElementSibling; var ref = this.getOriginalReferenceNode(); if (p1 && p1 === ref) this.updatePosition(); // using setTimeout because it seems necessary for mqs in css to propagate? var updatePosition = function (e) setTimeout(function () this.updatePosition(); .bind(this)); .bind(this); // mqs here match up with breakpoints defined in settings.scss and mqs defined in layouts.scss // listening to mq changes because it affects ad visibility // todo: import variables from scss https://github.com/slategroup/slate-redux/issues/2881 [320, 768, 1024, 1440].forEach(function (breakpoint) window.matchMedia("(min-width: " + breakpoint + "px)").addListener(updatePosition); ); Constructor.prototype = // when this query finds the element immediately following the recirc, // we will execute the repositioning logic - it's ok to cautiously add components here // but be sure to test the layout at all breakpoints getOriginalReferenceNode: function getOriginalReferenceNode() return this.el.parentNode.querySelector(".slate-paragraph, .partner-branding"); , // given a parent node, find the first suitable child element // to insert the recirc element before (on mobile devices) getOverrideReferenceNode: function getOverrideReferenceNode() // re-insert after the second paragraph or visible ad var refCount = 0; var numSibs = this.el.parentNode.children.length; var ref = this.el.parentNode.firstElementChild; for (var i = 0; i < numSibs; i++) var refStyles = window.getComputedStyle(ref); if (ref.matches("p.slate-paragraph, div.ad") && refStyles.display !== "none") refCount++; // note that this will be `null` if the second passing element is the last child ref = ref.nextElementSibling; if (refCount === 2) break; return ref; , updatePosition: function updatePosition() // n.b. the max-width here is coupled with mqs in styles.scss var isMobile = !window.matchMedia("(min-width: 1024px)").matches; var el = this.el; var parent = el.parentNode; if (!isMobile) // on desktop, move to original position near the top of the content var _referenceNode = this.getOriginalReferenceNode(); parent.insertBefore(el, _referenceNode); el.hidden = false; return; var referenceNode = this.getOverrideReferenceNode(); if (referenceNode) // move it to the appropriate position and display it parent.insertBefore(el, referenceNode); el.hidden = false; else // if a suitable reference node couldn't be determined, hide recirc on mobile; // our taboola contract specifies max space b/w the end of the article // and the beginning of the chumbox, and recirc isn't really article content, // so we should try to ensure that recirc is not the last thing on the page. el.hidden = isMobile; ; return Constructor; }]); }, ]; window.modules["permutive.client"] = [function(require,module,exports){"use strict"; /* global permutive: false */ module.exports = function (el) { var consentTokenName = "slate-token"; window.nonIabVendorApi.registerVendor("permutive", { categories: ["C0002"https://slate.com/,"C0003"https://slate.com/,"C0004"], initFunc: function initFunc(consent) if (!consent) return false; function getCookie(a) var b = document.cookie.match("(^ function getSearchParam(paramName) try var search = new URL(document.location).searchParams; return search.get(paramName); catch (e) console.error("could not get " + paramName + " url param", e); function addUserPermutiveParam(key, value) if (!window.slatePermutiveData.page.user) window.slatePermutiveData["page"]["user"] = ; window.slatePermutiveData["page"]["user"][key] = value; try var search = new URL(document.location).searchParams; if (search.get("utm_source")) window.slatePermutiveData["page"]["utmSource"] = search.get("utm_source"); if (search.get("utm_medium")) window.slatePermutiveData["page"]["utmMedium"] = search.get("utm_medium"); if (search.get("utm_campaign")) window.slatePermutiveData["page"]["utmCampaign"] = search.get("utm_campaign"); catch (e) console.error(e); if (el.dataset.isSplusUser) try addUserPermutiveParam("slatePlus", true); catch (e) console.error(e); // !-- // identify calls we can do immediately -- var identities = []; // add an identity to the list and also tack it onto the pageview event function addUserIdentity(tag, id) if (id) identities.push( tag: tag, id: id ); addUserPermutiveParam(tag, id); addUserIdentity("slateId", getCookie("wapo_login_id")); addUserIdentity("publisherUserId", getCookie("slate-uuid-js")); addUserIdentity("sailthruId", getSearchParam("sid")); if (identities.length > 0)
window.permutive.identify(identities);

permutive.consent(
opt_in: consent,
token: consentTokenName
);
permutive.addon(“web”, window.slatePermutiveData);
var elem = document.createElement(“script”);
elem.src = “https://cdn.permutive.com/” + el.dataset.permutiveProjectId + “-web.js”;
elem.defer = true;
var scpt = document.getElementsByTagName(“script”)[0];
scpt.parentNode.insertBefore(elem, scpt);
return true;
,
updateConsentFunc: function updateConsentFunc(consent) {
if (permutive)
try
var currentConsent = JSON.parse(localStorage[“permutive-consent”]).opt_in;

if (currentConsent != consent)
permutive.consent(
opt_in: consent,
token: consentTokenName
);

catch (e)
permutive.consent(
opt_in: consent,
token: consentTokenName
);

}
});
permutive.ready(function () {
// Amplitude is loaded later, so we have to queue our identify call
window.slateAmplitudeQueue.push(function ()
var permutiveIdentities = [];

if (permutive.context)
permutiveIdentities.push(
tag: “puid”,
id: permutive.context.user_id
);

try
var amplitudeId = window.amplitude.getInstance().options.deviceId;

if (amplitudeId)
permutiveIdentities.push(
tag: “amplitudeId”,
id: amplitudeId
);

catch (e)
console.error(“Error setting amplitudeId”, e);

if (permutiveIdentities.length > 0)
permutive.identify(permutiveIdentities);

);
});
};
}, ];
window.modules[“piano.client”] = [function(require,module,exports){“use strict”;

var slateAmplitude = require(2);

var _require = require(41),
getMorgioniProps = _require.getMorgioniProps,
setMorgioniProps = _require.setMorgioniProps;

var cookies = require(42); // tp implicit global variable initialization –
// this differs from their docs, our scripts do not run in the global context,
// and the global tp object gets replaced on init so the variable reference becomes wrong

if (!window.tp) window.tp = [];
var tp = window.tp; // this bit could turn out to be useful if we need to do anything with the hydrated tp object
// tp.push([“init”, () => void (tp = window.tp)]); // re-assign local variable after init
// todo: is it ok to run this after tp init?

try
var articleData = slateAmplitude.getDomEventData(); // The content published date

tp.push([“setContentCreated”, articleData.pub_date]); // The content author -only one is allowed according to their docs..

tp.push([“setContentAuthor”, articleData.authors.join(“,”)]); // The content section – or should we use the rubric?

tp.push([“setContentSection”, articleData.section]); // Add custom variables as any key-value pair. The first parameter is the key; second is the value

tp.push([“setCustomVariable”https://slate.com/,”contentRubric”, articleData.rubric]); // The content tags

tp.push([“setTags”, articleData.tags]);
catch (e)
console.error(e);
// If the content is native advertising
// tp.push([“setContentIsNative”, false]);
// The custom params
// todo: what is this and how does it differ from a custom variable
// tp.push([“setCustomParam”https://slate.com/,”type”https://slate.com/,”premium”https://slate.com/,”content”]);
// The AAM Zone
// tp.push([“setZone”https://slate.com/,”Web”]);

tp.push([“setUsePianoIdUserProvider”, true]);
tp.push([“init”, function () {
var tp = window.tp; // fuuuuuuck
// I hate this

tp.amplitude = slateAmplitude;
tp.morgioni =
getMorgioniProps: getMorgioniProps,
setMorgioniProps: setMorgioniProps
; // Called by Piano Composer

tp.fireAmplitude = function (event)
tp.morgioni.setMorgioniProps();
var eventProps = tp.morgioni.getMorgioniProps();
slateAmplitude.track(event, eventProps);
;

tp.pianoId.init({
loginSuccess: function loginSuccess()
if (!cookies.get(“sp_secure_id”))
var myslateUrl = document.documentElement.dataset.myslateurl; // set sp_secure_id cookie and splus cookie for members

fetch(“”.concat(myslateUrl, “/membership/verify/”),
credentials: “include”
); // see slate-comments/client.js for lf_secure_login_id

,
loggedOut: function loggedOut()
// these cookies are set by myslate and we don’t know what domain the cookie is on
[“.local.dev.slate.com”https://slate.com/,”.dev.slate.com”https://slate.com/,”.stage.slate.com”https://slate.com/,”.slate.com”].forEach(function (d)
[“splus”https://slate.com/,”sp_secure_id”https://slate.com/,”lf_secure_login_id”].forEach(function (c)
cookies.remove(c,
domain: d
);
);
);

try
for (var i = 0; i < localStorage.length; i++) if (localStorage.key(i).indexOf("fyre") > -1)
localStorage.removeItem(localStorage.key(i));

catch (e) // do nothing, if an exception is thrown accessing cookies or storage,
// then we probably never had anything stored in the first place

});
}]);
}, “2”:2,”41″:41,”42″:42];
window.modules[“adblock-message.client”] = [function(require,module,exports){“use strict”;

var membership = require(3),
isMember = membership.isMember(),
isAbEnabled = require(1).isAbEnabled,
slateAmplitude = require(2);

DS.controller(“adblock-message”, [function () {
var Constructor;
/**
* @param Element el
* @constructor
* @property Element el
*/

Constructor = function Constructor(el)
this.el = el;
this.message = el.querySelector(“.adblock-message__content”); // it’s not in the spec but in practice browsers may raise exceptions for “getItem”

try
// using `var` to set this in the function scope
var pageView = localStorage.pageview catch (e)
return; // we can’t access storage to keep track of pageviews, bail out

function setPageViewCookie(count)
try
localStorage.pageview = count;
catch (e) // swallow the error, users may disable storage access after the component is constructed

function isActivePageView()
return (pageView – 2) % 3 === 0;

/**
* Set and increment pageview cookie on page load
*/

window.addEventListener(“load”, function ()
pageView++;
setPageViewCookie(pageView);
);
/**
* Check conditions for displaying the adblock message
*/

var _this = this;

window.setTimeout(function ()
var adblockEnabled = isAbEnabled(),
activeView = isActivePageView();

if (!isMember && adblockEnabled && activeView)
_this.showMessage();

, 1000);
/**
* Close the ad message if user clicks outside of the message container
*/

document.body.addEventListener(“click”, function (e)
if (_this.messageIsVisible())
if (!_this.message.contains(e.target))
_this.hideMessage();

);
document.addEventListener(“keyup”, function (e)
if (_this.messageIsVisible() && (e.key === “Escape” );
;

Constructor.prototype =
events:
“.js-message-close click”: “hideMessage”,
“.js-message-button click”: “buttonAnalytics”
,
messageIsVisible: function messageIsVisible()
return document.body.classList.contains(“adblock-enabled”);
,
showMessage: function showMessage()
document.body.classList.add(“adblock-enabled”);
slateAmplitude.track(“Adblocker – View Overlay”);
,
hideMessage: function hideMessage(e)
document.body.classList.remove(“adblock-enabled”);
,
buttonAnalytics: function buttonAnalytics(e)
var button = e.target,
buttonEvent = button.text;
slateAmplitude.track(“Adblocker – Click ” + buttonEvent);

;
return Constructor;
}]);
}, “1”:1,”2″:2,”3″:3];
window.modules[“webapp-serviceworker.client”] = [function(require,module,exports){“use strict”;

(function () {
“use strict”;

if (!navigator.serviceWorker)
return;
// Temp patch on issue that affected ads. This is not permanent business logic.
// https://github.com/slategroup/slate-redux/issues/3212

if (navigator.vendor === “Apple Computer, Inc.”) {
navigator.serviceWorker.getRegistrations().then(function (registrations)
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;

try
for (var _iterator = registrations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)
var reg = _step.value;
var valid = reg && reg.active && reg.active.scriptURL;

if (valid && reg.active.scriptURL.indexOf(“sw.js”) > -1)
console.log(“removing serviceworker”);
reg.unregister();

catch (err)
_didIteratorError = true;
_iteratorError = err;
finally
try
if (!_iteratorNormalCompletion && _iterator.return != null)
_iterator.return();

finally
if (_didIteratorError)
throw _iteratorError;

);
return;
}

var slateAmplitude = require(2);

window.addEventListener(“load”, function ()
navigator.serviceWorker.register(“/sw.js”).then(function (registration) // Registration was successful
, function (err)
// registration failed 🙁
console.error(“ServiceWorker registration failed: “, err);
);
); // via https://developers.google.com/web/fundamentals/app-install-banners/

window.addEventListener(“beforeinstallprompt”, function (e)
e.userChoice.then(function (choiceResult)
if (choiceResult.outcome === “dismissed”)
slateAmplitude.track(“PWA – dismissed install prompt”);
else
slateAmplitude.track(“PWA – Added to Home Screen”);

);
);
})();
}, “2”:2];
window.modules[“amazon-oneclick.client”] = [function(require,module,exports){“use strict”;

module.exports = function (el)
window.nonIabVendorApi.registerVendor(“amazon-oneclick”,
categories: [“C0004”],
initFunc: function initFunc(consent)
if (!consent) return;
var elem = document.createElement(“script”);
elem.src = “https://z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=797217ac-ca6e-482f-8925-4c302e9c855c”;
elem.defer = true;
elem.type = “text/javascript”;
var scpt = document.getElementsByTagName(“script”)[0];
scpt.parentNode.insertBefore(elem, scpt);
,
updateConsentFunc: function updateConsentFunc(consent)
if (!consent) // not much we can do here. the script already ran.

);
;
}, ];
window.modules[“aaa-module-mounting.legacy”] = [function(require,module,exports){‘use strict’; // blame somebody else for this shit: https://github.com/nymag/sites/blame/master/global/js/aaa-module-mounting.js
// Note: this mounts before all client.js files, so legacy client controllers may call DS.controller()
// it also mounts before other legacy services (because of the filename) so they can call DS.service()

var eventify = require(64),
_pickBy = require(68),
_each = require(66),
DS = require(63);

var _once = require(67);

var _throttle = require(65);

var Cookies = require(42);

function registerGlobals()
window.DS = DS;
window.Eventify = eventify; // allow these libs to be imported into Dollar Slice components

DS.value(‘Eventify’, eventify);
DS.value(‘_once’, _once);
DS.value(‘_throttle’, _throttle);
DS.value(‘Cookies’, Cookies);
DS.value(‘$document’, window.document);
DS.value(‘$window’, window);

/**
* Mount all Dollar Slice components.
*/

function mountDollarSliceComponents() {
// search page for components, and instantiate their controllers
DS.service(‘components’, [‘$document”https://slate.com/,”$module’, function ($document, $module)
var controllers = _pickBy($module.definitions, function (definition)
return definition.providerStrategy === $module.providers.controller;
),
list = Object.keys(controllers); // for each component on the page, loop through the instances and kickoff the controller

_each(list, function (name)
var components = $document.querySelectorAll(‘[data-uri*=”/_components/’ + name + ‘/”]’),
// matches data-uri=”/_components//instances/
defaultComponents = $document.querySelectorAll(‘[data-uri$=”/_components/’ + name + ‘”]’); // matches data-uri=”/_components/

_each(components, initController(name));

_each(defaultComponents, initController(name));
); // expose list of components on the page

this.components = list;

function initController(name)
return function (component)
try
$module.get(name, component);
catch (error)
logMountError(component, error);

;

]); // other components might want to interact with our service, but we’ll start it here.

DS.get(‘components’);
}
/**
* Log an error mounting the client script for the specified element.
* @param HtmlElement el
* @param Error error
*/

function logMountError(el, error)
// element tag will be the full contents of the component’s tag such as:
//

var elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(‘Error attaching controller to ‘ + elementTag, error);
// globals (like DS) must be registered before other files call DS.service() or DS.component()

registerGlobals(); // wait until everything else has been mounted before instantiating legacy DS controllers

document.addEventListener(‘DOMContentLoaded’, function ()
mountDollarSliceComponents();
);
}, “42”:42,”63″:63,”64″:64,”65″:65,”66″:66,”67″:67,”68″:68];
window.modules[“ads.legacy”] = [function(require,module,exports){“use strict”;

DS.service(“adService”, [“$window”https://slate.com/,”headerBidding”https://slate.com/,”$visibility”, function ($window, headerBidding, $visibility) ]);
}, ];
window.modules[“headerbidding.legacy”] = [function(require,module,exports){“use strict”;

DS.service(“headerBidding”, function () {
var adData,
permutiveData = getPermutiveData(),
section = getSection(),
isMember = require(3).isMember(),
HARD_TIMEOUT = 1500; // max amount of time ad calls are delayed for headerbidding

this.prebid = function (data)
adData = data;
adData.biddersManager =
adserverRequestSent: false,
prebid: false,
amazon: false
;

var _self = this;

window.slateCMP.TCF.ready.then(function (tcData)
_self.requestBidsFromExchanges.call(_self);
); // header bidding has a fixed amount of time to finish
// after that we call ad server

setTimeout(function ()
googletag.cmd.push(function ()
defineGptSlot(adData);
callAdServer(adData);
);
, HARD_TIMEOUT);
; // Request bids from the exchanges

this.requestBidsFromExchanges = function ()
this.getBidsFromPrebidExchanges();
this.getBidsFromAmazon();
; // get bids from all prebid partners

this.getBidsFromPrebidExchanges = function () {
var prebidAdUnit = this.createPrebidAdUnit();
pbjs.que.push(function () {
pbjs.addAdUnits([prebidAdUnit]); // cache a reference to the ad data at this time,
// before we re-assign those variable names when we run auctions for other ad units

var data = adData;
pbjs.requestBids(
adUnitCodes: [adData.id],
bidsBackHandler: function bidsBackHandler()
googletag.cmd.push(function ()
pbjs.que.push(function ()
// gpt slot must be defined before bids are set
defineGptSlot(data);
pbjs.setTargetingForGPTAsync([data.id]); // add winning bid to the ad slot

pbjs.removeAdUnit(data.id); // remove ad unit from prebid

data.biddersManager.prebid = true; // mark prebid as done

bidderFinished(data);
);
);

);
});
}; // get bids from amazon

this.getBidsFromAmazon = function ()
var apsAdUnit = this.createApsAdUnit(),
prebidTimeout = pbjs.getConfig(“bidderTimeout”),
timeout = prebidTimeout ? prebidTimeout : 800,
// cache a reference to the ad data at this time,
// before we re-assign those variable names when we run auctions for other ad units
data = adData;

if (apstag)
apstag.fetchBids(
slots: [apsAdUnit],
timeout: timeout
, function (bids)
googletag.cmd.push(function ()
// gpt slot must be defined before bids are set
defineGptSlot(data);
apstag.setDisplayBids();
data.biddersManager.amazon = true; // mark amazon as done

bidderFinished(data);
);
);

; // check if both prebid and amazon are done
// and if the ad server request hasn’t been sent yet

function bidderFinished(data)
if (data.biddersManager.amazon && data.biddersManager.prebid)
callAdServer(data);

// call ad server

function callAdServer(data)
if (data.biddersManager.adserverRequestSent)
return;

data.biddersManager.adserverRequestSent = true;
googletag.cmd.push(function ()
googletag.pubads().refresh([data.gptSlot],
changeCorrelator: false
); // send request to the dfp
);
// gpt slot is defined here, after header bidding, because we don’t
// want to delay header bidding until gpt is ready
// this function will be called from amazon callback, prebid callback and after timeout
// slot will be defined just once

function defineGptSlot(data)
// check if gpt slot has been already defined
if (!data.gptSlot)
data.defineSlot();

// Returns prebid ad unit

this.createPrebidAdUnit = function ()
var outstreamMediaType =
context: “outstream”,
playerSize: [444, 250] ;
var bannerMediaType =
sizes: adData.prebidSizes
;
var adUnit =
code: adData.id,
mediaTypes:
banner: bannerMediaType
,
bids: this.getBidders()
; // add outstream configs if outstream is enabled for this slot

if (this.outstreamEnabled(adData.type))
adUnit.mediaTypes.video = outstreamMediaType;

return adUnit;
; // returns an array of bidders to call
// bidders are added in the order they will be called by prebid

this.getBidders = function ()
var isMobile = window.innerWidth < 768, isMobileLeaderboard = adData.type === "leaderboard-mobile", bidders = []; if (this.outstreamEnabled(adData.type)) bidders.push(this.teads()); bidders.push(this.spotx()); bidders.push(this.appnexus()); bidders.push(this.triplelift()); // kargo is a mobile only partner if (isMobile) if (!isMobileLeaderboard) // if this isn't mobile leaderboard kargo can be added bidders.push(this.kargo()); else if (!isMember) // kargo uses mobile leaderboard to server sticky ads // we don't want to show sticky ads to slate plus users // therefore if this is mobile leaderboard, include kargo // only if this isn't slate plus user bidders.push(this.kargo()); bidders.push(this.rubicon()); // do not include index in prebid for EU users if (!this.isEuUser()) // index exchange needs one bid per size for (var i = 0; i < adData.prebidSizes.length; i++) var size = adData.prebidSizes[i]; var indexBidForSize = this.index(size); bidders.push(indexBidForSize); bidders.push(this.trustx()); bidders.push(this.criteo()); return bidders; ; // Returns ad unit for amazon publisher service this.createApsAdUnit = function () return slotID: adData.id, slotName: adData.adUnit, sizes: adData.prebidSizes ; ; // Returns data for appnexus bid request this.appnexus = function () return bidder: "appnexusAst", params: placementId: adData.appnexusPlacementId, keywords: permutive: permutiveData ; ; // Returns data for rubicon bid request this.rubicon = function () return bidder: "rubicon", params: accountId: "13590", siteId: "60302", zoneId: adData.rubiconZoneId ; ; // Returns data for trustx bid request this.trustx = function () return bidder: "trustx", params: uid: adData.trustxId ; ; this.criteo = function () return bidder: "criteo", params: zoneId: adData.criteoZoneId ; ; // Returns data for index bid request this.index = function (size) return bidder: "ix", params: siteId: adData.indexSiteId, size: size ; ; this.kargo = function () var placementId = adData.type === "leaderboard-mobile" ? "_mBJrAZ6WvF" : "_uG77kNNswo"; return bidder: "kargo", params: placementId: placementId ; ; this.triplelift = function () return bidder: "triplelift", params: inventoryCode: adData.tripleliftCode ; ; this.teads = function () var teadsData = getTeadsData(); return bidder: "teads", params: pageId: teadsData.pageId, placementId: teadsData.placementId ; ; this.spotx = function () { var channelId = getSpotxChannelId(); return { bidder: "spotx", params: channel_id: channelId, ad_unit: "outstream", outstream_function: function outstream_function(bid, script) // temporary fix to spotx styling issues var slot = bid.renderer.config.outstream_options.slot; if (slot && window.document.getElementById(slot)) try var imaDiv = window.document.getElementById(slot).children[0]; var contentContainer = window.document.createElement("div"); var newId = "spotx-" + Math.random(); script.setAttribute("data-spotx_content_container_id", newId); contentContainer.id = newId; window.document.getElementById(slot).appendChild(contentContainer); imaDiv.style.display = "none"; window.document.getElementById(slot).appendChild(script); catch (error) window.document.getElementById(slot).appendChild(script); else window.document.getElementsByTagName("head")[0].appendChild(script); , outstream_options: slot: adData.id, content_width: 444, playersize_auto_adapt: true, custom_override: click_to_replay: 1, show_pause_overlay: 1 }; }; // outstream is enabled only for some in-article slots // slate plus members are excluded this.outstreamEnabled = function (type) var outstreamEnabledTypes = ["mid-article-spot"https://slate.com/,"mid-article-spot-tablet"https://slate.com/,"mid-article-spot-mobile"], isOutstreamSlot = outstreamEnabledTypes.includes(type); return isOutstreamSlot && !isMember; ; // Returns whether user is from EU this.isEuUser = function () return document.cookie.indexOf("GDPR_consent=1") > -1;
; // returns permutive data

function getPermutiveData()
var pSegs;

try
pSegs = JSON.parse(window.localStorage._papns catch (e)
pSegs = [];

return pSegs;

function getTeadsData()
// teads data for each section
var teadsData =
news_and_politics:
pageId: 79225,
placementId: 85784
,
culture:
pageId: 90291,
placementId: 97769
,
technology:
pageId: 90293,
placementId: 97775
,
business:
pageId: 90294,
placementId: 97778
,
human_interest:
pageId: 90292,
placementId: 97772

;
return teadsData[section];

function getSpotxChannelId()
var channelId = 301647;

if (section === “news_and_politics”)
channelId = 301477;
else if (section === “culture”)
channelId = 301481;
else if (section === “technology”)
channelId = 301485;
else if (section === “business”)
channelId = 301483;
else if (section === “human_interest”)
channelId = 301479;

return channelId;

function getSection()
var adnodeElement = document.querySelector(“div[data-adnode]”);
var adNode = adnodeElement.getAttribute(“data-adnode”);
var section = adNode.split(“/”)[0];
return section;

});
}, “3”:3];
window.modules[“lazyload.legacy”] = [function(require,module,exports)”use strict”;

require(69); // for side effects

var Layzr = require(70);

var instance = Layzr(
threshold: 100
);
instance.on(“src:before”, function (element)
// add a load event listener
element.addEventListener(“load”, function (event)
element.parentElement.classList.add(“loaded”);
);
);
document.addEventListener(“DOMContentLoaded”, function (event)
instance.update().check().handlers(true);
);
, “69”:69,”70″:70];
window.modules[“prebid.min.legacy”] = [function(require,module,exports){“use strict”;

function _typeof(obj) if (typeof Symbol === “function” && typeof Symbol.iterator === “symbol”) _typeof = function _typeof(obj) return typeof obj; ; else _typeof = function _typeof(obj) return obj && typeof Symbol === “function” && obj.constructor === Symbol && obj !== Symbol.prototype ? “symbol” : typeof obj; ; return _typeof(obj);

/* prebid.js v4.7.0
Updated : 2020-09-10 */
!function (u)
var s = window.pbjsChunk;

window.pbjsChunk = function (e, t, n)
for (var r, i, o, a = 0, c = []; a < e.length; a++) i = e[a], d[i] && c.push(d[i][0]), d[i] = 0; for (r in t) Object.prototype.hasOwnProperty.call(t, r) && (u[r] = t[r]); for (s && s(e, t, n); c.length;) c.shift()(); if (n) for (a = 0; a < n.length; a++) o = f(f.s = n[a]); return o; ; var n = , d = 335: 0 ; function f(e) if (n[e]) return n[e].exports; var t = n[e] = i: e, l: !1, exports: ; return u[e].call(t.exports, t, t.exports, f), t.l = !0, t.exports; f.m = u, f.c = n, f.d = function (e, t, n) , f.n = function (e) var t = e && e.__esModule ? function () return e.default; : function () return e; ; return f.d(t, "a", t), t; , f.o = function (e, t) return Object.prototype.hasOwnProperty.call(e, t); , f.p = "", f.oe = function (e) throw (console.error(e), e); , f(f.s = 852); ({ 0: function _(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", value: !0 ), n.d(t, "internal", function () return D; ), n.d(t, "bind", function () return N; ), t.getUniqueIdentifierStr = q, t.generateUUID = function e(t) return t ? (t ^ M() >> t / 4).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, e);
, t.getBidIdParameter = function (e, t)
if (t && t[e]) return t[e];
return “”;
, t.tryAppendQueryString = function (e, t, n)
if (n) return e + t + “=” + encodeURIComponent(n) + “&”;
return e;
, t.parseQueryStringParameters = function (e)
var t = “”;

for (var n in e)
e.hasOwnProperty(n) && (t += n + “=” + encodeURIComponent(e[n]) + “&”);

return t = t.replace(/&$/, “”);
, t.transformAdServerTargetingObj = function (t)
return t && 0 < Object.getOwnPropertyNames(t).length ? pe(t).map(function (e) return "".concat(e, "=").concat(encodeURIComponent(t[e])); ).join("&") : ""; , t.getAdUnitSizes = function (e) if (!e) return; var t = []; var n; e.mediaTypes && e.mediaTypes.banner && Array.isArray(e.mediaTypes.banner.sizes) ? (n = e.mediaTypes.banner.sizes, Array.isArray(n[0]) ? t = n : t.push(n)) : Array.isArray(e.sizes) && (Array.isArray(e.sizes[0]) ? t = e.sizes : t.push(e.sizes)); return t; , t.parseSizesInput = function (e) var t = []; if ("string" == typeof e) var n = e.split(","), r = /^(d)+x(d)+$/i; if (n) for (var i in n) oe(n, i) && n[i].match(r) && t.push(n[i]); else if ("object" === h(e)) var o = e.length; if (0 < o) if (2 === o && "number" == typeof e[0] && "number" == typeof e[1]) t.push(G(e));else for (var a = 0; a < o; a++) t.push(G(e[a])); return t; , t.parseGPTSingleSizeArray = G, t.parseGPTSingleSizeArrayToRtbSize = function (e) if (W(e)) return w: e[0], h: e[1] ; , t.getWindowTop = L, t.getWindowSelf = F, t.getWindowLocation = z, t.logMessage = V, t.logInfo = H, t.logWarn = K, t.logError = J, t.hasConsoleLogger = function () return _; , t.debugTurnedOn = Q, t.createInvisibleIframe = function () var e = document.createElement("iframe"); return e.id = q(), e.height = 0, e.width = 0, e.border = "0px", e.hspace = "0", e.vspace = "0", e.marginWidth = "0", e.marginHeight = "0", e.style.border = "0", e.scrolling = "no", e.frameBorder = "0", e.src = "https://slate.com/about:blank", e.style.display = "none", e; , t.getParameterByName = function (e) ""; , t.isA = $, t.isFn = X, t.isStr = Z, t.isArray = ee, t.isNumber = te, t.isPlainObject = ne, t.isBoolean = function (e) return $(e, C); , t.isEmpty = re, t.isEmptyStr = function (e) , t._each = ie, t.contains = function (e, t) if (re(e)) return !1; if (X(e.indexOf)) return -1 !== e.indexOf(t); var n = e.length; for (; n--;) if (e[n] === t) return !0; return !1; , t._map = function (n, r) if (re(n)) return []; if (X(n.map)) return n.map(r); var i = []; return ie(n, function (e, t) i.push(r(e, t, n)); ), i; , t.hasOwn = oe, t.insertElement = ae, t.triggerPixel = ce, t.callBurl = function (e) var t = e.source, n = e.burl; t === S.S2S.SRC && n && D.triggerPixel(n); , t.insertHtmlIntoIframe = function (e) if (!e) return; var t = document.createElement("iframe"); t.id = q(), t.width = 0, t.height = 0, t.hspace = "0", t.vspace = "0", t.marginWidth = "0", t.marginHeight = "0", t.style.display = "none", t.style.height = "0px", t.style.width = "0px", t.scrolling = "no", t.frameBorder = "0", t.allowtransparency = "true", D.insertElement(t, document, "body"), t.contentWindow.document.open(), t.contentWindow.document.write(e), t.contentWindow.document.close(); , t.insertUserSyncIframe = ue, t.createTrackPixelHtml = function (e) if (!e) return ""; var t = encodeURI(e), n = '

‘;
return n += ‘

‘;
, t.createTrackPixelIframeHtml = se, t.getValueString = de, t.uniques = fe, t.flatten = le, t.getBidRequest = function (n, e)
return n ? (e.some(function (e)
var t = c()(e.bids, function (t)
return [“bidId”https://slate.com/,”adId”https://slate.com/,”bid_id”].some(function (e)
return t[e] === n;
);
);
return t && (r = t), t;
), r) : void 0;
var r;
, t.getKeys = pe, t.getValue = ge, t.getKeyByValue = function (e, t)
for (var n in e)
if (e.hasOwnProperty(n) && e[n] === t) return n;

, t.getBidderCodes = function ()
return (0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : pbjs.adUnits).map(function (e) return e.bids.map(function (e) return e.bidder; ).reduce(le, []); ).reduce(le).filter(fe); , t.isGptPubadsDefined = be, n.d(t, "getHighestCpm", function () return ve; ), n.d(t, "getOldestHighestCpmBid", function () return ye; ), n.d(t, "getLatestHighestCpmBid", function () return he; ), t.shuffle = function (e) var t = e.length; for (; 0 < t;) var n = Math.floor(Math.random() * t), r = e[--t]; e[t] = e[n], e[n] = r; return e; , t.adUnitsFilter = function (e, t) return s()(e, t && t.adUnitCode); , t.deepClone = Se, t.inIframe = function () try return D.getWindowSelf() !== D.getWindowTop(); catch (e) return !0; , t.isSafariBrowser = function () return /^((?!chrome, t.replaceAuctionPrice = function (e, t) if (!e) return; return e.replace(/$AUCTION_PRICE/g, t); , t.timestamp = function () return new Date().getTime(); , t.hasDeviceAccess = function () return !1 !== r.b.getConfig("deviceAccess"); , t.checkCookieSupport = Ae, t.delayExecution = function (e, t) if (t < 1) throw new Error("numRequiredCalls must be a positive number. Got ".concat(t)); var n = 0; return function () ++n === t && e.apply(this, arguments); ; , t.groupBy = function (e, n) return e.reduce(function (e, t) []).push(t), e; , ); , t.getDefinedParams = function (n, e) return e.filter(function (e) return n[e]; ).reduce(function (e, t) return y(e, v(, t, n[t])); , ); , t.isValidMediaTypes = function (e) var t = ["banner"https://slate.com/,"native"https://slate.com/,"video"]; if (!Object.keys(e).every(function (e) return s()(t, e); )) return !1; if (e.video && e.video.context) return s()(["instream"https://slate.com/,"outstream"https://slate.com/,"adpod"], e.video.context); return !0; , t.getBidderRequest = function (e, t, n) , t.getUserConfiguredParams = function (e, t, n) return e.filter(function (e) return e.code === t; ).map(function (e) return e.bids; ).reduce(le, []).filter(function (e) return e.bidder === n; ).map(function (e) return e.params ); , t.getOrigin = function () return window.location.origin ? window.location.origin : window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : ""); , t.getDNT = function () "1" === navigator.msDoNotTrack , t.isAdUnitCodeMatchingSlot = function (t) return function (e) return Ee(t, e); ; , t.isSlotMatchingAdUnitCode = Oe, t.getGptSlotInfoForAdUnitCode = function (e) var t; be() && (t = c()(window.googletag.pubads().getSlots(), Oe(e))); if (t) return gptSlot: t.getAdUnitPath(), divId: t.getSlotElementId() ; return ; , t.unsupportedBidderMessage = function (e, t) banner: "banner" ).join("https://slate.com/,"); return "n ".concat(e.code, " is a ").concat(n, " ad unitn containing bidders that don't support ").concat(n, ": ").concat(t, ".n This bidder won't fetch demand.n "); , t.isInteger = Te, t.convertCamelToUnderscore = function (e) .?)([A-Z])/g, function (e, t) return "_" + t.toLowerCase(); ).replace(/^_/, ""); , t.cleanObj = function (n) return Object.keys(n).reduce(function (e, t) return void 0 !== n[t] && (e[t] = n[t]), e; , ); , t.pick = function (a, c) return "object" === h(a) ? c.reduce(function (e, t, n) if ("function" == typeof t) return e; var r = t, i = t.match(/^(.+?)sass(.+?)$/i); i && (t = i[1], r = i[2]); var o = a[t]; return "function" == typeof c[n + 1] && (o = c[n + 1](o, e)), void 0 !== o && (e[r] = o), e; , ) : ; , t.transformBidderParamKeywords = function (e) var r = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "keywords", i = []; return ie(e, function (e, t) if (ee(e)) var n = []; ie(e, function (e) ), e = n; else if (!Z(e = de(r + "." + t, e))) return; e = [e]; i.push( key: t, value: e ); ), i; , t.convertTypes = function (r, i) return Object.keys(r).forEach(function (e) var t, n; i[e] && (X(r[e]) ? i[e] = r[e](i[e]) : i[e] = (t = r[e], n = i[e], "string" === t ? n && n.toString() : "number" === t ? Number(n) : n), isNaN(i[e]) && delete i.key); ), i; , t.isArrayOfNums = function (e, t) e.length === t) && e.every(Te); , t.fill = function (e, t) for (var n = [], r = 0; r < t; r++) var i = ne(e) ? Se(e) : e; n.push(i); return n; , t.chunk = function (e, t) for (var n = [], r = 0; r < Math.ceil(e.length / t); r++) var i = r * t, o = i + t; n.push(e.slice(i, o)); return n; , t.getMinValueFromArray = function (e) return Math.min.apply(Math, p(e)); , t.getMaxValueFromArray = function (e) return Math.max.apply(Math, p(e)); , t.compareOn = function (n) return function (e, t) return e[n] < t[n] ? 1 : e[n] > t[n] ? -1 : 0;
;
, t.parseQS = Ie, t.formatQS = Ce, t.parseUrl = function (e, t)
var n = document.createElement(“a”);
t && “noDecodeWholeURL” in t && t.noDecodeWholeURL ? n.href = e : n.href = decodeURIComponent(e);
var r = t && “decodeSearchAsString” in t && t.decodeSearchAsString;
return window.location.host
;
, t.buildUrl = function (e) “”)) : “”) + (e.hash ? “#”.concat(e.hash) : “”);
, t.deepEqual = je, t.mergeDeep = we, t.cyrb53Hash = function (e)
for (var t, n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0, r = function r(e, t) = 0); return 4290772992 & e && (n += (4290772992 & e) * t , i = 3735928559 ^ n, o = 1103547991 ^ n, a = 0; a < e.length; a++) t = e.charCodeAt(a), i = r(i ^ t, 2654435761), o = r(o ^ t, 1597334677); return i = r(i ^ i >>> 16, 2246822507) ^ r(o ^ o >>> 13, 3266489909), (4294967296 * (2097151 & (o = r(o ^ o >>> 16, 2246822507) ^ r(i ^ i >>> 13, 3266489909))) + (i >>> 0)).toString();
;
var r = n(3),
i = n(158),
o = n.n(i),
a = n(10),
c = n.n(a),
u = n(12),
s = n.n(u),
d = n(159);
n.d(t, “deepAccess”, function ()
return d.a;
);
var f = n(160);

function l(e, t) function ()
throw new TypeError(“Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.”);
();

function p(e)

function g(e, t)
if (e) /^(?:Ui

function b(e, t) t > e.length) && (t = e.length);

for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r; function v(e, t, n) return t in e ? Object.defineProperty(e, t, value: n, enumerable: !0, configurable: !0, writable: !0 ) : e[t] = n, e; function y() return (y = Object.assign function h(e) return (h = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) return _typeof(e); : function (e) return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); )(e); n.d(t, "deepSetValue", function () return f.a; ); var m, S = n(5), A = "Array", E = "String", O = "Function", T = "Number", I = "Object", C = "Boolean", j = Object.prototype.toString, w = Boolean(window.console), _ = Boolean(w && window.console.log), B = Boolean(w && window.console.info), U = Boolean(w && window.console.warn), x = Boolean(w && window.console.error), R = n(8), D = checkCookieSupport: Ae, createTrackPixelIframeHtml: se, getWindowSelf: F, getWindowTop: L, getWindowLocation: z, insertUserSyncIframe: ue, insertElement: ae, isFn: X, triggerPixel: ce, logError: J, logWarn: K, logMessage: V, logInfo: H, parseQS: Ie, formatQS: Ce, deepEqual: je , k = , N = function (e, t) return t; .bind(null, 1, k)() === k ? Function.prototype.bind : function (e) var t = this, n = Array.prototype.slice.call(arguments, 1); return function () return t.apply(e, n.concat(Array.prototype.slice.call(arguments))); ; , P = (m = 0, function () return ++m; ); function q() return P() + Math.random().toString(16).substr(2); function M() return window && window.crypto && window.crypto.getRandomValues ? crypto.getRandomValues(new Uint8Array(1))[0] % 16 : 16 * Math.random(); function G(e) if (W(e)) return e[0] + "x" + e[1]; function W(e) return ee(e) && 2 === e.length && !isNaN(e[0]) && !isNaN(e[1]); function L() return window.top; function F() return window.self; function z() return window.location; function V() Q() && _ && console.log.apply(console, Y(arguments, "MESSAGE:")); function H() Q() && B && console.info.apply(console, Y(arguments, "INFO:")); function K() Q() && U && console.warn.apply(console, Y(arguments, "WARNING:")); function J() Q() && x && console.error.apply(console, Y(arguments, "ERROR:")), R.emit(S.EVENTS.AUCTION_DEBUG, type: "ERROR", arguments: arguments ); function Y(e, t) return e = [].slice.call(e), t && e.unshift(t), e.unshift("display: inline-block; color: #fff; background: #3b88c3; padding: 1px 4px; border-radius: 3px;"), e.unshift("%cPrebid"), e; function Q() return !!r.b.getConfig("debug"); function $(e, t) return j.call(e) === "[object " + t + "]"; function X(e) return $(e, O); function Z(e) return $(e, E); function ee(e) return $(e, A); function te(e) return $(e, T); function ne(e) return $(e, I); function re(e) function ie(e, t) if (!re(e)) if (X(e.forEach)) return e.forEach(t, this); var n = 0, r = e.length; if (0 < r) for (; n < r; n++) t(e[n], n, e); else for (n in e) hasOwnProperty.call(e, n) && t.call(this, e[n], n); function oe(e, t) return e.hasOwnProperty ? e.hasOwnProperty(t) : void 0 !== e[t] && e.constructor.prototype[t] !== e[t]; function ae(e, t, n, r) function ce(e, t) var n = new Image(); t && D.isFn(t) && (n.addEventListener("load", t), n.addEventListener("error", t)), n.src = e; function ue(e, t) var n = D.createTrackPixelIframeHtml(e, !1, "allow-scripts allow-same-origin"), r = document.createElement("div"); r.innerHTML = n; var i = r.firstChild; t && D.isFn(t) && (i.addEventListener("load", t), i.addEventListener("error", t)), D.insertElement(i, document, "html", !0); function se(e) arguments[1]) && (e = encodeURI(e)), t = t && 'sandbox="'.concat(t, '"'), "‘)) : “”;

function de(e, t, n)
return null == t ? n : Z(t) ? t : te(t) ? t.toString() : void D.logWarn(“Unsuported type for param: ” + e + ” required type: String”);

function fe(e, t, n)
return n.indexOf(e) === t;

function le(e, t)
return e.concat(t);

function pe(e)
return Object.keys(e);

function ge(e, t)
return e[t];

function be()
if (window.googletag && X(window.googletag.pubads) && X(window.googletag.pubads().getSlots)) return !0;

var ve = me(“timeToRespond”, function (e, t)
return t < e; ), ye = me("responseTimestamp", function (e, t) return t < e; ), he = me("responseTimestamp", function (e, t) return e < t; ); function me(n, r) return function (e, t) return e.cpm === t.cpm ? r(e[n], t[n]) ? t : e : e.cpm < t.cpm ? t : e; ; function Se(e) return o()(e); function Ae() if (window.navigator.cookieEnabled var Ee = function Ee(e, t) e.getSlotElementId() === t; ; function Oe(t) return function (e) return Ee(e, t); ; function Te(e) return Number.isInteger ? Number.isInteger(e) : "number" == typeof e && isFinite(e) && Math.floor(e) === e; function Ie(e) return e ? e.replace(/^?/, "").split("&").reduce(function (e, t) , ) : ; function Ce(e) return Object.keys(e).map(function (t) return Array.isArray(e[t]) ? e[t].map(function (e) return "".concat(t, "[]=").concat(e); ).join("&") : "".concat(t, "=").concat(e[t]); ).join("&"); function je(e, t) null === e function we(e) for (var t = arguments.length, n = new Array(1 < t ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r]; if (!n.length) return e; var i = n.shift(); if (ne(e) && ne(i)) for (var o in i) ne(i[o]) ? (e[o] return we.apply(void 0, [e].concat(n)); }, 1: function _(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", value: !0 ), n.d(t, "storage", function () return I; ), t.registerBidder = function (r) var n = Array.isArray(r.supportedMediaTypes) ? supportedMediaTypes: r.supportedMediaTypes : void 0; function i(e) var t = w(e); c.default.registerBidAdapter(t, e.code, n); i(r), Array.isArray(r.aliases) && r.aliases.forEach(function (e) var t, n = e; Object(m.isPlainObject)(e) && (n = e.code, t = e.gvlid), c.default.aliasRegistry[n] = r.code, i(T(, r, code: n, gvlid: t )); ); , t.newBidder = w, n.d(t, "registerSyncInner", function () return _; ), t.preloadBidderMappingFile = B, t.getIabSubCategory = function (t, e) var n = c.default.getBidAdapter(t); if (n.getSpec().getMappingFileInfo) var r = n.getSpec().getMappingFileInfo(), i = r.localStorageKey ? r.localStorageKey : n.getBidderCode(), o = I.getDataFromLocalStorage(i); if (o) try o = JSON.parse(o); catch (e) Object(m.logError)("Failed to parse ".concat(t, " mapping data stored in local storage")); return o.mapping[e] ? o.mapping[e] : null; , t.isValid = U; var r = n(90), c = n(7), u = n(3), v = n(32), s = n(44), o = n(36), a = n(33), i = n(5), y = n.n(i), d = n(8), h = n.n(d), f = n(12), l = n.n(f), p = n(4), m = n(0), g = n(2), b = n(13), S = n(9); function A(e, t) function E(e, t) (null == t function O(e) return (O = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) return _typeof(e); : function (e) return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); )(e); function T() return (T = Object.assign var I = Object(S.a)("bidderFactory"), C = ["requestId"https://slate.com/,"cpm"https://slate.com/,"ttl"https://slate.com/,"creativeId"https://slate.com/,"netRevenue"https://slate.com/,"currency"], j = 1; function w(p) { return T(new r.a(p.code), { getSpec: function getSpec() return Object.freeze(p); , registerSyncs: g, callBids: function callBids(o, a, e, n, c, r) }); function g(e, t, n) _(p, e, t, n); function b(e) return !!p.isBidRequestValid(e) } var _ = Object(b.b)("async", function (t, e, n, r) var i, o, a = u.b.getConfig("userSync.aliasSyncEnabled"); !t.getUserSyncs , "registerSyncs"); function B(e, t) { if (!u.b.getConfig("adpod.brandCategoryExclusion")) return e.call(this, t); t.filter(function (e) return Object(m.deepAccess)(e, "mediaTypes.video.context") === g.a; ).map(function (e) return e.bids.map(function (e) return e.bidder; ); ).reduce(m.flatten, []).filter(m.uniques).forEach(function (n) { var e = c.default.getBidAdapter(n); if (e.getSpec().getMappingFileInfo) { var t = e.getSpec().getMappingFileInfo(), r = t.refreshInDays ? t.refreshInDays : j, i = t.localStorageKey ? t.localStorageKey : e.getSpec().code, o = I.getDataFromLocalStorage(i); try catch (e) Object(m.logError)("Failed to parse ".concat(n, " bidder translation mapping file")); } }), e.call(this, t); } function U(e, t, n) Object(b.a)("checkAdUnitSetup").before(B); }, 10: function _(e, t, n) var r = n(96); e.exports = r; , 100: function _(e, t, n) .prototype./, a = r.normalize = function (e) return String(e).replace(o, ".").toLowerCase(); , c = r.data = , u = r.NATIVE = "N", s = r.POLYFILL = "P"; e.exports = r; , 101: function _(e, t, n) var r = n(24), i = n(102), o = n(19)("species"); e.exports = function (e, t) r(n) && null === (n = n[o])) && (n = void 0), new (void 0 === n ? Array : n)(0 === t ? 0 : t); ; , 102: function _(e, t, n) function (e) return "Array" == r(e); ; , 103: function _(e, t, n) var r = n(23), i = n(30); e.exports = function (t, n) try i(r, t, n); catch (e) r[t] = n; return n; ; , 104: function _(e, t, n) var r = n(75); e.exports = r && !Symbol.sham && "symbol" == _typeof(Symbol.iterator); , 105: function _(e, t, n) n(106); var r = n(52); e.exports = r("Array"https://slate.com/,"includes"); , 106: function _(e, t, n) "use strict"; var r = n(14), i = n(76).includes, o = n(51); r( target: "Array", proto: !0, forced: !n(60)("indexOf", ACCESSORS: !0, 1: 0 ) , includes: function includes(e, t) return i(this, e, 1 < arguments.length ? t : void 0); ), o("includes"); , 107: function _(e, t, n) var r = n(58), i = Math.max, o = Math.min; e.exports = function (e, t) var n = r(e); return n < 0 ? i(n + t, 0) : o(n, t); ; , 108: function _(e, t, n) n(109), n(126), n(87), n(128); var r = n(43); e.exports = r.Set; , 109: function _(e, t, n) "use strict"; var r = n(110), i = n(115); e.exports = r("Set", function (t) return function (e) return t(this, arguments.length ? e : void 0); ; , i); , 11: function _(e, t, n) "use strict"; t.a = i, t.c = function (e) !e.url); , t.b = function (e, t) e.render(t); ; var u = n(40), s = n(0), r = n(10), d = n.n(r), f = "outstream"; function i(e) var t = this, r = e.url, n = e.config, i = e.id, o = e.callback, a = e.loaded, c = e.adUnitCode; this.url = r, this.config = n, this.handlers = , this.id = i, this.loaded = a, this.cmd = [], this.push = function (e) "function" == typeof e ? t.loaded ? e.call() : t.cmd.push(e) : s.logError("Commands given to Renderer.push must be wrapped in a function"); , this.callback = o i.install = function (e) return new i( url: e.url, config: e.config, id: e.id, callback: e.callback, loaded: e.loaded, adUnitCode: e.adUnitCode ); , i.prototype.getConfig = function () return this.config; , i.prototype.setRender = function (e) this._render = e; , i.prototype.setEventHandlers = function (e) this.handlers = e; , i.prototype.handleVideoEvent = function (e) var t = e.id, n = e.eventName; "function" == typeof this.handlers[n] && this.handlers[n](), s.logMessage("Prebid Renderer event for id ".concat(t, " type ").concat(n)); , i.prototype.process = function () for (; 0 < this.cmd.length;) try this.cmd.shift().call(); catch (e) s.logError("Error processing Renderer command: ", e); ; , 110: function _(e, t, n) "use strict"; var f = n(14), l = n(23), p = n(78), g = n(29), b = n(30), v = n(17), y = n(81), h = n(24), m = n(64), S = n(31).f, A = n(56).forEach, E = n(28), r = n(54), O = r.set, T = r.getterFor; e.exports = function (n, e, t) ; , 111: function _(e, t, n) var r = n(29); e.exports = !r(function () return Object.isExtensible(Object.preventExtensions()); ); , 112: function _(e, t, n) "use strict"; var r = n(63), i = n(62); e.exports = r ? .toString : function () return "[object " + i(this) + "]"; ; , 113: function _(e, t, n) var r = n(23), i = n(114), o = r.WeakMap; e.exports = "function" == typeof o && /native code/.test(i(o)); , 114: function _(e, t, n) var r = n(74), i = Function.toString; "function" != typeof r.inspectSource && (r.inspectSource = function (e) return i.call(e); ), e.exports = r.inspectSource; , 115: function _(e, t, n) { "use strict"; var s = n(31).f, d = n(82), f = n(120), l = n(21), p = n(81), g = n(17), a = n(66), c = n(125), b = n(28), v = n(78).fastKey, r = n(54), y = r.set, h = r.getterFor; e.exports = { getConstructor: function getConstructor(e, n, r, i) { function o(e, t, n) var r, i, o = c(e), a = u(e, t); return a ? a.value = n : (o.last = a = index: i = v(t, !0), key: t, value: n, previous: r = o.last, next: void 0, removed: !1 , o.first var a = e(function (e, t) p(e, a, n), y(e, type: n, index: d(null), first: void 0, last: void 0, size: 0 ), b ), c = h(n), u = function u(e, t) var n, r = c(e), i = v(t); if ("F" !== i) return r.index[i]; for (n = r.first; n; n = n.next) if (n.key == t) return n; ; return f(a.prototype, clear: function clear() for (var e = c(this), t = e.index, n = e.first; n;) n.removed = !0, n.previous && (n.previous = n.previous.next = void 0), delete t[n.index], n = n.next; e.first = e.last = void 0, b ? e.size = 0 : this.size = 0; , delete: function _delete(e) var t, n, r = c(this), i = u(this, e); return i && (t = i.next, n = i.previous, delete r.index[i.index], i.removed = !0, n && (n.next = t), t && (t.previous = n), r.first == i && (r.first = t), r.last == i && (r.last = n), b ? r.size-- : this.size--), !!i; , forEach: function forEach(e, t) for (var n, r = c(this), i = l(e, 1 < arguments.length ? t : void 0, 3); n = n ? n.next : r.first;) for (i(n.value, n.key, this); n && n.removed;) n = n.previous; , has: function has(e) return !!u(this, e); ), f(a.prototype, r ? get: function get(e) var t = u(this, e); return t && t.value; , set: function set(e, t) return o(this, 0 === e ? 0 : e, t); : add: function add(e) return o(this, e = 0 === e ? 0 : e, e); ), b && s(a.prototype, "size", get: function get() return c(this).size; ), a; }, setStrong: function setStrong(e, t, n) var r = t + " Iterator", i = h(t), o = h(r); a(e, t, function (e, t) y(this, type: r, target: e, state: i(e), kind: t, last: void 0 ); , function () for (var e = o(this), t = e.kind, n = e.last; n && n.removed;) n = n.previous; return e.target && (e.last = n = n ? n.next : e.state.first) ? "keys" == t ? value: n.key, done: !1 : "values" == t ? value: n.value, done: !1 : value: [n.key, n.value], done: !1 : value: e.target = void 0, done: !0 ; , n ? "entries" : "values", !n, !0), c(t); }; }, 116: function _(e, t, n) var r = n(28), a = n(31), c = n(15), u = n(117); e.exports = r ? Object.defineProperties : function (e, t) c(e); for (var n, r = u(t), i = r.length, o = 0; o < i;) a.f(e, n = r[o++], t[n]); return e; ; , 117: function _(e, t, n) , 118: function _(e, t, n) var a = n(25), c = n(47), u = n(76).indexOf, s = n(53); e.exports = function (e, t) var n, r = c(e), i = 0, o = []; for (n in r) !a(s, n) && a(r, n) && o.push(n); for (; t.length > i;)
a(r, n = t[i++]) && (~u(o, n)

return o;
;
,
119: function _(e, t, n)
var r = n(26);
e.exports = r(“document”https://slate.com/,”documentElement”);
,
12: function _(e, t, n)
var r = n(105);
e.exports = r;
,
120: function _(e, t, n)
var i = n(84);

e.exports = function (e, t, n)
for (var r in t)
n && n.unsafe && e[r] ? e[r] = t[r] : i(e, r, t[r], n);

return e;
;
,
121: function _(e, t, n)
“use strict”;

function i()
return this;

var o = n(85).IteratorPrototype,
a = n(82),
c = n(46),
u = n(64),
s = n(38);

e.exports = function (e, t, n)
var r = t + ” Iterator”;
return e.prototype = a(o,
next: c(1, n)
), u(e, r, !1, !0), s[r] = i, e;
;
,
122: function _(e, t, n)
var r = n(29);
e.exports = !r(function ()
function e()

return e.prototype.constructor = null, Object.getPrototypeOf(new e()) !== e.prototype;
);
,
123: function _(e, t, n)
var i = n(15),
o = n(124);
e.exports = Object.setPrototypeOf ,
124: function _(e, t, n)
var r = n(24);

e.exports = function (e)
if (!r(e) && null !== e) throw TypeError(“Can’t set ” + String(e) + ” as a prototype”);
return e;
;
,
125: function _(e, t, n)
“use strict”;

var r = n(26),
i = n(31),
o = n(19),
a = n(28),
c = o(“species”);

e.exports = function (e)
var t = r(e),
n = i.f;
a && t && !t[c] && n(t, c,
configurable: !0,
get: function get()
return this;

);
;
,
126: function _(e, t) ,
127: function _(e, t, n)
function r(c)
return function (e, t) ;

var u = n(58),
s = n(49);
e.exports =
codeAt: r(!1),
charAt: r(!0)
;
,
128: function _(e, t, n)
n(129);
var r = n(130),
i = n(23),
o = n(62),
a = n(30),
c = n(38),
u = n(19)(“toStringTag”);

for (var s in r)
var d = i[s],
f = d && d.prototype;
f && o(f) !== u && a(f, u, s), c[s] = c.Array;

,
129: function _(e, t, n)
“use strict”;

var r = n(47),
i = n(51),
o = n(38),
a = n(54),
c = n(66),
u = “Array Iterator”,
s = a.set,
d = a.getterFor(u);
e.exports = c(Array, “Array”, function (e, t)
s(this,
type: u,
target: r(e),
index: 0,
kind: t
);
, function ()
var e = d(this),
t = e.target,
n = e.kind,
r = e.index++;
return !t , “values”), o.Arguments = o.Array, i(“keys”), i(“values”), i(“entries”);
,
13: function _(e, t, n) {
“use strict”;

n.d(t, “b”, function ()
return a;
), n.d(t, “a”, function ()
return c;
), t.d = function (e, t)
var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 15; 0 === e.getHooks( hook: t ).length && e.before(t, n); , t.c = function (e, n) { a("async", function (e) e.forEach(function (e) ); , e)([]); }, t.e = function (e) for (var t = arguments.length, n = new Array(1 < t ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r]; c(e).before(function (e, t) t.push(n), e(t); ); ; var r = n(161), i = n.n(r); function o(e, t) var a = i()( ready: i.a.SYNC ), c = a.get; }, 130: function _(e, t) e.exports = CSSRuleList: 0, CSSStyleDeclaration: 0, CSSValueList: 0, ClientRectList: 0, DOMRectList: 0, DOMStringList: 0, DOMTokenList: 1, DataTransferItemList: 0, FileList: 0, HTMLAllCollection: 0, HTMLCollection: 0, HTMLFormElement: 0, HTMLSelectElement: 0, MediaList: 0, MimeTypeArray: 0, NamedNodeMap: 0, NodeList: 1, PaintRequestList: 0, Plugin: 0, PluginArray: 0, SVGLengthList: 0, SVGNumberList: 0, SVGPathSegList: 0, SVGPointList: 0, SVGStringList: 0, SVGTransformList: 0, SourceBufferList: 0, StyleSheetList: 0, TextTrackCueList: 0, TextTrackList: 0, TouchList: 0 ; , 131: function _(e, t, n) n(14)( target: "Set", stat: !0 , from: n(132) ); , 132: function _(e, t, n) "use strict"; var s = n(18), d = n(21), f = n(17); e.exports = function (e, t, n) var r, i, o, a, c = arguments.length, u = 1 < c ? t : void 0; return s(this), (r = void 0 !== u) && s(u), null == e ? new this() : (i = [], r ? (o = 0, a = d(u, 2 < c ? n : void 0, 2), f(e, function (e) i.push(a(e, o++)); )) : f(e, i.push, i), new this(i)); ; , 133: function _(e, t, n) n(14)( target: "Set", stat: !0 , of: n(134) ); , 134: function _(e, t, n) "use strict"; e.exports = function () for (var e = arguments.length, t = new Array(e); e--;) t[e] = arguments[e]; return new this(t); ; , 135: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(136); r( target: "Set", proto: !0, real: !0, forced: i , addAll: function addAll() return o.apply(this, arguments); ); , 136: function _(e, t, n) "use strict"; var i = n(15), o = n(18); e.exports = function () for (var e = i(this), t = o(e.add), n = 0, r = arguments.length; n < r; n++) t.call(e, arguments[n]); return e; ; , 137: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(138); r( target: "Set", proto: !0, real: !0, forced: i , deleteAll: function deleteAll() return o.apply(this, arguments); ); , 138: function _(e, t, n) "use strict"; var a = n(15), c = n(18); e.exports = function () for (var e, t = a(this), n = c(t.delete), r = !0, i = 0, o = arguments.length; i < o; i++) e = n.call(t, arguments[i]), r = r && e; return !!r; ; , 139: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(15), a = n(21), c = n(35), u = n(17); r( target: "Set", proto: !0, real: !0, forced: i , every: function every(e, t) var n = o(this), r = c(n), i = a(e, 1 < arguments.length ? t : void 0, 3); return !u(r, function (e) if (!i(e, e, n)) return u.stop(); , void 0, !1, !0).stopped; ); , 14: function _(e, t, n) { "use strict"; function y(r) function e(e, t, n) if (this instanceof r) switch (arguments.length) case 0: return new r(); case 1: return new r(e); case 2: return new r(e, t); return new r(e, t, n); return r.apply(this, arguments); return e.prototype = r.prototype, e; var h = n(23), m = n(98).f, S = n(100), A = n(43), E = n(21), O = n(30), T = n(25); e.exports = function (e, t) (A[d] = ), v = b.prototype; for (i in t) (u = e.bind && n ? E(o, h) : e.wrap && n ? y(o) : p && "function" == typeof o ? E(Function.call, o) : o, (e.sham ; }, 140: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(26), a = n(15), c = n(18), u = n(39), s = n(17); r( target: "Set", proto: !0, real: !0, forced: i , difference: function difference(e) var t = a(this), n = new (u(t, o("Set")))(t), r = c(n.delete); return s(e, function (e) r.call(n, e); ), n; ); , 141: function _(e, t, n) "use strict"; var r = n(14), i = n(16), c = n(26), u = n(15), s = n(18), d = n(21), f = n(39), l = n(35), p = n(17); r( target: "Set", proto: !0, real: !0, forced: i , filter: function filter(e, t) var n = u(this), r = l(n), i = d(e, 1 < arguments.length ? t : void 0, 3), o = new (f(n, c("Set")))(), a = s(o.add); return p(r, function (e) i(e, e, n) && a.call(o, e); , void 0, !1, !0), o; ); , 142: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(15), a = n(21), c = n(35), u = n(17); r( target: "Set", proto: !0, real: !0, forced: i , find: function find(e, t) var n = o(this), r = c(n), i = a(e, 1 < arguments.length ? t : void 0, 3); return u(r, function (e) if (i(e, e, n)) return u.stop(e); , void 0, !1, !0).result; ); , 143: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(26), a = n(15), c = n(18), u = n(39), s = n(17); r( target: "Set", proto: !0, real: !0, forced: i , intersection: function intersection(e) var t = a(this), n = new (u(t, o("Set")))(), r = c(t.has), i = c(n.add); return s(e, function (e) r.call(t, e) && i.call(n, e); ), n; ); , 144: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(15), a = n(18), c = n(17); r( target: "Set", proto: !0, real: !0, forced: i , isDisjointFrom: function isDisjointFrom(e) var t = o(this), n = a(t.has); return !c(e, function (e) if (!0 === n.call(t, e)) return c.stop(); ).stopped; ); , 145: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(26), a = n(15), c = n(18), u = n(88), s = n(17); r( target: "Set", proto: !0, real: !0, forced: i , isSubsetOf: function isSubsetOf(e) var t = u(this), n = a(e), r = n.has; return "function" != typeof r && (n = new (o("Set"))(e), r = c(n.has)), !s(t, function (e) if (!1 === r.call(n, e)) return s.stop(); , void 0, !1, !0).stopped; ); , 146: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(15), a = n(18), c = n(17); r( target: "Set", proto: !0, real: !0, forced: i , isSupersetOf: function isSupersetOf(e) var t = o(this), n = a(t.has); return !c(e, function (e) if (!1 === n.call(t, e)) return c.stop(); ).stopped; ); , 147: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(15), a = n(35), c = n(17); r( target: "Set", proto: !0, real: !0, forced: i , join: function join(e) var t = o(this), n = a(t), r = void 0 === e ? "," : String(e), i = []; return c(n, i.push, i, !1, !0), i.join(r); ); , 148: function _(e, t, n) "use strict"; var r = n(14), i = n(16), c = n(26), u = n(15), s = n(18), d = n(21), f = n(39), l = n(35), p = n(17); r( target: "Set", proto: !0, real: !0, forced: i , map: function map(e, t) var n = u(this), r = l(n), i = d(e, 1 < arguments.length ? t : void 0, 3), o = new (f(n, c("Set")))(), a = s(o.add); return p(r, function (e) a.call(o, i(e, e, n)); , void 0, !1, !0), o; ); , 149: function _(e, t, n) "use strict"; var r = n(14), i = n(16), a = n(15), c = n(18), u = n(35), s = n(17); r( target: "Set", proto: !0, real: !0, forced: i , reduce: function reduce(t, e) var n = a(this), r = u(n), i = arguments.length < 2, o = i ? void 0 : e; if (c(t), s(r, function (e) o = i ? (i = !1, e) : t(o, e, e, n); , void 0, !1, !0), i) throw TypeError("Reduce of empty set with no initial value"); return o; ); , 15: function _(e, t, n) var r = n(24); e.exports = function (e) if (!r(e)) throw TypeError(String(e) + " is not an object"); return e; ; , 150: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(15), a = n(21), c = n(35), u = n(17); r( target: "Set", proto: !0, real: !0, forced: i , some: function some(e, t) var n = o(this), r = c(n), i = a(e, 1 < arguments.length ? t : void 0, 3); return u(r, function (e) if (i(e, e, n)) return u.stop(); , void 0, !1, !0).stopped; ); , 151: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(26), a = n(15), c = n(18), u = n(39), s = n(17); r( target: "Set", proto: !0, real: !0, forced: i , symmetricDifference: function symmetricDifference(e) var t = a(this), n = new (u(t, o("Set")))(t), r = c(n.delete), i = c(n.add); return s(e, function (e) ), n; ); , 152: function _(e, t, n) "use strict"; var r = n(14), i = n(16), o = n(26), a = n(15), c = n(18), u = n(39), s = n(17); r( target: "Set", proto: !0, real: !0, forced: i , union: function union(e) var t = a(this), n = new (u(t, o("Set")))(t); return s(e, c(n.add), n), n; ); , 153: function _(e, t, n) n(87), n(154); var r = n(43); e.exports = r.Array.from; , 154: function _(e, t, n) var r = n(14), i = n(155); r( target: "Array", stat: !0, forced: !n(157)(function (e) Array.from(e); ) , from: i ); , 155: function _(e, t, n) "use strict"; var v = n(21), y = n(57), h = n(80), m = n(79), S = n(50), A = n(156), E = n(61); e.exports = function (e, t, n) var r, i, o, a, c, u, s = y(e), d = "function" == typeof this ? this : Array, f = arguments.length, l = 1 < f ? t : void 0, p = void 0 !== l, g = E(s), b = 0; if (p && (l = v(l, 2 < f ? n : void 0, 2)), null == g ; , 156: function _(e, t, n) "use strict"; var i = n(55), o = n(31), a = n(46); e.exports = function (e, t, n) var r = i(t); r in e ? o.f(e, r, a(0, n)) : e[r] = n; ; , 157: function _(e, t, n) { var i = n(19)("iterator"), o = !1; try var r = 0, a = next: function next() return done: !!r++ ; , return: function _return() o = !0; ; a[i] = function () return this; , Array.from(a, function () throw 2; ); catch (e) e.exports = function (e, t) { if (!t && !o) return !1; var n = !1; try { var r = ; r[i] = function () return next: function next() return done: n = !0 ; ; , e(r); } catch (e) return n; }; }, 158: function _(e, t) e.exports = function e(t) var n = Array.isArray(t) ? [] : ; for (var r in t) var i = t[r]; n[r] = i && "object" == _typeof(i) ? e(i) : i; return n; ; , 159: function _(e, t, n) "use strict"; t.a = function (e, t, n, r, i) for (t = t.split ? t.split(".") : t, r = 0; r < t.length; r++) e = e ? e[t[r]] : i; return e === i ? n : e; ; , 16: function _(e, t) e.exports = !0; , 160: function _(e, t, n) "use strict"; t.a = function (e, t, n) t.split && (t = t.split(".")); for (var r, i = 0, o = t.length, a = e; i < o; ++i) r = a[t[i]], a = a[t[i]] = i === o - 1 ? n : null != r ? r : !~t[i + 1].indexOf(".") && -1 < +t[i + 1] ? [] : ; ; , 161: function _(e, t) { h.SYNC = 1, h.ASYNC = 2, h.QUEUE = 4; var g = "fun-hooks"; var n = Object.freeze( useProxy: !0, ready: 0 ), b = new WeakMap(), r = "2,1,0" === [1].reduce(function (e, t, n) return [e, t, n]; , 2).toString() ? Array.prototype.reduce : function (e, t) var n, r = Object(this), i = r.length >>> 0,
o = 0;
if (t) n = t;else
for (; o < i && !(o in r);) o++; n = r[o++]; for (; o < i;) o in r && (n = e(n, r[o], o, r)), o++; return n; ; function v(e, t) return Array.prototype.slice.call(e, t); var y = Object.assign || function (e) return r.call(v(arguments, 1), function (t, n) return n && Object.keys(n).forEach(function (e) t[e] = n[e]; ), t; , e); ; function h(u) { var s, e = , d = []; function t(e, t) return "function" == typeof e ? f.call(null, "sync", e, t) : "string" == typeof e && "function" == typeof t ? f.apply(null, arguments) : "object" == _typeof(e) ? function (o, e, a) var t = !0; void 0 === e && (e = Object.getOwnPropertyNames(o), t = !1); var c = , n = ["constructor"]; for (; (e = e.filter(function (e) e.match(/^_/)); )).forEach(function (e) var t, n = e.split(":"), r = n[0], i = n[1] ), o = Object.getPrototypeOf(o), t && o;) ; return c; .apply(null, arguments) : void 0; function l(o) var a = Array.isArray(o) ? o : o.split("."); return r.call(a, function (t, n, e) , e); function p(r) { var o = [], a = [], c = function c() , e = { before: function before(e, t) return n.call(this, o, "before", e, t); , after: function after(e, t) return n.call(this, a, "after", e, t); , getHooks: function getHooks(n) { var e = o.concat(a); "object" == _typeof(n) && (e = e.filter(function (t) return Object.keys(n).every(function (e) return t[e] === n[e]; ); )); try y(e, remove: function remove() return e.forEach(function (e) e.remove(); ), this; ); catch (e) console.error("error adding `remove` to array, did you modify Array.prototype?"); return e; }, removeAll: function removeAll() return this.getHooks().remove(); }, t = install: function install(e, t, n) this.type = e, (c = n)(o, a), r && r(t); ; return b.set(e.after, t), e; function n(t, e, n, r) var i = 10, remove: function remove() var e = t.indexOf(i); -1 !== e && (t.splice(e, 1), c(o, a)); ; return t.push(i), t.sort(function (e, t) return t.priority - e.priority; ), c(o, a), this; } function f(f, e, t) d.push(c), u.useProxy && "function" == typeof Proxy && Proxy.revocable ? i = new Proxy(e, a) : y(i = function i() return a.apply ? a.apply(e, this, v(arguments)) : e.apply(this, arguments); , o), b.get(i.after).install(f, i, function (e, t) ), i; function c() !s && ("sync" !== f return (u = y(, n, u)).ready ? t.ready = function () s = !0, function (e) for (var t; t = e.shift();) t(); (d); : s = !0, t.get = l, t; } e.exports = h; }, 17: function _(e, t, n) { function p(e, t) this.stopped = e, this.result = t; var g = n(15), b = n(79), v = n(50), y = n(21), h = n(61), m = n(80); (e.exports = function (e, t, n, r, i) var o, a, c, u, s, d, f, l = y(t, n, r ? 2 : 1); if (i) o = e;else if ("function" != typeof (a = h(e))) throw TypeError("Target is not iterable"); if (b(a)) for (c = 0, u = v(e.length); c < u; c++) if ((s = r ? l(g(f = e[c])[0], f[1]) : l(e[c])) && s instanceof p) return s; return new p(!1); o = a.call(e); for (d = o.next; !(f = d.call(o)).done;) if ("object" == _typeof(s = m(o, l, f.value, r)) && s && s instanceof p) return s; return new p(!1); ).stop = function (e) return new p(!0, e); ; }, 18: function _(e, t) e.exports = function (e) if ("function" != typeof e) throw TypeError(String(e) + " is not a function"); return e; ; , 19: function _(e, t, n) , 2: function _(e, t, n) "use strict"; n.d(t, "c", function () return r; ), n.d(t, "d", function () return i; ), n.d(t, "b", function () return o; ), n.d(t, "a", function () return a; ); var r = "native", i = "video", o = "banner", a = "adpod"; , 20: function _(e, t, n) , 21: function _(e, t, n) var o = n(18); e.exports = function (r, i, e) if (o(r), void 0 === i) return r; switch (e) case 0: return function () return r.call(i); ; case 1: return function (e) return r.call(i, e); ; case 2: return function (e, t) return r.call(i, e, t); ; case 3: return function (e, t, n) return r.call(i, e, t, n); ; return function () return r.apply(i, arguments); ; ; , 217: function _(e, t, n) n(218); var r = n(52); e.exports = r("Array"https://slate.com/,"findIndex"); , 218: function _(e, t, n) "use strict"; var r = n(14), i = n(56).findIndex, o = n(51), a = n(60), c = "findIndex", u = !0, s = a(c); c in [] && Array(1)[c](function () u = !1; ), r( !s , findIndex: function findIndex(e, t) return i(this, e, 1 < arguments.length ? t : void 0); ), o(c); , 22: function _(e, t, n) { "use strict"; n.d(t, "a", function () return r; ); var i = n(0); function o() return (o = Object.assign var a, r = (a = window, function () { try 0 < n && null !== t[n - 1].referrer, i = function (e) for (var t, n = [], r = null, i = null, o = null, a = null, c = null, u = e.length - 1; 0 <= u; u--) i;else if (0 !== u) else n.push(r); return stack: n, detectedRefererUrl: c ; (t); return t[t.length - 1].canonicalUrl && (e = t[t.length - 1].canonicalUrl), referer: i.detectedRefererUrl, reachedTop: r, numIframes: n, stack: i.stack, canonicalUrl: e ; catch (e) }); function c() { var e = function () { var t, n = []; do { try { t = t ? t.parent : a; try var e = t == a.top, r = null, isTop: e ; e && (r = o(r, canonicalUrl: function (e) try var t = e.querySelector("link[rel='canonical']"); if (null !== t) return t.href; catch (e) return null; (t.document) )), n.push(r); catch (e) n.push( referrer: null, location: null, isTop: t == a.top ), Object(i.logWarn)("Trying to access cross domain iframe. Continuing without referrer and location"); } catch (e) return n.push( referrer: null, location: null, isTop: !1 ), n; } while (t != a.top); return n; }(), t = function () try if (!a.location.ancestorOrigins) return; return a.location.ancestorOrigins; catch (e) (); if (t) for (var n = 0, r = t.length; n < r; n++) e[n].ancestor = t[n]; return e; } }, 225: function _(e, t, n) { "use strict"; t.a = function () window.addEventListener("message", c, !1); ; var r = n(8), g = n.n(r), b = n(36), i = n(5), v = (n.n(i), n(0)), y = n(27), o = n(10), h = n.n(o), m = n(11), a = n(12), S = n.n(a), A = i.EVENTS.BID_WON; function c(e) { var t, n, r, i, o, a, c, u, s, d = e.message ? "message" : "data", f = ; try f = JSON.parse(e[d]); catch (e) return; if (f && f.adId) { var l = h()(y.a.getBidsReceived(), function (e) return e.adId === f.adId; ); if (l && "Prebid Request" === f.message && (n = e, r = (t = l).adId, i = t.ad, o = t.adUrl, a = t.width, c = t.height, u = t.renderer, s = t.cpm, Object(m.c)(u) ? Object(m.b)(u, t) : r && (function (e) { var o = e.adId, a = e.adUnitCode, r = e.width, i = e.height; function c(e) var t, n, r = (t = o, n = a, window.googletag ? function (n) return h()(window.googletag.pubads().getSlots(), function (t) return h()(t.getTargetingKeys(), function (e) return S()(t.getTargeting(e), n); ); ).getSlotElementId(); (t) : window.apntag ? function (e) var t = window.apntag.getTag(e); return t && t.targetId; (n) : n), i = document.getElementById(r); return i && i.querySelector(e); ["div"https://slate.com/,"iframe"].forEach(function (e) var t, n = c(e + ':not([style*="display: none"])'); n ? ((t = n.style).width = r + "px", t.height = i + "px") : Object(v.logWarn)("Unable to locate matching page element for adUnitCode ".concat(a, ". Can't resize it to ad's dimensions. Please review setup.")); ); }(t), n.source.postMessage(JSON.stringify( message: "Prebid Response", ad: Object(v.replaceAuctionPrice)(i, s), adUrl: Object(v.replaceAuctionPrice)(o, s), adId: r, width: a, height: c ), n.origin)), y.a.addWinningBid(l), g.a.emit(A, l)), l && "Prebid Native" === f.message) if ("assetRequest" === f.action) var p = Object(b.c)(f, l); return void e.source.postMessage(JSON.stringify(p), e.origin); if ("click" === Object(b.b)(f, l)) return; y.a.addWinningBid(l), g.a.emit(A, l); } } }, 226: function _(e, t, n) { "use strict"; t.a = function (e) var t; try window.sessionStorage, t = JSON.parse(e.getItem(u)); catch (e) t && p(t, !0); ; var r, i, o = n(3), a = n(0), c = n(41), u = "pbjs:debugging"; function s(e) Object(a.logMessage)("DEBUG: " + e); function d(e) Object(a.logWarn)("DEBUG: " + e); function f(e) { r = function (e, t, n) if (b(this.bidders, n.bidderCode)) return void d("bidder '".concat(n.bidderCode, "' excluded from auction by bidder overrides")); Array.isArray(this.bids) && this.bids.forEach(function (e) ); e(t, n); .bind(e), c.c.before(r, 5), i = function (e, t) var r = this, n = t.filter(function (e) return !b(r.bidders, e.bidderCode) ); Array.isArray(r.bidRequests) && n.forEach(function (n) r.bidRequests.forEach(function (t) n.bids.forEach(function (e) g(t, n.bidderCode, e.adUnitCode) ); ); ); e(n); .bind(e), c.e.before(i, 5); } function l() c.c.getHooks( hook: r ).remove(), c.e.getHooks( hook: i ).remove(); function p(e, t) var n = 1 < arguments.length && void 0 !== t && t; o.b.setConfig( debug: !0 ), l(), f(e), s("bidder overrides enabled".concat(n ? " from session" : "")); function g(e, t, n) function b(e, t) return Array.isArray(e) && -1 === e.indexOf(t); function v(n, e, r) return Object.keys(n).filter(function (e) return -1 === ["adUnitCode"https://slate.com/,"bidder"].indexOf(e); ).reduce(function (e, t) return s("bidder overrides changed '".concat(e.adUnitCode, "/").concat(e.bidderCode, "' ").concat(r, ".").concat(t, " from '").concat(e[t], ".js' to '").concat(n[t], "'")), e[t] = n[t], e; , e); function y(e) if (e.enabled) try window.sessionStorage.setItem(u, JSON.stringify(e)); catch (e) p(e); else l(), s("bidder overrides disabled"); try window.sessionStorage.removeItem(u); catch (e) o.b.getConfig("debugging", function (e) return y(e.debugging); ); }, 23: function _(n, e, t) (function (e) ).call(e, t(34)); , 24: function _(e, t) e.exports = function (e) return "object" == _typeof(e) ? null !== e : "function" == typeof e; ; , 25: function _(e, t) var n = .hasOwnProperty; e.exports = function (e, t) return n.call(e, t); ; , 26: function _(e, t, n) function r(e) return "function" == typeof e ? e : void 0; var i = n(43), o = n(23); e.exports = function (e, t) return arguments.length < 2 ? r(i[e]) ; , 27: function _(e, t, n) "use strict"; n.d(t, "a", function () return u; ); var r = n(0), s = n(41), i = n(10), o = n.n(i), a = n(5); var d, c, u = (d = [], (c = ).addWinningBid = function (t) var e = o()(d, function (e) return e.getAuctionId() === t.auctionId; ); e ? (t.status = a.BID_STATUS.RENDERED, e.addWinningBid(t)) : Object(r.logWarn)("Auction not found when adding winning bid"); , c.getAllWinningBids = function () return d.map(function (e) return e.getWinningBids(); ).reduce(r.flatten, []); , c.getBidsRequested = function () return d.map(function (e) return e.getBidRequests(); ).reduce(r.flatten, []); , c.getNoBids = function () return d.map(function (e) return e.getNoBids(); ).reduce(r.flatten, []); , c.getBidsReceived = function () return d.map(function (e) if (e.getAuctionStatus() === s.a) return e.getBidsReceived(); ).reduce(r.flatten, []).filter(function (e) return e; ); , c.getAdUnits = function () return d.map(function (e) return e.getAdUnits(); ).reduce(r.flatten, []); , c.getAdUnitCodes = function () return d.map(function (e) return e.getAdUnitCodes(); ).reduce(r.flatten, []).filter(r.uniques); , c.createAuction = function (e) var t, n = e.adUnits, r = e.adUnitCodes, i = e.callback, o = e.cbTimeout, a = e.labels, c = e.auctionId, u = Object(s.k)( adUnits: n, adUnitCodes: r, callback: i, cbTimeout: o, labels: a, auctionId: c ); return t = u, d.push(t), u; , c.findBidByAdId = function (t) return o()(d.map(function (e) return e.getBidsReceived(); ).reduce(r.flatten, []), function (e) return e.adId === t; ); , c.getStandardBidderAdServerTargeting = function () return Object(s.j)()[a.JSON_MAPPING.ADSERVER_TARGETING]; , c.setStatusForBids = function (e, t) var n, r = c.findBidByAdId(e); r && (r.status = t), !r , c.getLastAuctionId = function () return d.length && d[d.length - 1].getAuctionId(); , c); , 28: function _(e, t, n) var r = n(29); e.exports = !r(function () return 7 != Object.defineProperty(, 1, get: function get() return 7; )[1]; ); , 29: function _(e, t) e.exports = function (e) try return !!e(); catch (e) return !0; ; , 3: function _(e, t, n) { "use strict"; n.d(t, "a", function () return y; ), n.d(t, "b", function () return C; ); var r = n(45), i = n(10), a = n.n(i), o = n(12), c = n.n(o), u = n(77), s = n.n(u), d = n(0); function f() return (f = Object.assign var l = n(89), p = n(0), g = n(5), b = "TRUE" === p.getParameterByName(g.DEBUG_MODE).toUpperCase(), v = window.location.origin, y = "random", h = ; h[y] = !0, h.fixed = !0; var m = y, S = LOW: "low", MEDIUM: "medium", HIGH: "high", AUTO: "auto", DENSE: "dense", CUSTOM: "custom" ; var A, E, O, T, I, C = (T = [], I = null, j(), { getCurrentBidder: function getCurrentBidder() return I; , getConfig: function getConfig() if (arguments.length <= 1 && "function" != typeof (arguments.length <= 0 ? void 0 : arguments[0])) var e = arguments.length <= 0 ? void 0 : arguments[0]; return e ? p.deepAccess(w(), e) : w(); return function (e, t) var n = t; if ("string" != typeof e && (n = e, e = "*"), "function" == typeof n) var r = topic: e, callback: n ; return T.push(r), function () T.splice(T.indexOf(r), 1); ; p.logError("listener must be a function"); .apply(void 0, arguments); , setConfig: function setConfig(n) var e, r; p.isPlainObject(n) ? (e = Object.keys(n), r = , e.forEach(function (e) var t = n[e]; p.isPlainObject(A[e]) && p.isPlainObject(t) && (t = f(, A[e], t)), r[e] = E[e] = t; ), _(r)) : p.logError("setConfig options must be an object"); , setDefaults: function setDefaults(e) p.isPlainObject(A) ? (f(A, e), f(E, e)) : p.logError("defaults must be an object"); , resetConfig: j, runWithBidder: B, callbackWithBidder: function callbackWithBidder(o) { return function (i) return function () if ("function" == typeof i) for (var e, t = arguments.length, n = new Array(t), r = 0; r < t; r++) n[r] = arguments[r]; return B(o, (e = p.bind).call.apply(e, [i, this].concat(n))); p.logWarn("config.callbackWithBidder callback is not a function"); ; ; }, setBidderConfig: function setBidderConfig(r) { try !function (e) !e.bidders.length) throw "setBidderConfig bidder options must contain a bidders list with at least 1 bidder"; if (!p.isPlainObject(e.config)) throw "setBidderConfig bidder options must contain a config object"; (r), r.bidders.forEach(function (n) ); catch (e) p.logError(e); }, getBidderConfig: function getBidderConfig() return O; }); function j() A = ; var n = _debug: b, get debug() return this._debug; , set debug(e) this._debug = e; , _bidderTimeout: 3e3, get bidderTimeout() return this._bidderTimeout; , set bidderTimeout(e) this._bidderTimeout = e; , _publisherDomain: v, get publisherDomain() return this._publisherDomain; , set publisherDomain(e) this._publisherDomain = e; , _priceGranularity: S.MEDIUM, set priceGranularity(e) o(e) && ("string" == typeof e ? this._priceGranularity = i(e) ? e : S.MEDIUM : p.isPlainObject(e) && (this._customPriceBucket = e, this._priceGranularity = S.CUSTOM, p.logMessage("Using custom price granularity"))); , get priceGranularity() return this._priceGranularity; , _customPriceBucket: , get customPriceBucket() return this._customPriceBucket; , _mediaTypePriceGranularity: , get mediaTypePriceGranularity() return this._mediaTypePriceGranularity; , set mediaTypePriceGranularity(n) var r = this; this._mediaTypePriceGranularity = Object.keys(n).reduce(function (e, t) return o(n[t]) ? "string" == typeof n ? e[t] = i(n[t]) ? n[t] : r._priceGranularity : p.isPlainObject(n) && (e[t] = n[t], p.logMessage("Using custom price granularity for ".concat(t))) : p.logWarn("Invalid price granularity for media type: ".concat(t)), e; , ); , _sendAllBids: !0, get enableSendAllBids() return this._sendAllBids; , set enableSendAllBids(e) this._sendAllBids = e; , _useBidCache: !1, get useBidCache() return this._useBidCache; , set useBidCache(e) this._useBidCache = e; , _deviceAccess: !0, get deviceAccess() return this._deviceAccess; , set deviceAccess(e) this._deviceAccess = e; , _bidderSequence: m, get bidderSequence() return this._bidderSequence; , set bidderSequence(e) h[e] ? this._bidderSequence = e : p.logWarn("Invalid order: ".concat(e, ". Bidder Sequence was not set.")); , _timeoutBuffer: 400, get timeoutBuffer() return this._timeoutBuffer; , set timeoutBuffer(e) this._timeoutBuffer = e; , _disableAjaxTimeout: !1, get disableAjaxTimeout() return this._disableAjaxTimeout; , set disableAjaxTimeout(e) this._disableAjaxTimeout = e; ; function i(t) return a()(Object.keys(S), function (e) return t === S[e]; ); function o(e) if (e) p.logError("Prebid Error: no value passed to `setPriceGranularity()`"); E && _(Object.keys(E).reduce(function (e, t) return E[t] !== n[t] && (e[t] = n[t] , )), E = n, O = ; function w() if (I && O && p.isPlainObject(O[I])) var n = O[I], e = new s.a(Object.keys(E).concat(Object.keys(n))); return l(e).reduce(function (e, t) return void 0 === n[t] ? e[t] = E[t] : void 0 !== E[t] && p.isPlainObject(n[t]) ? e[t] = Object(d.mergeDeep)(, E[t], n[t]) : e[t] = n[t], e; , ); return f(, E); function _(i) var t = Object.keys(i); T.filter(function (e) return c()(t, e.topic); ).forEach(function (e) var t, n, r; e.callback((t = , n = e.topic, r = i[e.topic], n in t ? Object.defineProperty(t, n, value: r, enumerable: !0, configurable: !0, writable: !0 ) : t[n] = r, t)); ), T.filter(function (e) return "*" === e.topic; ).forEach(function (e) return e.callback(i); ); function B(e, t) I = e; try return t(); finally I = null; }, 30: function _(e, t, n) var r = n(28), i = n(31), o = n(46); e.exports = r ? function (e, t, n) return i.f(e, t, o(1, n)); : function (e, t, n) return e[t] = n, e; ; , 31: function _(e, t, n) var r = n(28), i = n(71), o = n(15), a = n(55), c = Object.defineProperty; t.f = r ? c : function (e, t, n) if (o(e), t = a(t, !0), o(n), i) try return c(e, t, n); catch (e) if ("get" in n ; , 32: function _(e, t, n) "use strict"; t.a = function (e, t) return new r(e, t); ; var i = n(0); function r(e, t) "client", r = e , 33: function _(e, t, n) "use strict"; n.d(t, "b", function () return c; ), n.d(t, "a", function () return u; ), t.d = function (e, t) var n = Object(o.getBidRequest)(e.requestId, t), r = n && Object(o.deepAccess)(n, "mediaTypes.video"), i = r && Object(o.deepAccess)(r, "context"); return s(e, n, r, i); , n.d(t, "c", function () return s; ); n(7); var o = n(0), i = n(3), r = n(12), a = (n.n(r), n(13)), c = "outstream", u = "instream"; var s = Object(a.b)("sync", function (e, t, n, r) !(!e.renderer && !t.renderer); , "checkVideoBidSetup"); , 34: function _(e, t) var n = function () return this; (); try (0, eval)("this"); catch (e) "object" == (typeof window === "undefined" ? "undefined" : _typeof(window)) && (n = window); e.exports = n; , 349: function _(e, t, n) var r = n(350); e.exports = r; , 35: function _(e, t, n) var r = n(16), i = n(88); e.exports = r ? i : function (e) return Set.prototype.values.call(e); ; , 350: function _(e, t, n) n(351); var r = n(52); e.exports = r("String"https://slate.com/,"includes"); , 351: function _(e, t, n) "use strict"; var r = n(14), i = n(352), o = n(49); r( target: "String", proto: !0, forced: !n(354)("includes") , includes: function includes(e, t) return !!~String(o(this)).indexOf(i(e), 1 < arguments.length ? t : void 0); ); , 352: function _(e, t, n) var r = n(353); e.exports = function (e) if (r(e)) throw TypeError("The method doesn't accept regular expressions"); return e; ; , 353: function _(e, t, n) var r = n(24), i = n(48), o = n(19)("match"); e.exports = function (e) var t; return r(e) && (void 0 !== (t = e[o]) ? !!t : "RegExp" == i(e)); ; , 354: function _(e, t, n) var r = n(19)("match"); e.exports = function (t) var n = /./; try "/./"[t](n); catch (e) try return n[r] = !1, "/./"[t](n); catch (e) return !1; ; , 36: function _(e, t, n) "use strict"; n.d(t, "e", function () return o; ), n.d(t, "a", function () return s; ), t.g = function (e) if (e && e.type && function (e) (Object(a.logError)("".concat(e, " nativeParam is not supported")), !1); (e.type)) return d[e.type]; return e; , t.f = function (t, e) , t.b = function (e, t) var n; "click" === e.action ? n = t.native && t.native.clickTrackers : (n = t.native && t.native.impressionTrackers, t.native && t.native.javascriptTrackers && Object(a.insertHtmlIntoIframe)(t.native.javascriptTrackers)); return (n , t.d = function (r, i) var o = ; return Object.keys(r.native).forEach(function (e) var t = u.NATIVE_KEYS[e], n = f(r.native[e]); Object(a.deepAccess)(i, "mediaTypes.native.".concat(e, ".sendId")) && (n = "".concat(t, ":").concat(r.adId)), t && n && (o[t] = n); ), o; , t.c = function (e, r) var i = message: "assetResponse", adId: e.adId, assets: [] ; return e.assets.forEach(function (e) var t = Object(a.getKeyByValue)(u.NATIVE_KEYS, e), n = f(r.native[t]); i.assets.push( key: t, value: n ); ), i; ; var a = n(0), r = n(12), c = n.n(r); function i(e) return (i = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) return _typeof(e); : function (e) return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); )(e); var u = n(5), o = [], s = Object.keys(u.NATIVE_KEYS).map(function (e) return u.NATIVE_KEYS[e]; ), d = image: image: required: !0 , title: required: !0 , sponsoredBy: required: !0 , clickUrl: required: !0 , body: required: !1 , icon: required: !1 ; function f(e) return "object" === i(e) && e.url ? e.url : e; , 38: function _(e, t) e.exports = ; , 39: function _(e, t, n) var i = n(15), o = n(18), a = n(19)("species"); e.exports = function (e, t) null == (n = i(r)[a]) ? t : o(n); ; , 4: function _(e, t, n) { "use strict"; n.d(t, "a", function () return r; ), t.b = i; var l = n(3); function p() return (p = Object.assign function g(e) return (g = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) return _typeof(e); : function (e) return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); )(e); var b = n(0), v = 4, r = i(); function i() { var s = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 3e3, e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : , d = e.request, f = e.done; return function (e, t, n) var r = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : ; try (i.ontimeout = function () b.logError(" xhr timeout after ", i.timeout, "ms"); ), "GET" === o && n && (p((c = b.parseUrl(e, r)).search, n), e = b.buildUrl(c)), i.open(o, e, !0), l.b.getConfig("disableAjaxTimeout") catch (e) b.logError("xhr construction", e); ; } }, 40: function _(e, t, n) { "use strict"; t.a = function (r, e, t) !r) return void o.logError("cannot load external script without url and moduleCode"); if (!i()(c, e)) return void o.logError("".concat(e, " not whitelisted for loading external JavaScript")); if (a[r]) return t && "function" == typeof t && (a[r].loaded ? t() : a[r].callbacks.push(t)), a[r].tag; a[r] = loaded: !1, tag: null, callbacks: [] , t && "function" == typeof t && a[r].callbacks.push(t); return o.logWarn("module ".concat(e, " is loading external JavaScript")), function (e, t) var n = document.createElement("script"); n.type = "text/javascript", n.async = !0, (a[r].tag = n).readyState ? n.onreadystatechange = function () (n.onreadystatechange = null, t()); : n.onload = function () t(); ; return n.src = e, o.insertElement(n), n; (r, function () a[r].loaded = !0; try for (var e = 0; e < a[r].callbacks.length; e++) a[r].callbacks[e](); catch (e) o.logError("Error executing callback"https://slate.com/,"adloader.js:loadExternalScript", e); ); ; var r = n(12), i = n.n(r), o = n(0), a = , c = ["criteo"https://slate.com/,"outstream"https://slate.com/,"adagio"https://slate.com/,"browsi"]; }, 41: function _(e, t, n) { "use strict"; n.d(t, "b", function () return W; ), n.d(t, "a", function () return L; ), t.k = function (e) { var t, i, b, v, o = e.adUnits, n = e.adUnitCodes, r = e.callback, a = e.cbTimeout, c = e.labels, u = e.auctionId, y = o, s = c, d = n, h = [], f = [], l = [], p = u || N.generateUUID(), g = r, m = a, S = [], A = new Set(); function E() return auctionId: p, timestamp: t, auctionEnd: i, auctionStatus: b, adUnits: y, adUnitCodes: d, labels: s, bidderRequests: h, noBids: l, bidsReceived: f, winningBids: S, timeout: m ; function O(n, e) var r, t; e && clearTimeout(v), void 0 === i && (r = [], n && (N.logMessage("Auction ".concat(p, " timedOut")), t = A, (r = h.map(function (e) return (e.bids ).reduce(j.flatten, []).map(function (e) return bidId: e.bidId, bidder: e.bidder, adUnitCode: e.adUnitCode, auctionId: e.auctionId ; )).length && q.emit(M.EVENTS.BID_TIMEOUT, r)), b = L, i = Date.now(), q.emit(M.EVENTS.AUCTION_END, E()), Y(y, function () try var e; null != g && (e = f.filter(N.bind.call(j.adUnitsFilter, this, d)).reduce(Z, ), g.apply(pbjs, [e, n, p]), g = null); catch (e) N.logError("Error executing bidsBackHandler", null, e); finally )); function T() N.logInfo("Bids Received for Auction with id: ".concat(p), f), b = L, O(!1, !0); function I(e) A.add(e); function C(d) { var f = this; d.forEach(function (e) var t; t = e, h = h.concat(t); ); var l = , e = { bidRequests: d, run: function run() { var e, t; e = O.bind(null, !0), t = setTimeout(e, m), v = t, b = W, q.emit(M.EVENTS.AUCTION_INIT, E()); var n, r, i, o, a, c, u = (n = T, r = f, i = 0, o = !1, a = new Set(), c = , addBidResponse: function addBidResponse(e, t) c[t.requestId] = !0, i++; var n = function (e) var t = e.adUnitCode, n = e.bid, r = e.bidderRequest, i = e.auctionId, o = r.start, a = D(, n, ); a.timeToRespond = a.responseTimestamp - a.requestTimestamp, q.emit(M.EVENTS.BID_ADJUSTMENT, a); var c = r.bids && U()(r.bids, function (e) return e.adUnitCode == t; ), u = c && c.renderer; u && u.url && (a.renderer = _.a.install( url: u.url ), a.renderer.setRender(u.render)); var s = X(n.mediaType, c, B.b.getConfig("mediaTypePriceGranularity")), d = Object(w.a)(a.cpm, "object" === R(s) ? s : B.b.getConfig("customPriceBucket"), B.b.getConfig("currency.granularityMultiplier")); return a.pbLg = d.low, a.pbMg = d.med, a.pbHg = d.high, a.pbAg = d.auto, a.pbDg = d.dense, a.pbCg = d.custom, a; ( adUnitCode: e, bid: t, bidderRequest: this, auctionId: r.getAuctionId() ); "video" === n.mediaType ? function (e, t, n, r) (N.logError("videoCacheKey specified but not required vastUrl for video bid"), i = !1) : (i = !1, $(e, t, r, o))), i && (Q(e, t), r()); (r, n, this, s) : (Q(r, n), s()); , adapterDone: function adapterDone() a.add(this), o = r.getBidRequests().every(function (e) return a.has(e); ), this.bids.forEach(function (e) ), o && 0 === i && n(); ); function s() i--, o && 0 === i && n(); P.callBids(y, d, function () for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; K.apply( dispatch: u.addBidResponse, bidderRequest: this , t); , u.adapterDone, request: function request(e, t) , done: function done(e) z[e]--, H[0] && p(H[0]) && H.shift(); , m, I); } }; function p(e) F; return e.bidRequests.some(function (e) var t = 1, n = void 0 !== e.src && e.src === M.S2S.SRC ? "s2s" : e.bidderCode; return V[n] && (!1 === V[n].SRA && (t = Math.min(e.bids.length, i)), z[V[n].origin] + t > i && (r = !1)), !r;
), r && e.run(), r;

function g(e, t)
void 0 === e[t] ? e[t] = 1 : e[t]++;

p(e) || (N.logWarn(“queueing auction due to limited endpoint capacity”), H.push(e));
}

return
addBidReceived: function addBidReceived(e)
f = f.concat(e);
,
addNoBid: function addNoBid(e)
l = l.concat(e);
,
executeCallback: O,
callBids: function callBids()
b = G, t = Date.now();
var e = P.makeBidRequests(y, t, p, m, s);
N.logInfo(“Bids Requested for Auction with id: “.concat(p), e), e.length < 1 ? (N.logWarn("No valid bid requests returned for auction"), T()) : J.call( dispatch: C, context: this , e); , addWinningBid: function addWinningBid(e) S = S.concat(e), P.callBidWonBidder(e.bidder, e, o); , setBidTargeting: function setBidTargeting(e) P.callSetTargetingBidder(e.bidder, e); , getWinningBids: function getWinningBids() return S; , getTimeout: function getTimeout() return m; , getAuctionId: function getAuctionId() return p; , getAuctionStatus: function getAuctionStatus() return b; , getAdUnits: function getAdUnits() return y; , getAdUnitCodes: function getAdUnitCodes() return d; , getBidRequests: function getBidRequests() return h; , getBidsReceived: function getBidsReceived() return f; , getNoBids: function getNoBids() return l; ; }, n.d(t, "c", function () return K; ), n.d(t, "e", function () return J; ), t.g = s, t.d = Q, n.d(t, "f", function () return $; ), n.d(t, "i", function () return d; ), n.d(t, "h", function () return f; ), t.j = l; var j = n(0), w = n(45), a = n(36), o = n(93), _ = n(11), B = n(3), r = n(44), i = n(13), c = n(10), U = n.n(c), x = n(33), u = n(2); function R(e) return (R = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) return _typeof(e); : function (e) return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); )(e); function D() return (D = Object.assign var k = r.a.syncUsers, N = n(0), P = n(7).default, q = n(8), M = n(5), G = "started", W = "inProgress", L = "completed"; q.on(M.EVENTS.BID_ADJUSTMENT, function (e) !function (e) var t, n = e.bidderCode, r = e.cpm; if (pbjs.bidderSettings && (n && pbjs.bidderSettings[n] && "function" == typeof pbjs.bidderSettings[n].bidCpmAdjustment ? t = pbjs.bidderSettings[n].bidCpmAdjustment : pbjs.bidderSettings[M.JSON_MAPPING.BD_SETTING_STANDARD] && "function" == typeof pbjs.bidderSettings[M.JSON_MAPPING.BD_SETTING_STANDARD].bidCpmAdjustment && (t = pbjs.bidderSettings[M.JSON_MAPPING.BD_SETTING_STANDARD].bidCpmAdjustment), t)) try r = t(e.cpm, D(, e)); catch (e) N.logError("Error during bid adjustment"https://slate.com/,"bidmanager.js", e); 0 <= r && (e.cpm = r); (e); ); var F = 4, z = , V = , H = []; var K = Object(i.b)("async", function (e, t) this.dispatch.call(this.bidderRequest, e, t); , "addBidResponse"), J = Object(i.b)("sync", function (e) this.dispatch.call(this.context, e); , "addBidderRequests"), Y = Object(i.b)("async", function (e, t) t && t(); , "bidsBackCallback"); function s(e, t) t.timeToRespond > e.getTimeout() + B.b.getConfig(“timeoutBuffer”) && e.executeCallback(!0);

function Q(e, t) {
var n = e.getBidRequests(),
r = U()(n, function (e)
return e.bidderCode === t.bidderCode;
);
!function (t, e) , n);
(t, r), q.emit(M.EVENTS.BID_RESPONSE, t), e.addBidReceived(t), s(e, t);
}

var $ = Object(i.b)(“async”, function (n, r, i, e)
Object(o.b)([r], function (e, t) , e);
, “callPrebidCache”);

function X(e, t, n)
if (e && n)
if (e === u.d)
var r = Object(j.deepAccess)(t, “mediaTypes.”.concat(u.d, “.context”), “instream”);
if (n[“”.concat(u.d, “-“).concat(r)]) return n[“”.concat(u.d, “-“).concat(r)];

return n[e];

var d = function d(e, t)
var n = X(e, t, B.b.getConfig(“mediaTypePriceGranularity”));
return “string” == typeof e && n ? “string” == typeof n ? n : “custom” : B.b.getConfig(“priceGranularity”);
,
f = function f(t)
return function (e)
return t === M.GRANULARITY_OPTIONS.AUTO ? e.pbAg : t === M.GRANULARITY_OPTIONS.DENSE ? e.pbDg : t === M.GRANULARITY_OPTIONS.LOW ? e.pbLg : t === M.GRANULARITY_OPTIONS.MEDIUM ? e.pbMg : t === M.GRANULARITY_OPTIONS.HIGH ? e.pbHg : t === M.GRANULARITY_OPTIONS.CUSTOM ? e.pbCg : void 0;
;
;

function l(e, t, n) (u[M.JSON_MAPPING.BD_SETTING_STANDARD][M.JSON_MAPPING.ADSERVER_TARGETING] = [r(a.BIDDER, “bidderCode”), r(a.AD_ID, “adId”), r(a.PRICE_BUCKET, f(c)), r(a.SIZE, “size”), r(a.DEAL, “dealId”), r(a.SOURCE, “source”), r(a.FORMAT, “mediaType”)]), “video” === e && (i = u[M.JSON_MAPPING.BD_SETTING_STANDARD][M.JSON_MAPPING.ADSERVER_TARGETING], [a.UUID, a.CACHE_ID].forEach(function (t)
void 0 === U()(i, function (e)
return e.key === t;
) && i.push(r(t, “videoCacheKey”));
), !B.b.getConfig(“cache.url”)

function p(r, i, o)
var e = i[M.JSON_MAPPING.ADSERVER_TARGETING];
return o.size = o.getSize(), N._each(e, function (e) ), r;

function Z(e, t)
},
42: function _(e, t, n) {
“use strict”;

n.d(t, “a”, function ()
return p;
);
var y = n(0),
h = n(3),
m = n(36),
r = n(27),
i = n(91),
o = n(2),
a = n(12),
S = n.n(a);

function A()

function E(e, t, n)
return t in e ? Object.defineProperty(e, t,
value: n,
enumerable: !0,
configurable: !0,
writable: !0
) : e[t] = n, e;

function O(e)

function c(e, t)
(null == t

var u = n(0),
T = n(5),
I = [],
C = Object.keys(T.TARGETING_KEYS).map(function (e)
return T.TARGETING_KEYS[e];
),
s = function s(e)
return e.responseTimestamp + 1e3 * e.ttl + 1e3 > Object(y.timestamp)();
,
d = function d(e) ;

function j(e, r, t)
var i = 2 < arguments.length && void 0 !== t ? t : 0, o = [], a = h.b.getConfig("sendBidsControl.dealPrioritization"), c = Object(y.groupBy)(e, "adUnitCode"); return Object.keys(c).forEach(function (e) var t = [], n = Object(y.groupBy)(c[e], "bidderCode"); Object.keys(n).forEach(function (e) return t.push(n[e].reduce(r)); ), 0 < i ? (t = a ? t.sort(w(!0)) : t.sort(function (e, t) return t.cpm - e.cpm; ), o.push.apply(o, O(t.slice(0, i)))) : o.push.apply(o, O(t)); ), o; function w(e) var n = 0 < arguments.length && void 0 !== e && e; return function (e, t) return void 0 !== e.adserverTargeting.hb_deal && void 0 === t.adserverTargeting.hb_deal ? -1 : void 0 === e.adserverTargeting.hb_deal && void 0 !== t.adserverTargeting.hb_deal ? 1 : n ? t.cpm - e.cpm : t.adserverTargeting.hb_pb - e.adserverTargeting.hb_pb; ; var f, _, l, p = (f = r.a, l = , (_ = ).setLatestAuctionForAdUnit = function (e, t) l[e] = t; , _.resetPresetTargeting = function (e, t) var n, i; Object(y.isGptPubadsDefined)() && (n = U(e), i = f.getAdUnits().filter(function (e) return S()(n, e.code); ), window.googletag.pubads().getSlots().forEach(function (n) var r = u.isFn(t) && t(n); I.forEach(function (t) i.forEach(function (e) ); ); )); , _.resetPresetTargetingAST = function (e) U(e).forEach(function (e) var t, n, r = window.apntag.getTag(e); r && r.keywords && (t = Object.keys(r.keywords), n = , t.forEach(function (e) ), window.apntag.modifyTag(e, keywords: n )); ); , _.getAllTargeting = function (e) var n, t, r, i, o, a, c, u, s, d = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : x(), f = U(e), l = (a = f, c = d, u = _.getWinningBids(a, c), s = R(), (u = u.map(function (o) return E(, o.adUnitCode, Object.keys(o.adserverTargeting).filter(function (e) ).reduce(function (e, t) var n = [o.adserverTargeting[t]], r = E(, t.substring(0, 20), n); if (t !== T.TARGETING_KEYS.DEAL) return [].concat(O(e), [r]); var i = E(, "".concat(t, "_").concat(o.bidderCode).substring(0, 20), n); return [].concat(O(e), [r, i]); , [])); )).concat((o = f, d.filter(function (e) return S()(o, e.adUnitCode); ).map(function (e) return A(, e); ).reduce(D, []).map(k).filter(function (e) return e; ))).concat(h.b.getConfig("enableSendAllBids") ? (n = f, t = d, r = C.concat(m.a), i = h.b.getConfig("sendBidsControl.bidLimit"), j(t, y.getHighestCpm, i).map(function (t) if (B(t, n)) return E(, t.adUnitCode, N(t, r.filter(function (e) return void 0 !== t.adserverTargeting[e]; ))); ).filter(function (e) return e; )) : function (e, t) if (!0 !== h.b.getConfig("targetingControls.alwaysIncludeDeals")) return []; var n = C.concat(m.a); return j(t, y.getHighestCpm).map(function (t) if (t.dealId && B(t, e)) return E(, t.adUnitCode, N(t, n.filter(function (e) return void 0 !== t.adserverTargeting[e]; ))); ).filter(function (e) return e; ); (f, d))); l.map(function (t) Object.keys(t).map(function (e) t[e].map(function (e) -1 === I.indexOf(Object.keys(e)[0]) && (I = Object.keys(e).concat(I)); ); ); ), l = l.map(function (e) return E(, Object.keys(e)[0], e[Object.keys(e)[0]].map(function (e) return E(, Object.keys(e)[0], e[Object.keys(e)[0]].join("https://slate.com/,")); ).reduce(function (e, t) return A(t, e); , )); ).reduce(function (e, t) var n = Object.keys(t)[0]; return e[n] = A(, e[n], t[n]), e; , ); var p, g, b, v = h.b.getConfig("targetingControls.auctionKeyMaxChars"); return v && (Object(y.logInfo)("Detected 'targetingControls.auctionKeyMaxChars' was active for this auction; set with a limit of ".concat(v, " characters. Running checks on auction keys...")), p = l, g = v, b = Object(y.deepClone)(p), l = Object.keys(b).map(function (e) return adUnitCode: e, adserverTargeting: b[e] ; ).sort(w()).reduce(function (e, t, n, r) var i, o = (i = t.adserverTargeting, Object.keys(i).reduce(function (e, t) return e + "".concat(t, "%3d").concat(encodeURIComponent(i[t]), "%26"); , "")); n + 1 === r.length && (o = o.slice(0, -3)); var a = t.adUnitCode, c = o.length; return c <= g ? (g -= c, Object(y.logInfo)("AdUnit '".concat(a, "' auction keys comprised of ").concat(c, " characters. Deducted from running threshold; new limit is ").concat(g), b[a]), e[a] = b[a]) : Object(y.logWarn)("The following keys for adUnitCode '".concat(a, "' exceeded the current limit of the 'auctionKeyMaxChars' setting.nThe key-set size was ").concat(c, ", the current allotted amount was ").concat(g, ".n"), b[a]), n + 1 === r.length && 0 === Object.keys(e).length && Object(y.logError)("No auction targeting keys were permitted due to the setting in setConfig(targetingControls.auctionKeyMaxChars). Please review setup and consider adjusting."), e; , )), f.forEach(function (e) ), l; , _.setTargetingForGPT = function (i, e) { window.googletag.pubads().getSlots().forEach(function (r) Object(y.isAdUnitCodeMatchingSlot))(r)).forEach(function (n) return Object.keys(i[n]).forEach(function (t) var e = i[n][t]; "string" == typeof e && (e = e.split(",")), (e = 1 < e.length ? [e] : e).map(function (e) return u.logMessage("Attempting to set key value for slot: ".concat(r.getSlotElementId(), " key: ").concat(t, " value: ").concat(e)), e; ).forEach(function (e) r.setTargeting(t, e); ); ); ); ); }, _.getWinningBids = function (e) var n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : x(), t = U(e); return n.filter(function (e) return S()(t, e.adUnitCode); ).filter(function (e) return 0 < e.cpm; ).map(function (e) return e.adUnitCode; ).filter(y.uniques).map(function (t) return n.filter(function (e) return e.adUnitCode === t ? e : null; ).reduce(y.getHighestCpm); ); , _.setTargetingForAst = function (e) var r = _.getAllTargeting(e); try _.resetPresetTargetingAST(e); catch (e) u.logError("unable to reset targeting for AST" + e); Object.keys(r).forEach(function (n) return Object.keys(r[n]).forEach(function (e) ); ); , _.isApntagDefined = function () if (window.apntag && u.isFn(window.apntag.setKeywords)) return !0; , _); function B(e, t) function U(e) function x() (e = e.filter(function (e) return l[e.adUnitCode] === e.auctionId; )), j(e = e.filter(function (e) return Object(y.deepAccess)(e, "video.context") !== o.a; ).filter(function (e) Object(i.c)([e.width, e.height]); ).filter(d).filter(s), y.getOldestHighestCpmBid); function R() return f.getStandardBidderAdServerTargeting().map(function (e) return e.key; ).concat(C).filter(y.uniques); function D(r, i, e, t) return Object.keys(i.adserverTargeting).filter(g()).forEach(function (e) var t, n; r.length && r.filter((n = e, function (e) return e.adUnitCode === i.adUnitCode && e.adserverTargeting[n]; )).forEach((t = e, function (e) )); ), r.push(i), r; function g() var t = R().concat(m.a); return function (e) return -1 === t.indexOf(e); ; function k(t) return E(, t.adUnitCode, Object.keys(t.adserverTargeting).filter(g()).map(function (e) return E(, e.substring(0, 20), [t.adserverTargeting[e]]); )); function N(t, e) return e.map(function (e) return E(, "".concat(e, "_").concat(t.bidderCode).substring(0, 20), [t.adserverTargeting[e]]); ); }, 43: function _(e, t) e.exports = ; , 44: function _(e, t, n) { "use strict"; n.d(t, "a", function () return S; ); var a = n(0), r = n(3), i = n(12), o = n.n(i), c = n(9); function u(e, t) function (e, t) /^(?:Ui(e, t) function s(e, t) function d() return (d = Object.assign r.b.setDefaults( userSync: a.deepClone( syncEnabled: !0, filterSettings: image: bidders: "*", filter: "include" , syncsPerBidder: 5, syncDelay: 3e3, auctionDelay: 0 ) ); var f = Object(c.a)("usersync"); var l, p, g, b, v, y, h, m = !a.isSafariBrowser() && f.cookiesAreEnabled(), S = (l = config: r.b.getConfig("userSync"), browserSupportsCookies: m , p = , g = A(), b = new Set(), y = image: !0, iframe: !(v = ) , h = l.config, r.b.getConfig("userSync", function (e) var t; e.userSync && (t = e.userSync.filterSettings, a.isPlainObject(t) && (t.image ), p.registerSync = function (e, t, n) return b.has(t) ? a.logMessage('already fired syncs for "'.concat(t, '", ignoring registerSync call')) : h.syncEnabled && a.isArray(g[e]) ? t ? 0 !== h.syncsPerBidder && Number(v[t]) >= h.syncsPerBidder ? a.logWarn(‘Number of user syncs exceeded for “‘.concat(t, ‘”‘)) : p.canBidderRegisterSync(e, t) ? (g[e].push([t, n]), (r = v)[i = t] ? r[i] += 1 : r[i] = 1, void (v = r)) : a.logWarn(‘Bidder “‘.concat(t, ‘” not permitted to register their “‘).concat(e, ‘” userSync pixels.’)) : a.logWarn(“Bidder is required for registering sync”) : a.logWarn(‘User sync type “‘.concat(e, ‘” not supported’));
var r, i;
, p.syncUsers = function ()
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0; if (e) return setTimeout(E, Number(e)); E(); , p.triggerUserSyncs = function () h.enableOverride && p.syncUsers(); , p.canBidderRegisterSync = function (e, t) return !h.filterSettings , p); function A() return image: [], iframe: [] ; function E() { if (h.syncEnabled && l.browserSupportsCookies) try !function () if (!y.image) return; O(g.image, function (e) var t = u(e, 2), n = t[0], r = t[1]; a.logMessage("Invoking image pixel user sync for bidder: ".concat(n)), a.triggerPixel(r); ); (), function () if (!y.iframe) return; O(g.iframe, function (e) var t = u(e, 2), n = t[0], r = t[1]; a.logMessage("Invoking iframe user sync for bidder: ".concat(n)), a.insertUserSyncIframe(r); ); (); catch (e) return a.logError("Error firing user syncs", e); g = A(); } function O(e, t) a.shuffle(e).forEach(function (e) t(e), b.add(e[0]); ); function T(e, t) var n = h.filterSettings; if (function (e, t) (n, e)) }, 45: function _(e, t, n) "use strict"; n.d(t, "a", function () return d; ), n.d(t, "b", function () return h; ); var r = n(10), v = n.n(r), i = n(0), y = 2, o = buckets: [ max: 5, increment: .5 ] , a = buckets: [ max: 20, increment: .1 ] , c = buckets: [ max: 20, increment: .01 ] , u = buckets: [ max: 3, increment: .01 , max: 8, increment: .05 , max: 20, increment: .5 ] , s = buckets: [ max: 5, increment: .05 , max: 10, increment: .1 , max: 20, increment: .5 ] ; function d(e, t) var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 1, r = parseFloat(e); return isNaN(r) && (r = ""), low: "" === r ? "" : f(e, o, n), med: "" === r ? "" : f(e, a, n), high: "" === r ? "" : f(e, c, n), auto: "" === r ? "" : f(e, s, n), dense: "" === r ? "" : f(e, u, n), custom: "" === r ? "" : f(e, t, n) ; function f(n, e, r) var i = ""; if (!h(e)) return i; var t, o, a, c, u, s, d, f, l, p = e.buckets.reduce(function (e, t) return e.max > t.max ? e : t;
,
max: 0
),
g = 0,
b = v()(e.buckets, function (e)
if (n > p.max * r)
var t = e.precision;
void 0 === t && (t = y), i = (e.max * r).toFixed(t);
else
if (n <= e.max * r && g * r <= n) return e.min = g, e; g = e.max; ); return b && (t = n, a = r, c = void 0 !== (o = b).precision ? o.precision : y, u = o.increment * a, s = o.min * a, d = Math.pow(10, c + 2), f = (t * d - s * d) / (u * d), l = Math.floor(f) * u + s, i = (l = Number(l.toFixed(10))).toFixed(c)), i; function h(e) if (i.isEmpty(e) , 46: function _(e, t) e.exports = function (e, t) return enumerable: !(1 & e), configurable: !(2 & e), writable: !(4 & e), value: t ; ; , 47: function _(e, t, n) var r = n(70), i = n(49); e.exports = function (e) return r(i(e)); ; , 478: function _(e, t, n) var r = n(479); e.exports = r; , 479: function _(e, t, n) n(480); var r = n(43); e.exports = r.Number.isInteger; , 48: function _(e, t) var n = .toString; e.exports = function (e) return n.call(e).slice(8, -1); ; , 480: function _(e, t, n) n(14)( target: "Number", stat: !0 , isInteger: n(481) ); , 481: function _(e, t, n) var r = n(24), i = Math.floor; e.exports = function (e) return !r(e) && isFinite(e) && i(e) === e; ; , 49: function _(e, t) e.exports = function (e) if (null == e) throw TypeError("Can't call method on " + e); return e; ; , 5: function _(e, t) e.exports = JSON_MAPPING: PL_CODE: "code", PL_SIZE: "sizes", PL_BIDS: "bids", BD_BIDDER: "bidder", BD_ID: "paramsd", BD_PL_ID: "placementId", ADSERVER_TARGETING: "adserverTargeting", BD_SETTING_STANDARD: "standard" , DEBUG_MODE: "pbjs_debug", STATUS: GOOD: 1, NO_BID: 2 , CB: TYPE: ALL_BIDS_BACK: "allRequestedBidsBack", AD_UNIT_BIDS_BACK: "adUnitBidsBack", BID_WON: "bidWon", REQUEST_BIDS: "requestBids" , EVENTS: AUCTION_INIT: "auctionInit", AUCTION_END: "auctionEnd", BID_ADJUSTMENT: "bidAdjustment", BID_TIMEOUT: "bidTimeout", BID_REQUESTED: "bidRequested", BID_RESPONSE: "bidResponse", NO_BID: "noBid", BID_WON: "bidWon", BIDDER_DONE: "bidderDone", SET_TARGETING: "setTargeting", BEFORE_REQUEST_BIDS: "beforeRequestBids", REQUEST_BIDS: "requestBids", ADD_AD_UNITS: "addAdUnits", AD_RENDER_FAILED: "adRenderFailed", TCF2_ENFORCEMENT: "tcf2Enforcement", AUCTION_DEBUG: "auctionDebug" , AD_RENDER_FAILED_REASON: PREVENT_WRITING_ON_MAIN_DOCUMENT: "preventWritingOnMainDocuemnt", NO_AD: "noAd", EXCEPTION: "exception", CANNOT_FIND_AD: "cannotFindAd", MISSING_DOC_OR_ADID: "missingDocOrAdid" , EVENT_ID_PATHS: bidWon: "adUnitCode" , GRANULARITY_OPTIONS: LOW: "low", MEDIUM: "medium", HIGH: "high", AUTO: "auto", DENSE: "dense", CUSTOM: "custom" , TARGETING_KEYS: BIDDER: "hb_bidder", AD_ID: "hb_adid", PRICE_BUCKET: "hb_pb", SIZE: "hb_size", DEAL: "hb_deal", SOURCE: "hb_source", FORMAT: "hb_format", UUID: "hb_uuid", CACHE_ID: "hb_cache_id", CACHE_HOST: "hb_cache_host" , NATIVE_KEYS: title: "hb_native_title", body: "hb_native_body", body2: "hb_native_body2", privacyLink: "hb_native_privacy", privacyIcon: "hb_native_privicon", sponsoredBy: "hb_native_brand", image: "hb_native_image", icon: "hb_native_icon", clickUrl: "hb_native_linkurl", displayUrl: "hb_native_displayurl", cta: "hb_native_cta", rating: "hb_native_rating", address: "hb_native_address", downloads: "hb_native_downloads", likes: "hb_native_likes", phone: "hb_native_phone", price: "hb_native_price", salePrice: "hb_native_saleprice" , S2S: SRC: "s2s", DEFAULT_ENDPOINT: "https://prebid.adnxs.com/pbs/v1/openrtb2/auction", SYNCED_BIDDERS_KEY: "pbjsSyncs" , BID_STATUS: BID_TARGETING_SET: "targetingSet", RENDERED: "rendered", BID_REJECTED: "bidRejected" ; , 50: function _(e, t, n) var r = n(58), i = Math.min; e.exports = function (e) return 0 < e ? i(r(e), 9007199254740991) : 0; ; , 51: function _(e, t) e.exports = function () ; , 52: function _(e, t, n) var r = n(26); e.exports = r; , 53: function _(e, t) e.exports = ; , 54: function _(e, t, n) var r, i, o, a, c, u, s, d, f = n(113), l = n(23), p = n(24), g = n(30), b = n(25), v = n(65), y = n(53), h = l.WeakMap; s = f ? (r = new h(), i = r.get, o = r.has, a = r.set, c = function c(e, t) return a.call(r, e, t), t; , u = function u(e) return i.call(r, e) , function (e) return o.call(r, e); ) : (y[d = v("state")] = !0, c = function c(e, t) return g(e, d, t), t; , u = function u(e) return b(e, d) ? e[d] : ; , function (e) return b(e, d); ), e.exports = set: c, get: u, has: s, enforce: function enforce(e) return s(e) ? u(e) : c(e, ); , getterFor: function getterFor(n) return function (e) (t = u(e)).type !== n) throw TypeError("Incompatible receiver, " + n + " required"); return t; ; ; , 55: function _(e, t, n) var i = n(24); e.exports = function (e, t) if (!i(e)) return e; var n, r; if (t && "function" == typeof (n = e.toString) && !i(r = n.call(e))) return r; if ("function" == typeof (n = e.valueOf) && !i(r = n.call(e))) return r; if (!t && "function" == typeof (n = e.toString) && !i(r = n.call(e))) return r; throw TypeError("Can't convert object to primitive value"); ; , 56: function _(e, t, n) { function r(p) var S = n(21), A = n(70), E = n(57), O = n(50), T = n(101), I = [].push; e.exports = forEach: r(0), map: r(1), filter: r(2), some: r(3), every: r(4), find: r(5), findIndex: r(6) ; }, 57: function _(e, t, n) var r = n(49); e.exports = function (e) return Object(r(e)); ; , 58: function _(e, t) var n = Math.ceil, r = Math.floor; e.exports = function (e) return isNaN(e = +e) ? 0 : (0 < e ? r : n)(e); ; , 59: function _(e, t) var n = 0, r = Math.random(); e.exports = function (e) return "Symbol(" + String(void 0 === e ? "" : e) + ")_" + (++n + r).toString(36); ; , 60: function _(e, t, n) function a(e) throw e; var c = n(28), u = n(29), s = n(25), d = Object.defineProperty, f = ; e.exports = function (e, t) , "ACCESSORS") && t.ACCESSORS, i = s(t, 0) ? t[0] : a, o = s(t, 1) ? t[1] : void 0; return f[e] = !!n && !u(function () if (r && !c) return !0; var e = length: -1 ; r ? d(e, 1, enumerable: !0, get: a ) : e[1] = 1, n.call(e, i, o); ); ; , 61: function _(e, t, n) var r = n(62), i = n(38), o = n(19)("iterator"); e.exports = function (e) e["@@iterator"] ; , 62: function _(e, t, n) var r = n(63), i = n(48), o = n(19)("toStringTag"), a = "Arguments" == i(function () return arguments; ()); e.exports = r ? i : function (e) var t, n, r; return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof (n = function (e, t) try return e[t]; catch (e) (t = Object(e), o)) ? n : a ? i(t) : "Object" == (r = i(t)) && "function" == typeof t.callee ? "Arguments" : r; ; , 63: function _(e, t, n) var r = ; r[n(19)("toStringTag")] = "z", e.exports = "[object z]" === String(r); , 64: function _(e, t, n) var o = n(63), a = n(31).f, c = n(30), u = n(25), s = n(112), d = n(19)("toStringTag"); e.exports = function (e, t, n, r) ; , 65: function _(e, t, n) var r = n(73), i = n(59), o = r("keys"); e.exports = function (e) ; , 66: function _(e, t, n) { "use strict"; function y() return this; var h = n(14), m = n(121), S = n(86), A = n(123), E = n(64), O = n(30), T = n(84), r = n(19), I = n(16), C = n(38), i = n(85), j = i.IteratorPrototype, w = i.BUGGY_SAFARI_ITERATORS, _ = r("iterator"), B = "values", U = "entries"; e.exports = function (e, t, n, r, i, o, a) m(n, t, r); function c(e) if (e === i && b) return b; if (!w && e in p) return p[e]; switch (e) case "keys": case B: case U: return function () return new n(this, e); ; return function () return new n(this); ; var u, s, d, f = t + " Iterator", l = !1, p = e.prototype, g = p[_] ; }, 67: function _(e, t, n) "use strict"; n.d(t, "a", function () return o; ); var r = n(0), c = ; function i(e, t, n) var o = incrementRequestsCounter: function incrementRequestsCounter(e) return i(e, "requestsCounter"); , incrementBidderRequestsCounter: function incrementBidderRequestsCounter(e, t) return i(e, "requestsCounter", t); , incrementBidderWinsCounter: function incrementBidderWinsCounter(e, t) return i(e, "winsCounter", t); , getRequestsCounter: function getRequestsCounter(e) return Object(r.deepAccess)(c, "".concat(e, ".requestsCounter")) , getBidderRequestsCounter: function getBidderRequestsCounter(e, t) return Object(r.deepAccess)(c, "".concat(e, ".bidders.").concat(t, ".requestsCounter")) , getBidderWinsCounter: function getBidderWinsCounter(e, t) 0; ; , 68: function _(e, t, n) , 69: function _(e, t, n) "use strict"; t.a = function (t, n) ; var r = n(20), i = n(0), o = Object(r.a)(); , 7: function _(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", value: !0 ), n.d(t, "gdprDataHandler", function () return R; ), n.d(t, "uspDataHandler", function () return D; ), t.setS2STestingModule = function (e) I = e; ; var S = n(0), p = n(91), g = n(36), l = n(1), h = n(4), A = n(3), r = n(13), i = n(12), E = n.n(i), o = n(10), O = n.n(o), b = n(67), T = n(22); function m(e, t) function a(e, t) (null == t function v() return (v = Object.assign var I, C = n(0), j = n(5), w = n(8), y = , _ = y.bidderRegistry = , B = y.aliasRegistry = , U = ; A.b.getConfig("s2sConfig", function (e) U = e.s2sConfig; ); var c = ; var x = Object(r.b)("sync", function (e) var i = e.bidderCode, s = e.auctionId, d = e.bidderRequestId, t = e.adUnits, f = e.labels, l = e.src; return t.reduce(function (e, c) var t = Object(p.b)(Object(p.a)(c, f), c.mediaTypes, c.sizes), n = t.active, u = t.mediaTypes, r = t.filterResults; return n ? r && C.logInfo('Size mapping filtered adUnit "'.concat(c.code, '" banner sizes from '), r.before, "to ", r.after) : C.logInfo('Size mapping disabled adUnit "'.concat(c.code, '"')), n && e.push(c.bids.filter(function (e) return e.bidder === i; ).reduce(function (e, t) , [])), e; , []).reduce(S.flatten, []).filter(function (e) return "" !== e; ); , "getBids"); var R = consentData: null, setConsentData: function setConsentData(e) R.consentData = e; , getConsentData: function getConsentData() return R.consentData; , D = consentData: null, setConsentData: function setConsentData(e) D.consentData = e; , getConsentData: function getConsentData() return D.consentData; ; function k() return U && U.enabled && U.testing && I; function u(t, n, e) try var r = _[t].getSpec(); r && r[n] && "function" == typeof r[n] && (C.logInfo("Invoking ".concat(t, ".").concat(n)), A.b.runWithBidder(t, S.bind.call(r[n], r, e))); catch (e) C.logWarn("Error calling ".concat(n, " of ").concat(t)); y.makeBidRequests = Object(r.b)("sync", function (e, i, o, a, c) { w.emit(j.EVENTS.BEFORE_REQUEST_BIDS, e); var u = [], t = Object(S.getBidderCodes)(e); A.b.getConfig("bidderSequence") === A.a && (t = Object(S.shuffle)(t)); var n, r, s, d, f, l, p, g = Object(T.a)(), b = t, v = []; U.enabled && (k() && (v = I.getSourceBidderMap(e)[I.CLIENT]), n = U.bidders, b = t.filter(function (e) ), Boolean(k() && U.testServerOnly) && (p = e, Boolean(O()(p, function (e) return O()(e.bids, function (e) return (e.bidSource ); ))) && (b.length = 0), d = e, f = U.bidders, (l = C.deepClone(d)).forEach(function (e) e.bids = e.bids.filter(function (e) return E()(f, e.bidder) && (!k() ).map(function (e) return e.bid_id = C.getUniqueIdentifierStr(), e; ); ), r = l = l.filter(function (e) return 0 !== e.bids.length; ), s = C.generateUUID(), n.forEach(function (e) var t = C.getUniqueIdentifierStr(), n = bidderCode: e, auctionId: o, bidderRequestId: t, tid: s, bids: x( bidderCode: e, auctionId: o, bidderRequestId: t, adUnits: C.deepClone(r), labels: c, src: j.S2S.SRC ), auctionStart: i, timeout: U.timeout, src: j.S2S.SRC, refererInfo: g ; 0 !== n.bids.length && u.push(n); ), r.forEach(function (e) var t = e.bids.filter(function (t) return O()(u, function (e) return O()(e.bids, function (e) return e.bidId === t.bid_id; ); ); ); e.bids = t; ), u.forEach(function (e) e.adUnitsS2SCopy = r.filter(function (e) return 0 < e.bids.length; ); )); var y, h, m = (y = e, (h = C.deepClone(y)).forEach(function (e) e.bids = e.bids.filter(function (e) return !k() ); ), h = h.filter(function (e) return 0 !== e.bids.length; )); return b.forEach(function (e) ), R.getConsentData() && u.forEach(function (e) e.gdprConsent = R.getConsentData(); ), D.getConsentData() && u.forEach(function (e) e.uspConsent = D.getConsentData(); ), u; }, "makeBidRequests"), y.callBids = function (e, t, i, o, a, c, u) var n, r, s, d, f, l, p, g, b, v, y; t.length ? (r = (n = m(t.reduce(function (e, t) return e[Number(void 0 !== t.src && t.src === j.S2S.SRC)].push(t), e; , [[], []]), 2))[0], (s = n[1]).length && (d = Object(h.b)(c, a ? request: a.request.bind(null, "s2s"), done: a.done : void 0), f = U.bidders, l = _[U.adapter], p = s[0].tid, g = s[0].adUnitsS2SCopy, l ? (b = tid: p, ad_units: g ).ad_units.length && (v = s.map(function (e) return e.start = Object(S.timestamp)(), o.bind(e); ), y = b.ad_units.reduce(function (e, t) return e.concat((t.bids , []), C.logMessage("CALLING S2S HEADER BIDDERS ==== ".concat(f.filter(function (e) return E()(y, e); ).join(","))), s.forEach(function (e) w.emit(j.EVENTS.BID_REQUESTED, e); ), l.callBids(b, s, function (e, t) var n = Object(S.getBidderRequest)(s, t.bidderCode, e); n && i.call(n, e, t); , function () return v.forEach(function (e) return e(); ); , d)) : C.logError("missing " + U.adapter)), r.forEach(function (t) t.start = Object(S.timestamp)(); var e = _[t.bidderCode]; C.logMessage("CALLING BIDDER ======= ".concat(t.bidderCode)), w.emit(j.EVENTS.BID_REQUESTED, t); var n = Object(h.b)(c, a ? request: a.request.bind(null, t.bidderCode), done: a.done : void 0), r = o.bind(t); try A.b.runWithBidder(t.bidderCode, S.bind.call(e.callBids, e, t, i.bind(t), r, n, u, A.b.callbackWithBidder(t.bidderCode))); catch (e) C.logError("".concat(t.bidderCode, " Bid Adapter emitted an uncaught error when parsing their bidRequest"), e: e, bidRequest: t ), r(); )) : C.logWarn("callBids executed with no bidRequests. Were they filtered by labels or sizing?"); , y.videoAdapters = [], y.registerBidAdapter = function (e, t) var n = (2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : ).supportedMediaTypes, r = void 0 === n ? [] : n; e && t ? "function" == typeof e.callBids ? (_[t] = e, E()(r, "video") && y.videoAdapters.push(t), E()(r, "native") && g.e.push(t)) : C.logError("Bidder adaptor error for bidder code: " + t + "bidder must implement a callBids() function") : C.logError("bidAdaptor or bidderCode not specified"); , y.aliasBidAdapter = function (t, e, n) var r, i; if (void 0 === _[e]) var o = _[t]; if (void 0 === o) var a = A.b.getConfig("s2sConfig"), c = a && a.bidders; c && E()(c, e) ? B[e] = t : C.logError('bidderCode "' + t + '" is not an existing bidder."https://slate.com/,"adapterManager.aliasBidAdapter"); else try var u, s, d, f = (r = t, i = [], E()(y.videoAdapters, r) && i.push("video"), E()(g.e, r) && i.push("native"), i); o.constructor.prototype != Object.prototype ? (d = new o.constructor()).setBidderCode(e) : (u = o.getSpec(), s = n && n.gvlid, d = Object(l.newBidder)(v(, u, code: e, gvlid: s )), B[e] = t), y.registerBidAdapter(d, e, supportedMediaTypes: f ); catch (e) C.logError(t + " bidder does not currently support aliasing."https://slate.com/,"adapterManager.aliasBidAdapter"); else C.logMessage('alias name "' + e + '" has been already specified.'); , y.registerAnalyticsAdapter = function (e) var t = e.adapter, n = e.code, r = e.gvlid; t && n ? "function" == typeof t.enableAnalytics ? (t.code = n, c[n] = adapter: t, gvlid: r ) : C.logError('Prebid Error: Analytics adaptor error for analytics "'.concat(n, '"n analytics adapter must implement an enableAnalytics() function')) : C.logError("Prebid Error: analyticsAdapter or analyticsCode not specified"); , y.enableAnalytics = function (e) , y.getBidAdapter = function (e) return _[e]; , y.getAnalyticsAdapter = function (e) return c[e]; , y.callTimedOutBidders = function (t, n, r) n = n.map(function (e) return e.params = C.getUserConfiguredParams(t, e.adUnitCode, e.bidder), e.timeout = r, e; ), n = C.groupBy(n, "bidder"), Object.keys(n).forEach(function (e) u(e, "onTimeout", n[e]); ); , y.callBidWonBidder = function (e, t, n) t.params = C.getUserConfiguredParams(n, t.adUnitCode, t.bidder), b.a.incrementBidderWinsCounter(t.adUnitCode, t.bidder), u(e, "onBidWon", t); , y.callSetTargetingBidder = function (e, t) u(e, "onSetTargeting", t); , t.default = y; }, 70: function _(e, t, n) var r = n(29), i = n(48), o = "".split; e.exports = r(function () return !Object("z").propertyIsEnumerable(0); ) ? function (e) return "String" == i(e) ? o.call(e, "") : Object(e); : Object; , 71: function _(e, t, n) var r = n(28), i = n(29), o = n(72); e.exports = !r && !i(function () return 7 != Object.defineProperty(o("div"), "a", get: function get() return 7; ).a; ); , 72: function _(e, t, n) var r = n(23), i = n(24), o = r.document, a = i(o) && i(o.createElement); e.exports = function (e) return a ? o.createElement(e) : ; ; , 73: function _(e, t, n) var r = n(16), i = n(74); (e.exports = function (e, t) )("versions", []).push( version: "3.6.4", mode: r ? "pure" : "global", copyright: "© 2020 Denis Pushkarev (zloirock.ru)" ); , 74: function _(e, t, n) , 75: function _(e, t, n) var r = n(29); e.exports = !!Object.getOwnPropertySymbols && !r(function () return !String(Symbol()); ); , 76: function _(e, t, n) { function r(c) return function (e, t, n) var r, i = u(e), o = s(i.length), a = d(n, o); if (c && t != t) for (; a < o;) if ((r = i[a++]) != r) return !0; else for (; a < o; a++) a return !c && -1; ; var u = n(47), s = n(50), d = n(107); e.exports = includes: r(!0), indexOf: r(!1) ; }, 77: function _(e, t, n) var r = n(108); n(131), n(133), n(135), n(137), n(139), n(140), n(141), n(142), n(143), n(144), n(145), n(146), n(147), n(148), n(149), n(150), n(151), n(152), e.exports = r; , 78: function _(e, t, n) , 79: function _(e, t, n) var r = n(19), i = n(38), o = r("iterator"), a = Array.prototype; e.exports = function (e) ; , 8: function _(e, t, n) { function r() function (e) for (var t = 1; t < arguments.length; t++) var n = arguments[t]; for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]); return e; ).apply(this, arguments); var c, i, u = n(0), o = n(5), a = Array.prototype.slice, s = Array.prototype.push, d = u._map(o.EVENTS, function (e) return e; ), f = o.EVENT_ID_PATHS, l = []; e.exports = (c = , (i = ).on = function (e, t, n) var r, i; i = e, u.contains(d, i) ? (r = c[e] , i.emit = function (e) !function (e, t) , r = n[f[e]], i = c[e] (e, a.call(arguments, 1)); , i.off = function (e, n, r) var i = c[e]; u.isEmpty(i) , i.get = function () return c; , i.getEvents = function () var n = []; return u._each(l, function (e) var t = r(, e); n.push(t); ), n; , i); }, 80: function _(e, t, n) var o = n(15); e.exports = function (t, e, n, r) try return r ? e(o(n)[0], n[1]) : e(n); catch (e) var i = t.return; throw (void 0 !== i && o(i.call(t)), e); ; , 81: function _(e, t) e.exports = function (e, t, n) if (!(e instanceof t)) throw TypeError("Incorrect " + (n ? n + " " : "") + "invocation"); return e; ; , 82: function _(e, t, n) function r() function i(e) return "'); function tryGetCriteoFastBid() try var fastBidStorageKey = "criteo_fast_bid", hashPrefix = "// Hash: ", fastBidFromStorage = storage.getDataFromLocalStorage(fastBidStorageKey), firstLineEndPosition, firstLine, publisherTagHash, publisherTag; null !== fastBidFromStorage && (firstLineEndPosition = fastBidFromStorage.indexOf("n"), firstLine = fastBidFromStorage.substr(0, firstLineEndPosition).trim(), firstLine.substr(0, hashPrefix.length) !== hashPrefix ? (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logWarn("No hash found in FastBid"), storage.removeDataFromLocalStorage(fastBidStorageKey)) : (publisherTagHash = firstLine.substr(hashPrefix.length), publisherTag = fastBidFromStorage.substr(firstLineEndPosition + 1), Object(__WEBPACK_IMPORTED_MODULE_6_criteo_direct_rsa_validate_build_verify_js__.verify)(publisherTag, publisherTagHash, FAST_BID_PUBKEY_N, FAST_BID_PUBKEY_E) ? (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logInfo("Using Criteo FastBid"), eval(publisherTag)) : (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logWarn("Invalid Criteo FastBid found"), storage.removeDataFromLocalStorage(fastBidStorageKey)))); catch (t) Object(__WEBPACK_IMPORTED_MODULE_1__src_adapters_bidderFactory_js__.registerBidder)(spec); , 371: function _(t, e, r) "use strict"; Object.defineProperty(e, "__esModule", value: !0 ); var a = r(372), n = r(373); e.verify = function (t, e, r, i) var s = new a.BigInteger(a.b64toHex(e)), o = new a.BigInteger(a.b64toHex(r)), _ = s.modPowInt(i, o); return a.removeExtraSymbols(_.toHexString()) === n.Sha256.hash(t); ; , 372: function _(t, e, r) { "use strict"; var i; Object.defineProperty(e, "__esModule", value: !0 ); var s = (T.prototype.toHexString = function () if (this.s < 0) return "-" + this.negate().toHexString(); var t, e = !1, r = "", i = this.t, s = this.DB - i * this.DB % 4; if (0 < i--) for (s < this.DB && 0 < (t = this[i] >> s) && (e = !0, r = c(t)); 0 <= i;) = this[--i] >> (s += this.DB – 4)) : (t = this[i] >> (s -= 4) & 15, s <= 0 && (s += this.DB, --i)), 0 < t && (e = !0), e && (r += c(t)); return e ? r : "0"; , T.prototype.fromHexString = function (t) if (null !== t) this.t = 0, this.s = 0; for (var e = t.length, r = !1, i = 0; 0 <= --e;) = s << i, (i += 4) >= this.DB && (i -= this.DB));

this.clamp(), r && T.ZERO.subTo(this, this);

, T.prototype.negate = function ()
var t = b();
return T.ZERO.subTo(this, t), t;
, T.prototype.abs = function ()
return this.s < 0 ? this.negate() : this; , T.prototype.mod = function (t) var e = b(); return this.abs().divRemTo(t, null, e), this.s < 0 && 0 < e.compareTo(T.ZERO) && t.subTo(e, e), e; , T.prototype.copyTo = function (t) for (var e = this.t - 1; 0 <= e; --e) t[e] = this[e]; t.t = this.t, t.s = this.s; , T.prototype.lShiftTo = function (t, e) for (var r = t % this.DB, i = this.DB - r, s = (1 << i) - 1, o = Math.floor(t / this.DB), _ = this.s << r & this.DM, a = this.t - 1; 0 <= a; --a) e[a + o + 1] = this[a] >> i

for (a = o – 1; 0 <= a; --a) e[a] = 0; e[o] = _, e.t = this.t + o + 1, e.s = this.s, e.clamp(); , T.prototype.invDigit = function () if (this.t < 1) return 0; var t = this[0]; if (0 == (1 & t)) return 0; var e = 3 & t; return 0 < (e = (e = (e = (e = e * (2 - (15 & t) * e) & 15) * (2 - (255 & t) * e) & 255) * (2 - ((65535 & t) * e & 65535)) & 65535) * (2 - t * e % this.DV) % this.DV) ? this.DV - e : -e; , T.prototype.dlShiftTo = function (t, e) for (var r = this.t - 1; 0 <= r; --r) e[r + t] = this[r]; for (r = t - 1; 0 <= r; --r) e[r] = 0; e.t = this.t + t, e.s = this.s; , T.prototype.squareTo = function (t) for (var e = this.abs(), r = t.t = 2 * e.t; 0 <= --r;) t[r] = 0; for (r = 0; r < e.t - 1; ++r) var i = e.am(r, e[r], t, 2 * r, 0, 1); (t[r + e.t] += e.am(r + 1, 2 * e[r], t, 2 * r + 1, i, e.t - r - 1)) >= e.DV && (t[r + e.t] -= e.DV, t[r + e.t + 1] = 1);

0 < t.t && (t[t.t - 1] += e.am(r, e[r], t, 2 * r, 0, 1)), t.s = 0, t.clamp(); , T.prototype.multiplyTo = function (t, e) var r = this.abs(), i = t.abs(), s = r.t; for (e.t = s + i.t; 0 <= --s;) e[s] = 0; for (s = 0; s < i.t; ++s) e[s + r.t] = r.am(0, i[s], e, s, 0, r.t); e.s = 0, e.clamp(), this.s != t.s && T.ZERO.subTo(e, e); , T.prototype.divRemTo = function (t, e, r) { var i = t.abs(); if (!(i.t <= 0)) var s = this.abs(); if (s.t < i.t) return null != e && e.fromHexString("0"), void (null != r && this.copyTo(r)); null == r && (r = b()); var o = b(), _ = this.s, a = t.s, n = this.DB - D(i[i.t - 1]); 0 < n ? (i.lShiftTo(n, o), s.lShiftTo(n, r)) : (i.copyTo(o), s.copyTo(r)); var p = o.t, c = o[p - 1]; if (0 != c) var d = c * (1 << this.F1) + (1 < p ? o[p - 2] >> this.F2 : 0),
u = this.FV / d,
h = (1 << this.F1) / d, l = 1 << this.F2, f = r.t, E = f - p, v = null == e ? b() : e; for (o.dlShiftTo(E, v), 0 <= r.compareTo(v) && (r[r.t++] = 1, r.subTo(v, r)), T.ONE.dlShiftTo(p, v), v.subTo(o, o); o.t < p;) o[o.t++] = 0; for (; 0 <= --E;) var m = r[--f] == c ? this.DM : Math.floor(r[f] * u + (r[f - 1] + l) * h); if ((r[f] += o.am(0, m, r, E, 0, p)) < m) for (o.dlShiftTo(E, v), r.subTo(v, r); r[f] < --m;) r.subTo(v, r); null != e && (r.drShiftTo(p, e), _ != a && T.ZERO.subTo(e, e)), r.t = p, r.clamp(), 0 < n && r.rShiftTo(n, r), _ < 0 && T.ZERO.subTo(r, r); }, T.prototype.rShiftTo = function (t, e) e.s = this.s; var r = Math.floor(t / this.DB); if (r >= this.t) e.t = 0;else = (this.s & o) << s), e.t = this.t - r, e.clamp(); , T.prototype.drShiftTo = function (t, e) for (var r = t; r < this.t; ++r) e[r - t] = this[r]; e.t = Math.max(this.t - t, 0), e.s = this.s; , T.prototype.subTo = function (t, e) for (var r = 0, i = 0, s = Math.min(t.t, this.t); r < s;) i += this[r] - t[r], e[r++] = i & this.DM, i >>= this.DB;

if (t.t < this.t) for (i -= t.s; r < this.t;) i += this[r], e[r++] = i & this.DM, i >>= this.DB;

i += this.s;
else
for (i += this.s; r < t.t;) i -= t[r], e[r++] = i & this.DM, i >>= this.DB;

i -= t.s;

e.s = i < 0 ? -1 : 0, i < -1 ? e[r++] = this.DV + i : 0 < i && (e[r++] = i), e.t = r, e.clamp(); , T.prototype.clamp = function () for (var t = this.s & this.DM; 0 < this.t && this[this.t - 1] == t;) --this.t; , T.prototype.modPowInt = function (t, e) var r = new (t < 256 , T.prototype.exp = function (t, e) , T.prototype.isEven = function () return 0 == (0 < this.t ? 1 & this[0] : this.s); , T.prototype.compareTo = function (t) var e = this.s - t.s; if (0 != e) return e; var r = this.t; if (0 != (e = r - t.t)) return this.s < 0 ? -e : e; for (; 0 <= --r;) if (0 != (e = this[r] - t[r])) return e; return 0; , T.prototype.am1 = function (t, e, r, i, s, o) for (; 0 <= --o;) var _ = e * this[t++] + r[i] + s; s = Math.floor(_ / 67108864), r[i++] = 67108863 & _; return s; , T.prototype.am2 = function (t, e, r, i, s, o) for (var _ = 32767 & e, a = e >> 15; 0 <= --o;) var n = 32767 & this[t], p = this[t++] >> 15,
c = a * n + p * _;
s = ((n = _ * n + ((32767 & c) << 15) + r[i] + (1073741823 & s)) >>> 30) + (c >>> 15) + a * p + (s >>> 30), r[i++] = 1073741823 & n;

return s;
, T.prototype.am3 = function (t, e, r, i, s, o)
for (var _ = 16383 & e, a = e >> 14; 0 <= --o;) var n = 16383 & this[t], p = this[t++] >> 14,
c = a * n + p * _;
s = ((n = _ * n + ((16383 & c) << 14) + r[i] + s) >> 28) + (c >> 14) + a * p, r[i++] = 268435455 & n;

return s;
, T);

function T(t)
null !== t && this.fromHexString(t);

function b()
return new s(null);

function D(t)
var e,
r = 1;
return 0 != (e = t >>> 16) && (t = e, r += 16), 0 != (e = t >> 8) && (t = e, r += 8), 0 != (e = t >> 4) && (t = e, r += 4), 0 != (e = t >> 2) && (t = e, r += 2), 0 != (e = t >> 1) && (t = e, r += 1), r;

e.BigInteger = s, e.nbi = b, e.nbits = D;

for (var o = [], _ = “0”.charCodeAt(0), a = 0; a <= 9; ++a) o[_++] = a; for (_ = "a".charCodeAt(0), a = 10; a < 36; ++a) o[_++] = a; for (_ = "A".charCodeAt(0), a = 10; a < 36; ++a) o[_++] = a; function n(t, e) var r = o[t.charCodeAt(e)]; return null == r ? -1 : r; e.intAt = n; var p = "0123456789abcdefghijklmnopqrstuvwxyz"; function c(t) return p.charAt(t); e.int2char = c; e.b64toHex = function (t) for (var e = "", r = 0, i = 0, s = 0; s < t.length && "=" != t.charAt(s); ++s) o >> 4), e += c(15 & o), 0));

return 1 == r && (e += c(i << 2)), e; , e.removeExtraSymbols = function (t) return t.replace(/^1f+00/, "").replace("3031300d060960864801650304020105000420"https://slate.com/,""); ; var d = (u.prototype.convert = function (t) , u.prototype.revert = function (t) return t; , u.prototype.reduce = function (t) t.divRemTo(this.m, null, t); , u.prototype.mulTo = function (t, e, r) t.multiplyTo(e, r), this.reduce(r); , u.prototype.sqrTo = function (t, e) t.squareTo(e), this.reduce(e); , u); function u(t) this.m = t; var h = (l.prototype.convert = function (t) var e = b(); return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 && 0 < e.compareTo(s.ZERO) && this.m.subTo(e, e), e; , l.prototype.revert = function (t) var e = b(); return t.copyTo(e), this.reduce(e), e; , l.prototype.reduce = function (t) for (; t.t <= this.mt2;) t[t.t++] = 0; for (var e = 0; e < this.m.t; ++e) var r = 32767 & t[e], i = r * this.mpl + ((r * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM; for (t[r = e + this.m.t] += this.m.am(0, i, t, e, 0, this.m.t); t[r] >= t.DV;)
t[r] -= t.DV, t[++r]++;

t.clamp(), t.drShiftTo(this.m.t, t), 0 <= t.compareTo(this.m) && t.subTo(this.m, t); , l.prototype.mulTo = function (t, e, r) t.multiplyTo(e, r), this.reduce(r); , l.prototype.sqrTo = function (t, e) t.squareTo(e), this.reduce(e); , l); function l(t) this.m = t, this.mp = t.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, this.um = (1 << t.DB - 15) - 1, this.mt2 = 2 * t.t; function f(t) var e = b(); return e.fromHexString(t.toString()), e; e.nbv = f, s.ZERO = f(0), s.ONE = f(1), i = "Microsoft Internet Explorer" == navigator.appName ? (s.prototype.am = s.prototype.am2, 30) : "Netscape" != navigator.appName ? (s.prototype.am = s.prototype.am1, 26) : (s.prototype.am = s.prototype.am3, 28), s.prototype.DB = i, s.prototype.DM = (1 << i) - 1, s.prototype.DV = 1 << i; s.prototype.FV = Math.pow(2, 52), s.prototype.F1 = 52 - i, s.prototype.F2 = 2 * i - 52; }, 373: function _(t, e, r) "use strict"; Object.defineProperty(e, "__esModule", value: !0 ); var i = (y.hash = function (t) t = y.utf8Encode(t , y.utf8Encode = function (e) try return new TextEncoder().encode(e).reduce(function (t, e) return t + String.fromCharCode(e); , ""); catch (t) return unescape(encodeURIComponent(e)); , y.ROTR = function (t, e) e << 32 - t; , y.z0 = function (t) return y.ROTR(2, t) ^ y.ROTR(13, t) ^ y.ROTR(22, t); , y.z1 = function (t) return y.ROTR(6, t) ^ y.ROTR(11, t) ^ y.ROTR(25, t); , y.q0 = function (t) return y.ROTR(7, t) ^ y.ROTR(18, t) ^ t >>> 3;
, y.q1 = function (t)
return y.ROTR(17, t) ^ y.ROTR(19, t) ^ t >>> 10;
, y.Ch = function (t, e, r)
return t & e ^ ~t & r;
, y.Maj = function (t, e, r)
return t & e ^ t & r ^ e & r;
, y);

function y()

e.Sha256 = i;

}, [369]);
pbjsChunk([202], {
476: function _(e, r, i)
e.exports = i(477);
,
477: function _(e, r, i) {
“use strict”;

Object.defineProperty(r, “__esModule”,
value: !0
), i.d(r, “spec”, function ()
return p;
);
var T = i(0),
S = i(2),
v = i(3),
t = i(10),
l = i.n(t),
a = i(478),
n = i.n(a),
s = i(1);

function g(e)
return (g = “function” == typeof Symbol && “symbol” == _typeof(Symbol.iterator) ? function (e)
return _typeof(e);
: function (e)
return e && “function” == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? “symbol” : _typeof(e);
)(e);

var o = [S.b, S.d],
y = 100,
b = 300,
h = 3600,
w = !0,
x =
JPY: 1
;

function C(e)
var r = ;
return r.id = e.bidId, r.ext = , r.ext.siteID = e.params.siteId, !e.params.hasOwnProperty(“id”)

function d(e)
return Array.isArray(e) && 2 === e.length && n()(e[0]) && n()(e[1]);

function A(e, r)
if (d(e)) return e[0] === r[0] && e[1] === r[1];

for (var i = 0; i < e.length; i++) if (e[i][0] === r[0] && e[i][1] === r[1]) return 1; function j(e, r, i, t) function F(e, r) for (var i = 0; i < e.length; i++) if (r[0] == e[i][0] && r[1] == e[i][1]) return e.splice(i, 1), 1; var p = { code: "ix", gvlid: 10, supportedMediaTypes: o, isBidRequestValid: function isBidRequestValid(e) if (!d(e.params.size)) return T.logError("ix bidder params: bid size has invalid format."), !1; if (!A(e.sizes, e.params.size)) return T.logError("ix bidder params: bid size is not included in ad unit sizes."), !1; if (e.hasOwnProperty("mediaType") && !T.contains(o, e.mediaType)) return !1; if (e.hasOwnProperty("mediaTypes") && !T.deepAccess(e, "mediaTypes.banner.sizes") && !T.deepAccess(e, "mediaTypes.video.playerSize")) return !1; if ("string" != typeof e.params.siteId && "number" != typeof e.params.siteId) return T.logError("ix bidder params: siteId must be string or number value."), !1; var r, i, t = e.params.hasOwnProperty("bidFloor"), a = e.params.hasOwnProperty("bidFloorCur"); return !!(!t && !a , buildRequests: function buildRequests(e, r) for (var i, t, a, n, s, o, d, p, m, c, u, f, l, y = [], b = [], h = [], v = null, g = , w = 0; w < e.length; w++) A(v.mediaTypes.video.playerSize, v.params.size) ? h.push(function (e) var r = C(e); r.video = T.deepClone(e.params.video), r.video.w = e.params.size[0], r.video.h = e.params.size[1]; var i = T.deepAccess(e, "mediaTypes.video.context"); return i && ("instream" === i ? r.video.placement = 1 : "outstream" === i ? r.video.placement = 4 : T.logWarn("ix bidder params: video context '".concat(i, "' is not supported"))), r; (v)) : T.logError("Bid size is not included in video playerSize")), v.mediaType !== S.b && !T.deepAccess(v, "mediaTypes.banner") && (v.mediaType for (var x in g) if (g.hasOwnProperty(x)) for (var I = g[x].missingSizes, P = 0; P < I.length; P++) var z = g[x].impression, O = (u = z, f = I[P], l = void 0, (l = T.deepClone(u)).ext.sid = "".concat(f[0], "x").concat(f[1]), l.banner.w = f[0], l.banner.h = f[1], l); b.push(O); return 0 < b.length && y.push(j(e, r, b, 7.2)), 0 < h.length && y.push(j(e, r, h, 8.1)), y; , interpretResponse: function interpretResponse(e, r) , transformBidParams: function transformBidParams(e) return T.convertTypes( siteID: "number" , e); , getUserSyncs: function getUserSyncs(e) return e.iframeEnabled ? [ type: "iframe", url: "https://js-sec.indexww.com/um/ixmatch.html" ] : []; }; Object(s.registerBidder)(p); } }, [476]); pbjsChunk([198], { 490: function _(e, t, r) e.exports = r(491); , 491: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", value: !0 ), r.d(t, "spec", function () return l; ); var s = r(0), d = r(3), n = r(1), a = r(9); function g() return (g = Object.assign var o, i, c, u = Object(a.b)(), l = { code: "kargo", isBidRequestValid: function isBidRequestValid(e) return !(!e , buildRequests: function buildRequests(e, t) , interpretResponse: function interpretResponse(e, t) var r = e.body, n = []; for (var a in r) var o = r[a], i = void 0; o.metadata && o.metadata.landingPageDomain && (i = clickUrl: o.metadata.landingPageDomain, advertiserDomains: [o.metadata.landingPageDomain] ), n.push( requestId: a, cpm: Number(o.cpm), width: o.width, height: o.height, ad: o.adm, ttl: 300, creativeId: o.id, dealId: o.targetingCustom, netRevenue: !0, currency: t.currency, meta: i ); return n; , getUserSyncs: function getUserSyncs(e) var t = [], r = l._generateRandomUuid(), n = l._getClientId(); if (e.iframeEnabled && r && n) for (var a = 0; a < 5; a++) t.push( type: "iframe", url: "https://crb.kargo.com/api/v1/initsyncrnd/UUID?seed=SEED&idx=INDEX".replace("UUID", n).replace("SEED", r).replace("INDEX", a) ); return t; , _readCookie: function _readCookie(e) if (!u.cookiesAreEnabled()) return null; for (var t = "".concat(e, "="), r = document.cookie.split(";"), n = 0; n < r.length; n++) for (var a = r[n]; " " === a.charAt(0);) a = a.substring(1, a.length); if (0 === a.indexOf(t)) return a.substring(t.length, a.length); return null; , _getCrbFromCookie: function _getCrbFromCookie() try var e = JSON.parse(decodeURIComponent(l._readCookie("krg_crb"))); if (e && e.v) var t = JSON.parse(atob(e.v)); if (t) return t; return ; catch (e) return ; , _getCrbFromLocalStorage: function _getCrbFromLocalStorage() try return JSON.parse(atob(l._getLocalStorageSafely("krg_crb"))); catch (e) return ; , _getCrb: function _getCrb() var e = l._getCrbFromLocalStorage(); return Object.keys(e).length ? e : l._getCrbFromCookie(); , _getKruxUserId: function _getKruxUserId() return l._getLocalStorageSafely("kxkar_user"); , _getKruxSegments: function _getKruxSegments() return l._getLocalStorageSafely("kxkar_segs"); , _getKrux: function _getKrux() var e = l._getKruxSegments(), t = []; return e && (t = e.split(",")), userID: l._getKruxUserId(), segments: t ; , _getLocalStorageSafely: function _getLocalStorageSafely(e) try return u.getDataFromLocalStorage(e); catch (e) return null; , _getUserIds: function _getUserIds(e, t) var r = l._getCrb(), n = ; return e && (n.tdID = e), n; , _getClientId: function _getClientId() return l._getCrb().clientId; , _getAllMetadata: function _getAllMetadata(e, t) return userIDs: l._getUserIds(e, t), krux: l._getKrux(), pageURL: window.location.href, rawCRB: l._readCookie("krg_crb"), rawCRBLocalStorage: l._getLocalStorageSafely("krg_crb") ; , _getSessionId: function _getSessionId() l._generateRandomUuid(); , _getRequestCount: function _getRequestCount() return i === window.location.pathname ? ++c : (i = window.location.pathname, c = 0); , _generateRandomUuid: function _generateRandomUuid() try var e = new Uint8Array(16); crypto.getRandomValues(e), e[6] = -177 & e[6] catch (e) return ""; }; Object(n.registerBidder)(l); } }, [490]); pbjsChunk([120], { 684: function _(e, r, t) e.exports = t(685); , 685: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", value: !0 ), t.d(r, "FASTLANE_ENDPOINT", function () return a; ), t.d(r, "VIDEO_ENDPOINT", function () return v; ), t.d(r, "SYNC_ENDPOINT", function () return s; ), t.d(r, "spec", function () return k; ), r.hasVideoMediaType = l, r.masSizeOrdering = g, r.determineRubiconVideoSizeId = b, r.getPriceGranularity = y, r.hasValidVideoParams = x, r.hasValidSupplyChainParams = R, r.encodeParam = h, r.resetUserSync = function () z = !1; ; var _ = t(0), i = t(1), A = t(3), u = t(2), n = t(10), S = t.n(n); function I(e, r) function (e, r) (e, r) function o(e, r) (null == r function C() function m(e, r, t) return r in e ? Object.defineProperty(e, r, value: t, enumerable: !0, configurable: !0, writable: !0 ) : e[r] = t, e; function j(e) return (j = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) return _typeof(e); : function (e) return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); )(e); var a = "https://fastlane.rubiconproject.com/a/api/fastlane.json", v = "https://prebid-server.rubiconproject.com/openrtb2/auction", s = "https://eus.rubiconproject.com/usync.html", c = FASTLANE: id: "dt.id", keyv: "dt.keyv", pref: "dt.pref" , PREBID_SERVER: id: "id", keyv: "keyv" , p = 1: "468x60", 2: "728x90", 5: "120x90", 7: "125x125", 8: "120x600", 9: "160x600", 10: "300x600", 13: "200x200", 14: "250x250", 15: "300x250", 16: "336x280", 17: "240x400", 19: "300x100", 31: "980x120", 32: "250x360", 33: "180x500", 35: "980x150", 37: "468x400", 38: "930x180", 39: "750x100", 40: "750x200", 41: "750x300", 42: "2x4", 43: "320x50", 44: "300x50", 48: "300x300", 53: "1024x768", 54: "300x1050", 55: "970x90", 57: "970x250", 58: "1000x90", 59: "320x80", 60: "320x150", 61: "1000x1000", 64: "580x500", 65: "640x480", 66: "930x600", 67: "320x480", 68: "1800x1000", 72: "320x320", 73: "320x160", 78: "980x240", 79: "980x300", 80: "980x400", 83: "480x300", 85: "300x120", 90: "548x150", 94: "970x310", 95: "970x100", 96: "970x210", 101: "480x320", 102: "768x1024", 103: "480x280", 105: "250x800", 108: "320x240", 113: "1000x300", 117: "320x100", 125: "800x250", 126: "200x600", 144: "980x600", 145: "980x150", 152: "1000x250", 156: "640x320", 159: "320x250", 179: "250x600", 195: "600x300", 198: "640x360", 199: "640x200", 213: "1030x590", 214: "980x360", 221: "1x1", 229: "320x180", 230: "2000x1400", 232: "580x400", 234: "6x6", 251: "2x2", 256: "480x820", 257: "400x600", 258: "500x200", 259: "998x200", 264: "970x1000", 265: "1920x1080", 274: "1800x200", 278: "320x500", 282: "320x400", 288: "640x380" ; _._each(p, function (e, r) return p[e] = r; ); var k = { code: "rubicon", gvlid: 52, supportedMediaTypes: [u.b, u.d], isBidRequestValid: function isBidRequestValid(e) if ("object" !== j(e.params)) return !1; for (var r = 0, t = ["accountId"https://slate.com/,"siteId"https://slate.com/,"zoneId"]; r < t.length; r++) if (e.params[t[r]] = parseInt(e.params[t[r]]), isNaN(e.params[t[r]])) return _.logError("Rubicon: wrong format of accountId or siteId or zoneId."), !1; var i = f(e, !0); return !!i && ("video" !== i , buildRequests: function buildRequests(e, g) { var n, r = e.filter(function (e) return "video" === f(e); ).map(function (e) (d.config.fpd.user = p), _.deepSetValue(i, "ext.prebid.bidderconfig.0", d)); var l = _.deepAccess(e, "fpd.context.pbAdSlot"); "string" == typeof l && l && _.deepSetValue(i.imp[0].ext, "context.data.pbadslot", l); var f = _.deepAccess(e, "fpd.context.adServer.adSlot"); return "string" == typeof f && f && _.deepSetValue(i.imp[0].ext, "context.data.adslot", f), e.storedAuctionResponse && _.deepSetValue(i.imp[0], "ext.prebid.storedauctionresponse.id", e.storedAuctionResponse.toString()), _.deepSetValue(i.imp[0], "ext.prebid.auctiontimestamp", g.auctionStart), method: "POST", url: v, data: i, bidRequest: e ; ); return !0 !== A.b.getConfig("rubicon.singleRequest") ? r.concat(e.filter(function (e) return "banner" === f(e); ).map(function (e) var i = k.createSlotParams(e, g); return method: "GET", url: a, data: k.getOrderedParams(i).reduce(function (e, r) var t = i[r]; return _.isStr(t) && "" !== t , "") + "slots=1&rand=".concat(Math.random()), bidRequest: e ; )) : (n = e.filter(function (e) return "banner" === f(e); ).reduce(function (e, r) []).push(r), e; , ), r.concat(Object.keys(n).reduce(function (r, e) var t, i; return t = n[e], i = 10, t.map(function (e, r) return r % i == 0 ? t.slice(r, r + i) : null; ).filter(function (e) return e; ).forEach(function (e) var i = k.combineSlotUrlParams(e.map(function (e) return k.createSlotParams(e, g); )); r.push( method: "GET", url: a, data: k.getOrderedParams(i).reduce(function (e, r) _.isNumber(t) ? "".concat(e).concat(h(r, t), "&") : e; , "") + "slots=".concat(e.length, "&rand=").concat(Math.random()), bidRequest: e ); ), r; , []))); }, getOrderedParams: function getOrderedParams(e) var r = /^tg_v/, t = /^tg_i/, i = ["account_id"https://slate.com/,"site_id"https://slate.com/,"zone_id"https://slate.com/,"size_id"https://slate.com/,"alt_size_ids"https://slate.com/,"p_pos"https://slate.com/,"gdpr"https://slate.com/,"gdpr_consent"https://slate.com/,"us_privacy"https://slate.com/,"rp_schain"https://slate.com/,"tpid_tdid"https://slate.com/,"tpid_liveintent.com"https://slate.com/,"tg_v.LIseg"https://slate.com/,"dt.id"https://slate.com/,"dt.keyv"https://slate.com/,"dt.pref"https://slate.com/,"rf"https://slate.com/,"p_geo.latitude"https://slate.com/,"p_geo.longitude"https://slate.com/,"kw"].concat(Object.keys(e).filter(function (e) return r.test(e); )).concat(Object.keys(e).filter(function (e) return t.test(e); )).concat(["tk_flint"https://slate.com/,"x_source.tid"https://slate.com/,"x_source.pchain"https://slate.com/,"p_screen_res"https://slate.com/,"rp_floor"https://slate.com/,"rp_secure"https://slate.com/,"tk_user_key"]); return i.concat(Object.keys(e).filter(function (e) return -1 === i.indexOf(e); )); , combineSlotUrlParams: function combineSlotUrlParams(n) if (1 === n.length) return n[0]; var i = n.reduce(function (r, t, i) return Object.keys(t).forEach(function (e) ), r; , ), o = new RegExp("^([^;]*)(;1)+$"); return Object.keys(i).forEach(function (e) var r = i[e].join(";"), t = r.match(o); i[e] = t ? t[1] : r; ), i; , createSlotParams: function createSlotParams(e, r) , serializeSupplyChain: function serializeSupplyChain(e) if (!R(e)) return ""; var r = e.ver, t = e.complete, i = e.nodes; return "".concat(r, ",").concat(t, "!").concat(k.serializeSupplyChainNodes(i)); , serializeSupplyChainNodes: function serializeSupplyChainNodes(e) var t = ["asi"https://slate.com/,"sid"https://slate.com/,"hp"https://slate.com/,"rid"https://slate.com/,"name"https://slate.com/,"domain"]; return e.map(function (r) return t.map(function (e) ).join(","); ).join("!"); , interpretResponse: function interpretResponse(c, e) "object" !== j(c)) return []; if (c.seatbid) var r = _.deepAccess(c, "ext.errors.rubicon"); Array.isArray(r) && 0 < r.length && _.logWarn("Rubicon: Error in video response"); var o = []; return c.seatbid.forEach(function (n) []).forEach(function (e) var r = _.deepAccess(d, "params.video.playerHeight") ; e.id && (r.seatBidId = e.id), e.dealid && (r.dealId = e.dealid); var t, i = _.deepAccess(c, "ext.responsetimemillis.rubicon"); d && i && (d.serverResponseTimeMs = i), _.deepAccess(e, "ext.prebid.type") === u.d ? (r.mediaType = u.d, (t = _.deepAccess(e, "ext.prebid.targeting")) && "object" === j(t) && (r.adserverTargeting = t), e.ext.prebid.cache && "object" === j(e.ext.prebid.cache.vastXml) && e.ext.prebid.cache.vastXml.cacheId && e.ext.prebid.cache.vastXml.url ? (r.videoCacheKey = e.ext.prebid.cache.vastXml.cacheId, r.vastUrl = e.ext.prebid.cache.vastXml.url) : t && t.hb_uuid && t.hb_cache_host && t.hb_cache_path && (r.videoCacheKey = t.hb_uuid, r.vastUrl = "https://".concat(t.hb_cache_host).concat(t.hb_cache_path, "?uuid=").concat(t.hb_uuid)), e.adm && (r.vastXml = e.adm), e.nurl && (r.vastUrl = e.nurl), !r.vastUrl && e.nurl && (r.vastUrl = e.nurl)) : _.logWarn("Rubicon: video response received non-video media type"), o.push(r); ); ), o; var t = c.ads; return "object" !== j(d) , getUserSyncs: function getUserSyncs(e, r, t, i) if (!z && e.iframeEnabled) var n = ""; return t && "string" == typeof t.consentString && ("boolean" == typeof t.gdprApplies ? n += "?gdpr=".concat(Number(t.gdprApplies), "&gdpr_consent=").concat(t.consentString) : n += "?gdpr_consent=".concat(t.consentString)), i && (n += "".concat(n ? "&" : "?"https://slate.com/,"us_privacy=").concat(encodeURIComponent(i))), z = !0, type: "iframe", url: s + n ; , transformBidParams: function transformBidParams(e) return _.convertTypes( accountId: "number", siteId: "number", zoneId: "number" , e); }; function E(e, r) function T(e, r) function w(e, r) var t = e.params; if ("video" === r) var i = []; return t.video && t.video.playerWidth && t.video.playerHeight ? i = [t.video.playerWidth, t.video.playerHeight] : Array.isArray(_.deepAccess(e, "mediaTypes.video.playerSize")) && 1 === e.mediaTypes.video.playerSize.length ? i = e.mediaTypes.video.playerSize[0] : Array.isArray(e.sizes) && 0 < e.sizes.length && Array.isArray(e.sizes[0]) && 1 < e.sizes[0].length && (i = e.sizes[0]), i; var n = []; return Array.isArray(t.sizes) ? n = t.sizes : void 0 !== _.deepAccess(e, "mediaTypes.banner.sizes") ? n = d(e.mediaTypes.banner.sizes) : Array.isArray(e.sizes) && 0 < e.sizes.length ? n = d(e.sizes) : _.logWarn("Rubicon: no sizes are setup or found"), g(n); function d(e) return _.parseSizesInput(e).reduce(function (e, r) var t = parseInt(p[r], 10); return t && e.push(t), e; , []); function l(e) return "object" === j(_.deepAccess(e, "params.video")) && void 0 !== _.deepAccess(e, "mediaTypes.".concat(u.d)); function f(e, r) var t = 1 < arguments.length && void 0 !== r && r; return l(e) ? -1 === ["outstream"https://slate.com/,"instream"].indexOf(_.deepAccess(e, "mediaTypes.".concat(u.d, ".context"))) ? void (t && _.logError("Rubicon: mediaTypes.video.context must be outstream or instream")) : w(e, "video").length < 2 ? void (t && _.logError("Rubicon: could not determine the playerSize of the video")) : (t && _.logMessage("Rubicon: making video request for adUnit", e.adUnitCode), "video") : 0 === w(e, "banner").length ? void (t && _.logError("Rubicon: could not determine the sizes for banner request")) : (t && _.logMessage("Rubicon: making banner request for adUnit", e.adUnitCode), "banner"); function g(e) var n = [15, 2, 9]; return e.sort(function (e, r) var t = n.indexOf(e), i = n.indexOf(r); return -1 < t ); function b(e) var r = parseInt(_.deepAccess(e, "params.video.size_id")); return isNaN(r) ? "outstream" === _.deepAccess(e, "mediaTypes.".concat(u.d, ".context")) ? 203 : 201 : r; function y(e) return ranges: low: [ max: 5, increment: .5 ], medium: [ max: 20, increment: .1 ], high: [ max: 20, increment: .01 ], auto: [ max: 5, increment: .05 , min: 5, max: 10, increment: .1 , min: 10, max: 20, increment: .5 ], dense: [ max: 3, increment: .01 , min: 3, max: 8, increment: .05 , min: 8, max: 20, increment: .5 ], custom: e.getConfig("customPriceBucket") && e.getConfig("customPriceBucket").buckets [e.getConfig("priceGranularity")] ; function x(r) var t = !0, e = Object.prototype.toString.call([]), i = Object.prototype.toString.call(0), n = mimes: e, protocols: e, maxduration: i, linearity: i, api: e ; return Object.keys(n).forEach(function (e) Object.prototype.toString.call(_.deepAccess(r, "mediaTypes.video." + e)) !== n[e] && (t = !1, _.logError("Rubicon: mediaTypes.video." + e + " is required and must be of type: " + n[e])); ), t; function R(e) var r = !1, t = ["asi"https://slate.com/,"sid"https://slate.com/,"hp"]; return e.nodes && ((r = e.nodes.reduce(function (e, r) return e ? t.every(function (e) return r.hasOwnProperty(e); ) : e; , !0)) function h(e, r) return "rp_schain" === e ? "rp_schain=".concat(r) : "".concat(e, "=").concat(encodeURIComponent(r)); var z = !1; Object(i.registerBidder)(k); } }, [684]); pbjsChunk([100], { 734: function _(e, t, r) e.exports = r(735); , 735: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", value: !0 ), r.d(t, "spec", function () return a; ), r.d(t, "_isInbounds", function () return m; ), t._getPlatform = v; var n = r(1), y = r(0), i = r(2), o = r(3), g = r(11), c = r(44); function h(e, t) function (e, t) "Set" === r) return Array.from(e); if ("Arguments" === r (e, t) function s(e, t) function d() function (e) for (var t = 1; t < arguments.length; t++) var r = arguments[t]; for (var n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]); return e; ).apply(this, arguments); function u(e, t, r) return t in e ? Object.defineProperty(e, t, value: r, enumerable: !0, configurable: !0, writable: !0 ) : e[t] = r, e; var p = "sonobi", b = Object(y.generateUUID)(), a = { code: p, supportedMediaTypes: [i.b, i.d], isBidRequestValid: function isBidRequestValid(e) if (!e.params) return !1; if (!e.params.ad_unit && !e.params.placement_id) return !1; if (!Object(y.deepAccess)(e, "mediaTypes.banner") && !Object(y.deepAccess)(e, "mediaTypes.video")) return !1; if (Object(y.deepAccess)(e, "mediaTypes.banner")) if (!Object(y.deepAccess)(e, "mediaTypes.banner.sizes") && !e.params.sizes) return !1; else if (Object(y.deepAccess)(e, "mediaTypes.video")) if ("outstream" === Object(y.deepAccess)(e, "mediaTypes.video.context") && !e.params.sizes) return !1; if ("instream" === Object(y.deepAccess)(e, "mediaTypes.video.context") && !Object(y.deepAccess)(e, "mediaTypes.video.playerSize")) return !1; return !0; , buildRequests: function buildRequests(e, t) var r = e.map(function (e) var t = function (e) if (e.params.ad_unit) return e.params.ad_unit; return e.params.placement_id; (e); return /^[/]?[d]+[[/].+[/]?]?$/.test(t) ? (t = "/" === t.charAt(0) ? t : "/" + t, u(, "".concat(t, "), n = ; r.forEach(function (e) d(n, e); ); var i = key_maker: JSON.stringify(n), ref: t.refererInfo.referer, s: Object(y.generateUUID)(), pv: b, vp: v(), lib_name: "prebid", lib_v: "4.7.0", us: 0 ; o.b.getConfig("userSync") && o.b.getConfig("userSync").syncsPerBidder && (i.us = o.b.getConfig("userSync").syncsPerBidder), c.a.canBidderRegisterSync("iframe", p) ? i.ius = 1 : i.ius = 0, Object(y.deepAccess)(e[0], "params.hfa") && (i.hfa = Object(y.deepAccess)(e[0], "params.hfa")), e[0].params.referrer && (i.ref = e[0].params.referrer), t && t.gdprConsent && (i.gdpr = t.gdprConsent.gdprApplies ? "true" : "false", t.gdprConsent.consentString && (i.consent_string = t.gdprConsent.consentString)), e[0].schain && (i.schain = JSON.stringify(e[0].schain)), Object(y.deepAccess)(e[0], "userId") && 0 < Object.keys(e[0].userId).length && (i.userid = JSON.stringify(e[0].userId)); var s = e[0].params.keywords; if (s && (i.kw = s), t && t.uspConsent && (i.us_privacy = t.uspConsent), Object(y.isEmpty)(n)) return null; var a = "https://apex.go.sonobi.com/trinity.json"; return Object(y.deepAccess)(e[0], "params.bid_request_url") && (a = Object(y.deepAccess)(e[0], "params.bid_request_url")), method: "GET", url: a, withCredentials: !0, data: i, bidderRequests: e ; , interpretResponse: function interpretResponse(e, l) Object.keys(f.slots).forEach(function (e) var t = f.slots[e], r = e.split("), m; , getUserSyncs: function getUserSyncs(e, t) var r = []; try e.pixelEnabled && t[0].body.sbi_px.forEach(function (e) r.push( type: e.type, url: e.url ); ); catch (e) return r; }; function l(e) return Object(y.deepAccess)(e, "mediaTypes.video") ? "" : e.params.sizes ? Object(y.parseSizesInput)(e.params.sizes).join(",") : Object(y.deepAccess)(e, "mediaTypes.banner.sizes") ? Object(y.parseSizesInput)(Object(y.deepAccess)(e, "mediaTypes.banner.sizes")).join(",") : e.sizes ? Object(y.parseSizesInput)(e.sizes).join(",") : void 0; function f(e) f=".concat(e.params.floor) : ""; var j = function j(i, s) return function (e, t) "outstream" === i ? (r = t, n = s, "https://".concat(e, "apex.go.sonobi.com/vast.xml?vid=").concat(r, "&ref=").concat(encodeURIComponent(n))) : ''; var r, n; ; ; var m = function m(e) var r = 0 < arguments.length && void 0 !== e ? e : window; return function () var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0, t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : Number.MAX_SAFE_INTEGER; return r.innerWidth >= e && r.innerWidth < t; ; ; function v() var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : window, t = m(e), r = 992, n = 768; return t(0, 768) ? "mobile" : t(n, r) ? "tablet" : "desktop"; function O(i) i.renderer.push(function () var e = h(i.getSize().split("x"), 2), t = e[0], r = e[1], n = new window.SbiOutstreamRenderer(); n.init( vastUrl: i.vastUrl, height: r, width: t ), n.setRootElement(i.adUnitCode); ); Object(n.registerBidder)(a); } }, [734]); pbjsChunk([97], { 744: function _(e, t, r) e.exports = r(745); , 745: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", value: !0 ), r.d(t, "GOOGLE_CONSENT", function () return P; ), r.d(t, "spec", function () return n; ); var I = r(0), u = r(11), a = r(1), c = r(2); function d(e) return (d = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) return _typeof(e); : function (e) return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); )(e); var i = "spotx", P = consented_providers: ["3"https://slate.com/,"7"https://slate.com/,"11"https://slate.com/,"12"https://slate.com/,"15"https://slate.com/,"20"https://slate.com/,"22"https://slate.com/,"35"https://slate.com/,"43"https://slate.com/,"46"https://slate.com/,"48"https://slate.com/,"55"https://slate.com/,"57"https://slate.com/,"61"https://slate.com/,"62"https://slate.com/,"66"https://slate.com/,"70"https://slate.com/,"80"https://slate.com/,"83"https://slate.com/,"85"https://slate.com/,"86"https://slate.com/,"89"https://slate.com/,"93"https://slate.com/,"108"https://slate.com/,"122"https://slate.com/,"124"https://slate.com/,"125"https://slate.com/,"126"https://slate.com/,"131"https://slate.com/,"134"https://slate.com/,"135"https://slate.com/,"136"https://slate.com/,"143"https://slate.com/,"144"https://slate.com/,"147"https://slate.com/,"149"https://slate.com/,"153"https://slate.com/,"154"https://slate.com/,"159"https://slate.com/,"161"https://slate.com/,"162"https://slate.com/,"165"https://slate.com/,"167"https://slate.com/,"171"https://slate.com/,"178"https://slate.com/,"184"https://slate.com/,"188"https://slate.com/,"192"https://slate.com/,"195"https://slate.com/,"196"https://slate.com/,"202"https://slate.com/,"209"https://slate.com/,"211"https://slate.com/,"218"https://slate.com/,"221"https://slate.com/,"228"https://slate.com/,"229"https://slate.com/,"230"https://slate.com/,"236"https://slate.com/,"239"https://slate.com/,"241"https://slate.com/,"253"https://slate.com/,"255"https://slate.com/,"259"https://slate.com/,"266"https://slate.com/,"271"https://slate.com/,"272"https://slate.com/,"274"https://slate.com/,"286"https://slate.com/,"291"https://slate.com/,"294"https://slate.com/,"303"https://slate.com/,"308"https://slate.com/,"310"https://slate.com/,"311"https://slate.com/,"313"https://slate.com/,"314"https://slate.com/,"316"https://slate.com/,"317"https://slate.com/,"322"https://slate.com/,"323"https://slate.com/,"327"https://slate.com/,"336"https://slate.com/,"338"https://slate.com/,"340"https://slate.com/,"348"https://slate.com/,"350"https://slate.com/,"358"https://slate.com/,"359"https://slate.com/,"363"https://slate.com/,"367"https://slate.com/,"370"https://slate.com/,"371"https://slate.com/,"384"https://slate.com/,"385"https://slate.com/,"389"https://slate.com/,"393"https://slate.com/,"394"https://slate.com/,"397"https://slate.com/,"398"https://slate.com/,"407"https://slate.com/,"414"https://slate.com/,"415"https://slate.com/,"424"https://slate.com/,"429"https://slate.com/,"430"https://slate.com/,"432"https://slate.com/,"436"https://slate.com/,"438"https://slate.com/,"440"https://slate.com/,"442"https://slate.com/,"443"https://slate.com/,"445"https://slate.com/,"448"https://slate.com/,"449"https://slate.com/,"453"https://slate.com/,"459"https://slate.com/,"479"https://slate.com/,"482"https://slate.com/,"486"https://slate.com/,"491"https://slate.com/,"492"https://slate.com/,"494"https://slate.com/,"495"https://slate.com/,"503"https://slate.com/,"505"https://slate.com/,"510"https://slate.com/,"522"https://slate.com/,"523"https://slate.com/,"528"https://slate.com/,"537"https://slate.com/,"540"https://slate.com/,"550"https://slate.com/,"559"https://slate.com/,"560"https://slate.com/,"568"https://slate.com/,"571"https://slate.com/,"574"https://slate.com/,"575"https://slate.com/,"576"https://slate.com/,"584"https://slate.com/,"585"https://slate.com/,"587"https://slate.com/,"588"https://slate.com/,"590"https://slate.com/,"591"https://slate.com/,"592"https://slate.com/,"595"https://slate.com/,"609"https://slate.com/,"621"https://slate.com/,"624"https://slate.com/,"723"https://slate.com/,"725"https://slate.com/,"733"https://slate.com/,"737"https://slate.com/,"776"https://slate.com/,"780"https://slate.com/,"782"https://slate.com/,"787"https://slate.com/,"797"https://slate.com/,"798"https://slate.com/,"802"https://slate.com/,"803"https://slate.com/,"814"https://slate.com/,"817"https://slate.com/,"820"https://slate.com/,"821"https://slate.com/,"827"https://slate.com/,"829"https://slate.com/,"839"https://slate.com/,"853"https://slate.com/,"864"https://slate.com/,"867"https://slate.com/,"874"https://slate.com/,"899"https://slate.com/,"904"https://slate.com/,"922"https://slate.com/,"926"https://slate.com/,"931"https://slate.com/,"932"https://slate.com/,"933"https://slate.com/,"938"https://slate.com/,"955"https://slate.com/,"973"https://slate.com/,"976"https://slate.com/,"979"https://slate.com/,"981"https://slate.com/,"985"https://slate.com/,"987"https://slate.com/,"991"https://slate.com/,"1003"https://slate.com/,"1024"https://slate.com/,"1025"https://slate.com/,"1027"https://slate.com/,"1028"https://slate.com/,"1029"https://slate.com/,"1033"https://slate.com/,"1034"https://slate.com/,"1040"https://slate.com/,"1047"https://slate.com/,"1048"https://slate.com/,"1051"https://slate.com/,"1052"https://slate.com/,"1053"https://slate.com/,"1054"https://slate.com/,"1062"https://slate.com/,"1063"https://slate.com/,"1067"https://slate.com/,"1072"https://slate.com/,"1085"https://slate.com/,"1092"https://slate.com/,"1095"https://slate.com/,"1097"https://slate.com/,"1099"https://slate.com/,"1100"https://slate.com/,"1107"https://slate.com/,"1126"https://slate.com/,"1127"https://slate.com/,"1143"https://slate.com/,"1149"https://slate.com/,"1152"https://slate.com/,"1162"https://slate.com/,"1166"https://slate.com/,"1167"https://slate.com/,"1170"https://slate.com/,"1171"https://slate.com/,"1172"https://slate.com/,"1188"https://slate.com/,"1192"https://slate.com/,"1199"https://slate.com/,"1201"https://slate.com/,"1204"https://slate.com/,"1205"https://slate.com/,"1211"https://slate.com/,"1212"https://slate.com/,"1215"https://slate.com/,"1220"https://slate.com/,"1225"https://slate.com/,"1226"https://slate.com/,"1227"https://slate.com/,"1230"https://slate.com/,"1232"https://slate.com/,"1236"https://slate.com/,"1241"https://slate.com/,"1248"https://slate.com/,"1250"https://slate.com/,"1252"https://slate.com/,"1268"https://slate.com/,"1275"https://slate.com/,"1276"https://slate.com/,"1284"https://slate.com/,"1286"https://slate.com/,"1298"https://slate.com/,"1301"https://slate.com/,"1307"https://slate.com/,"1312"https://slate.com/,"1313"https://slate.com/,"1317"https://slate.com/,"1329"https://slate.com/,"1336"https://slate.com/,"1344"https://slate.com/,"1345"https://slate.com/,"1356"https://slate.com/,"1362"https://slate.com/,"1365"https://slate.com/,"1375"https://slate.com/,"1403"https://slate.com/,"1409"https://slate.com/,"1411"https://slate.com/,"1415"https://slate.com/,"1416"https://slate.com/,"1419"https://slate.com/,"1423"https://slate.com/,"1440"https://slate.com/,"1442"https://slate.com/,"1449"https://slate.com/,"1451"https://slate.com/,"1455"https://slate.com/,"1456"https://slate.com/,"1468"https://slate.com/,"1496"https://slate.com/,"1503"https://slate.com/,"1509"https://slate.com/,"1512"https://slate.com/,"1514"https://slate.com/,"1517"https://slate.com/,"1520"https://slate.com/,"1525"https://slate.com/,"1540"https://slate.com/,"1547"https://slate.com/,"1548"https://slate.com/,"1555"https://slate.com/,"1558"https://slate.com/,"1570"https://slate.com/,"1575"https://slate.com/,"1577"https://slate.com/,"1579"https://slate.com/,"1583"https://slate.com/,"1584"https://slate.com/,"1591"https://slate.com/,"1598"https://slate.com/,"1603"https://slate.com/,"1608"https://slate.com/,"1613"https://slate.com/,"1616"https://slate.com/,"1626"https://slate.com/,"1631"https://slate.com/,"1633"https://slate.com/,"1638"https://slate.com/,"1642"https://slate.com/,"1648"https://slate.com/,"1651"https://slate.com/,"1652"https://slate.com/,"1653"https://slate.com/,"1660"https://slate.com/,"1665"https://slate.com/,"1667"https://slate.com/,"1669"https://slate.com/,"1671"https://slate.com/,"1674"https://slate.com/,"1677"https://slate.com/,"1678"https://slate.com/,"1682"https://slate.com/,"1684"https://slate.com/,"1697"https://slate.com/,"1703"https://slate.com/,"1705"https://slate.com/,"1716"https://slate.com/,"1720"https://slate.com/,"1721"https://slate.com/,"1722"https://slate.com/,"1725"https://slate.com/,"1732"https://slate.com/,"1733"https://slate.com/,"1735"https://slate.com/,"1739"https://slate.com/,"1741"https://slate.com/,"1745"https://slate.com/,"1750"https://slate.com/,"1753"https://slate.com/,"1760"https://slate.com/,"1765"https://slate.com/,"1769"https://slate.com/,"1776"https://slate.com/,"1780"https://slate.com/,"1782"https://slate.com/,"1786"https://slate.com/,"1791"https://slate.com/,"1794"https://slate.com/,"1799"https://slate.com/,"1800"https://slate.com/,"1801"https://slate.com/,"1810"https://slate.com/,"1827"https://slate.com/,"1831"https://slate.com/,"1832"https://slate.com/,"1834"https://slate.com/,"1837"https://slate.com/,"1840"https://slate.com/,"1843"https://slate.com/,"1844"https://slate.com/,"1845"https://slate.com/,"1858"https://slate.com/,"1859"https://slate.com/,"1863"https://slate.com/,"1866"https://slate.com/,"1870"https://slate.com/,"1872"https://slate.com/,"1875"https://slate.com/,"1878"https://slate.com/,"1880"https://slate.com/,"1882"https://slate.com/,"1883"https://slate.com/,"1889"https://slate.com/,"1892"https://slate.com/,"1896"https://slate.com/,"1898"https://slate.com/,"1899"https://slate.com/,"1902"https://slate.com/,"1905"https://slate.com/,"1911"https://slate.com/,"1922"https://slate.com/,"1928"https://slate.com/,"1929"https://slate.com/,"1934"https://slate.com/,"1942"https://slate.com/,"1943"https://slate.com/,"1944"https://slate.com/,"1945"https://slate.com/,"1958"https://slate.com/,"1960"https://slate.com/,"1962"https://slate.com/,"1963"https://slate.com/,"1964"https://slate.com/,"1967"https://slate.com/,"1968"https://slate.com/,"1978"https://slate.com/,"1985"https://slate.com/,"1986"https://slate.com/,"1987"https://slate.com/,"1998"https://slate.com/,"2003"https://slate.com/,"2007"https://slate.com/,"2012"https://slate.com/,"2013"https://slate.com/,"2027"https://slate.com/,"2035"https://slate.com/,"2038"https://slate.com/,"2039"https://slate.com/,"2044"https://slate.com/,"2047"https://slate.com/,"2052"https://slate.com/,"2056"https://slate.com/,"2059"https://slate.com/,"2062"https://slate.com/,"2064"https://slate.com/,"2068"https://slate.com/,"2070"https://slate.com/,"2072"https://slate.com/,"2078"https://slate.com/,"2079"https://slate.com/,"2084"https://slate.com/,"2088"https://slate.com/,"2090"https://slate.com/,"2095"https://slate.com/,"2100"https://slate.com/,"2103"https://slate.com/,"2107"https://slate.com/,"2109"https://slate.com/,"2113"https://slate.com/,"2115"https://slate.com/,"2121"https://slate.com/,"2127"https://slate.com/,"2130"https://slate.com/,"2133"https://slate.com/,"2137"https://slate.com/,"2140"https://slate.com/,"2141"https://slate.com/,"2145"https://slate.com/,"2147"https://slate.com/,"2150"https://slate.com/,"2156"https://slate.com/,"2166"https://slate.com/,"2170"https://slate.com/,"2171"https://slate.com/,"2176"https://slate.com/,"2177"https://slate.com/,"2179"https://slate.com/,"2183"https://slate.com/,"2186"https://slate.com/,"2192"https://slate.com/,"2198"https://slate.com/,"2202"https://slate.com/,"2205"https://slate.com/,"2214"https://slate.com/,"2216"https://slate.com/,"2219"https://slate.com/,"2220"https://slate.com/,"2222"https://slate.com/,"2223"https://slate.com/,"2224"https://slate.com/,"2225"https://slate.com/,"2227"https://slate.com/,"2228"https://slate.com/,"2234"https://slate.com/,"2238"https://slate.com/,"2247"https://slate.com/,"2251"https://slate.com/,"2253"https://slate.com/,"2262"https://slate.com/,"2264"https://slate.com/,"2271"https://slate.com/,"2276"https://slate.com/,"2278"https://slate.com/,"2279"https://slate.com/,"2282"https://slate.com/,"2290"https://slate.com/,"2292"https://slate.com/,"2295"https://slate.com/,"2299"https://slate.com/,"2305"https://slate.com/,"2306"https://slate.com/,"2310"https://slate.com/,"2311"https://slate.com/,"2312"https://slate.com/,"2315"https://slate.com/,"2320"https://slate.com/,"2325"https://slate.com/,"2328"https://slate.com/,"2331"https://slate.com/,"2334"https://slate.com/,"2335"https://slate.com/,"2336"https://slate.com/,"2337"https://slate.com/,"2343"https://slate.com/,"2346"https://slate.com/,"2354"https://slate.com/,"2357"https://slate.com/,"2358"https://slate.com/,"2359"https://slate.com/,"2366"https://slate.com/,"2370"https://slate.com/,"2373"https://slate.com/,"2376"https://slate.com/,"2377"https://slate.com/,"2380"https://slate.com/,"2382"https://slate.com/,"2387"https://slate.com/,"2389"https://slate.com/,"2392"https://slate.com/,"2394"https://slate.com/,"2400"https://slate.com/,"2403"https://slate.com/,"2405"https://slate.com/,"2406"https://slate.com/,"2407"https://slate.com/,"2410"https://slate.com/,"2411"https://slate.com/,"2413"https://slate.com/,"2414"https://slate.com/,"2415"https://slate.com/,"2416"https://slate.com/,"2418"https://slate.com/,"2422"https://slate.com/,"2425"https://slate.com/,"2427"https://slate.com/,"2435"https://slate.com/,"2437"https://slate.com/,"2440"https://slate.com/,"2441"https://slate.com/,"2447"https://slate.com/,"2453"https://slate.com/,"2459"https://slate.com/,"2461"https://slate.com/,"2462"https://slate.com/,"2464"https://slate.com/,"2467"https://slate.com/,"2468"https://slate.com/,"2472"https://slate.com/,"2477"https://slate.com/,"2481"https://slate.com/,"2484"https://slate.com/,"2486"https://slate.com/,"2492"https://slate.com/,"2493"https://slate.com/,"2496"https://slate.com/,"2497"https://slate.com/,"2498"https://slate.com/,"2499"https://slate.com/,"2504"https://slate.com/,"2506"https://slate.com/,"2510"https://slate.com/,"2511"https://slate.com/,"2512"https://slate.com/,"2517"https://slate.com/,"2526"https://slate.com/,"2527"https://slate.com/,"2531"https://slate.com/,"2532"https://slate.com/,"2534"https://slate.com/,"2542"https://slate.com/,"2544"https://slate.com/,"2552"https://slate.com/,"2555"https://slate.com/,"2559"https://slate.com/,"2563"https://slate.com/,"2564"https://slate.com/,"2567"https://slate.com/,"2568"https://slate.com/,"2569"https://slate.com/,"2571"https://slate.com/,"2572"https://slate.com/,"2573"https://slate.com/,"2575"https://slate.com/,"2577"https://slate.com/,"2579"https://slate.com/,"2583"https://slate.com/,"2584"https://slate.com/,"2586"https://slate.com/,"2589"https://slate.com/,"2595"https://slate.com/,"2596"https://slate.com/,"2597"https://slate.com/,"2601"https://slate.com/,"2604"https://slate.com/,"2605"https://slate.com/,"2609"https://slate.com/,"2610"https://slate.com/,"2612"https://slate.com/,"2614"https://slate.com/,"2621"https://slate.com/,"2622"https://slate.com/,"2624"https://slate.com/,"2628"https://slate.com/,"2629"https://slate.com/,"2632"https://slate.com/,"2634"https://slate.com/,"2636"https://slate.com/,"2639"https://slate.com/,"2643"https://slate.com/,"2645"https://slate.com/,"2646"https://slate.com/,"2647"https://slate.com/,"2649"https://slate.com/,"2650"https://slate.com/,"2651"https://slate.com/,"2652"https://slate.com/,"2656"https://slate.com/,"2657"https://slate.com/,"2658"https://slate.com/,"2660"https://slate.com/,"2661"https://slate.com/,"2662"https://slate.com/,"2663"https://slate.com/,"2664"https://slate.com/,"2669"https://slate.com/,"2670"https://slate.com/,"2673"https://slate.com/,"2676"https://slate.com/,"2677"https://slate.com/,"2678"https://slate.com/,"2681"https://slate.com/,"2682"https://slate.com/,"2684"https://slate.com/,"2685"https://slate.com/,"2686"https://slate.com/,"2689"https://slate.com/,"2690"https://slate.com/,"2691"https://slate.com/,"2695"https://slate.com/,"2698"https://slate.com/,"2699"https://slate.com/,"2702"https://slate.com/,"2704"https://slate.com/,"2705"https://slate.com/,"2706"https://slate.com/,"2707"https://slate.com/,"2709"https://slate.com/,"2710"https://slate.com/,"2713"https://slate.com/,"2714"https://slate.com/,"2727"https://slate.com/,"2729"https://slate.com/,"2739"https://slate.com/,"2758"https://slate.com/,"2765"https://slate.com/,"2766"https://slate.com/,"2767"https://slate.com/,"2768"https://slate.com/,"2770"https://slate.com/,"2771"https://slate.com/,"2772"https://slate.com/,"2776"https://slate.com/,"2777"https://slate.com/,"2778"https://slate.com/,"2779"https://slate.com/,"2780"https://slate.com/,"2783"https://slate.com/,"2784"https://slate.com/,"2786"https://slate.com/,"2787"https://slate.com/,"2791"https://slate.com/,"2792"https://slate.com/,"2793"https://slate.com/,"2797"https://slate.com/,"2798"https://slate.com/,"2801"https://slate.com/,"2802"https://slate.com/,"2803"https://slate.com/,"2805"https://slate.com/,"2808"https://slate.com/,"2809"https://slate.com/,"2810"https://slate.com/,"2811"https://slate.com/,"2812"https://slate.com/,"2813"https://slate.com/,"2814"https://slate.com/,"2817"https://slate.com/,"2818"https://slate.com/,"2824"https://slate.com/,"2826"https://slate.com/,"2827"https://slate.com/,"2829"https://slate.com/,"2830"https://slate.com/,"2831"https://slate.com/,"2832"https://slate.com/,"2834"https://slate.com/,"2836"https://slate.com/,"2838"https://slate.com/,"2840"https://slate.com/,"2842"https://slate.com/,"2843"https://slate.com/,"2844"https://slate.com/,"2850"https://slate.com/,"2851"https://slate.com/,"2852"https://slate.com/,"2854"https://slate.com/,"2858"https://slate.com/,"2860"https://slate.com/,"2862"https://slate.com/,"2864"https://slate.com/,"2865"https://slate.com/,"2866"https://slate.com/,"2867"https://slate.com/,"2868"https://slate.com/,"2869"https://slate.com/,"2871"] , n = { code: i, gvlid: 165, aliases: ["spotx"], supportedMediaTypes: [c.d], isBidRequestValid: function isBidRequestValid(e) , buildRequests: function buildRequests(e, h) { var y = h.refererInfo.referer, b = !!y.match(/^https:/); return e.map(function (e) { var t = I.getBidIdParameter("channel_id", e.params), r = null, a = I.deepAccess(e, "mediaTypes.video.playerSize"), d = a[0][0], i = a[0][1], n = b || (I.getBidIdParameter("secure", e.params) ? 1 : 0), o = sdk_name: "Prebid 1+", versionOrtb: "2.3" ; if ("" != I.getBidIdParameter("hide_skin", e.params) && (o.hide_skin = +!!I.getBidIdParameter("hide_skin", e.params)), "" != I.getBidIdParameter("ad_volume", e.params) && (o.ad_volume = I.getBidIdParameter("ad_volume", e.params)), "" != I.getBidIdParameter("ad_unit", e.params) && (o.ad_unit = I.getBidIdParameter("ad_unit", e.params)), "" != I.getBidIdParameter("outstream_options", e.params) && (o.outstream_options = I.getBidIdParameter("outstream_options", e.params)), "" != I.getBidIdParameter("outstream_function", e.params) && (o.outstream_function = I.getBidIdParameter("outstream_function", e.params)), "" != I.getBidIdParameter("custom", e.params) && (o.custom = I.getBidIdParameter("custom", e.params)), "" != I.getBidIdParameter("pre_market_bids", e.params) && I.isArray(I.getBidIdParameter("pre_market_bids", e.params))) { var s = I.getBidIdParameter("pre_market_bids", e.params); for (var p in (o.pre_market_bids = [], s)) var m = s[p], u = ""; m.vast_url ? u = '‘ + m.vast_url + “” : m.vast_string && (u = m.vast_string), o.pre_market_bids.push(
id: m.deal_id,
seatbid: [
bid: [
impid: Date.now(),
dealid: m.deal_id,
price: m.price,
adm: u
] ],
cur: m.currency,
ext:
event_log: []

);

}

var c = I.getBidIdParameter(“mimes”, e.params) || [“application/javascript”https://slate.com/,”video/mp4″https://slate.com/,”video/webm”],
g =
id: e.bidId,
secure: n,
video:
w: d,
h: i,
ext: o,
mimes: c

;
“” != I.getBidIdParameter(“price_floor”, e.params) && (g.bidfloor = I.getBidIdParameter(“price_floor”, e.params)), “” != I.getBidIdParameter(“start_delay”, e.params) && (g.video.startdelay = 0 + Boolean(I.getBidIdParameter(“start_delay”, e.params))), “” != I.getBidIdParameter(“min_duration”, e.params) && (g.video.minduration = I.getBidIdParameter(“min_duration”, e.params)), “” != I.getBidIdParameter(“max_duration”, e.params) && (g.video.maxduration = I.getBidIdParameter(“max_duration”, e.params)), “” != I.getBidIdParameter(“placement_type”, e.params) && (g.video.ext.placement = I.getBidIdParameter(“placement_type”, e.params)), “” != I.getBidIdParameter(“position”, e.params) && (g.video.ext.pos = I.getBidIdParameter(“position”, e.params)), e.crumbs && e.crumbs.pubcid && (r = e.crumbs.pubcid);

var _ = navigator.language ? “language” : “userLanguage”,
l =
h: screen.height,
w: screen.width,
dnt: I.getDNT() ? 1 : 0,
language: navigator[_].split(“-“)[0],
make: navigator.vendor ? navigator.vendor : “”,
ua: navigator.userAgent
,
v =
id: t,
imp: g,
site:
id: “”,
page: y,
content: “content”
,
device: l,
ext:
wrap_response: 1

;

I.getBidIdParameter(“number_of_ads”, e.params) && (v.ext.number_of_ads = I.getBidIdParameter(“number_of_ads”, e.params));
var f = ;
return 1 == I.getBidIdParameter(“spotx_all_google_consent”, e.params) && (f.consented_providers_settings = P), h && h.gdprConsent && (f.consent = h.gdprConsent.consentString, void 0 !== h.gdprConsent.gdprApplies && I.deepSetValue(v, “regs.ext.gdpr”, h.gdprConsent.gdprApplies ? 1 : 0)), h && h.uspConsent && I.deepSetValue(v, “regs.ext.us_privacy”, h.uspConsent), e && e.userId && e.userId.id5id && (f.eids = f.eids || [], f.eids.push(
source: “id5-sync.com”,
uids: [
id: e.userId.id5id
] )), r && (f.fpc = r), e && e.schain && (v.source =
ext:
schain: e.schain

), e && e.userId && e.userId.tdid && (f.eids = f.eids || [], f.eids.push(
source: “adserver.org”,
uids: [
id: e.userId.tdid,
ext:
rtiPartner: “TDID”

] )), I.isEmpty(f) || (v.user =
ext: f
),
method: “POST”,
url: “https://search.spotxchange.com/openrtb/2.3/dados/” + t,
data: v,
bidRequest: h
;
});
},
interpretResponse: function interpretResponse(e, s) {
var p = [],
m = e.body;
return m && I.isArray(m.seatbid) && I._each(m.seatbid, function (e) {
I._each(e.bid, function (t) “outstream” == i)
var n = I.deepAccess(e, “mediaTypes.video.playerSize”),
o = u.a.install(
id: 0,
url: “//”,
config:
adText: “SpotX Outstream Video Ad via Prebid.js”,
player_width: n[0][0],
player_height: n[0][1],
content_page_url: I.deepAccess(s, “data.site.page”),
ad_mute: +!!I.deepAccess(e, “params.ad_mute”),
hide_skin: +!!I.deepAccess(e, “params.hide_skin”),
outstream_options: I.deepAccess(e, “params.outstream_options”),
outstream_function: I.deepAccess(e, “params.outstream_function”)

);

try
o.setRender(g), o.setEventHandlers(
impression: function impression()
return I.logMessage(“SpotX outstream video impression event”);
,
loaded: function loaded()
return I.logMessage(“SpotX outstream video loaded event”);
,
ended: function ended()
I.logMessage(“SpotX outstream renderer video event”);

);
catch (e)
I.logWarn(“Prebid Error calling setRender or setEve,tHandlers on renderer”, e);

a.renderer = o;

p.push(a);
);
}), p;
}
};

function g(e)
var t = function (e)
var t = I.getBidIdParameter(“slot”, e.renderer.config.outstream_options);
I.logMessage(“[SPOTX][renderer] Handle SpotX outstream renderer”);
var r = window.document.createElement(“script”);
r.type = “text/javascript”, r.src = “https://js.spotx.tv/easi/v1/” + e.channel_id + “.js”;
var a = ;
a[“data-spotx_channel_id”] = “” + e.channel_id, a[“data-spotx_vast_url”] = “” + e.vastUrl, a[“data-spotx_content_page_url”] = e.renderer.config.content_page_url, a[“data-spotx_ad_unit”] = “incontent”, I.logMessage(“[SPOTX][renderer] Default beahavior”), I.getBidIdParameter(“ad_mute”, e.renderer.config.outstream_options) && (a[“data-spotx_ad_mute”] = “1”), a[“data-spotx_collapse”] = “0”, a[“data-spotx_autoplay”] = “1”, a[“data-spotx_blocked_autoplay_override_mode”] = “1”, a[“data-spotx_video_slot_can_autoplay”] = “1”;
var d,
i,
n,
o,
s,
p,
m = I.getBidIdParameter(“playersize_auto_adapt”, e.renderer.config.outstream_options);
m && I.isBoolean(m) && !0 === m && (e.width && I.isNumber(e.width) && e.height && I.isNumber(e.height) ? (d = e.width / e.height, i = window.document.getElementById(t).clientWidth, n = e.renderer.config.player_width, o = e.renderer.config.player_height, p = s = 0, i < n && (o = (n = i) / d), p = d <= 1 ? (s = Math.round(o * d), o) : (s = n, Math.round(n / d)), a["data-spotx_content_width"] = "" + s, a["data-spotx_content_height"] = "" + p) : I.logWarn("[SPOTX][renderer] PlayerSize auto adapt: bid.width and bid.height are incorrect")); var u = I.getBidIdParameter("custom_override", e.renderer.config.outstream_options); if (u && I.isPlainObject(u)) for (var c in (I.logMessage("[SPOTX][renderer] Custom beahavior."), u)) for (var g in a) a.hasOwnProperty(g) && r.setAttribute(g, a[g]); return r; (e); if (null != e.renderer.config.outstream_function && "function" == typeof e.renderer.config.outstream_function) e.renderer.config.outstream_function(e, t);else try var r, a, d, i = I.getBidIdParameter("in_iframe", e.renderer.config.outstream_options); i && "IFRAME" == window.document.getElementById(i).nodeName ? (!(a = (r = window.document.getElementById(i)).contentDocument) && r.contentWindow && (a = r.contentWindow.document), a.body.appendChild(t)) : (d = I.getBidIdParameter("slot", e.renderer.config.outstream_options)) && window.document.getElementById(d) ? window.document.getElementById(d).appendChild(t) : window.document.getElementsByTagName("head")[0].appendChild(t); catch (e) I.logError("[SPOTX][renderer] Error:" + e.message); Object(a.registerBidder)(n); } }, [744]); pbjsChunk([91], { 758: function _(e, t, r) e.exports = r(759); , 759: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", value: !0 ), r.d(t, "spec", function () return i; ); var n = r(1), a = r(0), p = 12, c = 11, u = 0, g = 22, i = code: "teads", supportedMediaTypes: ["video"https://slate.com/,"banner"], isBidRequestValid: function isBidRequestValid(e) , buildRequests: function buildRequests(e, t) var r, n = e.map(f), i = referrer: function (e) var t = ""; e && e.refererInfo && e.refererInfo.referer && (t = e.refererInfo.referer); return t; (t), pageReferrer: document.referrer, networkBandwidth: (r = window.navigator) && r.connection && 0 <= r.connection.downlink ? r.connection.downlink.toString() : "", timeToFirstByte: function (e) (window), data: n, deviceWidth: screen.width, hb_version: "4.7.0" ; e[0].schain && (i.schain = e[0].schain); var a, s, o, d = t.gdprConsent; return t && d && (a = "boolean" == typeof d.gdprApplies, s = "string" == typeof d.consentString, o = a ? function (e, t, r) var n = p; e ? function (e, t) (t, r) && (n = c) : n = u; return n; (d.gdprApplies, d.vendorData, d.apiVersion) : g, i.gdpr_iab = consent: s ? d.consentString : "", status: o, apiVersion: d.apiVersion ), t && t.uspConsent && (i.us_privacy = t.uspConsent), method: "POST", url: "https://a.teads.tv/hb/bid-request", data: JSON.stringify(i) ; , interpretResponse: function interpretResponse(e) var r = []; return (e = e.body).responses && e.responses.forEach(function (e) var t = cpm: e.cpm, width: e.width, height: e.height, currency: e.currency, netRevenue: !0, ttl: e.ttl, ad: e.ad, requestId: e.bidId, creativeId: e.creativeId, placementId: e.placementId ; e.dealId && (t.dealId = e.dealId), r.push(t); ), r; ; function f(e) var t, r = , n = a.getValue(e.params, "placementId"), i = a.getValue(e.params, "pageId"); return r.sizes = (t = e, a.parseSizesInput(function (e) a.isArray(r) ? [n, r, t].reduce(function (t, e) return a.isArray(e) && (a.isArray(e[0]) ? e.forEach(function (e) t.push(e); ) : t.push(e)), t; , []) : e.sizes; (t))), r.bidId = a.getBidIdParameter("bidId", e), r.bidderRequestId = a.getBidIdParameter("bidderRequestId", e), r.placementId = parseInt(n, 10), r.pageId = parseInt(i, 10), r.adUnitCode = a.getBidIdParameter("adUnitCode", e), r.auctionId = a.getBidIdParameter("auctionId", e), r.transactionId = a.getBidIdParameter("transactionId", e), r; function s(e) return 0 < parseInt(e); Object(n.registerBidder)(i); } }, [758]); pbjsChunk([82], { 778: function _(e, r, t) e.exports = t(779); , 779: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", value: !0 ), t.d(r, "tripleliftAdapterSpec", function () return y; ); var n = t(2), i = t(1), u = t(0), o = t(3); function p(e) return (p = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) return _typeof(e); : function (e) return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); )(e); function a(r, e) var t, n = Object.keys(r); return Object.getOwnPropertySymbols && (t = Object.getOwnPropertySymbols(r), e && (t = t.filter(function (e) return Object.getOwnPropertyDescriptor(r, e).enumerable; )), n.push.apply(n, t)), n; function c(i) for (var e = 1; e < arguments.length; e++) var o = null != arguments[e] ? arguments[e] : ; e % 2 ? a(Object(o), !0).forEach(function (e) var r, t, n; r = i, n = o[t = e], t in r ? Object.defineProperty(r, t, value: n, enumerable: !0, configurable: !0, writable: !0 ) : r[t] = n; ) : Object.getOwnPropertyDescriptors ? Object.defineProperties(i, Object.getOwnPropertyDescriptors(o)) : a(Object(o)).forEach(function (e) Object.defineProperty(i, e, Object.getOwnPropertyDescriptor(o, e)); ); return i; function d(e) function (e, r) (e) function s(e, r) r > e.length) && (r = e.length);

for (var t = 0, n = new Array(r); t < r; t++) n[t] = e[t]; return n; var f = !0, l = null, y = { code: "triplelift", supportedMediaTypes: [n.b, n.d], isBidRequestValid: function isBidRequestValid(e) if (e.mediaTypes.video) return void 0 !== e.params.inventoryCode; , buildRequests: function buildRequests(e, r) { var t, n = "https://tlx.3lift.com/header/auction?", i = function (e) { var r = , t = e[0].schain; r.imp = e.map(function (e, r) { var t = id: r, tagid: e.params.inventoryCode, floor: function (e) var r = null; return null !== r ? r : e.params.floor; (e) ; return e.mediaTypes.video ? t.video = m(e) : e.mediaTypes.banner && (t.banner = format: g(e.sizes) ), t; }); var n = [].concat(d(function (e) return b(e, "tdid"https://slate.com/,"adserver.org"https://slate.com/,"TDID"); (e)), d(function (e) return b(e, "idl_env"https://slate.com/,"liveramp.com"https://slate.com/,"idl"); (e)), d(function (e) return b(e, "criteoId"https://slate.com/,"criteo.com"https://slate.com/,"criteoId"); (e))); 0 < n.length && (r.user = ext: eids: n ); t && (r.ext = schain: t ); return r; }(e); return n = u.tryAppendQueryString(n, "lib"https://slate.com/,"prebid"), n = u.tryAppendQueryString(n, "v"https://slate.com/,"4.7.0"), r && r.refererInfo && (t = r.refererInfo.referer, n = u.tryAppendQueryString(n, "referrer", t)), r && r.timeout && (n = u.tryAppendQueryString(n, "tmax", r.timeout)), r && r.gdprConsent && (void 0 !== r.gdprConsent.gdprApplies && (f = r.gdprConsent.gdprApplies, n = u.tryAppendQueryString(n, "gdpr", f.toString())), void 0 !== r.gdprConsent.consentString && (l = r.gdprConsent.consentString, n = u.tryAppendQueryString(n, "cmp_cs", l))), r && r.uspConsent && (n = u.tryAppendQueryString(n, "us_privacy", r.uspConsent)), !0 === o.b.getConfig("coppa") && (n = u.tryAppendQueryString(n, "coppa", !0)), n.lastIndexOf("&") === n.length - 1 && (n = n.substring(0, n.length - 1)), u.logMessage("tlCall request built: " + n), method: "POST", url: n, data: i, bidderRequest: r ; }, interpretResponse: function interpretResponse(e, r) , getUserSyncs: function getUserSyncs(e, r, t, n) var i = function (e) if (!e) return; if (e.iframeEnabled) return "iframe"; if (e.pixelEnabled) return "image"; (e); if (i) var o = "https://eb2.3lift.com/sync?"; return "image" === i && (o = u.tryAppendQueryString(o, "px", 1), o = u.tryAppendQueryString(o, "src"https://slate.com/,"prebid")), null !== l && (o = u.tryAppendQueryString(o, "gdpr", f), o = u.tryAppendQueryString(o, "cmp_cs", l)), n && (o = u.tryAppendQueryString(o, "us_privacy", n)), [ type: i, url: o ]; }; function m(e) var r = c(c(, e.params.video), e.mediaTypes.video); return r.w function b(e, r, t, n) { return e.map((u = r, function (e) return e && e.userId && e.userId[u]; )).filter(function (e) return !!e; ).map((i = t, o = n, function (e) return source: i, uids: [ id: e, ext: rtiPartner: o ] ; )); var i, o, u; } function g(e) return e.filter(v).map(function (e) return w: e[0], h: e[1] ; ); function v(e) return 2 === e.length && "number" == typeof e[0] && "number" == typeof e[1]; Object(i.registerBidder)(y); } }, [778]); pbjsChunk([80], { 782: function _(e, r, t) e.exports = t(783); , 783: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", value: !0 ), t.d(r, "spec", function () return v; ); var m = t(0), s = t(1), o = t(11), c = t(2), f = "Bid from response has no auid parameter - ", l = "Bid from response has no adm parameter - ", p = "Array of bid objects is empty", g = "Can't find in requested bids the bid with auid - ", u = "Seatbid array from response has empty item", y = "Response is empty", b = "Response has empty seatbid array", h = "Seatbid from response has no array of bid objects - ", v = { code: "trustx", supportedMediaTypes: [c.b, c.d], isBidRequestValid: function isBidRequestValid(e) return !!e.params.uid; , buildRequests: function buildRequests(e, r) var a, o, p = [], u = , c = , f = , l = "net"; (e , interpretResponse: function interpretResponse(e, r, t) { var s = 2 < arguments.length && void 0 !== t ? t : o.a; e = e && e.body; var n, d = [], i = r.bidsMap, a = r.data.pt; return e ? e.seatbid && !e.seatbid.length && (n = b) : n = y, !n && e.seatbid && e.seatbid.forEach(function (e) { !function (e, d, r, t, s) if (!e) return; var n; e.auid (function (e) (e), i, a, d, s); }), n && m.logError(n), d; }, getUserSyncs: function getUserSyncs(e) if (e.pixelEnabled) return [ type: "image", url: "https://sofia.trustx.org/push_sync" ]; }; function E(e) var r; r = e.value, m.isArray(r) && 0 < r.length && "" === e.value[0] && delete e.value; function w(e) e.renderer.push(function () window.ANOutstreamVideo.renderAd( targetId: e.adUnitCode, adResponse: e.adResponse ); ); Object(s.registerBidder)(v); } }, [782]); pbjs.processQueue(); }, ]; window.modules["via.legacy"] = [function(require,module,exports){"use strict"; DS.service("via", function () { "use strict"; // remove `via` from url, to be used after amplitude logs it to prevent users from sharing such urls function removeFromLocation() var url = new URL(location.href); url.searchParams.delete("via"); history.replaceState(null, "", url.toString()); // and add `via` param to any outbound links function addViaToUrl(href, via) if (!href // keys correspond to "page_types" in editable_components.yml var PREFIXES = article: "article", homepage: "homepage", "vertical front": "section", "rubric front": "rubric" ; var pageType; function setPageType(amplitudePageType) pageType = PREFIXES[amplitudePageType]; var DELIMITER = "_"; function concatVia(node, via) var tag = node.dataset && node.dataset.via; if (tag) via = (via.length ? tag + DELIMITER : tag) + via; return via; function addToClickedLinks() document.documentElement.addEventListener("click", function (e) var a; var via = ""; // detect link nodes and collect via directives to append to the href var node = e.target; // the element where this event originated may have been removed from the dom, e.g. in the case of the OIL CMP which disappears after you interact with it while (node && node !== e.currentTarget) if (node.tagName === "A") a = node; via = concatVia(node, via); node = node.parentNode; if (a && via) if (pageType) via = pageType + DELIMITER + via; a.href = addViaToUrl(a.href, via); ); function addToSubmittedForms() document.documentElement.addEventListener("submit", function (e) var form = e.target; // collect via directives var via = ""; var node = e.target; while (node !== e.currentTarget) via = concatVia(node, via); node = node.parentNode; if (via) if (pageType) via = pageType + DELIMITER + via; // dynamically create a hidden input for the form url var input = document.createElement("input"); input.type = "hidden"; input.name = "via"; input.value = via; form.appendChild(input); ); // start listening only once, when first injected addToClickedLinks(); addToSubmittedForms(); return setPageType: setPageType, removeFromLocation: removeFromLocation ; }); }, ]; window.modules["visibility.legacy"] = [function(require,module,exports){"use strict"; DS.service("$visibility", ["$document"https://slate.com/,"$window"https://slate.com/,"_throttle"https://slate.com/,"Eventify", function ($document, $window, _throttle, Eventify) var list = [], Visible, VisibleEvent; /** * @param number a * @param number b * @returns * * @see http://jsperf.com/math-min-vs-if-condition-vs/8 */ function min(a, b) return a < b ? a : b; /** * @param number a * @param number b * @returns * * @see http://jsperf.com/math-min-vs-if-condition-vs/8 */ function max(a, b) return a > b ? a : b;

/**
* Fast loop through watched elements
*/

function onScroll()
list.forEach(updateVisibility);

/**
* updates seen property
* @param Visble item
* @param evt
* @fires Visible#shown
* @fires Visible#hidden
*/

function updateSeen(item, evt)
var px = evt.visiblePx,
percent = evt.visiblePercent; // if some pixels are visible and we’re greater/equal to threshold

if (px && percent >= item.shownThreshold && !item.seen)
item.seen = true;
setTimeout(function ()
item.trigger(“shown”, new VisibleEvent(“shown”, evt));
, 15); // if no pixels or percent is less than threshold
else if ((!px
/**
* sets preload property
* @param Visible item
* @param evt
* @param Number innerHeight
* @fires Visible#preload
*/

function updatePreload(item, evt, innerHeight)
if (!item.preload && item.preloadThreshhold && shouldBePreloaded(evt.target, evt.rect, item.preloadThreshhold, innerHeight))
item.preload = true;
setTimeout(function ()
item.trigger(“preload”, new VisibleEvent(“preload”, evt));
, 15);

/**
* Trigger events
* @param Visible item
*/

function updateVisibility(item)
/**
* Return normalized viewport height
* @return number
*/

function getViewportHeight() $document.body.clientHeight;

/**
* Return normalized viewport width
* @return number
*/

function getViewportWidth()
/**
* make sure an element isn’t hidden by styles or etc
* @param Element el
* @return Boolean
*/

function isElementNotHidden(el)
return el && el.offsetParent !== null && !el.getAttribute(“hidden”) && getComputedStyle(el).display !== “none” && getComputedStyle(el).visibility !== “hidden”;

/**
* Apparently the fastest way…
* @param Element el
* @returns boolean
* @example if (!$visibility.isElementInViewport(el)) …
*/

function isElementInViewport(el)
/**
* @param Element el
* @param ClientRect rect
* @param Number preloadThreshhold
* @param Number innerHeight
* @return Boolean
*/

function shouldBePreloaded(el, rect, preloadThreshhold, innerHeight)
return rect.top <= innerHeight + preloadThreshhold && isElementNotHidden(el); /** * Create a one-dimensional spacial hash of x * @param number x * @param number stepSize * @param number optimalK * @param number base * @return number */ function getLinearSpacialHash(x, stepSize, optimalK, base) var index = Math.floor(x / (stepSize /** * @param ClientRect rect * @param number innerHeight * @returns number */ function getVerticallyVisiblePixels(rect, innerHeight) return min(innerHeight, max(rect.bottom, 0)) - min(max(rect.top, 0), innerHeight); /** * Get offset of element relative to entire page * * @param Element el * @returns left: number, top: number * @see http://jsperf.com/offset-vs-getboundingclientrect/7 */ function getPageOffset(el) var offsetLeft = el.offsetLeft, offsetTop = el.offsetTop; while (el = el.offsetParent) offsetLeft += el.offsetLeft; offsetTop += el.offsetTop; return left: offsetLeft, top: offsetTop ; /** * Create a new Visible class to observe when elements enter and leave the viewport * * Call destroy function to stop listening (this is until we have better support for watching for Node Removal) * @param Element el * @param shownThreshold: number, hiddenThreshold: number [options] * @class * @example this.visible = new $visibility.Visible(el); */ Visible = function Visible(el, options) ; Visible.prototype = /** * Stop triggering. */ destroy: function destroy() // remove from list list.splice(list.indexOf(this), 1); /** * @name Visible#on * @function * @param 'shown' e EventName * @param function cb Callback */ /** * @name Visible#trigger * @function * @param 'hidden' e * @param */ ; Eventify.enable(Visible.prototype); VisibleEvent = function VisibleEvent(type, options) var _this = this; this.type = type; Object.keys(options).forEach(function (key) _this[key] = options[key]; ); ; // listen for scroll events (throttled) $document.addEventListener("scroll", _throttle(onScroll, 200)); // public this.getPageOffset = getPageOffset; this.getLinearSpacialHash = getLinearSpacialHash; this.getVerticallyVisiblePixels = getVerticallyVisiblePixels; this.getViewportHeight = getViewportHeight; this.getViewportWidth = getViewportWidth; this.isElementNotHidden = isElementNotHidden; this.isElementInViewport = isElementInViewport; this.Visible = Visible; ]); }, ]; 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",fvar 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].exportsvar i=typeof require=="function"&&require;for(var o=0;o

Source Autor slate.com

Leave a Reply

Your email address will not be published. Required fields are marked *

I accept the Privacy Policy