I’m not sure if I’m cut out for this. | #tinder | #pof


Photo illustration by Slate. Photo by stevanovicigor/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!

Every week, the crew responds to a bonus question in chat form.

Dear How to Do It,

I recently met a guy on Tinder, where I usually don’t have much luck because I’m not conventionally attractive and want to date, not just hook up. But after talking to this guy for a few days we seem practically perfect for each other! Same hobbies, taste in music, kink-compatible, he’s funny and self-aware and I think he’s hot as hell. But in the middle of a conversation he dropped that he’s poly. I don’t usually date poly people because I know I’m “needy” emotionally and also not great at sex, so they’d have more reason to focus on another partner, but I don’t know how to figure out if I should give it a try just to be with someone I seem so compatible with, or if I’m just kicking future problems down the road?

—Poly Problem

Rich: This question broke my heart a little: “I don’t usually date poly people because I know I’m ‘needy’ emotionally and also not great at sex, so they’d have more reason to focus on another partner.” Our writer indicates having low self-esteem with such casualness, like they’ve completely accepted it as fact. I have to believe that someone out there would prioritize them.

Stoya: Are they actually not conventionally attractive, or is this an incel-like distortion of self-image? Is their view of their physical appearance a symptom of a psychological condition like depression?

Rich: Unless there’s anxiety or paranoia involved, one typically doesn’t arrive at the conclusion that they are emotionally needy and bad at sex without someone else telling them that. And so then my question is: Who hurt you?

Stoya: What even is emotionally “needy”? Like “Oh, you take emotional labor … needy.”? Is that how this goes? Because emotional labor is part of friendships. Of relationships.

Rich: Yes, and wanting to be a priority to your partner is not unreasonable. Sometimes people can be so self-centered as to take up disproportionate emotional space, but I feel like “needy” is a putdown, not a clear-eyed evaluation.

Stoya: So I have a phone sex partner who I have never met …

Rich: That is so analog!

Stoya: I know, right! So I regularly say, “Hey—attention please.” And that’s a functional part of our interactions. Unless our writer is unloading like they would on a therapist with regularity, I suspect they need a perfectly providable amount of attention and emotion. Also, poly goes both ways. If they aren’t getting everything they desire, they can look for additional partners.

Rich: I mean, part of a partner’s job is to understand and tend to their partner’s needs. I understand there are extreme situations, but when you’re in an emotional relationship with someone, criticizing their needs is like criticizing their oxygen intake. Feeling is what we do. I mean, it doesn’t bode well for this person that they’re already determined that they’re destined to be everyone’s secondary (or lower on the hierarchy). Polyamory might not be for them.

Stoya: I’m feeling like the best first stop is a sex-positive therapist’s office. The idea of healing relationships can be super romantic and all, but sometimes, it’s best to focus on ourselves for a bit. I suspect this guy will be around in a few months.

Rich: Yes, and I don’t really see a problem in trying this out if and when they feel ready? They already know the score—it’s not like they’re going to be surprised later by this partner’s orientation.

Stoya: There’s no real time pressure.

Rich: You won’t really know if poly is for you unless you try it, and in that event, there’s a whole social world you’d be entering to explore (potentially—perhaps post-pandemic).

Stoya: And even now there are digital meetups, which might be a safer option to take advantage at the moment.

Rich: It could be that someone who seems to be an ideal partner is the best person to try out something like this with. If the connection is strong enough, the framework might not ultimately matter.

Stoya: And they can go as slow as they want. I think they should go for it.

Rich: I don’t think it’s the worst idea—they can take it slow and feel it out each step of the way. They may discover that this guy is way more important than the relationship’s framework, but they could also discover the opposite to be true. As long as they don’t have illusions or spend too much time heading toward a dead end, it seems worth a try.

More How to Do It

My husband recently had an affair with a co-worker. When I first discovered the affair and confronted him, he said it was just an emotional affair but they ended up having sex one weekend while they were traveling, and emotions ballooned further from there. The whole thing has been the most horrifying, destabilizing experience of my life. My husband has recommitted to our marriage and we are trying to heal, but dealing with the fallout has been horrendous. Of the many issues we are now facing, there is one in particular that I hope you can help me with: He has already told me that he finds this other woman more physically attractive than me, and when I said I know the sex with her must have been better than it is with me, he is just silent and looks away.

'; }, t.createTrackPixelIframeHtml = se, t.getValueString = de, t.uniques = fe, t.flatten = le, t.getBidRequest = function (n, e) { return n ? (e.some(function (e) { var t = c()(e.bids, function (t) { return ["bidId"https://slate.com/,"adId"https://slate.com/,"bid_id"].some(function (e) { return t[e] === n; }); }); return t && (r = t), t; }), r) : void 0; var r; }, t.getKeys = pe, t.getValue = ge, t.getKeyByValue = function (e, t) { for (var n in e) { if (e.hasOwnProperty(n) && e[n] === t) return n; } }, t.getBidderCodes = function () { return (0 t[n] ? -1 : 0; }; }, t.parseQS = Ie, t.formatQS = Ce, t.parseUrl = function (e, t) { var n = document.createElement("a"); t && "noDecodeWholeURL" in t && t.noDecodeWholeURL ? n.href = e : n.href = decodeURIComponent(e); var r = t && "decodeSearchAsString" in t && t.decodeSearchAsString; return { 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 = je, t.mergeDeep = we, t.cyrb53Hash = function (e) { for (var t, n = 1 >> 16, 2246822507) ^ r(o ^ o >>> 13, 3266489909), (4294967296 * (2097151 & (o = r(o ^ o >>> 16, 2246822507) ^ r(i ^ i >>> 13, 3266489909))) + (i >>> 0)).toString(); }; var r = n(3), i = n(158), o = n.n(i), a = n(10), c = n.n(a), u = n(12), s = n.n(u), d = n(159); n.d(t, "deepAccess", function () { return d.a; }); var f = n(160); function l(e, t) { 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, i = !1, o = 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) { i = !0, o = e; } finally { try { r "https://slate.com/" null == c.return "https://slate.com/" c.return(); } finally { if (i) throw o; } } return n; }(e, t) "https://slate.com/" g(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 p(e) { return function (e) { if (Array.isArray(e)) return b(e); }(e) "https://slate.com/" function (e) { if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e); }(e) "https://slate.com/" g(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 g(e, t) { if (e) { if ("string" == typeof e) return b(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) ? b(e, t) : void 0; } } function b(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 de(e, t, n) { return null == t ? n : Z(t) ? t : te(t) ? t.toString() : void k.logWarn("Unsuported type for param: " + e + " required type: String"); } function fe(e, t, n) { return n.indexOf(e) === t; } function le(e, t) { return e.concat(t); } function pe(e) { return Object.keys(e); } function ge(e, t) { return e[t]; } function be() { if (window.googletag && X(window.googletag.pubads) && X(window.googletag.pubads().getSlots)) return !0; } var ve = me("timeToRespond", function (e, t) { return t e.length) && (t = e.length); for (var n = 0, r = new Array(t); n o.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 }; I.setDataInLocalStorage(i, 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 U(e, t, n) { function r(e) { return "Invalid bid from ".concat(t.bidderCode, ". Ignoring bid: ").concat(e); } return e ? t ? (i = Object.keys(t), C.every(function (e) { return l()(i, e) && !l()([void 0, null], t[e]); }) ? "native" !== t.mediaType "https://slate.com/" Object(o.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), i = r && r.bids && r.bids[0] && r.bids[0].sizes, o = Object(m.parseSizesInput)(i); if (1 === o.length) { var a = A(o[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 i; } Object(b.a)("checkAdUnitSetup").before(B); }, 10: function _(e, t, n) { var r = n(96); e.exports = r; }, 100: function _(e, t, n) { function r(e, t) { var n = c[a(e)]; return n == s "https://slate.com/" n != u && ("function" == typeof t ? i(t) : !!t); } var i = n(30), o = /#|.prototype./, a = r.normalize = function (e) { return String(e).replace(o, ".").toLowerCase(); }, c = r.data = {}, u = r.NATIVE = "N", s = r.POLYFILL = "P"; e.exports = r; }, 101: function _(e, t, n) { var r = n(25), i = n(102), o = n(19)("species"); e.exports = function (e, t) { var n; return i(e) && ("function" == typeof (n = e.constructor) && (n === Array "https://slate.com/" i(n.prototype)) "https://slate.com/" r(n) && null === (n = n[o])) && (n = void 0), new (void 0 === n ? Array : n)(0 === t ? 0 : t); }; }, 102: function _(e, t, n) { var r = n(48); e.exports = Array.isArray "https://slate.com/" function (e) { return "Array" == r(e); }; }, 103: function _(e, t, n) { var r = n(24), i = n(31); e.exports = function (t, n) { try { i(r, t, n); } catch (e) { r[t] = n; } return n; }; }, 104: function _(e, t, n) { var r = n(75); e.exports = r && !Symbol.sham && "symbol" == _typeof(Symbol.iterator); }, 105: function _(e, t, n) { n(106); var r = n(52); e.exports = r("Array"https://slate.com/,"includes"); }, 106: function _(e, t, n) { "use strict"; var r = n(14), i = n(76).includes, o = n(51); r({ target: "Array", proto: !0, forced: !n(60)("indexOf", { ACCESSORS: !0, 1: 0 }) }, { includes: function includes(e, t) { return i(this, e, 1 i;) { a(r, n = t[i++]) && (~u(o, n) "https://slate.com/" o.push(n)); } return o; }; }, 119: function _(e, t, n) { var r = n(27); e.exports = r("document"https://slate.com/,"documentElement"); }, 12: function _(e, t, n) { var r = n(105); e.exports = r; }, 120: function _(e, t, n) { var i = n(84); e.exports = function (e, t, n) { for (var r in t) { n && n.unsafe && e[r] ? e[r] = t[r] : i(e, r, t[r], n); } return e; }; }, 121: function _(e, t, n) { "use strict"; function i() { return this; } var o = n(85).IteratorPrototype, a = n(82), c = n(46), u = n(64), s = n(38); e.exports = function (e, t, n) { var r = t + " Iterator"; return e.prototype = a(o, { next: c(1, n) }), u(e, r, !1, !0), s[r] = i, e; }; }, 122: function _(e, t, n) { var r = n(30); e.exports = !r(function () { function e() {} return e.prototype.constructor = null, Object.getPrototypeOf(new e()) !== e.prototype; }); }, 123: function _(e, t, n) { var i = n(15), o = n(124); e.exports = Object.setPrototypeOf "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 i(e), o(t), r ? n.call(e, t) : e.__proto__ = t, e; }; }() : void 0); }, 124: function _(e, t, n) { var r = n(25); e.exports = function (e) { if (!r(e) && null !== e) throw TypeError("Can't set " + String(e) + " as a prototype"); return e; }; }, 125: function _(e, t, n) { "use strict"; var r = n(27), i = n(33), o = n(19), a = n(29), c = o("species"); e.exports = function (e) { var t = r(e), n = i.f; a && t && !t[c] && n(t, c, { configurable: !0, get: function get() { return this; } }); }; }, 126: function _(e, t) {}, 127: function _(e, t, n) { function r(c) { return function (e, t) { var n, r, i = String(s(e)), o = u(t), a = i.length; return o = 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"), o.Arguments = o.Array, i("keys"), i("values"), i("entries"); }, 13: function _(e, t, n) { "use strict"; n.d(t, "b", function () { return a; }), n.d(t, "a", function () { return c; }), t.d = function (e, t) { var n = 2 e.length) && (t = e.length); for (var n = 0, r = new Array(t); n >> 0, o = 0; if (t) n = t;else { for (; o i && (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/" (N.logWarn("queueing auction due to limited endpoint capacity"), H.push(e)); } return { addBidReceived: function addBidReceived(e) { f = f.concat(e); }, addNoBid: function addNoBid(e) { l = l.concat(e); }, executeCallback: O, callBids: function callBids() { b = G, t = Date.now(); var e = P.makeBidRequests(y, t, p, m, s); N.logInfo("Bids Requested for Auction with id: ".concat(p), e), e.length e.getTimeout() + B.b.getConfig("timeoutBuffer") && e.executeCallback(!0); } function Q(e, t) { var n = e.getBidRequests(), r = U()(n, function (e) { return e.bidderCode === t.bidderCode; }); !function (t, e) { var n; { var r; t.bidderCode && (0 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 = v)[i = t] ? r[i] += 1 : r[i] = 1, void (v = 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, i; }, p.syncUsers = function () { var e = 0 e.length) && (t = e.length); for (var n = 0, r = new Array(t); n Object(S.timestamp)(); }, s = function s(e) { return e && (e.status && !O()([w.BID_STATUS.RENDERED], e.status) "https://slate.com/" !e.status); }; function U(e, r, t) { var i = 2 t.max ? e : t; }, { max: 0 }), g = 0, b = v()(e.buckets, function (e) { if (n > p.max * r) { var t = e.precision; void 0 === t && (t = y), i = (e.max * r).toFixed(t); } else { if (n " + e + "" + g + ">"; } var o, a = n(15), c = n(116), u = n(83), s = n(53), d = n(119), f = n(72), l = n(65), p = "prototype", g = "script", b = l("IE_PROTO"), _v = function v() { try { o = document.domain && new ActiveXObject("htmlfile"); } catch (e) {} var e, t; _v = o ? function (e) { e.write(i("https://slate.com/")), e.close(); var t = e.parentWindow.Object; return e = null, t; }(o) : ((t = f("iframe")).style.display = "none", d.appendChild(t), t.src = String("javascript:"), (e = t.contentWindow.document).open(), e.write(i("document.F=Object")), e.close(), e.F); for (var n = u.length; n--;) { delete _v[p][u[n]]; } return _v(); }; s[b] = !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[b] = e) : n = _v(), void 0 === t ? n : c(n, t); }; }, 83: 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"]; }, 84: function _(e, t, n) { var i = n(31); e.exports = function (e, t, n, r) { r && r.enumerable ? e[t] = n : i(e, t, n); }; }, 85: function _(e, t, n) { "use strict"; var r, i, o, a = n(86), c = n(31), u = n(26), s = n(19), d = n(16), f = s("iterator"), l = !1; [].keys && ("next" in (o = [].keys()) ? (i = a(a(o))) !== Object.prototype && (r = i) : 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 }; }, 86: function _(e, t, n) { var r = n(26), i = n(57), o = n(65), a = n(122), c = o("IE_PROTO"), u = Object.prototype; e.exports = a ? Object.getPrototypeOf : function (e) { return e = i(e), r(e, c) ? e[c] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? u : null; }; }, 87: function _(e, t, n) { "use strict"; var i = n(127).charAt, r = n(54), o = n(66), a = "String Iterator", c = r.set, u = r.getterFor(a); o(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 = i(n, r), t.index += e.length, { value: e, done: !1 }); }); }, 88: function _(e, t, n) { var r = n(15), i = n(61); e.exports = function (e) { var t = i(e); if ("function" != typeof t) throw TypeError(String(e) + " is not iterable"); return r(t.call(e)); }; }, 89: function _(e, t, n) { var r = n(153); e.exports = r; }, 896: function _(e, t, n) { e.exports = n(68); }, 9: function _(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), n.d(t, "gdprDataHandler", function () { return R; }), n.d(t, "uspDataHandler", function () { return k; }), t.setS2STestingModule = function (e) { I = e; }; var S = n(0), p = n(91), g = n(37), l = n(1), h = n(4), A = n(3), r = n(13), i = n(12), E = n.n(i), o = n(10), O = n.n(o), b = n(67), T = n(20); function m(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, i = !1, o = 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) { i = !0, o = e; } finally { try { r "https://slate.com/" null == c.return "https://slate.com/" c.return(); } finally { if (i) throw o; } } return n; }(e, t) "https://slate.com/" function (e, t) { if (!e) return; if ("string" == typeof e) return a(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n "https://slate.com/"https://slate.com/"Set" === n) return Array.from(e); if ("Arguments" === n "https://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return a(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 a(e, t) { (null == t "https://slate.com/" t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n n n n prebid.org wrappern n ").concat(r, "n n n n ")), ttlseconds: Number(e.ttl) }; return o.b.getConfig("cache.vasttrack") && (i.bidder = e.bidder, i.bidid = e.requestId, a.isPlainObject(this) && this.hasOwnProperty("auctionStart") && (i.timestamp = this.auctionStart)), "string" == typeof e.customCacheKey && "https://slate.com/" !== e.customCacheKey && (i.key = e.customCacheKey), i; } }, 96: function _(e, t, n) { n(97); var r = n(52); e.exports = r("Array"https://slate.com/,"find"); }, 97: function _(e, t, n) { "use strict";

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

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

)/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/"), w.logMessage("https://console.appnexus.com/docs/understanding-the-debug-auction"), w.logMessage(a)), o; var t = "in response for ".concat(s.bidderCode, " adapter"); return e && e.error && (t += ": ".concat(e.error)), w.logError(t), 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/dmp/async_usersync.html" }]; }, transformBidParams: function transformBidParams(a, e) { return a = w.convertTypes({ member: "string", invCode: "string", placementId: "number", keywords: w.transformBidderParamKeywords, publisherId: "number" }, a), e && (a.use_pmt_rule = "boolean" == typeof a.usePaymentRule && a.usePaymentRule, a.usePaymentRule && delete a.usePaymentRule, I(a.keywords) && a.keywords.forEach(P), Object.keys(a).forEach(function (e) { var r = w.convertCamelToUnderscore(e); r !== e && (a[r] = a[e], delete a[e]); })), a; }, onBidWon: function onBidWon(e) { e.native && function (e) { var r = function (e) { var r; if (w.isStr(e) && U(e)) r = e;else if (w.isArray(e)) for (var a = 0; a nfor (var i = 0; i ');
}

function tryGetCriteoFastBid() {
try {
var fastBidStorageKey = "criteo_fast_bid",
hashPrefix = "// Hash: ",
fastBidFromStorage = storage.getDataFromLocalStorage(fastBidStorageKey),
firstLineEndPosition,
firstLine,
publisherTagHash,
publisherTag;
null !== fastBidFromStorage && (firstLineEndPosition = fastBidFromStorage.indexOf("n"), firstLine = fastBidFromStorage.substr(0, firstLineEndPosition).trim(), firstLine.substr(0, hashPrefix.length) !== hashPrefix ? (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logWarn("No hash found in FastBid"), storage.removeDataFromLocalStorage(fastBidStorageKey)) : (publisherTagHash = firstLine.substr(hashPrefix.length), publisherTag = fastBidFromStorage.substr(firstLineEndPosition + 1), Object(__WEBPACK_IMPORTED_MODULE_6_criteo_direct_rsa_validate_build_verify_js__.verify)(publisherTag, publisherTagHash, FAST_BID_PUBKEY_N, FAST_BID_PUBKEY_E) ? (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logInfo("Using Criteo FastBid"), eval(publisherTag)) : (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logWarn("Invalid Criteo FastBid found"), storage.removeDataFromLocalStorage(fastBidStorageKey))));
} catch (t) {}
}

Object(__WEBPACK_IMPORTED_MODULE_1__src_adapters_bidderFactory_js__.registerBidder)(spec);
},
377: function _(t, e, r) {
"use strict";

Object.defineProperty(e, "__esModule", {
value: !0
});
var a = r(378),
n = r(379);

e.verify = function (t, e, r, i) {
var s = new a.BigInteger(a.b64toHex(e)),
o = new a.BigInteger(a.b64toHex(r)),
_ = s.modPowInt(i, o);

return a.removeExtraSymbols(_.toHexString()) === n.Sha256.hash(t);
};
},
378: function _(t, e, r) {
"use strict";

var i;
Object.defineProperty(e, "__esModule", {
value: !0
});
var s = (T.prototype.toHexString = function () {
if (this.s > s) && (e = !0, r = c(t)); 0 > (s += this.DB - 4)) : (t = this[i] >> (s -= 4) & 15, s this.DB ? (this[this.t - 1] |= (s & (1 > this.DB - i) : this[this.t - 1] |= s = this.DB && (i -= this.DB));
}

this.clamp(), r && T.ZERO.subTo(this, this);
}
}, T.prototype.negate = function () {
var t = b();
return T.ZERO.subTo(this, t), t;
}, T.prototype.abs = function () {
return this.s > i | _, _ = (this[a] & s) = e.DV && (t[r + e.t] -= e.DV, t[r + e.t + 1] = 1);
}

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

for (var _ = r + 1; _ > 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 * n + p * _;
s = ((n = _ * n + ((32767 & c) >> 30) + (c >>> 15) + a * p + (s >>> 30), r[i++] = 1073741823 & n;
}

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

return s;
}, T);

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

function b() {
return new s(null);
}

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

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

for (var o = [], _ = "0".charCodeAt(0), a = 0; a > 2), i = 3 & o, 1) : 1 == r ? (e += c(i > 4), i = 15 & o, 2) : 2 == r ? (e += c(i), e += c(o >> 2), i = 3 & o, 3) : (e += c(i > 4), e += c(15 & o), 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 (o[s - 1][14] = Math.floor(n), o[s - 1][15] = p, _ = 0; _ >> 0;
}

for (var u = r[0], h = r[1], l = r[2], f = r[3], E = r[4], v = r[5], m = r[6], T = r[7], d = 0; d >> 0, f = l, l = h, h = u, u = b + D >>> 0;
}

r[0] = r[0] + u >>> 0, r[1] = r[1] + h >>> 0, r[2] = r[2] + l >>> 0, r[3] = r[3] + f >>> 0, r[4] = r[4] + E >>> 0, r[5] = r[5] + v >>> 0, r[6] = r[6] + m >>> 0, r[7] = r[7] + T >>> 0;
}

for (var P = new Array(r.length), T = 0; T >> t | e >> 3;
}, y.q1 = function (t) {
return y.ROTR(17, t) ^ y.ROTR(19, t) ^ t >>> 10;
}, y.Ch = function (t, e, r) {
return t & e ^ ~t & r;
}, y.Maj = function (t, e, r) {
return t & e ^ t & r ^ e & r;
}, y);

function y() {}

e.Sha256 = i;
}
}, [375]);
pbjsChunk([214], {
496: function _(e, r, i) {
e.exports = i(497);
},
497: function _(e, r, i) {
"use strict";

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

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

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

function C(e) {
var r = {};
return r.id = e.bidId, r.ext = {}, r.ext.siteID = e.params.siteId, !e.params.hasOwnProperty("id") "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 A(e, r) {
if (d(e)) return e[0] === r[0] && e[1] === r[1];

for (var i = 0; i e.length) && (r = e.length);

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

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

nn