Homme aux bras croisés en regardant un symbole néon barré.
Illustration photo par Slate. Photo de Ranta Images / iStock / Getty Images Plus.

Comment faire est la chronique de conseils sexuels de Slate. Avoir une question? Envoyez-le à Stoya et Rich ici. C’est anonyme!

Cher comment le faire,

Ma copine et moi formons un couple hétérosexuel dans la quarantaine. Les deux ont divorcé; aucun enfant de l'un ou l'autre mariage. Nous avons commencé à sortir ensemble l'année dernière et avons emménagé ensemble lorsque la pandémie a commencé. Notre vie sexuelle est très bonne, à l'exception d'une chose importante: je n'ai pas le droit de pénétrer son vagin de quelque manière que ce soit ou de lui faire une fellation. Nos séances d'amour se terminent généralement par moi qui la regarde se masturber avec un jouet, où la pénétration se produit définitivement. Puis elle m'achève avec une pipe, un travail manuel ou une branlette espagnole occasionnelle.

Notre relation est excellente, et bien que je sois largement satisfait de ce qui précède, il y a parfois des endroits où je veux juste la baiser, si vous voyez ce que je veux dire. Mais en dehors de l'assurance qu'il ne s'agit pas de MST ou de contrôle des naissances, j'obtiens juste un «non» gentil mais ferme. Je comprends parfaitement ses limites et je ne lui ferais jamais pression pour qu'elle fasse quoi que ce soit. Mais est-il acceptable que je demande pourquoi? Et comment faire ça sans lui faire sentir que je lui fais pression?

– Ne pas aller

Cher No Go,

Je pense qu'il est acceptable que vous demandiez des éclaircissements sur toute caractéristique sexuelle de votre partenaire, tant que vous vous souvenez que votre petite amie peut refuser ou être incapable de répondre. Son interdiction de pénétration peut être liée à un traumatisme, ce qui pourrait rendre la discussion difficile pour elle. Faites preuve de prudence ici, juste au cas où.

Je commencerai par un rappel du fait que vous êtes conscient de ses limites et que vous n’essayez pas de les changer. Quelque chose comme «Je sais que la pénétration par moi est une limite difficile pour vous, et je respecte cela. Je suis à l'aise avec vos limites et je n'essaye pas de les changer. " Ensuite, partagez votre curiosité: «Je suis cependant curieux de savoir pourquoi vos limites sont ce qu'elles sont. Vous m'avez dit qu'il ne s'agissait pas de transmission des IST ni de prévention de la grossesse. Je me demande de quoi il s'agit et j'espère que vous serez à l'aise pour me renseigner. " Si elle se crispe, s'éloigne ou affiche une gêne, revenez un peu en arrière avec quelque chose du genre: «C'est tout à fait normal si vous n'êtes pas à l'aise pour en parler aussi» et laissez-le tranquille pendant un moment, comme six mois à un an – à moins qu'elle ne le soulève elle-même. Vous devrez choisir combien de temps vous êtes prêt à attendre pour une certaine clarté.

Cher comment le faire,

Ma copine (34F) et moi (36M) sortons ensemble depuis la fin de l’année dernière et appartenons à ce que je suppose être une grande catégorie de couples qui ont vécu beaucoup de choses ensemble pendant la pandémie. Nous vivons presque mais pas tout à fait ensemble à ce stade, après ce qui était une vie régulière mais facile à vivre de 2 ou 3 nuits par semaine avant la pandémie.

Dans l'ensemble, l'augmentation de la vie commune au quotidien a été formidable. Nous n'avons aucun problème avec les affaires ménagères, nous nous entendons bien, partageons beaucoup d'intérêts et de goûts pour diverses choses, etc. C'était une agréable surprise pour moi, car c'est la première fois que je vis avec un partenaire, et je craignais que ce ne soit plus difficile que cela.

Mais nous avons des problèmes avec les relations plus profondes, en particulier autour du sexe. Ma copine a un fort appétit pour le sexe et apporte à chaque fois passion et enthousiasme. Elle est aussi généralement bonne et généreuse, en particulier avec des propos oraux, légers et sales, et diverses positions, toutes choses que j'apprécie. Mais cela semble être les limites extérieures de son aventure sexuelle. Dans une conversation sur les fantasmes / le porno / les fétiches, elle a avoué qu'elle n'avait pas vraiment de fantasmes et que son regard de porno était également assez vanillé. Elle semble totalement indifférente à tout type de jeu de rôle. Elle n’a jamais non plus eu d’orgasme avec moi, ce dont nous avons discuté fréquemment mais qui a été tendu car c’est un problème personnel de longue date pour elle, et elle ne veut pas se sentir sous pression. Cela me laisse me demander si elle n’est pas tout à fait à l’aise avec elle-même ou avec moi.

Elle a également une vision assez négative des hommes en général et associe essentiellement toute la masculinité à la misogynie, au sexisme et à la violence – une vision incroyablement triste mais assez compréhensible à mon avis basée sur ce que je sais de la culture macho dans laquelle elle a été élevée et la relation compliquée qu'elle a eue avec son père pour la plupart absent. Je n'ai pas et je ne ferais jamais un argument «pas tous les hommes» à cela, mais je pense que cela affecte notre relation, car elle n'embrasse vraiment ma masculinité que lorsque nous baisons et même alors surtout dans un sens romantique et quelque peu idéaliste.

Pendant ce temps, je me considère un peu mais pas trop pervers. J'ai passé beaucoup de temps à la fin de la vingtaine et à la trentaine à essayer de mieux explorer, comprendre et accepter ma sexualité, tout en désapprenant une partie de la masculinité toxique dans laquelle je pense avoir grandi et en équilibrant tout cela avec ma féministe. politique. Je suis confortablement hétéro et masculin, j'ai ce que je considère comme une relation saine avec le sexe et les femmes en général, je crois que je suis un bon auditeur et je vois un thérapeute chaque semaine.

En fin de compte, je veux me sentir acceptée et suffisamment à l'aise dans une relation pour parler honnêtement et explorer au moins certains de mes côtés pervers (et ceux de mon partenaire). Mais le simple fait de parler, et encore moins de faire, de fantasmes ou de fétiches met ma petite amie assez mal à l'aise et il est clair qu'elle ne peut pas du tout comprendre. Je me sens obligé de la rencontrer là où elle est sexuellement et de laisser derrière moi des parties de ma sexualité qu'elle n'aime pas. Dans les conversations que nous avons eues au début de la relation, elle a clairement indiqué que la non-monogamie était hors de question.

Bien que j'adore voir certains de mes désirs sexuels les plus pointus se réaliser, je lutte encore plus pour me sentir pleinement accepté avec elle et, par conséquent, je commence à douter du potentiel à long terme que nous avons. Je l’aime et je ne veux pas que cela se termine, mais il est difficile de concilier ce manque d’acceptation.
Les conversations sur la façon dont ses opinions sur la masculinité pourraient affecter notre relation ne se sont pas bien passées non plus. Comment aborder ce conflit? Et où est-ce que je trace la ligne?

– Kinkster consciencieux

Cher Kinkster consciencieux,

Quelle part de votre sexualité êtes-vous prêt à abandonner? Allez-vous en vouloir à cette femme si vous continuez à abandonner une partie de votre sexualité pour elle? Pensez-vous que votre amour est suffisant pour compenser toutes les aventures érotiques coquines que vous voulez vivre? Pouvez-vous accepter de ne jamais vous laisser tenter par vos bizarreries? Ce sont des questions sérieuses, auxquelles vous seul pouvez répondre, qui vous diront comment aborder le conflit et où tracer votre ligne.

Si vos réponses sont «peu», «oui», «non» et «non», alors continuez. Cela fera mal à court terme et sera meilleur pour vous deux à long terme.

Si vos réponses sont «beaucoup», «non», «oui» et «oui», alors vous voudrez travailler à établir la confiance et à vous comporter de manière cohérente. La reconnaissance de formes est une chose que nous, les humains, faisons, et l’expérience de vie de votre petite amie lui a appris que le modèle «homme» équivaut à «danger». Le travail est à elle, mais vous pouvez aider en fournissant un contre-argument à travers vos actions – appelez cela de la propagande par acte.

Quant au manque d’intérêt pour les orgasmes de sa part, il ne s’agit probablement pas de vous. Croyez-la quand elle dit que c'est une affaire à long terme, et faites-lui confiance pour venir vous voir et dire quelque chose si elle veut y travailler ensemble. C'est l'une des façons dont vous pouvez prouver par votre comportement que vous soutenez ses décisions et son action.

Aidez-nous à continuer à vous donner les conseils dont vous rêvez chaque semaine. Inscrivez-vous maintenant à Slate Plus.

Cher comment le faire,

En février dernier, j'ai commencé une relation de sexting avec un gars qui avait le béguin pour moi au lycée. Nous bavardions de manière amicale depuis un certain temps et j'étais profondément mécontente de mon mariage de plus de 20 ans. J'ai vraiment apprécié le sexting. C'était grisant, et j'ai gagné beaucoup de confiance grâce à cela. Cela m'a ouvert un tout nouveau royaume de sexualité et a ravivé mon désir qui dormait depuis des années. Parce qu'il n'y avait aucun moyen pour moi de voir réellement cette personne (nous vivons loin l'un de l'autre, nous sommes tous les deux mariés). J'ai commencé à réaliser nos fantasmes sur mon mari et cela a amélioré notre relation à tous les niveaux. J'ai mis fin au sexting après environ douze semaines parce que j'étais trop profond, et cela commençait à me faire des ravages émotionnellement. Je ne me suis jamais senti coupable pendant que je faisais des sextos. J'en ai parlé à mon mari, et il n'était ni jaloux ni en colère. Nous avons continué à avoir de bonnes relations sexuelles en tant que couple marié depuis.

Cependant, je suis toujours en contact avec l'autre homme. Nous discutons sur Messenger plusieurs fois par semaine et flirtons parfois encore, mais nous avons tracé une limite qui empêche le sextage à ce stade. Je l'aime bien et je suis toujours très attirée par lui. Je fantasme encore sur lui même lorsque j'ai des relations sexuelles avec mon mari. Je suis plus préoccupé par ma santé émotionnelle que par la triche émotionnelle.

Je me sens en conflit parce que j'ai peur d'être trop attaché à mon ancien partenaire de sexto. Je ressens un lien profond avec lui. Nous discutons de toutes sortes de choses, et il est beaucoup plus joueur et amusant que mon mari. Je suis toujours excité quand j'entends parler de lui. Je ne sais pas quoi faire. Puis-je maintenir cette relation «amicale»? J'ai l'impression que ce n'est qu'une question de temps avant de recommencer le sextage.

– Incertain

Cher incertain,

Je suppose que vous avez cessé de sexto parce que vous sentez que votre mari n’est pas à l’aise (malgré son avis contraire), ou parce que la femme de votre partenaire de sexto ne sait pas ou est mal à l’aise elle-même. Si cela n'est pas l'affaire – si toutes les personnes concernées sont d'accord – alors je pense que vous pourriez envisager de continuer. Que cela (ou avoir même un contact «amical») soit «émotionnellement sain» pour vous dépend de votre point de vue. Un arrangement de sextos au-dessus du bord pourrait être sain et conduire à une vie sexuelle conjugale revigorée, comme vous le décrivez. Ou cela pourrait remettre en question votre mariage, qui lui-même pourrait bien être sain. Je ne peux pas dire avec certitude quel objectif vous convient.

S'il y a des raisons pour lesquelles vous devrait Gardez la relation platonique, mais vous ne vous faites pas confiance pour le faire, alors il est temps de rompre complètement la communication.

Cher comment le faire,

Je vis seul, et ma vie sexuelle en couple est en pause pour des raisons * vagues de la main au monde *.
Actuellement, ma sexualité consiste en sexting et masturbation. Je cherche des idées pour pimenter ma masturbation. Par exemple, mon jeu actuel est "Puis-je me faire orgasme avec ma main non dominante?" Je suis aussi très gentil d'être le partenaire réceptif pour le sexe avec pénétration, et un autre jeu que j'explore est d'essayer de «trouver mon point G et de le stimuler». D'autres idées pour d'autres dans une position similaire à moi?

– Curieux en quarantaine

Cher curieux en quarantaine,

Jouer avec le temps et la patience peut être amusant. Une pratique qui fonctionne avec ces thèmes est le bordage – où vous vous sentez immensément excité et ensuite vous traînez au «bord» de l'orgasme sans vous laisser basculer. Cela a probablement l'avantage d'engorger votre anatomie à un degré qui devrait rendre les endroits super amusants, comme la région que nous appelons le point G, plus faciles à localiser, surtout si vous utilisez une baguette incurvée.

Les vibrateurs peuvent également pimenter la masturbation. Il y a les classiques – la baguette magique et le lapin – et aussi quelques excellents produits qui sont sortis ces dernières années qui imitent le sexe oral de différentes manières.

Je suppose que vous avez épuisé les options de pornographie et d'érotisme dans vos catégories préférées habituelles. Vous pouvez essayer de changer de mode. Découvrez un problème que vous n'avez jamais connu ou un genre différent de celui que vous regardez habituellement. Peut-être même un support complètement différent, comme des images ou du texte. Une autre chose que vous pouvez faire est d’écrire vos propres fantasmes ou d’imaginer ce que vous présenteriez si vous dirigiez votre propre pornographie. Après tout, personne ne vous connaît comme vous.

– Stoya

Plus comment faire

Mon mari vient de dire qu’il volait la culotte de ma famille et de mon ami depuis des années. Nous sommes ensemble depuis trois décennies. Nous avions une conversation à cœur ouvert, et il m'a dit qu'il volait des sous-vêtements à ma famille féminine et à mes amis. C’est un homme bien, et j’ai toujours su qu’il avait un fétiche en sous-vêtements. Il aime se masturber avec des culottes sexy sales, et ça me va. Mais voler les autres, mes proches et faire ça? Veuillez aider. Il a toujours été fidèle. Ce n'est absolument pas normal. J'en suis écœuré et je me sens aujourd'hui dégoûté, trahi et inadéquat. Quel est son problème?

'));else {
if (!0 === d.b.getConfig("enableSendAllBids")) return;
p.native = {
title: (t = e.native).products(0).title,
body: t.products(0).description,
sponsoredBy: t.advertiser.description,
icon: t.advertiser.logo,
image: t.products(0).image,
clickUrl: t.products(0).click_url,
privacyLink: t.privacy.optout_click_url,
privacyIcon: t.privacy.optout_image_url,
cta: t.products(0).call_to_action,
price: t.products(0).price,
impressionTrackers: t.impression_pixels.map(function (t) {
return t.url;
})
}, p.mediaType = h.c;
}
} else e.video ? (p.vastUrl = e.displayurl, p.mediaType = h.d) : p.ad = e.creative;
c.push(p);
}), c;
},
onTimeout: function onTimeout(t) {
T() && Criteo.PubTag.Adapters.Prebid.GetAdapter(t.auctionId).handleBidTimeout();
},
onBidWon: function onBidWon(t) {
T() && Criteo.PubTag.Adapters.Prebid.GetAdapter(t.auctionId).handleBidWon(t);
},
onSetTargeting: function onSetTargeting(t) {
T() && Criteo.PubTag.Adapters.Prebid.GetAdapter(t.auctionId).handleSetTargeting(t);
}
};

function T() {
return "undefined" != typeof Criteo && Criteo.PubTag && Criteo.PubTag.Adapters && Criteo.PubTag.Adapters.Prebid;
}

function C(t) {
return f.deepAccess(t, "mediaTypes.banner.sizes") "https://slate.com/" t.sizes;
}

function A(t, e) {
return Array.isArray(t(0)) ? t.map(function (t) {
return e(t);
}) : (e(t));
}

function S(t) {
return t(0) + "x" + t(1);
}

function I(t) {
return void 0 === t(0) && void 0 === t(1) ? "2x2" : t(0) + "x" + t(1);
}

function R(t) {
return void 0 !== f.deepAccess(t, "params.video") && void 0 !== f.deepAccess(t, "mediaTypes.video");
}

function x() {
try {
var t,
e,
r,
i,
o,
n = "criteo_fast_bid",
s = "// Hash: ",
a = y.getDataFromLocalStorage(n);
null !== a && (t = a.indexOf("n"), (e = a.substr(0, t).trim()).substr(0, s.length) !== s ? (f.logWarn("No hash found in FastBid"), y.removeDataFromLocalStorage(n)) : (r = e.substr(s.length), i = a.substr(t + 1), Object(p.verify)(i, r, g, b) ? (f.logInfo("Using Criteo FastBid"), (o = document.createElement("script")).type = "text/javascript", o.text = i, f.insertElement(o)) : (f.logWarn("Invalid Criteo FastBid found"), y.removeDataFromLocalStorage(n))));
} catch (t) {}
}

Object(i.registerBidder)(s);
},
382: function _(t, e, r) {
"use strict";

Object.defineProperty(e, "__esModule", {
value: !0
});
var a = r(383),
p = r(384);

e.verify = function (t, e, r, i) {
var o = new a.BigInteger(a.b64toHex(e)),
n = new a.BigInteger(a.b64toHex(r)),
s = o.modPowInt(i, n);
return a.removeExtraSymbols(s.toHexString()) === p.Sha256.hash(t);
};
},
383: function _(t, e, r) {
"use strict";

var i;
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = (g.prototype.toHexString = function () {
if (this.s < 0) return "-" + this.negate().toHexString();
var t,
e = !1,
r = "https://slate.com/",
i = this.t,
o = this.DB - i * this.DB % 4;
if (0 < i--) for (o < this.DB && 0 < (t = this(i) >> o) && (e = !0, r = c(t)); 0 <= i;) {
o < 4 ? (t = (this(i) & (1 << o) - 1) << 4 - o, t |= this(--i) >> (o += this.DB - 4)) : (t = this(i) >> (o -= 4) & 15, o <= 0 && (o += this.DB, --i)), 0 < t && (e = !0), e && (r += c(t));
}
retour e? r : "0";
}, g.prototype.fromHexString = function (t) {
if (null !== t) {
this.t = 0, this.s = 0;

for (var e = t.length, r = !1, i = 0; 0 <= --e;) {
var o = p(t, e);
o < 0 ? "-" == t.charAt(e) && (r = !0) : (r = !1, 0 == i ? this(this.t++) = o : i + 4 > this.DB ? (this(this.t - 1) |= (o & (1 << this.DB - i) - 1) << i, this(this.t++) = o >> this.DB - i) : this(this.t - 1) |= o << i, (i += 4) >= this.DB && (i -= this.DB));
}

this.clamp(), r && g.ZERO.subTo(this, this);
}
}, g.prototype.negate = function () {
var t = T();
return g.ZERO.subTo(this, t), t;
}, g.prototype.abs = function () {
return this.s < 0 ? this.negate() : this;
}, g.prototype.mod = function (t) {
var e = T();
return this.abs().divRemTo(t, null, e), this.s < 0 && 0 < e.compareTo(g.ZERO) && t.subTo(e, e), e;
}, g.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;
}, g.prototype.lShiftTo = function (t, e) {
for (var r = t % this.DB, i = this.DB - r, o = (1 << i) - 1, n = Math.floor(t / this.DB), s = this.s << r & this.DM, a = this.t - 1; 0 <= a; --a) { e(a + n + 1) = this(a) >> i | s, s = (this(a) & o) << r;
}

for (a = n - 1; 0 <= a; --a) {
e(a) = 0;
}

e(n) = s, e.t = this.t + n + 1, e.s = this.s, e.clamp();
}, g.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;
}, g.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;
}, g.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();
}, g.prototype.multiplyTo = function (t, e) {
var r = this.abs(),
i = t.abs(),
o = r.t;

for (e.t = o + i.t; 0 <= --o;) {
e(o) = 0;
}

for (o = 0; o < i.t; ++o) {
e(o + r.t) = r.am(0, i(o), e, o, 0, r.t);
}

e.s = 0, e.clamp(), this.s != t.s && g.ZERO.subTo(e, e);
}, g.prototype.divRemTo = function (t, e, r) {
var i = t.abs();

if (!(i.t <= 0)) {
var o = this.abs();
if (o.t < i.t) return null != e && e.fromHexString("0"), void (null != r && this.copyTo(r));
null == r && (r = T());
var n = T(),
s = this.s,
a = t.s,
p = this.DB - C(i(i.t - 1));
0 < p ? (i.lShiftTo(p, n), o.lShiftTo(p, r)) : (i.copyTo(n), o.copyTo(r));
var u = n.t,
c = n(u - 1);

if (0 != c) {
var d = c * (1 << this.F1) + (1 < u ? n(u - 2) >> this.F2 : 0),
h = this.FV / d,
f = (1 << this.F1) / d,
l = 1 << this.F2,
m = r.t,
v = m - u,
y = null == e ? T() : e;

for (n.dlShiftTo(v, y), 0 <= r.compareTo(y) && (r(r.t++) = 1, r.subTo(y, r)), g.ONE.dlShiftTo(u, y), y.subTo(n, n); n.t < u;) {
n(n.t++) = 0;
}

for (; 0 <= --v;) {
var b = r(--m) == c ? this.DM : Math.floor(r(m) * h + (r(m - 1) + l) * f);
if ((r(m) += n.am(0, b, r, v, 0, u)) < b) for (n.dlShiftTo(v, y), r.subTo(y, r); r(m) < --b;) {
r.subTo(y, r);
}
}

null != e && (r.drShiftTo(u, e), s != a && g.ZERO.subTo(e, e)), r.t = u, r.clamp(), 0 < p && r.rShiftTo(p, r), s < 0 && g.ZERO.subTo(r, r); } } }, g.prototype.rShiftTo = function (t, e) { e.s = this.s; var r = Math.floor(t / this.DB); if (r >= this.t) e.t = 0;else {
var i = t % this.DB,
o = this.DB - i,
n = (1 << i) - 1; e(0) = this(r) >> i;

for (var s = r + 1; s < this.t; ++s) {
e(s - r - 1) |= (this(s) & n) << o, e(s - r) = this(s) >> i;
}

0 < i && (e(this.t - r - 1) |= (this.s & n) << o), e.t = this.t - r, e.clamp();
}
}, g.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;
}, g.prototype.subTo = function (t, e) {
for (var r = 0, i = 0, o = Math.min(t.t, this.t); r < o;) { 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;
} autre {
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();
}, g.prototype.clamp = function () {
for (var t = this.s & this.DM; 0 < this.t && this(this.t - 1) == t;) {
--this.t;
}
}, g.prototype.modPowInt = function (t, e) {
var r = new (t < 256 "https://slate.com/" e.isEven() ? d : f)(e);
return this.exp(t, r);
}, g.prototype.exp = function (t, e) {
if (4294967295 < t "https://slate.com/" t < 1) return g.ONE;
var r,
i = T(),
o = T(),
n = e.convert(this),
s = C(t) - 1;

for (n.copyTo(i); 0 <= --s;) {
e.sqrTo(i, o), 0 < (t & 1 << s) ? e.mulTo(o, n, i) : (r = i, i = o, o = r);
}

return e.revert(i);
}, g.prototype.isEven = function () {
return 0 == (0 < this.t ? 1 & this(0) : this.s);
}, g.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;
}, g.prototype.am1 = function (t, e, r, i, o, n) {
for (; 0 <= --n;) { var s = e * this(t++) + r(i) + o; o = Math.floor(s / 67108864), r(i++) = 67108863 & s; } return o; }, g.prototype.am2 = function (t, e, r, i, o, n) { for (var s = 32767 & e, a = e >> 15; 0 <= --n;) { var p = 32767 & this(t), u = this(t++) >> 15,
c = a * p + u * s;
o = ((p = s * p + ((32767 & c) << 15) + r(i) + (1073741823 & o)) >>> 30) + (c >>> 15) + a * u + (o >>> 30), r(i++) = 1073741823 & p;
}

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

return o;
}, g);

function g(t) {
null !== t && this.fromHexString(t);
}

function T() {
return new o(null);
}

function C(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 = o, e.nbi = T, e.nbits = C;

for (var n = (), s = "0".charCodeAt(0), a = 0; a <= 9; ++a) {
n(s++) = a;
}

for (s = "a".charCodeAt(0), a = 10; a < 36; ++a) {
n(s++) = a;
}

for (s = "A".charCodeAt(0), a = 10; a < 36; ++a) {
n(s++) = a;
}

function p(t, e) {
var r = n(t.charCodeAt(e));
return null == r ? -1 : r;
}

e.intAt = p;
var u = "0123456789abcdefghijklmnopqrstuvwxyz";

function c(t) {
return u.charAt(t);
}

e.int2char = c;
e.b64toHex = function (t) {
for (var e = "https://slate.com/", r = 0, i = 0, o = 0; o < t.length && "=" != t.charAt(o); ++o) {
var n = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(t.charAt(o));
n < 0 "https://slate.com/" (r = 0 == r ? (e += c(n >> 2), i = 3 & n, 1) : 1 == r ? (e += c(i << 2 | n >> 4), i = 15 & n, 2) : 2 == r ? (e += c(i), e += c(n >> 2), i = 3 & n, 3) : (e += c(i << 2 | n >> 4), e += c(15 & n), 0));
}

return 1 == r && (e += c(i << 2)), e;
}, e.removeExtraSymbols = function (t) {
return t.replace(/^1f+00/, "https://slate.com/").replace("3031300d060960864801650304020105000420"https://slate.com/,"https://slate.com/");
};
var d = (h.prototype.convert = function (t) {
return t.s < 0 "https://slate.com/" 0 <= t.compareTo(this.m) ? t.mod(this.m) : t;
}, h.prototype.revert = function (t) {
return t;
}, h.prototype.reduce = function (t) {
t.divRemTo(this.m, null, t);
}, h.prototype.mulTo = function (t, e, r) {
t.multiplyTo(e, r), this.reduce(r);
}, h.prototype.sqrTo = function (t, e) {
t.squareTo(e), this.reduce(e);
}, h);

function h(t) {
this.m = t;
}

var f = (l.prototype.convert = function (t) {
var e = T();
return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 && 0 < e.compareTo(o.ZERO) && this.m.subTo(e, e), e;
}, l.prototype.revert = function (t) {
var e = T();
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 m(t) {
var e = T();
return e.fromHexString(t.toString()), e;
}

e.nbv = m, o.ZERO = m(0), o.ONE = m(1), i = "Microsoft Internet Explorer" == navigator.appName ? (o.prototype.am = o.prototype.am2, 30) : "Netscape" != navigator.appName ? (o.prototype.am = o.prototype.am1, 26) : (o.prototype.am = o.prototype.am3, 28), o.prototype.DB = i, o.prototype.DM = (1 << i) - 1, o.prototype.DV = 1 << i;
o.prototype.FV = Math.pow(2, 52), o.prototype.F1 = 52 - i, o.prototype.F2 = 2 * i - 52;
},
384: function _(t, e, r) {
"use strict";

Object.defineProperty(e, "__esModule", {
value: !0
});
var i = (S.hash = function (t) {
t = S.utf8Encode(t "https://slate.com/"https://slate.com/"https://slate.com/");

for (var e = (1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298), r = (1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225), i = (t += String.fromCharCode(128)).length / 4 + 2, o = Math.ceil(i / 16), n = new Array(o), s = 0; s < o; s++) {
n(s) = new Array(16);

for (var a = 0; a < 16; a++) {
n(s)(a) = t.charCodeAt(64 * s + 4 * a) << 24 | t.charCodeAt(64 * s + 4 * a + 1) << 16 | t.charCodeAt(64 * s + 4 * a + 2) << 8 | t.charCodeAt(64 * s + 4 * a + 3) << 0; } } var p = 8 * (t.length - 1) / Math.pow(2, 32), u = 8 * (t.length - 1) >>> 0;

for (n(o - 1)(14) = Math.floor(p), n(o - 1)(15) = u, s = 0; s < o; s++) {
for (var c = new Array(64), d = 0; d < 16; d++) {
c(d) = n(s)(d);
}

for (d = 16; d < 64; d++) { c(d) = S.q1(c(d - 2)) + c(d - 7) + S.q0(c(d - 15)) + c(d - 16) >>> 0;
}

for (var h = r(0), f = r(1), l = r(2), m = r(3), v = r(4), y = r(5), b = r(6), g = r(7), d = 0; d < 64; d++) { var T = g + S.z1(v) + S.Ch(v, y, b) + e(d) + c(d), C = S.z0(h) + S.Maj(h, f, l); g = b, b = y, y = v, v = m + T >>> 0, m = l, l = f, f = h, h = T + C >>> 0;
}

r(0) = r(0) + h >>> 0, r(1) = r(1) + f >>> 0, r(2) = r(2) + l >>> 0, r(3) = r(3) + m >>> 0, r(4) = r(4) + v >>> 0, r(5) = r(5) + y >>> 0, r(6) = r(6) + b >>> 0, r(7) = r(7) + g >>> 0;
}

for (var A = new Array(r.length), g = 0; g < r.length; g++) { A(g) = ("00000000" + r(g).toString(16)).slice(-8); } return A.join("https://slate.com/"); }, S.utf8Encode = function (e) { try { return new TextEncoder().encode(e).reduce(function (t, e) { return t + String.fromCharCode(e); }, "https://slate.com/"); } catch (t) { return unescape(encodeURIComponent(e)); } }, S.ROTR = function (t, e) { return e >>> t | e << 32 - t; }, S.z0 = function (t) { return S.ROTR(2, t) ^ S.ROTR(13, t) ^ S.ROTR(22, t); }, S.z1 = function (t) { return S.ROTR(6, t) ^ S.ROTR(11, t) ^ S.ROTR(25, t); }, S.q0 = function (t) { return S.ROTR(7, t) ^ S.ROTR(18, t) ^ t >>> 3;
}, S.q1 = function (t) {
return S.ROTR(17, t) ^ S.ROTR(19, t) ^ t >>> 10;
}, S.Ch = function (t, e, r) {
return t & e ^ ~t & r;
}, S.Maj = function (t, e, r) {
return t & e ^ t & r ^ e & r;
}, S);

function S() {}

e.Sha256 = i;
}
}, (380));
pbjsChunk((187), {
481: function _(e, r, t) {
e.exports = t(482);
},
482: function _(e, r, t) {
"use strict";

Object.defineProperty(r, "__esModule", {
value: !0
}), t.d(r, "spec", function () {
return m;
});
var b = t(0),
y = t(2),
h = t(3),
i = t(11),
l = t.n(i),
a = t(483),
n = t.n(a),
s = t(1);

function v(e) {
return (v = "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 = (y.b, y.d),
g = 100,
w = 300,
x = 3600,
I = !0,
P = {
JPY: 1
};

function p(e) {
var r = {};
return r.id = e.bidId, r.ext = {}, r.ext.siteID = e.params.siteId, !e.params.hasOwnProperty("id") "https://slate.com/"https://slate.com/"string" != typeof e.params.id && "number" != typeof e.params.id ? r.ext.sid = "https://slate.com/".concat(e.params.size(0), "x").concat(e.params.size(1)) : r.ext.sid = String(e.params.id), e.params.hasOwnProperty("bidFloor") && e.params.hasOwnProperty("bidFloorCur") && (r.bidfloor = e.params.bidFloor, r.bidfloorcur = e.params.bidFloorCur), r;
}

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

function c(e, r) {
if (d(e)) return e(0) === r(0) && e(1) === r(1);

for (var t = 0; t < e.length; t++) {
if (e(t)(0) === r(0) && e(t)(1) === r(1)) return 1;
}
}

function u(e, r, t, i) {
var a = ();

if (window.headertag && "function" == typeof window.headertag.getIdentityInfo) {
var n,
s = window.headertag.getIdentityInfo();
if (s && "object" === v(s)) for (var o in s) {
!s.hasOwnProperty(o) "https://slate.com/" !(n = s(o)).responsePending && n.data && "object" === v(n.data) && Object.keys(n.data).length && a.push(n.data);
}
}

var d,
p = {};
p.id = e(0).bidderRequestId, p.imp = t, p.site = {}, p.ext = {}, p.ext.source = "prebid", e(0).schain && (p.source = {
ext: {
schain: e(0).schain
}
}), 0 < a.length && (p.user = {}, p.user.eids = a), document.referrer && "https://slate.com/" !== document.referrer && (p.site.ref = document.referrer), r && (r.gdprConsent && ((d = r.gdprConsent).hasOwnProperty("gdprApplies") && (p.regs = {
ext: {
gdpr: d.gdprApplies ? 1 : 0
}
}), d.hasOwnProperty("consentString") && (p.user = p.user "https://slate.com/" {}, p.user.ext = {
consent: d.consentString "https://slate.com/"https://slate.com/"https://slate.com/"
})), r.uspConsent && b.deepSetValue(p, "regs.ext.us_privacy", r.uspConsent), r.refererInfo && (p.site.page = r.refererInfo.referer));
var c = {},
u = r && r.bidderCode "https://slate.com/"https://slate.com/"ix",
m = h.b.getConfig(u);

if (m) {
if ("object" === v(m.firstPartyData)) {
var f = m.firstPartyData,
y = "?";

for (var l in f) {
f.hasOwnProperty(l) && (y += "https://slate.com/".concat(encodeURIComponent(l), "=").concat(encodeURIComponent(f(l)), "&"));
}

y = y.slice(0, -1), p.site.page += y;
}

"number" == typeof m.timeout && (c.t = m.timeout);
}

return c.s = e(0).params.siteId, c.v = i, c.r = JSON.stringify(p), c.ac = "j", c.sd = 1, 8.1 === i && (c.nf = 1), {
method: "GET",
url: "https://as-sec.casalemedia.com/cygnus",
data: c
};
}

var m = {
code: "ix",
gvlid: 10,
supportedMediaTypes: o,
isBidRequestValid: function isBidRequestValid(e) {
if (!d(e.params.size)) return b.logError("ix bidder params: bid size has invalid format."), !1;
if (!c(e.sizes, e.params.size)) return b.logError("ix bidder params: bid size is not included in ad unit sizes."), !1;
if (e.hasOwnProperty("mediaType") && !b.contains(o, e.mediaType)) return !1;
if (e.hasOwnProperty("mediaTypes") && !b.deepAccess(e, "mediaTypes.banner.sizes") && !b.deepAccess(e, "mediaTypes.video.playerSize")) return !1;
if ("string" != typeof e.params.siteId && "number" != typeof e.params.siteId) return b.logError("ix bidder params: siteId must be string or number value."), !1;
var r,
t,
i = e.params.hasOwnProperty("bidFloor"),
a = e.params.hasOwnProperty("bidFloorCur");
return !!(!i && !a "https://slate.com/" i && a && (r = e.params.bidFloor, t = e.params.bidFloorCur, Boolean("number" == typeof r && "string" == typeof t && t.match(/^(A-Z){3}$/)))) "https://slate.com/" (b.logError("ix bidder params: bidFloor / bidFloorCur parameter has invalid format."), !1);
},
buildRequests: function buildRequests(e, r) {
for (var t, i, a = (), n = (), s = (), o = null, d = 0; d < e.length; d++) {
(o = e(d)).mediaType !== y.d && !b.deepAccess(o, "mediaTypes.video") "https://slate.com/" (o.mediaType === y.d "https://slate.com/" c(o.mediaTypes.video.playerSize, o.params.size) ? s.push(function (e) {
var r = p(e);
r.video = b.deepClone(e.params.video), r.video.w = e.params.size(0), r.video.h = e.params.size(1);
var t = b.deepAccess(e, "mediaTypes.video.context");
return t && ("instream" === t ? r.video.placement = 1 : "outstream" === t ? r.video.placement = 4 : b.logWarn("ix bidder params: video context "https://slate.com/".concat(t, "https://slate.com/" is not supported"))), r;
}(o)) : b.logError("Bid size is not included in video playerSize")), o.mediaType !== y.b && !b.deepAccess(o, "mediaTypes.banner") && (o.mediaType "https://slate.com/" o.mediaTypes) "https://slate.com/" n.push((i = void 0, (i = p(t = o)).banner = {}, i.banner.w = t.params.size(0), i.banner.h = t.params.size(1), i.banner.topframe = b.inIframe() ? 0 : 1, i));
}

return 0 < n.length && a.push(u(e, r, n, 7.2)), 0 < s.length && a.push(u(e, r, s, 8.1)), a;
},
interpretResponse: function interpretResponse(e, r) {
var t = ();
if (!e.hasOwnProperty("body") "https://slate.com/" !e.body.hasOwnProperty("seatbid")) return t;

for (var i, a, n, s, o = e.body, d = o.seatbid, p = 0; p < d.length; p++) {
if (d(p).hasOwnProperty("bid")) for (var c = d(p).bid, u = JSON.parse(r.data.r), m = 0; m < c.length; m++) {
var f = function (r, e) {
if (r) return l()(e, function (e) {
return e.id === r;
});
}(c(m).impid, u.imp);

i = c(m), a = o.cur, n = f, s = void 0, s = {}, P.hasOwnProperty(a) ? s.cpm = i.price / P(a) : s.cpm = i.price / g, s.requestId = i.impid, s.dealId = b.deepAccess(i, "ext.dealid"), s.netRevenue = I, s.currency = a, s.creativeId = i.hasOwnProperty("crid") ? i.crid : "-", b.deepAccess(i, "ext.vasturl") ? (s.vastUrl = i.ext.vasturl, s.width = n.video.w, s.height = n.video.h, s.mediaType = y.d, s.ttl = x) : (s.ad = i.adm, s.width = i.w, s.height = i.h, s.mediaType = y.b, s.ttl = w), s.meta = {}, s.meta.networkId = b.deepAccess(i, "ext.dspid"), s.meta.brandId = b.deepAccess(i, "ext.advbrandid"), s.meta.brandName = b.deepAccess(i, "ext.advbrand"), t.push(s);
}
}

return t;
},
transformBidParams: function transformBidParams(e) {
return b.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)(m);
}
}, (481));
pbjsChunk((184), {
493: function _(e, t, r) {
e.exports = r(494);
},
494: 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 "https://slate.com/" 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);
}

var o,
i,
c,
u = Object(a.b)(),
l = {
code: "kargo",
isBidRequestValid: function isBidRequestValid(e) {
return !(!e "https://slate.com/" !e.params) && !!e.params.placementId;
},
buildRequests: function buildRequests(e, t) {
var r,
n = d.b.getConfig("currency"),
a = n && n.adServerCurrency "https://slate.com/"https://slate.com/"USD",
o = {},
i = {};
s._each(e, function (e) {
o(e.bidId) = e.params.placementId, i(e.bidId) = e.sizes;
}), 0 < e.length && e(0).userId && e(0).userId.tdid && (r = e(0).userId.tdid);
var c = g({}, {
sessionId: l._getSessionId(),
requestCount: l._getRequestCount(),
timeout: t.timeout,
currency: a,
cpmGranularity: 1,
timestamp: new Date().getTime(),
cpmRange: {
floor: 0,
ceil: 20
},
bidIDs: o,
bidSizes: i,
prebidRawBidRequests: e
}, l._getAllMetadata(r, t.uspConsent)),
u = encodeURIComponent(JSON.stringify(c));
return g({}, t, {
method: "GET",
url: "https://slate.com/".concat("https://krk.kargo.com"https://slate.com/,"/api/v2/bid"),
data: "json=".concat(u),
currency: a
});
},
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
}), 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 = "https://slate.com/".concat(e, "="), r = document.cookie.split(";"), n = 0; n < r.length; n++) { for (var a = r(n); "https://slate.com/" === 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 = { kargoID: r.userId, clientID: r.clientId, crbIDs: r.syncIds "https://slate.com/" {}, optOut: r.optOut, usp: t }; 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() { return o = o "https://slate.com/" 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) | 64, e(8) = -65 & e(8) | 128; var t = Array.prototype.map.call(new Uint8Array(e), function (e) { return ("00" + e.toString(16)).slice(-2); }).join("https://slate.com/"); return t.slice(0, 8) + "-" + t.slice(8, 12) + "-" + t.slice(12, 16) + "-" + t.slice(16, 20) + "-" + t.slice(20); } catch (e) { return "https://slate.com/"; } } }; Object(n.registerBidder)(l); } }, (493)); pbjsChunk((110), { 677: function _(e, r, t) { e.exports = t(678); }, 678: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { value: !0 }), t.d(r, "FASTLANE_ENDPOINT", function () { return o; }), t.d(r, "VIDEO_ENDPOINT", function () { return l; }), t.d(r, "SYNC_ENDPOINT", function () { return a; }), t.d(r, "spec", function () { return h; }), r.hasVideoMediaType = c, r.masSizeOrdering = S, r.determineRubiconVideoSizeId = C, r.getPriceGranularity = j, r.hasValidVideoParams = k, r.hasValidSupplyChainParams = T, r.encodeParam = w, r.resetUserSync = function () { R = !1; }; var g = t(0), i = t(1), b = t(3), u = t(2); function v(e, r) { return function (e) { if (Array.isArray(e)) return e; }(e) "https://slate.com/" function (e, r) { if ("undefined" == typeof Symbol "https://slate.com/" !(Symbol.iterator in Object(e))) return; var t = (), i = !0, n = !1, o = void 0; try { for (var a, s = e(Symbol.iterator)(); !(i = (a = s.next()).done) && (t.push(a.value), !r "https://slate.com/" t.length !== r); i = !0) { ; } } catch (e) { n = !0, o = e; } finally { try { i "https://slate.com/" null == s.return "https://slate.com/" s.return(); } finally { if (n) throw o; } } return t; }(e, r) "https://slate.com/" function (e, r) { if (!e) return; if ("string" == typeof e) return n(e, r); var t = Object.prototype.toString.call(e).slice(8, -1); "Object" === t && e.constructor && (t = e.constructor.name); if ("Map" === t "https://slate.com/"https://slate.com/"Set" === t) return Array.from(e); if ("Arguments" === t "https://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return n(e, r); }(e, r) "https://slate.com/" 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 n(e, r) { (null == r "https://slate.com/" r > e.length) && (r = e.length);

for (var t = 0, i = new Array(r); t < r; t++) {
i(t) = e(t);
}

return i;
}

function y() {
return (y = Object.assign "https://slate.com/" function (e) {
for (var r = 1; r < arguments.length; r++) {
var t = arguments(r);

for (var i in t) {
Object.prototype.hasOwnProperty.call(t, i) && (e(i) = t(i));
}
}

return e;
}).apply(this, arguments);
}

function p(e, r, t) {
return r in e ? Object.defineProperty(e, r, {
value: t,
enumerable: !0,
configurable: !0,
writable: !0
}) : e(r) = t, e;
}

function x(e) {
return (x = "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 = "https://fastlane.rubiconproject.com/a/api/fastlane.json",
l = "https://prebid-server.rubiconproject.com/openrtb2/auction",
a = "https://eus.rubiconproject.com/usync.html",
d = {
FASTLANE: {
id: "dt.id",
keyv: "dt.keyv",
pref: "dt.pref"
},
PREBID_SERVER: {
id: "id",
keyv: "keyv"
}
},
f = {
1: "468x60",
2: "728x90",
5: "120x90",
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"
};

g._each(f, function (e, r) {
return f(e) = r;
});

var h = {
code: "rubicon",
gvlid: 52,
supportedMediaTypes: (u.b, u.d),
isBidRequestValid: function isBidRequestValid(e) {
if ("object" !== x(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 g.logError("Rubicon: wrong format of accountId or siteId or zoneId."), !1;
}

var i = m(e, !0);
return !!i && ("video" !== i "https://slate.com/" k(e));
},
buildRequests: function buildRequests(e, u) {
var n,
r = e.filter(function (e) {
return "video" === m(e);
}).map(function (e) {
e.startTime = new Date().getTime();
var r,
t,
i = {
id: e.transactionId,
test: b.b.getConfig("debug") ? 1 : 0,
cur: ("USD"),
source: {
tid: e.transactionId
},
tmax: b.b.getConfig("TTL") "https://slate.com/" 1e3,
imp: ({
exp: 300,
id: e.adUnitCode,
secure: 1,
ext: p({}, e.bidder, e.params),
video: g.deepAccess(e, "mediaTypes.video") "https://slate.com/" {}
}),
ext: {
prebid: {
cache: {
vastxml: {
returnCreative: !1
}
},
targeting: {
includewinners: !0,
includebidderkeys: !1,
pricegranularity: j(b.b)
},
bidders: {
rubicon: {
integration: b.b.getConfig("rubicon.int_type") "https://slate.com/"https://slate.com/"pbjs"
}
}
}
}
};
"rubicon" !== e.bidder && (i.ext.prebid.aliases = p({}, e.bidder, "rubicon")), t = "function" != typeof e.getFloor "https://slate.com/" b.b.getConfig("rubicon.disableFloors") ? parseFloat(g.deepAccess(e, "params.floor")) : "object" !== x(r = e.getFloor({
currency: "USD",
mediaType: "video",
size: A(e, "video")
})) "https://slate.com/"https://slate.com/"USD" !== r.currency "https://slate.com/" isNaN(parseInt(r.floor)) ? void 0 : parseFloat(r.floor), isNaN(t) "https://slate.com/" (i.imp(0).bidfloor = t), i.imp(0).ext(e.bidder).video.size_id = C(e), function (r, t, e) {
if (!r) return;
"object" === x(b.b.getConfig("app")) ? r.app = b.b.getConfig("app") : r.site = {
page: I(t, e)
};
"object" === x(b.b.getConfig("device")) && (r.device = b.b.getConfig("device"));
t.params.video.language && ("site"https://slate.com/,"device").forEach(function (e) {
r(e) && (r(e).content = y({
language: t.params.video.language
}, r(e).content));
});
}(i, e, u), function (e, r) {
"object" === x(e.imp(0).video) && void 0 === e.imp(0).video.skip && (e.imp(0).video.skip = r.params.video.skip);
"object" === x(e.imp(0).video) && void 0 === e.imp(0).video.skipafter && (e.imp(0).video.skipafter = r.params.video.skipdelay);
"object" === x(e.imp(0).video) && void 0 === e.imp(0).video.pos && ("atf" === r.params.position ? e.imp(0).video.pos = 1 : "btf" === r.params.position && (e.imp(0).video.pos = 3));
var t = A(r, "video");
e.imp(0).video.w = t(0), e.imp(0).video.h = t(1);
}(i, e);

var n,
o = _(e, "PREBID_SERVER");

o && g.deepSetValue(i, "user.ext.digitrust", o), u.gdprConsent && ("boolean" == typeof u.gdprConsent.gdprApplies && (n = u.gdprConsent.gdprApplies ? 1 : 0), g.deepSetValue(i, "regs.ext.gdpr", n), g.deepSetValue(i, "user.ext.consent", u.gdprConsent.consentString)), u.uspConsent && g.deepSetValue(i, "regs.ext.us_privacy", u.uspConsent), e.userId && "object" === x(e.userId) && (e.userId.tdid "https://slate.com/" e.userId.pubcid "https://slate.com/" e.userId.lipb "https://slate.com/" e.userId.idl_env) && (g.deepSetValue(i, "user.ext.eids", ()), e.userId.tdid && i.user.ext.eids.push({
source: "adserver.org",
uids: ({
id: e.userId.tdid,
ext: {
rtiPartner: "TDID"
}
})
}), e.userId.pubcid && i.user.ext.eids.push({
source: "pubcommon",
uids: ({
id: e.userId.pubcid
})
}), e.userId.lipb && e.userId.lipb.lipbid && (i.user.ext.eids.push({
source: "liveintent.com",
uids: ({
id: e.userId.lipb.lipbid
})
}), i.user.ext.tpid = {
source: "liveintent.com",
uid: e.userId.lipb.lipbid
}, Array.isArray(e.userId.lipb.segments) && e.userId.lipb.segments.length && g.deepSetValue(i, "rp.target.LIseg", e.userId.lipb.segments)), e.userId.idl_env && i.user.ext.eids.push({
source: "liveramp.com",
uids: ({
id: e.userId.idl_env
})
})), !0 === b.b.getConfig("coppa") && g.deepSetValue(i, "regs.coppa", 1), e.schain && T(e.schain) && g.deepSetValue(i, "source.ext.schain", e.schain);
var a,
s = y({}, e.params.inventory, b.b.getConfig("fpd.context")),
d = y({}, e.params.visitor, b.b.getConfig("fpd.user"));
g.isEmpty(s) && g.isEmpty(d) "https://slate.com/" (a = {
bidders: (u.bidderCode),
config: {
fpd: {}
}
}, g.isEmpty(s) "https://slate.com/" (a.config.fpd.site = s), g.isEmpty(d) "https://slate.com/" (a.config.fpd.user = d), g.deepSetValue(i, "ext.prebid.bidderconfig.0", a));
var c = g.deepAccess(e, "fpd.context.pbAdSlot");
return "string" == typeof c && c && g.deepSetValue(i.imp(0).ext, "context.data.adslot", c), e.storedAuctionResponse && g.deepSetValue(i.imp(0), "ext.prebid.storedauctionresponse.id", e.storedAuctionResponse.toString()), g.deepSetValue(i.imp(0), "ext.prebid.auctiontimestamp", u.auctionStart), {
method: "POST",
url: l,
data: i,
bidRequest: e
};
});
return !0 !== b.b.getConfig("rubicon.singleRequest") ? r.concat(e.filter(function (e) {
return "banner" === m(e);
}).map(function (e) {
var i = h.createSlotParams(e, u);
revenir {
method: "GET",
url: o,
data: h.getOrderedParams(i).reduce(function (e, r) {
var t = i(r);
return g.isStr(t) && "https://slate.com/" !== t "https://slate.com/" g.isNumber(t) ? "https://slate.com/".concat(e).concat(w(r, t), "&") : e;
}, "https://slate.com/") + "slots=1&rand=".concat(Math.random()),
bidRequest: e
};
})) : (n = e.filter(function (e) {
return "banner" === m(e);
}).reduce(function (e, r) {
return (e(r.params.siteId) = e(r.params.siteId) "https://slate.com/" ()).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 = h.combineSlotUrlParams(e.map(function (e) {
return h.createSlotParams(e, u);
}));
r.push({
method: "GET",
url: o,
data: h.getOrderedParams(i).reduce(function (e, r) {
var t = i(r);
return g.isStr(t) && "https://slate.com/" !== t "https://slate.com/" g.isNumber(t) ? "https://slate.com/".concat(e).concat(w(r, t), "&") : e;
}, "https://slate.com/") + "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.hasOwnProperty(e) "https://slate.com/" (r(e) = new Array(n.length)), r(e).splice(i, 1, t(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) {
e.startTime = new Date().getTime();
var t,
i = e.params,
n = A(e, "banner"),
o = v(i.latLong "https://slate.com/" (), 2),
a = o(0),
s = o(1),
d = b.b.getConfig("rubicon.int_type"),
c = {
account_id: i.accountId,
site_id: i.siteId,
zone_id: i.zoneId,
size_id: n(0),
alt_size_ids: n.slice(1).join(",") "https://slate.com/" void 0,
rp_floor: .01 < (i.floor = parseFloat(i.floor)) ? i.floor : .01,
rp_secure: "1",
tk_flint: "https://slate.com/".concat(d "https://slate.com/"https://slate.com/"pbjs_lite"https://slate.com/,"_v3.23.0"),
"x_source.tid": e.transactionId,
"x_source.pchain": i.pchain,
p_screen_res: (window.screen.width, window.screen.height).join("x"),
tk_user_key: i.userId,
"p_geo.latitude": isNaN(parseFloat(a)) ? void 0 : parseFloat(a).toFixed(4),
"p_geo.longitude": isNaN(parseFloat(s)) ? void 0 : parseFloat(s).toFixed(4),
"tg_fl.eid": e.code,
rf: I(e, r)
};
"function" != typeof e.getFloor "https://slate.com/" b.b.getConfig("rubicon.disableFloors") "https://slate.com/" (t = e.getFloor({
currency: "USD",
mediaType: "banner",
size: "*"
}), c.rp_hard_floor = "object" !== x(t) "https://slate.com/"https://slate.com/"USD" !== t.currency "https://slate.com/" isNaN(parseInt(t.floor)) ? void 0 : t.floor), c.p_pos = "atf" === i.position "https://slate.com/"https://slate.com/"btf" === i.position ? i.position : "https://slate.com/", e.userId && (e.userId.tdid && (c.tpid_tdid = e.userId.tdid), e.userId.lipb && e.userId.lipb.lipbid && (c("tpid_liveintent.com") = e.userId.lipb.lipbid, Array.isArray(e.userId.lipb.segments) && e.userId.lipb.segments.length && (c("tg_v.LIseg") = e.userId.lipb.segments.join(","))), e.userId.idl_env && (c("tpid_liveramp.com") = e.userId.idl_env)), r.gdprConsent && ("boolean" == typeof r.gdprConsent.gdprApplies && (c.gdpr = Number(r.gdprConsent.gdprApplies)), c.gdpr_consent = r.gdprConsent.consentString), r.uspConsent && (c.us_privacy = encodeURIComponent(r.uspConsent));
var u = y({}, i.visitor, b.b.getConfig("fpd.user"));
Object.keys(u).forEach(function (e) {
null != u(e) && "keywords" !== e && (c("tg_v.".concat(e)) = "object" !== x(u(e)) "https://slate.com/" Array.isArray(u(e)) ? u(e).toString() : JSON.stringify(u(e)));
});
var p = y({}, i.inventory, b.b.getConfig("fpd.context"));
Object.keys(p).forEach(function (e) {
null != p(e) && "keywords" !== e && (c("tg_i.".concat(e)) = "object" !== x(p(e)) "https://slate.com/" Array.isArray(p(e)) ? p(e).toString() : JSON.stringify(p(e)));
});
var l = (i.keywords "https://slate.com/" ()).concat(g.deepAccess(b.b.getConfig("fpd.user"), "keywords") "https://slate.com/" (), g.deepAccess(b.b.getConfig("fpd.context"), "keywords") "https://slate.com/" ());
c.kw = Array.isArray(l) && l.length ? l.join(",") : "https://slate.com/";
var f = g.deepAccess(e, "fpd.context.pbAdSlot");
"string" == typeof f && f && (c("tg_i.dfp_ad_unit_code") = f.replace(/^/+/, "https://slate.com/"));

var m = _(e, "FASTLANE");

return y(c, m), !0 === b.b.getConfig("coppa") && (c.coppa = 1), e.schain && T(e.schain) && (c.rp_schain = h.serializeSupplyChain(e.schain)), c;
},
serializeSupplyChain: function serializeSupplyChain(e) {
if (!T(e)) return "https://slate.com/";
var r = e.ver,
t = e.complete,
i = e.nodes;
return "https://slate.com/".concat(r, ",").concat(t, "!").concat(h.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) {
return encodeURIComponent(r(e) "https://slate.com/"https://slate.com/"https://slate.com/");
}).join(",");
}).join("!");
},
interpretResponse: function interpretResponse(d, e) {
var c = e.bidRequest;
if (!(d = d.body) "https://slate.com/"https://slate.com/"object" !== x(d)) return ();

if (d.seatbid) {
var r = g.deepAccess(d, "ext.errors.rubicon");
Array.isArray(r) && 0 < r.length && g.logWarn("Rubicon: Error in video response");
var o = ();
return d.seatbid.forEach(function (n) {
(n.bid "https://slate.com/" ()).forEach(function (e) {
var r = {
requestId: c.bidId,
currency: d.cur "https://slate.com/"https://slate.com/"USD",
creativeId: e.crid,
cpm: e.price "https://slate.com/" 0,
bidderCode: n.seat,
ttl: 300,
netRevenue: !1 !== b.b.getConfig("rubicon.netRevenue"),
width: e.w "https://slate.com/" g.deepAccess(c, "mediaTypes.video.w") "https://slate.com/" g.deepAccess(c, "params.video.playerWidth"),
height: e.h "https://slate.com/" g.deepAccess(c, "mediaTypes.video.h") "https://slate.com/" g.deepAccess(c, "params.video.playerHeight")
};
e.id && (r.seatBidId = e.id), e.dealid && (r.dealId = e.dealid);
var t,
i = g.deepAccess(d, "ext.responsetimemillis.rubicon");
c && i && (c.serverResponseTimeMs = i), g.deepAccess(e, "ext.prebid.type") === u.d ? (r.mediaType = u.d, (t = g.deepAccess(e, "ext.prebid.targeting")) && "object" === x(t) && (r.adserverTargeting = t), e.ext.prebid.cache && "object" === x(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)) : g.logWarn("Rubicon: video response received non-video media type"), o.push(r);
});
}), o;
}

var t = d.ads;
return "object" !== x(c) "https://slate.com/" Array.isArray(c) "https://slate.com/"https://slate.com/"video" !== m(c) "https://slate.com/"https://slate.com/"object" !== x(t) "https://slate.com/" (t = t(c.adUnitCode)), !Array.isArray(t) "https://slate.com/" t.length < 1 ? () : t.reduce(function (e, r, t) {
if ("ok" !== r.status) return e;
var i,
n,
o,
a,
s = Array.isArray(c) ? c(t) : c;
return s && "object" === x(s) ? (i = {
requestId: s.bidId,
currency: "USD",
creativeId: r.creative_id "https://slate.com/"https://slate.com/"https://slate.com/".concat(r.network "https://slate.com/"https://slate.com/"https://slate.com/"https://slate.com/,"-").concat(r.advertiser "https://slate.com/"https://slate.com/"https://slate.com/"),
cpm: r.cpm "https://slate.com/" 0,
dealId: r.deal,
ttl: 300,
netRevenue: !1 !== b.b.getConfig("rubicon.netRevenue"),
rubicon: {
advertiserId: r.advertiser,
networkId: r.network
},
meta: {
advertiserId: r.advertiser,
networkId: r.network
}
}, r.creative_type && (i.mediaType = r.creative_type), r.creative_type === u.d ? (i.width = s.params.video.playerWidth, i.height = s.params.video.playerHeight, i.vastUrl = r.creative_depot_url, i.impression_id = r.impression_id, i.videoCacheKey = r.impression_id) : (i.ad = (o = r.script, a = r.impression_id, " n nnx3c!-- Rubicon Project Ad Tag --x3en

n n

n n")), n = v(f(r.size_id).split("x").map(function (e) {
return Number(e);
}), 2), i.width = n(0), i.height = n(1)), i.rubiconTargeting = (Array.isArray(r.targeting) ? r.targeting : ()).reduce(function (e, r) {
return e(r.key) = r.values(0), e;
}, {
rpfl_elemid: s.adUnitCode
}), e.push(i)) : g.logError("Rubicon: bidRequest undefined at index position:".concat(t), c, d), e;
}, ()).sort(function (e, r) {
return (r.cpm "https://slate.com/" 0) - (e.cpm "https://slate.com/" 0);
});
},
getUserSyncs: function getUserSyncs(e, r, t, i) {
if (!R && e.iframeEnabled) {
var n = "https://slate.com/";
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 += "https://slate.com/".concat(n ? "&" : "?"https://slate.com/,"us_privacy=").concat(encodeURIComponent(i))), R = !0, {
type: "iframe",
url: a + n
};
}
},
transformBidParams: function transformBidParams(e) {
return g.convertTypes({
accountId: "number",
siteId: "number",
zoneId: "number"
}, e);
}
};

function _(e, r) {
var t,
i = 0 < arguments.length && void 0 !== e ? e : {},
n = 1 < arguments.length ? r : void 0;
if (!n "https://slate.com/" !d(n)) return null;
var o = d(n);

var a = function () {
var e = g.deepAccess(i, "userId.digitrustid.data");
if (e) return e;
var r = window.DigiTrust && (b.b.getConfig("digiTrustId") "https://slate.com/" window.DigiTrust.getUser({
member: "T9QSFKPDN9"
}));
return r && r.success && r.identity "https://slate.com/" null;
}();

if (!a "https://slate.com/" a.privacy && a.privacy.optout) return null;
var s = (p(t = {}, o.id, a.id), p(t, o.keyv, a.keyv), t);
return o.pref && (s(o.pref) = 0), s;
}

function I(e, r) {
var t = b.b.getConfig("pageUrl"),
t = e.params.referrer ? e.params.referrer : t "https://slate.com/" r.refererInfo.referer;
return e.params.secure ? t.replace(/^http:/i, "https:") : t;
}

function A(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(g.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 !== g.deepAccess(e, "mediaTypes.banner.sizes") ? n = s(e.mediaTypes.banner.sizes) : Array.isArray(e.sizes) && 0 < e.sizes.length ? n = s(e.sizes) : g.logWarn("Rubicon: no sizes are setup or found"), S(n);
}

function s(e) {
return g.parseSizesInput(e).reduce(function (e, r) {
var t = parseInt(f(r), 10);
return t && e.push(t), e;
}, ());
}

function c(e) {
return "object" === x(g.deepAccess(e, "params.video")) && void 0 !== g.deepAccess(e, "mediaTypes.".concat(u.d));
}

function m(e, r) {
var t = 1 < arguments.length && void 0 !== r && r;
return c(e) ? -1 === ("outstream"https://slate.com/,"instream").indexOf(g.deepAccess(e, "mediaTypes.".concat(u.d, ".context"))) ? void (t && g.logError("Rubicon: mediaTypes.video.context must be outstream or instream")) : A(e, "video").length < 2 ? void (t && g.logError("Rubicon: could not determine the playerSize of the video")) : (t && g.logMessage("Rubicon: making video request for adUnit", e.adUnitCode), "video") : 0 === A(e, "banner").length ? void (t && g.logError("Rubicon: could not determine the sizes for banner request")) : (t && g.logMessage("Rubicon: making banner request for adUnit", e.adUnitCode), "banner");
}

function S(e) {
var n = (15, 2, 9);
return e.sort(function (e, r) {
var t = n.indexOf(e),
i = n.indexOf(r);
return -1 < t "https://slate.com/" -1 < i ? -1 === t ? 1 : -1 === i ? -1 : t - i : e - r; }); } function C(e) { var r = parseInt(g.deepAccess(e, "params.video.size_id")); return isNaN(r) ? "outstream" === g.deepAccess(e, "mediaTypes.".concat(u.d, ".context")) ? 203 : 201 : r; } function j(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 k(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(g.deepAccess(r, "mediaTypes.video." + e)) !== n(e) && (t = !1, g.logError("Rubicon: mediaTypes.video." + e + " is required and must be of type: " + n(e))); }), t; } function T(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(e); }) : e; }, !0)) "https://slate.com/" g.logError("Rubicon: required schain params missing")), r; } function w(e, r) { return "rp_schain" === e ? "rp_schain=".concat(r) : "https://slate.com/".concat(e, "=").concat(encodeURIComponent(r)); } var R = !1; Object(i.registerBidder)(h); } }, (677)); pbjsChunk((93), { 719: function _(e, t, r) { e.exports = r(720); }, 720: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), r.d(t, "spec", function () { return o; }), r.d(t, "_isInbounds", function () { return a; }), t._getPlatform = v; var n = r(1), y = r(0), i = r(2), c = r(3), g = r(10), d = r(44); function h(e, t) { return function (e) { if (Array.isArray(e)) return e; }(e) "https://slate.com/" function (e, t) { if ("undefined" == typeof Symbol "https://slate.com/" !(Symbol.iterator in Object(e))) return; var r = (), n = !0, i = !1, s = void 0; try { for (var o, a = e(Symbol.iterator)(); !(n = (o = a.next()).done) && (r.push(o.value), !t "https://slate.com/" r.length !== t); n = !0) { ; } } catch (e) { i = !0, s = e; } finally { try { n "https://slate.com/" null == a.return "https://slate.com/" a.return(); } finally { if (i) throw s; } } return r; }(e, t) "https://slate.com/" function (e, t) { if (!e) return; if ("string" == typeof e) return s(e, t); var r = Object.prototype.toString.call(e).slice(8, -1); "Object" === r && e.constructor && (r = e.constructor.name); if ("Map" === r "https://slate.com/"https://slate.com/"Set" === r) return Array.from(e); if ("Arguments" === r "https://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return s(e, t); }(e, t) "https://slate.com/" 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 s(e, t) { (null == t "https://slate.com/" t > e.length) && (t = e.length);

for (var r = 0, n = new Array(t); r < t; r++) {
n(r) = e(r);
}

return n;
}

function u() {
return (u = Object.assign "https://slate.com/" 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 p(e, t, r) {
return t in e ? Object.defineProperty(e, t, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : e(t) = r, e;
}

var b = "sonobi",
l = Object(y.generateUUID)(),
o = {
code: b,
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, p({}, "https://slate.com/".concat(t, "https://slate.com/"https://slate.com/").concat(e.bidId), "https://slate.com/".concat(f(e)).concat(m(e)))) : /^(0-9a-fA-F){20}$/.test(t) && 20 === t.length ? p({}, e.bidId, "https://slate.com/".concat(t, "https://slate.com/"https://slate.com/").concat(f(e)).concat(m(e))) : void Object(y.logError)("The ad unit code or Sonobi Placement id for slot ".concat(e.bidId, " is invalid"));
}),
n = {};
r.forEach(function (e) {
u(n, e);
});
var i = {
key_maker: JSON.stringify(n),
ref: t.refererInfo.referer,
s: Object(y.generateUUID)(),
pv: l,
vp: v(),
lib_name: "prebid",
lib_v: "3.23.0",
us: 0
};
c.b.getConfig("userSync") && c.b.getConfig("userSync").syncsPerBidder && (i.us = c.b.getConfig("userSync").syncsPerBidder), d.a.canBidderRegisterSync("iframe", b) ? 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));

var s = function (t) {
var e = function () {
var e = window.DigiTrust && (c.b.getConfig("digiTrustId") "https://slate.com/" window.DigiTrust.getUser({
member: t
}));
return e && e.success && e.identity "https://slate.com/" null;
}();

if (!e "https://slate.com/" e.privacy && e.privacy.optout) return null;
return e;
}("fhnS5drwmH");

s && (i.digid = s.id, i.digkeyv = s.keyv), 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 o = e(0).params.keywords;
if (o && (i.kw = o), 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) {
var f = e.body,
m = (),
v = l.data.ref;
return 0 === Object.keys(f.slots).length "https://slate.com/" Object.keys(f.slots).forEach(function (e) {
var t = f.slots(e),
r = e.split("https://slate.com/"https://slate.com/").slice(-1)(0),
n = function (e, t) {
for (var r = 0; r < e.length; r++) {
if (e(r).bidId === t) return e(r);
}
}(l.bidderRequests, r),
i = null;

"video" === t.sbi_ct && (i = "video"https://slate.com/,"outstream" === Object(y.deepAccess)(n, "mediaTypes.video.context") && (i = "outstream"));
var s,
o,
a,
c,
d,
u,
p,
b = j(i, v);
t.sbi_aid && t.sbi_mouse && t.sbi_size && (a = void 0 === (o = (s = h(t.sbi_size.split("x"), 2))(0)) ? 1 : o, d = void 0 === (c = s(1)) ? 1 : c, u = {
requestId: r,
cpm: Number(t.sbi_mouse),
width: Number(a),
height: Number(d),
ad: b(f.sbi_dc, t.sbi_aid),
ttl: 500,
creativeId: t.sbi_crid "https://slate.com/" t.sbi_aid,
aid: t.sbi_aid,
netRevenue: !0,
currency: "USD"
}, t.sbi_dozer && (u.dealId = t.sbi_dozer), "video" === i ? (u.mediaType = "video", u.vastUrl = b(f.sbi_dc, t.sbi_aid), delete u.ad, delete u.width, delete u.height) : "outstream" === i && n && (u.mediaType = "video", u.vastUrl = b(f.sbi_dc, t.sbi_aid), u.renderer = function (e, t) {
var r = 2 < arguments.length && void 0 !== arguments(2) ? arguments(2) : {},
n = g.a.install({
id: t.aid,
url: "https://mtrx.go.sonobi.com/sbi_outstream_renderer.js",
config: r,
loaded: !1,
adUnitCode: e
});

try {
n.setRender(O);
} catch (e) {
Object(y.logWarn)("Prebid Error calling setRender on renderer", e);
}

return n.setEventHandlers({
impression: function impression() {
return Object(y.logMessage)("Sonobi outstream video impression event");
},
loaded: function loaded() {
return Object(y.logMessage)("Sonobi outstream video loaded event");
},
ended: function ended() {
Object(y.logMessage)("Sonobi outstream renderer video event");
}
}), n;
}(n.adUnitCode, u, Object(y.deepAccess)(n, "renderer.options")), p = Object(y.deepAccess)(n, "params.sizes"), Array.isArray(p) && Array.isArray(p(0)) && (p = p(0)), p && (u.width = p(0), u.height = p(1))), m.push(u));
}), 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 f(e) {
return Object(y.deepAccess)(e, "mediaTypes.video") ? "https://slate.com/" : 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 m(e) {
return e.params.floor ? "https://slate.com/"f=".concat(e.params.floor) : "https://slate.com/";
}

var j = function j(i, s) {
return function (e, t) {
return "video" === i "https://slate.com/"https://slate.com/"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 a = function a(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 = a(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)(o);
}
}, (719));
pbjsChunk((85), {
741: function _(e, r, t) {
e.exports = t(742);
},
742: function _(e, r, t) {
"use strict";

Object.defineProperty(r, "__esModule", {
value: !0
}), t.d(r, "spec", function () {
return n;
});
var a = t(1),
d = t(0),
p = 12,
o = 11,
c = 0,
u = 22,
n = {
code: "teads",
supportedMediaTypes: ("video"https://slate.com/,"banner"),
isBidRequestValid: function isBidRequestValid(e) {
var r,
t,
a = !1;
return void 0 !== e.params && (r = i(d.getValue(e.params, "placementId")), t = i(d.getValue(e.params, "pageId")), a = r && t), a "https://slate.com/" d.logError("Teads placementId and pageId parameters are required. Bid aborted."), a;
},
buildRequests: function buildRequests(e, r) {
var t = e.map(I),
a = {
referrer: function (e) {
var r = "https://slate.com/";
e && e.refererInfo && e.refererInfo.referer && (r = e.refererInfo.referer);
return r;
}(r),
data: t,
deviceWidth: screen.width,
hb_version: "3.23.0"
};
e(0).schain && (a.schain = e(0).schain);
var n,
d,
i,
s = r.gdprConsent;
return r && s && (n = "boolean" == typeof s.gdprApplies, d = "string" == typeof s.consentString, i = n ? function (e, r, t) {
var a = p;
e ? function (e, r) {
return e && 1 === r ? e.hasGlobalScope "https://slate.com/" e.hasGlobalConsent : !(!e "https://slate.com/" 2 !== r) && !e.isServiceSpecific;
}(r, t) && (a = o) : a = c;
return a;
}(s.gdprApplies, s.vendorData, s.apiVersion) : u, a.gdpr_iab = {
consent: d ? s.consentString : "https://slate.com/",
status: i,
apiVersion: s.apiVersion
}), r && r.uspConsent && (a.us_privacy = r.uspConsent), {
method: "POST",
url: "https://a.teads.tv/hb/bid-request",
data: JSON.stringify(a)
};
},
interpretResponse: function interpretResponse(e) {
var t = ();
return (e = e.body).responses && e.responses.forEach(function (e) {
var r = {
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 && (r.dealId = e.dealId), t.push(r);
}), t;
}
};

function I(e) {
var r,
t = {},
a = d.getValue(e.params, "placementId"),
n = d.getValue(e.params, "pageId");
return t.sizes = (r = e, d.parseSizesInput(function (e) {
var r = d.deepAccess(e, "mediaTypes.video.playerSize"),
t = d.deepAccess(e, "mediaTypes.video.sizes"),
a = d.deepAccess(e, "mediaTypes.banner.sizes");
return d.isArray(a) "https://slate.com/" d.isArray(r) "https://slate.com/" d.isArray(t) ? (a, t, r).reduce(function (r, e) {
return d.isArray(e) && (d.isArray(e(0)) ? e.forEach(function (e) {
r.push(e);
}) : r.push(e)), r;
}, ()) : e.sizes;
}(r))), t.bidId = d.getBidIdParameter("bidId", e), t.bidderRequestId = d.getBidIdParameter("bidderRequestId", e), t.placementId = parseInt(a, 10), t.pageId = parseInt(n, 10), t.adUnitCode = d.getBidIdParameter("adUnitCode", e), t.auctionId = d.getBidIdParameter("auctionId", e), t.transactionId = d.getBidIdParameter("transactionId", e), t;
}

function i(e) {
return 0 < parseInt(e); } Object(a.registerBidder)(n); } }, (741)); pbjsChunk((76), { 761: function _(r, e, t) { r.exports = t(762); }, 762: function _(r, e, t) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), t.d(e, "tripleliftAdapterSpec", function () { return s; }); var n = t(2), i = t(1), o = t(0), u = t(3); function p(r) { return function (r) { if (Array.isArray(r)) return d(r); }(r) "https://slate.com/" function (r) { if ("undefined" != typeof Symbol && Symbol.iterator in Object(r)) return Array.from(r); }(r) "https://slate.com/" function (r, e) { if (!r) return; if ("string" == typeof r) return d(r, e); var t = Object.prototype.toString.call(r).slice(8, -1); "Object" === t && r.constructor && (t = r.constructor.name); if ("Map" === t "https://slate.com/"https://slate.com/"Set" === t) return Array.from(r); if ("Arguments" === t "https://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return d(r, e); }(r) "https://slate.com/" function () { throw new TypeError("Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a (Symbol.iterator)() method."); }(); } function d(r, e) { (null == e "https://slate.com/" e > r.length) && (e = r.length);

for (var t = 0, n = new Array(e); t < e; t++) {
n(t) = r(t);
}

return n;
}

var a = !0,
c = null,
s = {
code: "triplelift",
supportedMediaTypes: (n.b),
isBidRequestValid: function isBidRequestValid(r) {
return void 0 !== r.params.inventoryCode;
},
buildRequests: function buildRequests(r, e) {
var t,
n = "https://tlx.3lift.com/header/auction?",
i = function (r) {
var e = {},
t = r(0).schain;
e.imp = r.map(function (r, e) {
revenir {
id: e,
tagid: r.params.inventoryCode,
floor: r.params.floor,
banner: {
format: r.sizes.filter(l).map(function (r) {
revenir {
w: r(0),
h: r(1)
};
})
}
};
});
var n = ().concat(p(function (r) {
return f(r, "tdid"https://slate.com/,"adserver.org"https://slate.com/,"TDID");
}(r)), p(function (r) {
return f(r, "idl_env"https://slate.com/,"liveramp.com"https://slate.com/,"idl");
}(r)), p(function (r) {
return f(r, "criteoId"https://slate.com/,"criteo.com"https://slate.com/,"criteoId");
}(r)));
0 < n.length && (e.user = {
ext: {
eids: n
}
});
t && (e.ext = {
schain: t
});
return e;
}(r);

return n = o.tryAppendQueryString(n, "lib"https://slate.com/,"prebid"), n = o.tryAppendQueryString(n, "v"https://slate.com/,"3.23.0"), e && e.refererInfo && (t = e.refererInfo.referer, n = o.tryAppendQueryString(n, "referrer", t)), e && e.timeout && (n = o.tryAppendQueryString(n, "tmax", e.timeout)), e && e.gdprConsent && (void 0 !== e.gdprConsent.gdprApplies && (a = e.gdprConsent.gdprApplies, n = o.tryAppendQueryString(n, "gdpr", a.toString())), void 0 !== e.gdprConsent.consentString && (c = e.gdprConsent.consentString, n = o.tryAppendQueryString(n, "cmp_cs", c))), e && e.uspConsent && (n = o.tryAppendQueryString(n, "us_privacy", e.uspConsent)), !0 === u.b.getConfig("coppa") && (n = o.tryAppendQueryString(n, "coppa", !0)), n.lastIndexOf("&") === n.length - 1 && (n = n.substring(0, n.length - 1)), o.logMessage("tlCall request built: " + n), {
method: "POST",
url: n,
data: i,
bidderRequest: e
};
},
interpretResponse: function interpretResponse(r, e) {
var t = e.bidderRequest;
return (r.body.bids "https://slate.com/" ()).map(function (r) {
return function (r, e) {
var t = {},
n = e.width "https://slate.com/" 1,
i = e.height "https://slate.com/" 1,
u = e.deal_id "https://slate.com/"https://slate.com/"https://slate.com/",
o = e.crid "https://slate.com/"https://slate.com/"https://slate.com/";
0 != e.cpm && e.ad && (t = {
requestId: r.bids(e.imp_id).bidId,
cpm: e.cpm,
width: n,
height: i,
netRevenue: !0,
ad: e.ad,
creativeId: o,
dealId: u,
currency: "USD",
ttl: 300,
tl_source: e.tl_source
});
return t;
}(t, r);
});
},
getUserSyncs: function getUserSyncs(r, e, t, n) {
var i = function (r) {
if (!r) return;
if (r.iframeEnabled) return "iframe";
if (r.pixelEnabled) return "image";
}(r);

if (i) {
var u = "https://eb2.3lift.com/sync?";
return "image" === i && (u = o.tryAppendQueryString(u, "px", 1), u = o.tryAppendQueryString(u, "src"https://slate.com/,"prebid")), null !== c && (u = o.tryAppendQueryString(u, "gdpr", a), u = o.tryAppendQueryString(u, "cmp_cs", c)), n && (u = o.tryAppendQueryString(u, "us_privacy", n)), ({
type: i,
url: u
});
}
}
};

function f(r, e, t, n) {
return r.map((o = e, function (r) {
return r && r.userId && r.userId(o);
})).filter(function (r) {
return !!r;
}).map((i = t, u = n, function (r) {
revenir {
source: i,
uids: ({
id: r,
ext: {
rtiPartner: u
}
})
};
}));
var i, u, o;
}

function l(r) {
return 2 === r.length && "number" == typeof r(0) && "number" == typeof r(1);
}

Object(i.registerBidder)(s);
}
}, (761));
pbjsChunk((75), {
763: function _(e, r, t) {
e.exports = t(764);
},
764: 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(10),
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 "https://slate.com/" ()).forEach(function (e) {
"gross" === e.params.priceType && (l = "gross"), o = e.bidderRequestId;
var r = e.params.uid,
t = e.adUnitCode;
p.push(r);
var s,
n = m.parseSizesInput(e.sizes);
a "https://slate.com/" m.isEmpty(e.params.keywords) "https://slate.com/" (0 < (s = m.transformBidderParamKeywords(e.params.keywords)).length && s.forEach(E), a = s), c(r) "https://slate.com/" (c(r) = {});
var d = c(r);
d(t) ? d(t).bids.push(e) : d(t) = {
adUnitCode: t,
bids: (e),
parents: ()
};
var i = d(t);
n.forEach(function (e) {
f(e) = !0, u(r) "https://slate.com/" (u(r) = {}), u(r)(e) ? u(r)(e).push(i) : u(r)(e) = (i), i.parents.push({
parent: u(r),
key: e,
uid: r
});
});
});
var t = {
pt: l,
auids: p.join(","),
sizes: m.getKeys(f).join(","),
r: o,
wrapperType: "Prebid_js",
wrapperVersion: "3.23.0"
};
return a && (t.keywords = JSON.stringify(a)), r && (r.refererInfo && r.refererInfo.referer && (t.u = r.refererInfo.referer), r.timeout && (t.wtimeout = r.timeout), r.gdprConsent && (r.gdprConsent.consentString && (t.gdpr_consent = r.gdprConsent.consentString), t.gdpr_applies = "boolean" == typeof r.gdprConsent.gdprApplies ? Number(r.gdprConsent.gdprApplies) : 1), r.uspConsent && (t.us_privacy = r.uspConsent)), {
method: "GET",
url: "https://sofia.trustx.org/hb",
data: m.parseQueryStringParameters(t).replace(/&$/, "https://slate.com/"),
bidsMap: u
};
},
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;
retour 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 "https://slate.com/" (n = f + JSON.stringify(e));
{
var i, a, o, p, u;
e.adm ? (i = d(e.auid)) ? (a = "https://slate.com/".concat(e.w, "x").concat(e.h), i(a) && (o = i(a)(0), p = o.bids.shift(), u = {
requestId: p.bidId,
bidderCode: v.code,
cpm: e.price,
width: e.w,
height: e.h,
creativeId: e.auid,
currency: "USD",
netRevenue: "gross" !== r,
ttl: 360,
dealId: e.dealid
}, "video" === e.content_type ? (u.vastXml = e.adm, u.mediaType = c.d, u.adResponse = {
content: u.vastXml
}, p.renderer "https://slate.com/" p.mediaTypes && p.mediaTypes.video && "outstream" !== p.mediaTypes.video.context "https://slate.com/" (u.renderer = function (e, r) {
var t = r.install({
id: e.id,
url: e.url,
loaded: !1
});

try {
t.setRender(w);
} catch (e) {
m.logWarn("Prebid Error calling setRender on renderer", e);
}

return t;
}({
id: p.bidId,
url: "https://acdn.adnxs.com/video/outstream/ANOutstreamVideo.js"
}, s))) : (u.ad = e.adm, u.mediaType = c.b), t.push(u), o.bids.length "https://slate.com/" o.parents.forEach(function (e) {
var r = e.parent,
t = e.key,
s = e.uid,
n = r(t).indexOf(o);
-1 < n && r(t).splice(n, 1), r(t).length "https://slate.com/" (delete r(t), m.getKeys(r).length "https://slate.com/" delete d(s));
}))) : n = g + e.auid : n = l + JSON.stringify(e);
}
n && m.logError(n);
}(function (e) {
e ? e.bid ? e.bid(0) "https://slate.com/" m.logError(p) : m.logError(h + JSON.stringify(e)) : m.logError(u);
return e && e.bid && e.bid(0);
}(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 && "https://slate.com/" === 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);
}
}, (763));
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, "https://slate.com/", url.toString());
} // and add `via` param to any outbound links

function addViaToUrl(href, via) {
if (!href "https://slate.com/" href.substr(0, 1) === "#") {
return href; // don't add to jumps on the current page, e.g. "Skip to main content"
}

var url = new URL(href);
var apexDomain = new URL(location.href).hostname.split(".").slice(-2).join(".");

if (url.hostname.indexOf(apexDomain) === -1) {
return href; // don't add it to external links
}

url.searchParams.set("via", via);
return url.toString();
} // 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 = "https://slate.com/"; // 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 = "https://slate.com/";
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();
revenir {
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 "https://slate.com/" percent < item.hiddenThreshold) && item.seen) { item.seen = false; setTimeout(function () { item.trigger("hidden", new VisibleEvent("hidden", evt)); }, 15); } } /** * 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) { var rect = item.el.getBoundingClientRect(), innerHeight = $window.innerHeight "https://slate.com/" $document.documentElement.clientHeight, px = getVerticallyVisiblePixels(rect, innerHeight), percent = px / (rect.height "https://slate.com/" innerHeight), evt = { target: item.el, rect: rect, visiblePx: px, visiblePercent: percent }; updateSeen(item, evt); updatePreload(item, evt, innerHeight); } /** * Return normalized viewport height * @return {number} */ function getViewportHeight() { return $window.innerHeight "https://slate.com/" $document.documentElement.clientHeight "https://slate.com/" $document.body.clientHeight; } /** * Return normalized viewport width * @return {number} */ function getViewportWidth() { return $window.innerWidth "https://slate.com/" $document.documentElement.clientWidth "https://slate.com/" $document.body.clientWidth; } /** * 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) { var rect = el.getBoundingClientRect(); return rect.top >= 0 && rect.left >= 0 && rect.bottom <= ($window.innerHeight "https://slate.com/" $document.documentElement.clientHeight) && rect.right <= ($window.innerWidth "https://slate.com/" $document.documentElement.clientWidth);
}
/ **
* @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 "https://slate.com/" 1)), remainder = x % stepSize, result = index.toString(base); if (optimalK > 1) {
result += getLinearSpacialHash(remainder, Math.floor(stepSize / base), optimalK - 1, base);
}

return result;
}
/ **
* @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;
}

revenir {
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) {
options = options "https://slate.com/" {};
this.el = el;
this.seen = false;
this.preload = false;
this.preloadThreshhold = options && options.preloadThreshhold "https://slate.com/" 0;
this.shownThreshold = options && options.shownThreshold "https://slate.com/" 0;
this.hiddenThreshold = options && min(options.shownThreshold, options.hiddenThreshold) "https://slate.com/" 0;
list.push(this);
updateVisibility(this); // set immediately to visible or not
};

Visible.prototype = {
/ **
* Stop triggering.
* /
destroy: function destroy() {
// remove from list
list.splice(list.indexOf(this), 1);
}
/ **
* @name Visible#on
* @function
* @param {'shown"https://slate.com/"https://slate.com/"hidden'} e EventName
* @param {function} cb Callback
* /

/ **
* @name Visible#trigger
* @function
* @param {'shown"https://slate.com/"https://slate.com/"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 "https://slate.com/"+o+"https://slate.com/"https://slate.com/");throw f.code="MODULE_NOT_FOUND",f}var l=n(o)={exports:{}};t(o)(0).call(l.exports,function(e){var n=t(o)(1)(e);return s(n?n:e)},l,l.exports,e,t,n,r)}return n(o).exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r(o));return s})(window.modules,{},());
'use strict';
/ **
* mount legacy services from _global.js, if any
* /

function mountLegacyServices() {
Object.keys(window.modules).filter(function (key) {
return typeof key === 'string' && key.match(/.legacy$/);
}).forEach(function (key) {
return window.require(key);
});
}

function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
var elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error("Error initializing controller for "https://slate.com/".concat(name, "" on "https://slate.com/").concat(elementTag, ""https://slate.com/"), e);
}
}
/ **
* mount client.js component controllers
* /

function mountComponentModules() {
Object.keys(window.modules).filter(function (key) {
return typeof key === 'string' && key.match(/.client$/);
}).forEach(function (key) {
var controllerFn = window.require(key);

if (typeof controllerFn === 'function') {
var name = key.replace('.client"https://slate.com/,"https://slate.com/"),
instancesSelector = "(data-uri*="_components/".concat(name, "/")"),
defaultSelector = "(data-uri$="_components".concat(name, "")"),
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;

try {
for (var _iterator = instances(Symbol.iterator)(), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var el = _step.value;
tryToMount(controllerFn, el, name);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}

var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;

try {
for (var _iterator2 = defaults(Symbol.iterator)(), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var _el = _step2.value;
tryToMount(controllerFn, _el, name);
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
}
});
} // Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js

window.process = window.process "https://slate.com/" {};
window.process.env = window.process.env "https://slate.com/" {};

if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = "https://slate.com/";
} // note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first

mountLegacyServices();
mountComponentModules();
// ))

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *