How do I get my wife to trust me again? | #facebookdating | #tinder | #pof


Photo illustration by Slate. Photo by Sam Thomas/iStock/Getty Images Plus.

How to Do It is Slate’s sex advice column. Have a question? Send it to Stoya and Rich here. It’s anonymous!

Dear How to Do It,

I’ve been with my wife for nine years, and we’ve been married two. At the beginning of our relationship, I was very happy with our sex life. She was always willing to try new things (oral sex, rimjobs, positions, toys, and so on). Then, somewhere around our second year into the relationship, she took my phone and found some nude pics that a girl I used to date sent me back then. I recognized it was a huge mistake, and we almost broke up, but she decided to forgive me.

After that, our sex life became very problematic. She was no longer willing to do anything outside vanilla sex. Not even blowjobs. She would never initiate sex. At some point, we even went to seek counseling. Our sex life never went back to the old days, and the new normal became boring, sporadic, vanilla sex. It didn‘t matter to me, because I love her and she is the best human being I’ve ever met, so I proposed and we got married. Our marriage did not change many things in our sex life, so one day I told my wife that I wasn’t happy with our sex life and that some change is needed. Since then, I must admit that she is more willing to initiate sex and that we are being sexual more often. However, that willingness to try new things is still gone. She doesn’t want to have sex anywhere but on our bed. No rimjobs, no blowjobs, no exotic positions. Nothing. If I try to do something outside the normal, she will immediately stop me. All I want is a little more kink in our sex. I want my wife to behave like she used to: ready to do kinky things, talk dirty to me, and try new positions and toys. Honestly, I don’t know how to light that spark. Talking doesn’t help, or maybe I don’t know how to talk about it. Some advice would be very welcome.

—Pilot Light

Dear Pilot Light,

Are we sure you made a huge mistake by keeping those nude images of your former lover? I can’t tell if you simply had them, or if you received them during your current relationship. If you just had the images in your phone like other digital mementos of your life, I think that’s typical and fine. Did you have reason to believe before this incident that she would be offended or upset by nude pictures of past partners? Did she ask you to rid your phone of them?

All that said, after discovering that she has some issues around sex—which appear to have been triggered by seeing naked pictures of another woman on your phone—you went ahead and married this woman. So you can’t exactly sort the sex out before you escalate the relationship. I’m curious what happened in couples counseling, but it sounds like you have more work to do. In a calm moment when you have time to talk, tell your wife you need to talk about sex, and then mostly listen. Ask her how she’s feeling. Ask her if she likes sex, what kind of sex she likes, and whether she’s getting that from you. Pay attention. Look for ideas of things you can do in the bedroom. Maybe she’s got fantasies about rose petals and missionary. Great! Those are easy. Find out what your wife enjoys, and then give her plenty of whatever that is. From there, you might find a path to repairing your sex life.

Dear How to Do It,

For the first time in my life, I am dating a person who is very overweight—clinically speaking, I think a doctor would probably call him obese. While I am very attracted to him and enjoy touching him and being with him sexually, I wouldn’t say I am attracted to how his body looks. I don’t think this is a problem for me—if it feels good and I want to do it, I’m set. However, since he is insecure about his weight and has received a lot of negative judgment from past partners, he frequently asks me for affirmation about his body. For instance, he’ll ask if I like different parts of his body, or if I think they’re sexy. I think he’s sexy as a full human, so I just answer yes to these questions and tell him he’s gorgeous. That’s the right thing to do, right? I wouldn’t want a partner to tell me—even if I asked—that they didn’t find parts of my body attractive. But I’m not sure if this is the right approach.

—White Lies

Dear White Lies,

If I found myself dating someone who was insecure about their body, I would answer their specific questions by steering the conversation to aspects I could comfortably, truthfully say I find attractive about them. So “Do you like my hands?” “I love the way they feel wrapping around my back.” Or “Do you find my leg attractive?” “When I masturbate, I think about the way it touches me during missionary.”

Big picture, I think the real problem here is that he’s seeking constant validation from you. He needs to work on that, either in therapy or by trying to get his body in a condition he feels proud of rather than relying on feedback from you to shore up his self-esteem. You’re with him, you outwardly enjoy sex with him, and that should tell him what he needs to know.

Dear How to Do It,

I am a woman in my mid-20s with a sex-related body confidence issue. I have some scarring on my chest and back that makes me very self-conscious. There’s not even an interesting story behind the scars—I just had bad acne, and the acne developed into keloids. The scars are no longer raised bumps, thanks to steroid injections, but they are still noticeable dark spots in hard-to-miss areas of my body. They will never go away. The best I can do is continue receiving treatment to keep them flattened. Like I said, I’m very self-conscious about them, and their (permanent) existence on my body has caused me a lot of stress. It’s a big part of why I didn’t start having sex until last year, when I was 24. I’ve had several casual encounters where I covered them with makeup to the best of my ability, and it turned out fine, in that my partners did not seem to notice them. But trying to cover them up was annoying, it did not fully work, and it’s obviously impractical for sex forever.

The scars came up with a couple of longer-term FWBs who asked me questions about them. I felt exposed and awkward, but overall, I guess it was OK. I’m aware that I have a lot of heightened emotional baggage around these scars, which is probably why I’m overthinking this so much. But here’s my question: Should I mention them ahead of time with new partners, just to avoid that awkward moment of being asked, “So … what happened there?” Would that avoid the internal stress of trying to cover them up and hope they go unnoticed? Or is it weirder to bring it up before they even see me naked? Is this as big a deal as I’m making it out to be?

—Scarred

Dear Scarred,

You’re making this out to be a way bigger deal than it seems like it has to be. You’re super self-conscious about these marks, so they’re in the forefront of your mind, and they’re interfering with your ability to relax and enjoy the moment—that’s fair, and real. But mostly people won’t care. They’ll think it’s weirder if you present it as weird, and conversely, they’ll be more likely to be chill if you can be too. If you feel like you need to address these scars before you take your clothes off, then do what you need to do. I wouldn’t broach the subject until the possibility of sex is clear—it might feel weird to start talking about your naked body before dinner is served.

Most of us have some body part we aren’t totally thrilled with. Right this minute there’s probably at least one other person worried about keloids and how a sex partner will feel about them. Try to think about how you perceive other people. Are you focused on their flaws, or are you highlighting their best qualities? When you’re having sex, are you judging their body or appreciating that they’re sharing it with you? You’re probably doing the latter in both cases, and so are your partners.

Dear How to Do It,

I am struggling with my long-term relationship. My partner is lovely and sweet and supportive. We connect on many levels, and he’s helped me get through some really rough times. The problem is, I am no longer really interested in sex. We tried a bunch of kink and BDSM stuff, and I really enjoyed it at first. He’s always encouraging me to explore my own fantasies. But over time, I have become less interested and resentful of the time sex takes up. And it’s hard in a pandemic when you’re locked down together to feel desire and longing for someone you’re around all of the time! I’ve started to hate when he passes comment on my body or grabs my ass when I walk by because I feel like he always wants me to be available for sex. He doesn’t pressure me beyond being (understandably) disappointed when I turn him down, but I am feeling so guilty. He has expressed to me recently that this makes him feel alone and rejected, and I love him and don’t want him to feel like that. But I also don’t want to force myself to have sex I don’t want to have. I just want to want to have sex again. How do I start getting myself out of this jam?

—Passionless in a Pandemic

Dear Passionless in a Pandemic,

Sounds like you need my go-to: There’s a book by Emily Nagoski called Come As You Are that investigates the female sexual response. It talks about brakes and accelerators, and context. Certain contexts—like COVID—pump your sexual brakes. Understanding how your accelerator works helps you depress that when you want to.

Some people need buildup. Others need to feel chased or to chase. Some have to feel emotionally connected and tended. Really most of us require some combination of factors.

Please read this book.

Meanwhile, be blunt with your partner. Tell him your sexual appetite has decreased considerably and that you need space. Let him know that compliments and ass grabs are unwelcome right now, and that you’re working on figuring out what you need. You don’t owe him sex, and while you can empathize with him, it is not your job to bone him into feeling better.

—Stoya

More How to Do It

I’m a 27-year-old woman married for two years, and from the beginning, we decided we would each be free to have other sex partners. Recently I have been involved with a neighbor, while right now my husband is not involved with anyone else. My husband suggested a threesome, which I declined. He then made the suggestion to my lover, who not only was enthusiastic but suggested they include his wife also. Now they all are pressuring me and are angry that I won’t go along.

'; }, t.createTrackPixelIframeHtml = de, t.getValueString = fe, t.uniques = le, t.flatten = pe, t.getBidRequest = function (n, e) { return n ? (e.some(function (e) { var t = s()(e.bids, function (t) { return ["bidId"https://slate.com/,"adId"https://slate.com/,"bid_id"].some(function (e) { return t[e] === n; }); }); return t && (r = t), t; }), r) : void 0; var r; }, t.getKeys = ge, t.getValue = ye, t.getKeyByValue = function (e, t) { for (var n in e) { if (e.hasOwnProperty(n) && e[n] === t) return n; } }, t.getBidderCodes = function () { return (0 t[n] ? -1 : 0; }; }, t.parseQS = je, t.formatQS = we, t.parseUrl = function (e, t) { var n = document.createElement("a"); t && "noDecodeWholeURL" in t && t.noDecodeWholeURL ? n.href = e : n.href = decodeURIComponent(e); var r = t && "decodeSearchAsString" in t && t.decodeSearchAsString; return { href: n.href, protocol: (n.protocol "https://slate.com/"https://slate.com/"https://slate.com/").replace(/:$/, "https://slate.com/"), hostname: n.hostname, port: +n.port, pathname: n.pathname.replace(/^(?!/)/, "/"), search: r ? n.search : k.parseQS(n.search "https://slate.com/"https://slate.com/"https://slate.com/"), hash: (n.hash "https://slate.com/"https://slate.com/"https://slate.com/").replace(/^#/, "https://slate.com/"), host: n.host "https://slate.com/" window.location.host }; }, t.buildUrl = function (e) { return (e.protocol "https://slate.com/"https://slate.com/"http") + "://" + (e.host "https://slate.com/" e.hostname + (e.port ? ":".concat(e.port) : "https://slate.com/")) + (e.pathname "https://slate.com/"https://slate.com/"https://slate.com/") + (e.search ? "?".concat(k.formatQS(e.search "https://slate.com/"https://slate.com/"https://slate.com/")) : "https://slate.com/") + (e.hash ? "#".concat(e.hash) : "https://slate.com/"); }, t.deepEqual = Ce, t.mergeDeep = xe; var r = n(3), o = n(167), i = n.n(o), a = n(168), c = n.n(a), u = n(11), s = n.n(u), d = n(12), f = n.n(d), l = n(182); n.d(t, "deepAccess", function () { return l.a; }); var p = n(183); function g(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 n = [], r = !0, o = !1, i = void 0; try { for (var a, c = e[Symbol.iterator](); !(r = (a = c.next()).done) && (n.push(a.value), !t "https://slate.com/" n.length !== t); r = !0) { ; } } catch (e) { o = !0, i = e; } finally { try { r "https://slate.com/" null == c.return "https://slate.com/" c.return(); } finally { if (o) throw i; } } return n; }(e, t) "https://slate.com/" b(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 y(e) { return function (e) { if (Array.isArray(e)) return v(e); }(e) "https://slate.com/" function (e) { if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e); }(e) "https://slate.com/" b(e) "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 b(e, t) { if (e) { if ("string" == typeof e) return v(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n "https://slate.com/"https://slate.com/"Set" === n ? Array.from(e) : "Arguments" === n "https://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? v(e, t) : void 0; } } function v(e, t) { (null == t "https://slate.com/" t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n n ')) : "https://slate.com/"; } function fe(e, t, n) { return null == t ? n : ee(t) ? t : ne(t) ? t.toString() : void k.logWarn("Unsuported type for param: " + e + " required type: String"); } function le(e, t, n) { return n.indexOf(e) === t; } function pe(e, t) { return e.concat(t); } function ge(e) { return Object.keys(e); } function ye(e, t) { return e[t]; } function be() { if (window.googletag && Z(window.googletag.pubads) && Z(window.googletag.pubads().getSlots)) return !0; } var ve = Se("timeToRespond", function (e, t) { return t e.length) && (t = e.length); for (var n = 0, r = new Array(t); n i.lastUpdated + 24 * r * 60 * 60 * 1e3) && Object(p.a)(t.url, { success: function success(e) { try { e = JSON.parse(e); var t = { lastUpdated: Object(m.timestamp)(), mapping: e.mapping }; T.setDataInLocalStorage(o, JSON.stringify(t)); } catch (e) { Object(m.logError)("Failed to parse ".concat(n, " bidder translation mapping file")); } }, error: function error() { Object(m.logError)("Failed to load ".concat(n, " bidder translation file")); } }); } catch (e) { Object(m.logError)("Failed to parse ".concat(n, " bidder translation mapping file")); } } }), e.call(this, t); } function _(e, t, n) { function r(e) { return "Invalid bid from ".concat(t.bidderCode, ". Ignoring bid: ").concat(e); } return e ? t ? (o = Object.keys(t), j.every(function (e) { return l()(o, e) && !l()([void 0, null], t[e]); }) ? "native" !== t.mediaType "https://slate.com/" Object(i.f)(t, n) ? "video" !== t.mediaType "https://slate.com/" Object(a.d)(t, n) ? !("banner" === t.mediaType && !function (e, t, n) { if ((t.width "https://slate.com/" 0 === parseInt(t.width, 10)) && (t.height "https://slate.com/" 0 === parseInt(t.height, 10))) return t.width = parseInt(t.width, 10), t.height = parseInt(t.height, 10), 1; var r = Object(m.getBidderRequest)(n, t.bidderCode, e), o = r && r.bids && r.bids[0] && r.bids[0].sizes, i = Object(m.parseSizesInput)(o); if (1 === i.length) { var a = A(i[0].split("x"), 2), c = a[0], u = a[1]; return t.width = parseInt(c, 10), t.height = parseInt(u, 10), 1; } }(e, t, n)) "https://slate.com/" (Object(m.logError)(r("Banner bids require a width and height")), !1) : (Object(m.logError)(r("Video bid does not have required vastUrl or renderer property")), !1) : (Object(m.logError)(r("Native bid missing some required properties.")), !1) : (Object(m.logError)(r("Bidder ".concat(t.bidderCode, " is missing required params. Check http://prebid.org/dev-docs/bidder-adapter-1.html for list of params."))), !1)) : (Object(m.logWarn)("Some adapter tried to add an undefined bid for ".concat(e, ".")), !1) : (Object(m.logWarn)("No adUnitCode was supplied to addBidResponse."), !1); var o; } Object(y.a)("checkAdUnitSetup").before(U); }, function (e, t, n) { "use strict"; n.d(t, "c", function () { return r; }), n.d(t, "d", function () { return o; }), n.d(t, "b", function () { return i; }), n.d(t, "a", function () { return a; }); var r = "native", o = "video", i = "banner", a = "adpod"; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return v; }), n.d(t, "b", function () { return j; }); var r = n(45), o = n(11), a = n.n(o), i = n(12), c = n.n(i), u = n(80), s = n.n(u), d = n(0); function f() { return (f = Object.assign "https://slate.com/" function (e) { for (var t = 1; t e.length) && (t = e.length); for (var n = 0, r = new Array(t); n e.length) && (t = e.length); for (var n = 0, r = new Array(t); n o && (r = !1)), !r; }), r && e.run(), r; } function g(e, t) { void 0 === e[t] ? e[t] = 1 : e[t]++; } p(e) "https://slate.com/" (D.logWarn("queueing auction due to limited endpoint capacity"), H.push(e)); } return { addBidReceived: function addBidReceived(e) { f = f.concat(e); }, addNoBid: function addNoBid(e) { l = l.concat(e); }, executeCallback: O, callBids: function callBids() { y = G, t = Date.now(); var e = N.makeBidRequests(v, t, p, m, s); D.logInfo("Bids Requested for Auction with id: ".concat(p), e), e.length e.getTimeout() + U.b.getConfig("timeoutBuffer") && e.executeCallback(!0); } function Y(e, t) { var n = e.getBidRequests(), r = _()(n, function (e) { return e.bidderCode === t.bidderCode; }); !function (t, e) { var n; { var r; t.bidderCode && (0 e.length) && (t = e.length); for (var n = 0, r = new Array(t); n Object(v.timestamp)(); }, d = function d(e) { return e && (e.status && !S()([I.BID_STATUS.RENDERED], e.status) "https://slate.com/" !e.status); }; function w(e, r, t) { var o = 2 e.length) && (t = e.length); for (var n = 0, r = new Array(t); n = h.syncsPerBidder ? a.logWarn('Number of user syncs exceeded for "https://slate.com/".concat(t, "https://slate.com/"https://slate.com/")) : p.canBidderRegisterSync(e, t) ? (g[e].push([t, n]), (r = b)[o = t] ? r[o] += 1 : r[o] = 1, void (b = r)) : a.logWarn('Bidder "https://slate.com/".concat(t, "https://slate.com/" not permitted to register their "https://slate.com/").concat(e, "https://slate.com/" userSync pixels.')) : a.logWarn("Bidder is required for registering sync") : a.logWarn('User sync type "https://slate.com/".concat(e, "https://slate.com/" not supported')); var r, o; }, p.syncUsers = function () { var e = 0 t.max ? e : t; }, { max: 0 }), g = 0, y = b()(e.buckets, function (e) { if (n > p.max * r) { var t = e.precision; void 0 === t && (t = v), o = (e.max * r).toFixed(t); } else { if (n " + e + "" + g + ">"; } var i, a = n(15), c = n(125), u = n(86), s = n(53), d = n(128), f = n(75), l = n(65), p = "prototype", g = "script", y = l("IE_PROTO"), _b = function b() { try { i = document.domain && new ActiveXObject("htmlfile"); } catch (e) {} var e, t; _b = i ? function (e) { e.write(o("https://slate.com/")), e.close(); var t = e.parentWindow.Object; return e = null, t; }(i) : ((t = f("iframe")).style.display = "none", d.appendChild(t), t.src = String("javascript:"), (e = t.contentWindow.document).open(), e.write(o("document.F=Object")), e.close(), e.F); for (var n = u.length; n--;) { delete _b[p][u[n]]; } return _b(); }; s[y] = !0, e.exports = Object.create "https://slate.com/" function (e, t) { var n; return null !== e ? (r[p] = a(e), n = new r(), r[p] = null, n[y] = e) : n = _b(), void 0 === t ? n : c(n, t); }; }, function (e, t) { e.exports = ["constructor"https://slate.com/,"hasOwnProperty"https://slate.com/,"isPrototypeOf"https://slate.com/,"propertyIsEnumerable"https://slate.com/,"toLocaleString"https://slate.com/,"toString"https://slate.com/,"valueOf"]; }, function (e, t, n) { var o = n(29); e.exports = function (e, t, n, r) { r && r.enumerable ? e[t] = n : o(e, t, n); }; }, function (e, t, n) { "use strict"; var r, o, i, a = n(89), c = n(29), u = n(24), s = n(19), d = n(16), f = s("iterator"), l = !1; [].keys && ("next" in (i = [].keys()) ? (o = a(a(i))) !== Object.prototype && (r = o) : l = !0), null == r && (r = {}), d "https://slate.com/" u(r, f) "https://slate.com/" c(r, f, function () { return this; }), e.exports = { IteratorPrototype: r, BUGGY_SAFARI_ITERATORS: l }; }, function (e, t, n) { var r = n(24), o = n(57), i = n(65), a = n(131), c = i("IE_PROTO"), u = Object.prototype; e.exports = a ? Object.getPrototypeOf : function (e) { return e = o(e), r(e, c) ? e[c] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? u : null; }; }, function (e, t, n) { "use strict"; var o = n(136).charAt, r = n(54), i = n(66), a = "String Iterator", c = r.set, u = r.getterFor(a); i(String, "String", function (e) { c(this, { type: a, string: String(e), index: 0 }); }, function () { var e, t = u(this), n = t.string, r = t.index; return r >= n.length ? { value: void 0, done: !0 } : (e = o(n, r), t.index += e.length, { value: e, done: !1 }); }); }, function (e, t, n) { var r = n(15), o = n(61); e.exports = function (e) { var t = o(e); if ("function" != typeof t) throw TypeError(String(e) + " is not iterable"); return r(t.call(e)); }; }, function (e, t, n) { var r = n(162); e.exports = r; }, function (e, t, n) { "use strict"; var r = Array.prototype.slice, o = n(94), i = Object.keys, a = i ? function (e) { return i(e); } : n(169), c = Object.keys; a.shim = function () { return Object.keys ? function () { var e = Object.keys(arguments); return e && e.length === arguments.length; }(1, 2) "https://slate.com/" (Object.keys = function (e) { return o(e) ? c(r.call(e)) : c(e); }) : Object.keys = a, Object.keys "https://slate.com/" a; }, e.exports = a; }, function (e, t, n) { "use strict"; var r = Object.prototype.toString; e.exports = function (e) { var t = r.call(e); return "[object Arguments]" === t "https://slate.com/"https://slate.com/"[object Array]" !== t && null !== e && "object" == _typeof(e) && "number" == typeof e.length && 0 n n n prebid.org wrappern n ").concat(r, "n n n n ")), ttlseconds: Number(e.ttl) }; return i.b.getConfig("cache.vasttrack") && (o.bidder = e.bidder, o.bidid = e.requestId, a.isPlainObject(this) && this.hasOwnProperty("auctionStart") && (o.timestamp = this.auctionStart)), "string" == typeof e.customCacheKey && "https://slate.com/" !== e.customCacheKey && (o.key = e.customCacheKey), o; } },,, function (e, t, n) { n(106); var r = n(52); e.exports = r("Array"https://slate.com/,"find"); }, function (e, t, n) { "use strict";

var r = n(14), o = n(56).find, i = n(51), a = n(60), c = "find", u = !0, s = a(c); c in [] && Array(1)[c](function () { u = !1; }), r({ target: "Array", proto: !0, forced: u "https://slate.com/" !s }, { find: function find(e, t) { return o(this, e, 1 o;) { a(r, n = t[o++]) && (~u(i, n) "https://slate.com/" i.push(n)); }

return i; }; }, function (e, t, n) { var r = n(25); e.exports = r("document"https://slate.com/,"documentElement"); }, function (e, t, n) { var o = n(87);

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

return e; }; }, function (e, t, n) { "use strict";

function o() { return this; }

var i = n(88).IteratorPrototype, a = n(85), c = n(46), u = n(64), s = n(36);

e.exports = function (e, t, n) { var r = t + " Iterator"; return e.prototype = a(i, { next: c(1, n) }), u(e, r, !1, !0), s[r] = o, e; }; }, function (e, t, n) { var r = n(28); e.exports = !r(function () { function e() {}

return e.prototype.constructor = null, Object.getPrototypeOf(new e()) !== e.prototype; }); }, function (e, t, n) { var o = n(15), i = n(133); e.exports = Object.setPrototypeOf "https://slate.com/" ("__proto__" in {} ? function () { var n, r = !1, e = {};

try { (n = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set).call(e, []), r = e instanceof Array; } catch (e) {}

return function (e, t) { return o(e), i(t), r ? n.call(e, t) : e.__proto__ = t, e; }; }() : void 0); }, function (e, t, n) { var r = n(23);

e.exports = function (e) { if (!r(e) && null !== e) throw TypeError("Can't set " + String(e) + " as a prototype"); return e; }; }, function (e, t, n) { "use strict";

var r = n(25), o = n(31), i = n(19), a = n(27), c = i("species");

e.exports = function (e) { var t = r(e), n = o.f; a && t && !t[c] && n(t, c, { configurable: !0, get: function get() { return this; } }); }; }, function (e, t) {}, function (e, t, n) { function r(c) { return function (e, t) { var n, r, o = String(s(e)), i = u(t), a = o.length; return i = t.length ? { value: e.target = void 0, done: !0 } : "keys" == n ? { value: r, done: !1 } : "values" == n ? { value: t[r], done: !1 } : { value: [r, t[r]], done: !1 }; }, "values"), i.Arguments = i.Array, o("keys"), o("values"), o("entries"); }, function (e, t) { e.exports = { CSSRuleList: 0, CSSStyleDeclaration: 0, CSSValueList: 0, ClientRectList: 0, DOMRectList: 0, DOMStringList: 0, DOMTokenList: 1, DataTransferItemList: 0, FileList: 0, HTMLAllCollection: 0, HTMLCollection: 0, HTMLFormElement: 0, HTMLSelectElement: 0, MediaList: 0, MimeTypeArray: 0, NamedNodeMap: 0, NodeList: 1, PaintRequestList: 0, Plugin: 0, PluginArray: 0, SVGLengthList: 0, SVGNumberList: 0, SVGPathSegList: 0, SVGPointList: 0, SVGStringList: 0, SVGTransformList: 0, SourceBufferList: 0, StyleSheetList: 0, TextTrackCueList: 0, TextTrackList: 0, TouchList: 0 }; }, function (e, t, n) { n(14)({ target: "Set", stat: !0 }, { from: n(141) }); }, function (e, t, n) { "use strict";

var s = n(18), d = n(21), f = n(17);

e.exports = function (e, t, n) { var r, o, i, a, c = arguments.length, u = 1 = n.length) { var a = u(r, n[i]); if (!(t "https://slate.com/" n[i] in r)) throw new c("base intrinsic for " + e + " exists, but the property is not available."); r = a ? a.get "https://slate.com/" a.value : r[n[i]]; } else r = r[n[i]]; }

return r; }; }, function (r, e, o) { "use strict";

(function (e) { var t = e.Symbol, n = o(175);

r.exports = function () { return "function" == typeof t && "function" == typeof Symbol && "symbol" == _typeof(t("foo")) && "symbol" == _typeof(Symbol("bar")) && n(); }; }).call(e, o(33)); }, function (e, t, n) { "use strict";

e.exports = function () { if ("function" != typeof Symbol "https://slate.com/"https://slate.com/"function" != typeof Object.getOwnPropertySymbols) return !1; if ("symbol" == _typeof(Symbol.iterator)) return !0; var e = {}, t = Symbol("test"), n = Object(t); if ("string" == typeof t) return !1; if ("[object Symbol]" !== Object.prototype.toString.call(t)) return !1; if ("[object Symbol]" !== Object.prototype.toString.call(n)) return !1;

for (t in (e[t] = 42, e)) { return !1; }

if ("function" == typeof Object.keys && 0 !== Object.keys(e).length) return !1; if ("function" == typeof Object.getOwnPropertyNames && 0 !== Object.getOwnPropertyNames(e).length) return !1; var r = Object.getOwnPropertySymbols(e); if (1 !== r.length "https://slate.com/" r[0] !== t) return !1; if (!Object.prototype.propertyIsEnumerable.call(e, t)) return !1;

if ("function" == typeof Object.getOwnPropertyDescriptor) { var o = Object.getOwnPropertyDescriptor(e, t); if (42 !== o.value "https://slate.com/" !0 !== o.enumerable) return !1; }

return !0; }; }, function (e, t, n) { "use strict";

var r = n(97), o = n(43);

e.exports = function () { var e = r(); return o(Object, { is: e }, { is: function is() { return Object.is !== e; } }), e; }; }, function (e, t, n) { "use strict";

var r = n(178), o = RegExp.prototype.exec, i = Object.getOwnPropertyDescriptor, a = Object.prototype.toString, c = "function" == typeof Symbol && "symbol" == _typeof(Symbol.toStringTag);

e.exports = function (e) { if (!e "https://slate.com/"https://slate.com/"object" != _typeof(e)) return !1; if (!c) return "[object RegExp]" === a.call(e); var t = i(e, "lastIndex"); return !(!t "https://slate.com/" !r(t, "value")) && function (e) { try { var t = e.lastIndex; return e.lastIndex = 0, o.call(e), !0; } catch (e) { return !1; } finally { e.lastIndex = t; } }(e); }; }, function (e, t, n) { "use strict";

var r = n(67); e.exports = r.call(Function.call, Object.prototype.hasOwnProperty); }, function (e, t, n) { "use strict";

var r = n(43), o = n(95), i = n(98), a = n(99), c = n(180), u = o(i); r(u, { getPolyfill: a, implementation: i, shim: c }), e.exports = u; }, function (e, t, n) { "use strict";

var r = n(43).supportsDescriptors, o = n(99), i = Object.getOwnPropertyDescriptor, a = Object.defineProperty, c = TypeError, u = Object.getPrototypeOf, s = /a/;

e.exports = function () { if (!r "https://slate.com/" !u) throw new c("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors"); var e = o(), t = u(s), n = i(t, "flags"); return n && n.get === e "https://slate.com/" a(t, "flags", { configurable: !0, enumerable: !1, get: e }), e; }; }, function (e, t, n) { "use strict";

var r = Date.prototype.getDay, o = Object.prototype.toString, i = "function" == typeof Symbol && "symbol" == _typeof(Symbol.toStringTag);

e.exports = function (e) { return "object" == _typeof(e) && null !== e && (i ? function (e) { try { return r.call(e), !0; } catch (e) { return !1; } }(e) : "[object Date]" === o.call(e)); }; }, function (e, t, n) { "use strict";

t.a = function (e, t, n, r, o) { for (t = t.split ? t.split(".") : t, r = 0; r >> 0, i = 0; if (t) n = t;else { for (; i e.length) && (r = e.length);

for (var t = 0, a = new Array(r); t |

)/gm, "t").replace(/(

|

)/gm, "n").replace(/^
/gm, "https://slate.com/").replace(/(
n|
)/gm, "n").replace(/

(.*)

/gm, "nn===== $1 =====nn").replace(/(.*)[2-6]>/gm, "nn*** $1 ***nn").replace(/(]+)>)/gim, "https://slate.com/"), _.logMessage("https://console.appnexus.com/docs/understanding-the-debug-auction"), _.logMessage(t)), o; var a = "in response for ".concat(s.bidderCode, " adapter"); return e && e.error && (a += ": ".concat(e.error)), _.logError(a), o; }, getMappingFileInfo: function getMappingFileInfo() { return { url: "https://acdn.adnxs.com/prebid/appnexus-mapping/mappings.json", refreshInDays: 2 }; }, getUserSyncs: function getUserSyncs(e) { if (e.iframeEnabled) return [{ type: "iframe", url: "https://acdn.adnxs.com/ib/static/usersync/v3/async_usersync.html" }]; }, transformBidParams: function transformBidParams(t, e) { return t = _.convertTypes({ member: "string", invCode: "string", placementId: "number", keywords: _.transformBidderParamKeywords, publisherId: "number" }, t), e && (t.use_pmt_rule = "boolean" == typeof t.usePaymentRule && t.usePaymentRule, t.usePaymentRule && delete t.usePaymentRule, R(t.keywords) && t.keywords.forEach(j), Object.keys(t).forEach(function (e) { var r = _.convertCamelToUnderscore(e);

r !== e && (t[r] = t[e], delete t[e]); })), t; }, onBidWon: function onBidWon(e) { e.native && function (e) { var r = function (e) { var r; if (_.isStr(e) && P(e)) r = e;else if (_.isArray(e)) for (var t = 0; t nfor (var i = 0; i '));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 > o) && (e = !0, r = c(t)); 0 > (o += this.DB - 4)) : (t = this[i] >> (o -= 4) & 15, o this.DB ? (this[this.t - 1] |= (o & (1 > this.DB - i) : this[this.t - 1] |= o = 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 > i | s, s = (this[a] & o) = e.DV && (t[r + e.t] -= e.DV, t[r + e.t + 1] = 1);
}

0 > this.F2 : 0),
h = this.FV / d,
f = (1 = this.t) e.t = 0;else {
var i = t % this.DB,
o = this.DB - i,
n = (1 > i;

for (var s = r + 1; s > i;
}

0 >= this.DB;
}

if (t.t >= this.DB;
}

i += this.s;
} else {
for (i += this.s; r >= this.DB;
}

i -= t.s;
}

e.s = i > 15; 0 > 15,
c = a * p + u * s;
o = ((p = s * p + ((32767 & c) >> 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 > 14,
c = a * p + u * s;
o = ((p = s * p + ((16383 & c) > 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 > 2), i = 3 & n, 1) : 1 == r ? (e += c(i > 4), i = 15 & n, 2) : 2 == r ? (e += c(i), e += c(n >> 2), i = 3 & n, 3) : (e += c(i > 4), e += c(15 & n), 0));
}

return 1 == r && (e += c(i > 15) * this.mpl & this.um) = t.DV;) {
t[r] -= t.DV, t[++r]++;
}
}

t.clamp(), t.drShiftTo(this.m.t, t), 0 > 15, this.um = (1 >> 0;

for (n[o - 1][14] = Math.floor(p), n[o - 1][15] = u, s = 0; s >> 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 >> 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 >> t | e >> 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) && (r = e.length);

for (var t = 0, i = new Array(r); t n

nnx3c!-- Rubicon Project Ad Tag --x3en
nn

nn