PageSourceSearch

https://www.tampabay.com/pf/resources/js/prebid.js?d=798

js tampabay.com collected 2026-09-24 08:26:10 UTC 505,174 bytes, 13,783 lines download raw bytes

1/* prebid.js v11.26.0-pre
2Updated: 2026-07-21
3Modules: rubiconBidAdapter, ixBidAdapter, oguryBidAdapter */
4if (window.pbjs && window.pbjs.libLoaded)
5  try {
6    window.pbjs.getConfig("debug") &&
7      console.warn(
8        "Attempted to load a copy of Prebid.js that clashes with the existing 'pbjs' instance. Load aborted.",
9      );
10  } catch (e) {}
11else
12  ((function () {
13    (() => {
14      var e = {
15        8928(e, t, r) {
16          function n(e, t, r, n, o) {
17            for (t = t.split ? t.split(".") : t, n = 0; n < t.length; n++)
18              e = e ? e[t[n]] : o;
19            return e === o ? r : e;
20          }
21          r.d(t, { A: () => n });
22        },
23        5481(e) {
24          /*
25           * @license MIT
26           * Fun Hooks v1.1.0
27           * (c) @snapwich
28           */
29          ((i.SYNC = 1), (i.ASYNC = 2), (i.QUEUE = 4));
30          var t = "fun-hooks",
31            r = Object.freeze({ ready: 0 }),
32            n = new WeakMap();
33          function o(e, t) {
34            return Array.prototype.slice.call(e, t);
35          }
36          function i(e) {
37            var c,
38              a = {},
39              f = [];
40            function u(e, t) {
41              return "function" == typeof e
42                ? y.call(null, "sync", e, t)
43                : "string" == typeof e && "function" == typeof t
44                  ? y.apply(null, arguments)
45                  : "object" == typeof e
46                    ? l.apply(null, arguments)
47                    : void 0;
48            }
49            function l(e, t, r) {
50              var n = !0;
51              void 0 === t &&
52                ((t = Object.getOwnPropertyNames(e).filter(
53                  (e) => !e.match(/^_/),
54                )),
55                (n = !1));
56              var o = {},
57                i = ["constructor"];
58              do {
59                (t.forEach(function (t) {
60                  var n = t.match(/(?:(sync|async):)?(.+)/),
61                    c = n[1] || "sync",
62                    a = n[2];
63                  if (
64                    !o[a] &&
65                    "function" == typeof e[a] &&
66                    -1 === i.indexOf(a)
67                  ) {
68                    var f = e[a];
69                    o[a] = e[a] = y(c, f, r ? [r, a] : void 0);
70                  }
71                }),
72                  (e = Object.getPrototypeOf(e)));
73              } while (n && e);
74              return o;
75            }
76            function p(e) {
77              var r = Array.isArray(e) ? e : e.split(".");
78              return r.reduce(function (n, o, i) {
79                var a = n[o],
80                  u = !1;
81                return (
82                  a ||
83                  (i === r.length - 1
84                    ? (c ||
85                        f.push(function () {
86                          u ||
87                            console.warn(
88                              t +
89                                ": referenced '" +
90                                e +
91                                "' but it was never created",
92                            );
93                        }),
94                      (n[o] = s(function (e) {
95                        ((n[o] = e), (u = !0));
96                      })))
97                    : (n[o] = {}))
98                );
99              }, a);
100            }
101            function s(e) {
102              var t = [],
103                r = [],
104                o = function () {},
105                i = {
106                  before: function (e, r) {
107                    return a.call(this, t, "before", e, r);
108                  },
109                  after: function (e, t) {
110                    return a.call(this, r, "after", e, t);
111                  },
112                  getHooks: function (e) {
113                    var n = t.concat(r);
114                    "object" == typeof e &&
115                      (n = n.filter(function (t) {
116                        return Object.keys(e).every(function (r) {
117                          return t[r] === e[r];
118                        });
119                      }));
120                    try {
121                      Object.assign(n, {
122                        remove: function () {
123                          return (
124                            n.forEach(function (e) {
125                              e.remove();
126                            }),
127                            this
128                          );
129                        },
130                      });
131                    } catch (e) {
132                      console.error(
133                        "error adding `remove` to array, did you modify Array.prototype?",
134                      );
135                    }
136                    return n;
137                  },
138                  removeAll: function () {
139                    return this.getHooks().remove();
140                  },
141                },
142                c = {
143                  install: function (n, i, c) {
144                    ((this.type = n), (o = c), c(t, r), e && e(i));
145                  },
146                };
147              return (n.set(i.after, c), i);
148              function a(e, n, i, c) {
149                var a = {
150                  hook: i,
151                  type: n,
152                  priority: c || 10,
153                  remove: function () {
154                    var n = e.indexOf(a);
155                    -1 !== n && (e.splice(n, 1), o(t, r));
156                  },
157                };
158                return (
159                  e.push(a),
160                  e.sort(function (e, t) {
161                    return t.priority - e.priority;
162                  }),
163                  o(t, r),
164                  this
165                );
166              }
167            }
168            function y(r, a, u) {
169              var l = a.after && n.get(a.after);
170              if (l) {
171                if (l.type !== r)
172                  throw t + ": recreated hookable with different type";
173                return a;
174              }
175              var y,
176                d = u ? p(u) : s(),
177                v = {
178                  get: function (e, t) {
179                    return d[t] || Reflect.get.apply(Reflect, arguments);
180                  },
181                };
182              c || f.push(b);
183              var h = new Proxy(a, v);
184              return (
185                n.get(h.after).install(r, h, function (e, t) {
186                  var n,
187                    i = [];
188                  e.length || t.length
189                    ? (e.forEach(c),
190                      (n = i.push(void 0) - 1),
191                      t.forEach(c),
192                      (y = function (e, t, c) {
193                        var a,
194                          f = i.slice(),
195                          u = 0,
196                          l =
197                            "async" === r &&
198                            "function" == typeof c[c.length - 1] &&
199                            c.pop();
200                        function p(e) {
201                          "sync" === r
202                            ? (a = e)
203                            : l && l.apply(null, arguments);
204                        }
205                        function s(e) {
206                          if (f[u]) {
207                            var n = o(arguments);
208                            return (
209                              (s.bail = p),
210                              n.unshift(s),
211                              f[u++].apply(t, n)
212                            );
213                          }
214                          "sync" === r
215                            ? (a = e)
216                            : l && l.apply(null, arguments);
217                        }
218                        return (
219                          (f[n] = function () {
220                            var n = o(arguments, 1);
221                            "async" === r && l && (delete s.bail, n.push(s));
222                            var i = e.apply(t, n);
223                            "sync" === r && s(i);
224                          }),
225                          s.apply(null, c),
226                          a
227                        );
228                      }))
229                    : (y = void 0);
230                  function c(e) {
231                    i.push(e.hook);
232                  }
233                  b();
234                }),
235                h
236              );
237              function b() {
238                !c &&
239                ("sync" !== r || e.ready & i.SYNC) &&
240                ("async" !== r || e.ready & i.ASYNC)
241                  ? "sync" !== r && e.ready & i.QUEUE
242                    ? (v.apply = function () {
243                        var e = arguments;
244                        f.push(function () {
245                          h.apply(e[1], e[2]);
246                        });
247                      })
248                    : (v.apply = function () {
249                        throw t + ": hooked function not ready";
250                      })
251                  : (v.apply = y);
252              }
253            }
254            return (
255              (e = Object.assign({}, r, e)).ready
256                ? (u.ready = function () {
257                    ((c = !0),
258                      (function (e) {
259                        for (var t; (t = e.shift());) t();
260                      })(f));
261                  })
262                : (c = !0),
263              (u.get = p),
264              u
265            );
266          }
267          e.exports = i;
268        },
269        3435(e, t, r) {
270          function n(e, t, r) {
271            t.split && (t = t.split("."));
272            for (
273              var n, o, i = 0, c = t.length, a = e;
274              i < c &&
275              "__proto__" != (o = "" + t[i++]) &&
276              "constructor" !== o &&
277              "prototype" !== o;
278            )
279              a = a[o] =
280                i === c
281                  ? r
282                  : typeof (n = a[o]) == typeof t
283                    ? n
284                    : 0 * t[i] != 0 || ~("" + t[i]).indexOf(".")
285                      ? {}
286                      : [];
287          }
288          r.d(t, { J: () => n });
289        },
290        1490(e, t, r) {
291          function n(e) {
292            var t, r, o;
293            if (Array.isArray(e)) {
294              for (r = Array((t = e.length)); t--;)
295                r[t] = (o = e[t]) && "object" == typeof o ? n(o) : o;
296              return r;
297            }
298            if ("[object Object]" === Object.prototype.toString.call(e)) {
299              for (t in ((r = {}), e))
300                "__proto__" === t
301                  ? Object.defineProperty(r, t, {
302                      value: n(e[t]),
303                      configurable: !0,
304                      enumerable: !0,
305                      writable: !0,
306                    })
307                  : (r[t] = (o = e[t]) && "object" == typeof o ? n(o) : o);
308              return r;
309            }
310            return e;
311          }
312          r.d(t, { Q: () => n });
313        },
314        3715(e, t, r) {
315          r.d(t, [
316            "A",
317            0,
318            {
319              pbGlobal: "pbjs",
320              defineGlobal: !0,
321              features: {
322                NATIVE: !0,
323                VIDEO: !0,
324                UID2_CSTG: !0,
325                GREEDY: !1,
326                AUDIO: !0,
327                LOG_NON_ERROR: !0,
328                LOG_ERROR: !0,
329              },
330              distUrlBase:
331                "https://cdn.jsdelivr.net/npm/prebid.js@latest/dist/chunks/",
332              skipCalls: {},
333            },
334          ]);
335        },
336      };
337      const t = {};
338      function r(n) {
339        const o = t[n];
340        if (void 0 !== o) return o.exports;
341        const i = (t[n] = { exports: {} });
342        return (e[n](i, i.exports, r), i.exports);
343      }
344      ((r.m = e),
345        (() => {
346          const e = [];
347          r.O = (t, n, o, i) => {
348            if (n) {
349              i = i || 0;
350              for (var c = e.length; c > 0 && e[c - 1][2] > i; c--)
351                e[c] = e[c - 1];
352              return void (e[c] = [n, o, i]);
353            }
354            let a = 1 / 0;
355            for (c = 0; c < e.length; c++) {
356              let [n, o, i] = e[c],
357                u = !0;
358              for (var f = 0; f < n.length; f++)
359                (!1 & i || a >= i) &&
360                Object.keys(r.O).every((e) => r.O[e](n[f]))
361                  ? n.splice(f--, 1)
362                  : ((u = !1), i < a && (a = i));
363              if (u) {
364                e.splice(c--, 1);
365                const r = o();
366                void 0 !== r && (t = r);
367              }
368            }
369            return t;
370          };
371        })(),
372        (r.n = (e) => {
373          const t = e && e.__esModule ? () => e.default : () => e;
374          return (r.d(t, { a: t }), t);
375        }),
376        (r.d = (e, t) => {
377          if (Array.isArray(t))
378            for (var n = 0; n < t.length;) {
379              var o = t[n++],
380                i = t[n++];
381              r.o(e, o)
382                ? 0 === i && n++
383                : 0 === i
384                  ? Object.defineProperty(e, o, {
385                      enumerable: !0,
386                      value: t[n++],
387                    })
388                  : Object.defineProperty(e, o, { enumerable: !0, get: i });
389            }
390          else
391            for (var o in t)
392              r.o(t, o) &&
393                !r.o(e, o) &&
394                Object.defineProperty(e, o, { enumerable: !0, get: t[o] });
395        }),
396        (r.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)),
397        (r.r = (e) => {
398          (Symbol.toStringTag &&
399            Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }),
400            Object.defineProperty(e, "__esModule", { value: !0 }));
401        }),
402        (() => {
403          const e = { 673: 0 };
404          r.O.j = (t) => 0 === e[t];
405          const t = (t, n) => {
406              let [o, i, c] = n;
407              var a,
408                f,
409                u = 0;
410              if (o.some((t) => 0 !== e[t])) {
411                for (a in i) r.o(i, a) && (r.m[a] = i[a]);
412                if (c) var l = c(r);
413              }
414              for (t && t(n); u < o.length; u++)
415                ((f = o[u]), r.o(e, f) && e[f] && e[f][0](), (e[f] = 0));
416              return r.O(l);
417            },
418            n = (self.pbjsChunk = self.pbjsChunk || []);
419          (n.forEach(t.bind(null, 0)), (n.push = t.bind(null, n.push.bind(n))));
420        })());
421      let n = r.O(void 0, [802, 769, 590, 85], () => r(7824));
422      n = r.O(n);
423    })();
424    (self.pbjsChunk = self.pbjsChunk || []).push([
425      [802],
426      {
427        6901(e, t, n) {
428          n.d(t, { A4: () => s, J7: () => a, Pg: () => d });
429          var r = n(8468),
430            i = n(7413);
431          const o = (0, n(1129).m)();
432          function s(e) {
433            const {
434              url: t,
435              config: n,
436              id: s,
437              callback: a,
438              loaded: d,
439              adUnitCode: c,
440              renderNow: u,
441            } = e;
442            ((this.url = t),
443              (this.config = n),
444              (this.handlers = {}),
445              (this.id = s),
446              (this.renderNow = u),
447              (this.adUnitCode = c),
448              (this.loaded = d),
449              (this.cmd = []),
450              (this.push = (e) => {
451                "function" == typeof e
452                  ? this.loaded
453                    ? e.call()
454                    : this.cmd.push(e)
455                  : (0, i.vV)(
456                      "Commands given to Renderer.push must be wrapped in a function",
457                    );
458              }),
459              (this.callback =
460                a ||
461                (() => {
462                  ((this.loaded = !0), this.process());
463                })),
464              (this.render = function () {
465                const e = arguments,
466                  n = () => {
467                    this._render
468                      ? this._render.apply(this, e)
469                      : (0, i.JE)(
470                          "No render function was provided, please use .setRender on the renderer",
471                        );
472                  };
473                !(function (e) {
474                  const t = o.adUnits.find((t) => t.code === e);
475                  if (!t) return !1;
476                  const n = t?.renderer,
477                    r = !!(n && n.url && n.render),
478                    i = t?.mediaTypes?.video?.renderer,
479                    s = !!(i && i.url && i.render);
480                  return !!(
481                    (r && !0 !== n.backupOnly) ||
482                    (s && !0 !== i.backupOnly)
483                  );
484                })(c)
485                  ? u
486                    ? n()
487                    : (this.cmd.unshift(n),
488                      (0, r.R)(
489                        t,
490                        "prebid",
491                        "outstream",
492                        this.callback,
493                        this.documentContext,
494                      ))
495                  : ((0, i.JE)(
496                      `External Js not loaded by Renderer since renderer url and callback is already defined on adUnit ${c}`,
497                    ),
498                    n());
499              }.bind(this)));
500          }
501          function a(e) {
502            return !(!e || (!e.url && !e.renderNow));
503          }
504          function d(e, t, n) {
505            let r = null;
506            (e.config &&
507              e.config.documentResolver &&
508              (r = e.config.documentResolver(t, document, n)),
509              r || (r = document),
510              (e.documentContext = r),
511              e.render(t, e.documentContext));
512          }
513          ((s.install = function ({
514            url: e,
515            config: t,
516            id: n,
517            callback: r,
518            loaded: i,
519            adUnitCode: o,
520            renderNow: a,
521          }) {
522            return new s({
523              url: e,
524              config: t,
525              id: n,
526              callback: r,
527              loaded: i,
528              adUnitCode: o,
529              renderNow: a,
530            });
531          }),
532            (s.prototype.getConfig = function () {
533              return this.config;
534            }),
535            (s.prototype.setRender = function (e) {
536              this._render = e;
537            }),
538            (s.prototype.setEventHandlers = function (e) {
539              this.handlers = e;
540            }),
541            (s.prototype.handleVideoEvent = function ({ id: e, eventName: t }) {
542              ("function" == typeof this.handlers[t] && this.handlers[t](),
543                (0, i.OG)(`Prebid Renderer event for id ${e} type ${t}`));
544            }),
545            (s.prototype.process = function () {
546              for (; this.cmd.length > 0;)
547                try {
548                  this.cmd.shift().call();
549                } catch (e) {
550                  (0, i.vV)(
551                    `Error processing Renderer command on ad unit '${this.adUnitCode}':`,
552                    e,
553                  );
554                }
555            }));
556        },
557        323(e, t, n) {
558          n.d(t, [
559            "DL",
560            0,
561            "transmitUfpd",
562            "Ml",
563            0,
564            "syncUser",
565            "Ue",
566            0,
567            "accessDevice",
568            "VJ",
569            0,
570            "transmitTid",
571            "hE",
572            0,
573            "transmitPreciseGeo",
574            "hq",
575            0,
576            "transmitEids",
577            "it",
578            0,
579            "acceptBid",
580            "jP",
581            0,
582            "loadExternalScript",
583            "mo",
584            0,
585            "reportAnalytics",
586            "uc",
587            0,
588            "fetchBids",
589            "yg",
590            0,
591            "accessRequestCredentials",
592          ]);
593        },
594        5881(e, t, n) {
595          n.d(t, { s: () => i });
596          var r = n(6001);
597          const i = (0, n(724).ZI)((e) => r.Ay.resolveAlias(e));
598        },
599        724(e, t, n) {
600          n.d(t, { ZI: () => d });
601          var r = n(1785);
602          const i = "component",
603            o = i + "Type",
604            s = i + "Name",
605            a = "adapterCode";
606          function d(e) {
607            return function (t, n, r) {
608              const d = { [o]: t, [s]: n, [i]: `${t}.${n}` };
609              return ("bidder" === t && (d[a] = e(n)), c(Object.assign(d, r)));
610            };
611          }
612          const c = (0, r.A_)("sync", (e) => e);
613          n.d(t, [
614            "Dk",
615            0,
616            o,
617            "Ez",
618            0,
619            "storageKey",
620            "Ii",
621            0,
622            i,
623            "TQ",
624            0,
625            "_config",
626            "XG",
627            0,
628            "configName",
629            "Zw",
630            0,
631            "storageType",
632            "bt",
633            0,
634            "syncType",
635            "e3",
636            0,
637            "syncUrl",
638            "iK",
639            0,
640            s,
641            "q7",
642            0,
643            a,
644          ]);
645        },
646        4283(e, t, n) {
647          var r = n(7413),
648            i = n(724);
649          const [o, s] = (function (e = (0, r.h0)("Activity control:")) {
650            const t = {};
651            function n(e) {
652              return ((t[e] = t[e] || []), t[e]);
653            }
654            function o(t, n, r, o) {
655              let s;
656              try {
657                s = r(o);
658              } catch (r) {
659                (e.logError(`Exception in rule ${n} for '${t}'`, r),
660                  (s = { allow: !1, reason: r }));
661              }
662              return (
663                s &&
664                Object.assign({ activity: t, name: n, component: o[i.Ii] }, s)
665              );
666            }
667            const s = {};
668            function a({
669              activity: t,
670              name: n,
671              allow: r,
672              reason: i,
673              component: o,
674            }) {
675              const a = `${n} ${r ? "allowed" : "denied"} '${t}' for '${o}'${i ? ":" : ""}`,
676                d = s.hasOwnProperty(a);
677              if (
678                (d && clearTimeout(s[a]),
679                (s[a] = setTimeout(() => delete s[a], 1e3)),
680                !d)
681              ) {
682                const t = [a];
683                (i && t.push(i), (r ? e.logInfo : e.logWarn).apply(e, t));
684              }
685            }
686            return [
687              function (e, t, r, i = 10) {
688                const o = n(e),
689                  s = o.findIndex(([e]) => i < e),
690                  a = [i, t, r];
691                return (
692                  o.splice(s < 0 ? o.length : s, 0, a),
693                  function () {
694                    const e = o.indexOf(a);
695                    e >= 0 && o.splice(e, 1);
696                  }
697                );
698              },
699              function (e, t) {
700                let r, i;
701                for (const [s, d, c] of n(e)) {
702                  if (r !== s && i) break;
703                  r = s;
704                  const n = o(e, d, c, t);
705                  if (n) {
706                    if (!n.allow) return (a(n), !1);
707                    i = n;
708                  }
709                }
710                return (i && a(i), !0);
711              },
712            ];
713          })();
714          n.d(t, ["io", 0, s, "qB", 0, o]);
715        },
716        5595(e, t, n) {
717          n.d(t, {
718            BS: () => M,
719            Hd: () => F,
720            Hh: () => q,
721            Pk: () => N,
722            Uc: () => B,
723            XO: () => G,
724            bw: () => $,
725            n6: () => I,
726            qn: () => _,
727            vB: () => P,
728            vW: () => S,
729            vd: () => k,
730          });
731          var r = n(7413),
732            i = n(3399),
733            o = n(5521),
734            s = n(8384),
735            a = n(6901),
736            d = n(6825),
737            c = n(3895),
738            u = n(1785),
739            l = n(5657),
740            f = n(6001),
741            p = n(2822),
742            g = n(2247),
743            m = n(8693),
744            h = n(2859),
745            b = n(8203);
746          const {
747              AD_RENDER_FAILED: y,
748              AD_RENDER_SUCCEEDED: v,
749              STALE_RENDER: E,
750              BID_WON: w,
751              EXPIRED_RENDER: A,
752            } = o.qY,
753            { EXCEPTION: T } = o.as,
754            I = (0, u.A_)("sync", function (e) {
755              (((0, m.$)(e.eventtrackers)[500]?.[1] || []).forEac
755h((e) =>
756                (0, r.z$)(e),
757              ),
758                i.Ic(w, e),
759                d.n.addWinningBid(e));
760            });
761          function C({ reason: e, message: t, bid: n, id: o }) {
762            const s = { reason: e, message: t };
763            (n && ((s.bid = n), (s.adId = n.adId)),
764              o && (s.adId = o),
765              (0, r.vV)(`Error rendering ad (id: ${o}): ${t}`),
766              i.Ic(y, s));
767          }
768          function O({ doc: e, bid: t, id: n }) {
769            const r = { doc: e, bid: t, adId: n };
770            (f.Ay.callAdRenderSucceededBidder(t.adapterCode || t.bidder, t),
771              i.Ic(v, r));
772          }
773          function B(e, t) {
774            switch (e.event) {
775              case o.qY.AD_RENDER_FAILED:
776                C({
777                  bid: t,
778                  id: t.adId,
779                  reason: e.info.reason,
780                  message: e.info.message,
781                });
782                break;
783              case o.qY.AD_RENDER_SUCCEEDED:
784                O({ doc: null, bid: t, id: t.adId });
785                break;
786              case o.qY.BROWSER_INTERVENTION:
787                !(function (e) {
788                  const { bid: t, intervention: n } = e;
789                  (f.Ay.callOnInterventionBidder(
790                    t.adapterCode || t.bidder,
791                    t,
792                    n,
793                  ),
794                    i.Ic(o.qY.BROWSER_INTERVENTION, e));
795                })({ bid: t, adId: t.adId, intervention: e.intervention });
796                break;
797              default:
798                (0, r.vV)(
799                  `Received event request for unsupported event: '${e.event}' (adId: '${t.adId}')`,
800                );
801            }
802          }
803          function S(e, t, { resizeFn: n, fireTrackers: r = l.vO }) {
804            if ("resizeNativeHeight" === e.action) n(e.width, e.height);
805            else r(e, t);
806          }
807          const R = { [o.nl.EVENT]: B };
808          R[o.nl.NATIVE] = S;
809          const k = (0, u.A_)("sync", function (e, t) {
810            const { ad: n, adUrl: r, width: i, height: o, instl: s } = U(e, t);
811            return { ad: n, adUrl: r, width: i, height: o, instl: s };
812          });
813          function U(e, t) {
814            const {
815                ad: n,
816                adUrl: i,
817                cpm: o,
818                originalCpm: s,
819                safeRenderer: a,
820              } = e,
821              d = { AUCTION_PRICE: s || o, CLICKTHROUGH: t?.clickUrl || "" },
822              c = { ...e, ad: (0, r.gM)(n, d), adUrl: (0, r.gM)(i, d) };
823            return (
824              a &&
825                (c.safeRenderer = {
826                  ...a,
827                  config:
828                    "function" == typeof a?.getConfig
829                      ? a.getConfig(e)
830                      : a?.config,
831                }),
832              c
833            );
834          }
835          const D = (0, u.A_)(
836            "sync",
837            function ({
838              renderFn: e,
839              resizeFn: t,
840              bidResponse: n,
841              options: i,
842              doc: s,
843              isMainDocument: a = s === document && !(0, r.al)(),
844            }) {
845              const d = F(n),
846                c = "video" === n.mediaType;
847              if ((a || c) && !d?.url)
848                return void C({
849                  reason: o.as.PREVENT_WRITING_ON_MAIN_DOCUMENT,
850                  message: c
851                    ? "Cannot render video ad without a renderer"
852                    : "renderAd was prevented from writing to the main document.",
853                  bid: n,
854                  id: n.adId,
855                });
856              const u = (function (e, t, n) {
857                if (n) {
858                  const {
859                    ad: n,
860                    adUrl: r,
861                    width: i,
862                    height: o,
863                    instl: s,
864                    vastXml: a,
865                    vastUrl: d,
866                    mediaType: c,
867                    safeRenderer: u,
868                  } = U(e, t);
869                  return {
870                    ad: n,
871                    adUrl: r,
872                    width: i,
873                    height: o,
874                    instl: s,
875                    vastXml: a,
876                    vastUrl: d,
877                    mediaType: c,
878                    safeRenderer: u,
879                  };
880                }
881                return k(e, t);
882              })(n, i, d);
883              e(Object.assign({ adId: n.adId }, u));
884              const { width: l, height: f } = u;
885              null != (l ?? f) && t(l, f);
886            },
887          );
888          function $({
889            renderFn: e,
890            resizeFn: t,
891            adId: n,
892            options: a,
893            bidResponse: d,
894            doc: c,
895          }) {
896            q(d, () => {
897              if (null != d) {
898                if (
899                  (d.status !== o.tl.RENDERED ||
900                    ((0, r.JE)(`Ad id ${n} has been rendered before`),
901                    i.Ic(E, d),
902                    !s.$.getConfig("auctionOptions")?.suppressStaleRender)) &&
903                  (g.Z.isBidNotExpired(d) ||
904                    ((0, r.JE)(`Ad id ${n} has been expired`),
905                    i.Ic(A, d),
906                    !s.$.getConfig("auctionOptions")?.suppressExpiredRender))
907                )
908                  try {
909                    D({
910                      renderFn: e,
911                      resizeFn: t,
912                      bidResponse: d,
913                      options: a,
914                      doc: c,
915                    });
916                  } catch (e) {
917                    C({
918                      reason: o.as.EXCEPTION,
919                      message: e.message,
920                      id: n,
921                      bid: d,
922                    });
923                  }
924              } else
925                C({
926                  reason: o.as.CANNOT_FIND_AD,
927                  message: `Cannot find ad '${n}'`,
928                  id: n,
929                });
930            });
931          }
932          function _(e) {
933            const t = (0, p.BO)(e.metrics);
934            (t.checkpoint("bidRender"),
935              t.timeBetween("bidWon", "bidRender", "render.deferred"),
936              t.timeBetween("auctionEnd", "bidRender", "render.pending"),
937              t.timeBetween("requestBids", "bidRender", "render.e2e"),
938              (e.status = o.tl.RENDERED));
939          }
940          D.before(function (e, t) {
941            const { bidResponse: n, doc: r } = t;
942            (0, a.J7)(n.renderer) && !F(n)
943              ? ((0, a.Pg)(n.renderer, n, r),
944                O({ doc: r, bid: n, id: n.adId }),
945                e.bail())
946              : e(t);
947          }, 100);
948          const j = new WeakMap(),
949            x = new WeakSet();
950          function q(e, t) {
951            null != e ? (j.set(e, t), e.deferRendering || P(e), N(e)) : t();
952          }
953          function N(e) {
954            x.has(e) || (x.add(e), I(e));
955          }
956          function P(e) {
957            const t = j.get(e);
958            t && (t(), _(e), j.delete(e));
959          }
960          let V = !1;
961          s.$.getConfig("auctionOptions", (e) => {
962            V = e.auctionOptions?.legacyRender ?? !1;
963          });
964          const M = (0, h.o1)(
965            () => !V,
966            function (e, t, n) {
967              let i;
968              function s(e, n) {
969                C(Object.assign({ id: t, bid: i }, { reason: e, message: n }));
970              }
971              function a(t, n) {
972                const r = e.defaultView?.frameElement;
973                r &&
974                  (t &&
975                    ((r.width = t),
976                    r.style.width && (r.style.width = `${t}px`)),
977                  n &&
978                    ((r.height = n),
979                    r.style.height && (r.style.height = `${n}px`)));
980              }
981              const u =
982                ((l = { resizeFn: a }),
983                function (e, t, n) {
984                  R.hasOwnProperty(e) && R[e](t, n, l);
985                });
986              var l;
987              function f(e) {
988                return new b.U9((t) => {
989                  "loading" === e.readyState
990                    ? e.addEventListener("DOMContentLoaded", t)
991                    : t();
992                });
993              }
994              try {
995                t && e
996                  ? ((i = d.n.findBidByAdId(t)),
997                    $({
998                      renderFn: function (t) {
999                        t.ad && V
1000                          ? (e.write(t.ad),
1001                            e.close(),
1002                            O({ doc: e, bid: i, id: i.adId }))
1003                          : b.U9.all([(0, c.HH)(i), f(e)])
1004                              .then(([n]) =>
1005                                n(
1006                                  t,
1007                                  {
1008                                    sendMessage: (e, t) => u(e, t, i),
1009                                    mkFrame: r.hw,
1010                                  },
1011                                  e.defaultView,
1012                                ),
1013                              )
1014                              .then(
1015                                () => O({ doc: e, bid: i, id: i.adId }),
1016                                (e) => {
1017                                  (s(e?.reason || o.as.EXCEPTION, e?.message),
1018                                    e?.stack && (0, r.vV)(e));
1019                                },
1020                              );
1021                        const n = document.createComment(
1022                          `Creative ${i.creativeId} served by ${i.bidder} Prebid.js Header Bidding`,
1023                        );
1024                        (0, r._s)(n, e, "html");
1025                      },
1026                      resizeFn: a,
1027                      adId: t,
1028                      options: { clickUrl: n?.clickThrough },
1029                      bidResponse: i,
1030                      doc: e,
1031                    }))
1032                  : s(
1033                      o.as.MISSING_DOC_OR_ADID,
1034                      "missing " + (t ? "doc" : "adId"),
1035                    );
1036              } catch (e) {
1037                s(T, e.message);
1038              }
1039            },
1040          );
1041          function G() {
1042            if (!window.frames[o.IY])
1043              if (document.body) {
1044                const e = (0, r.CA)();
1045                ((e.name = o.IY), document.body.appendChild(e));
1046              } else window.requestAnimationFrame(G);
1047          }
1048          function F(e) {
1049            return e.safeRenderer;
1050          }
1051        },
1052        6001(e, t, n) {
1053          n.d(t, { sc: () => te, Ay: () => ge, pX: () => ae });
1054          var r = n(3350),
1055            i = n(7413),
1056            o = n(5657),
1057            s = n(2682),
1058            a = n(8964),
1059            d = n(8384),
1060            c = n(1785);
1061          const u = "requests",
1062            l = "wins",
1063            f = "auctions";
1064          let p = {};
1065          function g(e, t) {
1066            const n = (p[e] = p[e] || { bidders: {} });
1067            return t ? ((n.bidders[t] = n.bidders[t] || {}), n.bidders[t]) : n;
1068          }
1069          function m(e, t) {
1070            return function (n, r) {
1071              const i = g(n, t && r);
1072              return ((i[e] = (i[e] ?? 0) + 1), i[e]);
1073            };
1074          }
1075          function h(e, t) {
1076            return function (n, r) {
1077              return g(n, t && r)[e] ?? 0;
1078            };
1079          }
1080          const b = m(u, !1),
1081            y = m(u, !0),
1082            v = m(l, !0),
1083            E = m(f, !1),
1084            w = h(u, !1),
1085            A = h(u, !0),
1086            T = h(l, !0),
1087            I = h(f, !1);
1088          var C = n(7686),
1089            O = n(1068),
1090            B = n(3399),
1091            S = n(5521),
1092            R = n(2822),
1093            k = n(6825);
1094          const U = "analytics";
1095          var D = n(4283),
1096            $ = n(323),
1097            _ = n(724),
1098            j = n(8928);
1099          const x = [
1100              "data",
1101              "ext.data",
1102              "yob",
1103              "gender",
1104              "keywords",
1105              "kwarray",
1106              "id",
1107              "buyeruid",
1108              "customdata",
1109            ]
1110              .map((e) => `user.${e}`)
1111              .concat("device.ifa"),
1112            q = ["user.eids", "user.ext.eids"],
1113            N = [
1114              "user.geo.lat",
1115              "user.geo.lon",
1116              "device.geo.lat",
1117              "device.geo.lon",
1118            ],
1119            P = ["device.ip"],
1120            V = ["device.ipv6"];
1121          function M(e) {
1122            return Object.assign(
1123              {
1124                get() {},
1125                run(e, t, n, r, i) {
1126                  const o = n && n[r];
1127                  if (
1128                    (function (e) {
1129                      return (
1130                        null != e &&
1131                        ("object" != typeof e || Object.keys(e).length > 0)
1132                      );
1133                    })(o) &&
1134                    i()
1135                  ) {
1136                    const e = this.get(o);
1137                    void 0 === e ? delete n[r] : (n[r] = e);
1138                  }
1139                },
1140              },
1141              e,
1142            );
1143          }
1144          function G(e) {
1145            return (
1146              e.forEach((e) => {
1147                e.paths = e.paths.map((e) => {
1148                  const t = e.split("."),
1149                    n = t.pop();
1150                  return [t.length > 0 ? t.join(".") : null, n];
1151                });
1152              }),
1153              function (t, n, ...r) {
1154                const i = [],
1155                  o = (function (e, ...t) {
1156                    return function (n) {
1157                      return (
1158                        e.hasOwnProperty(n.name) ||
1159                          (e[n.name] = !!n.applies(...t)),
1160                        e[n.name]
1161                      );
1162                    };
1163                  })(t, ...r);
1164                return (
1165                  e.forEach((e) => {
1166                    if (!1 !== t[e.name])
1167                      for (const [r, s] of e.paths) {
1168                        const a = null == r ? n : (0, j.A)(n, r);
1169                        if (
1170                          (i.push(e.run(n, r, a, s, o.bind(null, e))),
1171                          !1 === t[e.name])
1172                        )
1173                          return;
1174                      }
1175                  }),
1176                  i.filter((e) => null != e)
1177                );
1178              }
1179            );
1180          }
1181          function F(e, t = D.io) {
1182            return function (n) {
1183              return !t(e, n);
1184            };
1185          }
1186          function W(e = D.io) {
1187            return [
1188              { name: $.DL, paths: x, applies: F($.DL, e) },
1189              { name: $.hq, paths: q, applies: F($.hq, e) },
1190              {
1191                name: $.hE,
1192                paths: N,
1193                applies: F($.hE, e),
1194                get: (e) => Math.round(100 * (e + Number.EPSILON)) / 100,
1195              },
1196              {
1197                name: $.hE,
1198                paths: P,
1199                applies: F($.hE, e),
1200                get: (e) =>
1201                  (function (e) {
1202                    if (!e) return null;
1203                    const t = e.split(".").map(Number);
1204                    if (4 !== t.length) return null;
1205                    const n = [];
1206                    for (let e = 0; e < 4; e++) {
1207                      const t = Math.max(0, Math.min(8, 24 - 8 * e));
1208                      n.push((255 << (8 - t)) & 255);
1209                    }
1210                    return t.map((e, t) => e & n[t]).join(".");
1211                  })(e),
1212              },
1213              {
1214                name: $.hE,
1215                paths: V,
1216                applies: F($.hE, e),
1217                get: (e) =>
1218                  (function (e) {
1219                    if (!e) return null;
1220                    let t = e.split(":").map((e) => parseInt(e, 16));
1221                    for (t = t.map((e) => (isNaN(e) ? 0 : e)); t.length < 8;)
1222                      t.push(0);
1223                    if (8 !== t.length) return null;
1224                    const n = [];
1225                    for (let e = 0; e < 8; e++) {
1226                      const t = Math.max(0, Math.min(16, 64 - 16 * e));
1227                      n.push((65535 << (16 - t)) & 65535);
1228                    }
1229                    return t
1230                      .map((e, t) => e & n[t])
1231                      .map((e) => e.toString(16))
1232                      .join(":");
1233                  })(e),
1234              },
1235              {
1236                name: $.VJ,
1237                paths: ["source.tid", "source.ext.tidSource"],
1238                applies: F($.VJ, e),
1239              },
1240            ].map(M);
1241          }
1242          const L = (function (e = D.io) {
1243            const t = G(W(e)),
1244              n = G(
1245                (function (e = D.io) {
1246                  return [
1247                    {
1248                      name: $.hq,
1249                      paths: ["userId", "userIdAsEids"],
1250                      applies: F($.hq, e),
1251                    },
1252                    {
1253                      name: $.VJ,
1254                      paths: ["ortb2Imp.ext.tid", "ortb2Imp.ext.tidSource"],
1255                      applies: F($.VJ, e),
1256                    },
1257                  ].map(M);
1258                })(e),
1259              );
1260            return function (e) {
1261              const r = {};
1262              return {
1263                ortb2: (n) => (t(r, n, e), n),
1264                bidRequest: (t) => (n(r, t, e), t),
1265              };
1266            };
1267          })();
1268          (0, D.qB)($.VJ, "enableTIDs config", () => {
1269            if (!d.$.getConfig("enableTIDs"))
1270              return { allow: !1, reason: "TIDs are disabled" };
1271          });
1272          var z = n(8693),
1273            J = n(1129);
1274          const H = "pbsBidAdapter",
1275            Q = { CLIENT: "client", SERVER: "server" },
1276            K = { isAllowed: D.io, redact: L },
1277            Y = {},
1278            X = {},
1279            Z = {};
1280          let ee = [];
1281          d.$.getConfig("s2sConfig", (e) => {
1282            e &&
1283              e.s2sConfig &&
1284              (ee = (0, r.cy)(e.s2sConfig) ? e.s2sConfig : [e.s2sConfig]);
1285          });
1286          const te = (0, _.ZI)((e) => ue.resolveAlias(e));
1287          function ne(e) {
1288            return e.configName ?? e.name;
1289          }
1290          const re = [
1291            "nativeParams",
1292            "nativeOrtbRequest",
1293            "renderer",
1294            "element",
1295          ];
1296          function ie({
1297            bidderCode: e,
1298            auctionId: t,
1299            bidderRequestId: n,
1300            adUnits: o,
1301            src: s,
1302            metrics: a,
1303            getTid: d,
1304          }) {
1305            return o
1306              .reduce((o, c) => {
1307                const u = c.bids.filter((t) => t.bidder === e);
1308                return (
1309                  null == e &&
1310                    0 === u.length &&
1311                    null != c.s2sBid &&
1312                    u.push({ bidder: null }),
1313                  o.push(
1314                    u.reduce((o, u) => {
1315                      const [l, f] = d(
1316                          u.bidder,
1317                          c.transactionId,
1318                          u.ortb2Imp?.ext?.tid ?? c.ortb2Imp?.ext?.tid,
1319                        ),
1320                        p =
1321                          null ==
1322                          (u = Object.assign(
1323                            {},
1324                            u,
1325                            {
1326                              ortb2Imp: (0, i.D9)({}, c.ortb2Imp, u.ortb2Imp, {
1327                                ext: { tid: l, tidSource: f },
1328                              }),
1329                            },
1330                            (0, r.SH)(c, re),
1331                          )).mediaTypes
1332                            ? c.mediaTypes
1333                            : u.mediaTypes;
1334                      return (
1335                        (0, i.wD)(p)
1336                          ? (u = Object.assign({}, u, { mediaTypes: p }))
1337                          : (0, i.vV)(
1338                              `mediaTypes is not correctly configured for adunit ${c.code}`,
1339                            ),
1340                        "client" === s && y(c.code, e),
1341                        o.push(
1342                          Object.assign({}, u, {
1343                            adUnitCode: c.code,
1344                            transactionId: c.transactionId,
1345                            adUnitId: c.adUnitId,
1346                            sizes:
1347                              p?.banner?.sizes || p?.video?.playerSize || [],
1348                            bidId: u.bid_id || (0, i.lk)(),
1349                            bidderRequestId: n,
1350                            auctionId: t,
1351                            src: s,
1352                            metrics: a,
1353                            auctionsCount: I(c.code),
1354                            bidRequestsCount: w(c.code),
1355                            bidderRequestsCount: A(c.code, u.bidder),
1356                            bidderWinsCount: T(c.code, u.bidder),
1357                            deferBilling: !!c.deferBilling,
1358                          }),
1359                        ),
1360                        o
1361                      );
1362                    }, []),
1363                  ),
1364                  o
1365                );
1366              }, [])
1367              .reduce(i.Bq, [])
1368              .filter((e) => "" !== e);
1369          }
1370          const oe = (0, c.A_)(
1371            "sync",
1372            function (e, t, { getS2SBidders: n = ae } = {}) {
1373              if (null == t) return e;
1374              {
1375                const r = n(t);
1376                return e.filter((e) => {
1377                  if (!r.has(e.bidder)) return !1;
1378                  if (null == e.s2sConfigName) return !0;
1379                  const n = ne(t);
1380                  return (
1381                    Array.isArray(e.s2sConfigName)
1382                      ? e.s2sConfigName
1383                      : [e.s2sConfigName]
1384                  ).includes(n);
1385                });
1386              }
1387            },
1388            "filterBidsForAdUnit",
1389          );
1390          const se = (0, c.A_)("sync", (e, t) => e, "setupAdUnitMediaTypes");
1391          function ae(e) {
1392            (0, r.cy)(e) || (e = [e]);
1393            const t = new Set([null]);
1394            return (
1395              e
1396                .filter((e) => e && e.enabled)
1397                .flatMap((e) => e.bidders)
1398                .forEach((e) => t.add(e)),
1399              t
1400            );
1401          }
1402          const de = (0, c.A_)(
1403            "sync",
1404            function (e, t, { getS2SBidders: n = ae } = {}) {
1405              const r = n(t);
1406              return (0, i.ZA)(e).reduce(
1407                (e, t) => (e[r.has(t) ? Q.SERVER : Q.CLIENT].push(t), e),
1408                { [Q.CLIENT]: [], [Q.SERVER]: [] },
1409              );
1410            },
1411            "partitionBidders",
1412          );
1413          function ce(e) {
1414            return K.isAllowed($.mo, te(U, e.provider, { [_.TQ]: e }));
1415          }
1416          const ue = {
1417            bidderRegistry: Y,
1418            analyticsRegistry: Z,
1419            aliasRegistry: X,
1420            makeBidRequests: (0, c.A_)(
1421              "sync",
1422              function (e, t, n, s, a, c = {}, u) {
1423                ((u = (0, R.BO)(u)),
1424                  B.Ic(S.qY.BEFORE_REQUEST_BIDS, e),
1425                  (0, o.nk)(e),
1426                  e
1427                    .map((e) => e.code)
1428                    .filter(i.hj)
1429                    .forEach(E));
1430                const l = c.global || {},
1431                  f = c.bidder || {},
1432                  p = (function () {
1433                    let e, t;
1434                    return (
1435                      d.$.getConfig("consistentTIDs")
1436                        ? ((e = "pbjsStable"), (t = (e) => e))
1437                        : ((e = "pbjs"),
1438                          (t = (() => {
1439                            const e = {};
1440                            return (t, n) => (
1441                              e.hasOwnProperty(n) || (e[n] = {}),
1442                              e[n].hasOwnProperty(t) ||
1443                                (e[n][t] = `u${(0, i.lk)()}`),
1444                              e[n][t]
1445                            );
1446                          })())),
1447                      function (n, r, i) {
1448                        return [i ?? t(r, n), null != i ? "pub" : e];
1449                      }
1450                    );
1451                  })(),
1452                  g = (() => {
1453                    const e = {};
1454                    return function (t, n, r) {
1455                      const o = ((e, t) => {
1456                          const n = null != t ? t[_.XG] : "";
1457                          return n ? `${e}:${n}` : `${e}:`;
1458                        })(n, r),
1459                        s = K.redact(null != r ? r : te("bidder", n));
1460                      if (void 0 !== e[o]) return [e[o], s];
1461                      const [a, d] = p(
1462                          n,
1463                          t,
1464                          f[n]?.source?.tid ?? l.source?.tid,
1465                        ),
1466                        c = Object.freeze(
1467                          s.ortb2(
1468                            (0, i.D9)({}, l, f[n], {
1469                              source: { tid: a, ext: { tidSource: d } },
1470                            }),
1471                          ),
1472                        );
1473                      return ((e[o] = c), [c, s]);
1474                    };
1475                  })();
1476                let { [Q.CLIENT]: m, [Q.SERVER]: h } = de(e, ee);
1477                const y = new Set();
1478                (e.forEach((e) => {
1479                  ((0, r.Qd)(e.mediaTypes) || (e.mediaTypes = {}),
1480                    (e.bids = e.bids.filter((t) => {
1481                      if (!t.bidder) return !0;
1482                      const [r] = g(n, t.bidder),
1483                        i = h.includes(t.bidder) && !m.includes(t.bidder);
1484                      return K.isAllowed(
1485                        $.uc,
1486                        te("bidder", t.bidder, {
1487                          bid: t,
1488                          ortb2: r,
1489                          adUnit: e,
1490                          auctionId: n,
1491                          isS2S: i,
1492                        }),
1493                      );
1494                    })),
1495                    e.bids.forEach((e) => {
1496                      y.add(e.bidder);
1497                    }),
1498                    b(e.code));
1499                }),
1500                  (m = m.filter((e) => y.has(e))),
1501                  (h = h.filter((e) => y.has(e))),
1502                  (e = se(e, a)),
1503                  "random" === d.$.getConfig("bidderSequence") &&
1504                    (m = (0, i.k4)(m)));
1505                const v = (0, C.EN)(),
1506                  w = [];
1507                function A(e, t) {
1508                  const [n, r] = g(e.auctionId, e.bidderCode, t);
1509                  return (
1510                    (e.ortb2 = n),
1511                    (e.bids = e.bids.map(
1512                      (e) => ((e.ortb2 = n), r.bidRequest(e)),
1513                    )),
1514                    e
1515                  );
1516                }
1517                const T = (0, J.m)();
1518                function I(e) {
1519                  return (
1520                    T.pageViewIdPerBidder.has(e) ||
1521                      T.pageViewIdPerBidder.set(e, (0, i.lk)()),
1522                    T.pageViewIdPerBidder.get(e)
1523                  );
1524                }
1525                ee.forEach((o) => {
1526                  const s = (function (e) {
1527                    return te("prebid", H, { [_.XG]: ne(e) });
1528                  })(o);
1529                  if (o && o.enabled && K.isAllowed($.uc, s)) {
1530                    const { adUnits: a, hasModuleBids: d } = (function (e, t) {
1531                        let n = (0, r.Go)(e),
1532                          o = !1;
1533                        return (
1534                          n.forEach((e) => {
1535                            const n = e.bids.filter(
1536                              (e) =>
1537                                e.module === H &&
1538                                e.params?.configName === ne(t),
1539                            );
1540                            (1 === n.length
1541                              ? ((e.s2sBid = n[0]),
1542                                (o = !0),
1543                                (e.ortb2Imp = (0, i.D9)(
1544                                  {},
1545                                  e.s2sBid.ortb2Imp,
1546                                  e.ortb2Imp,
1547                                )))
1548                              : n.length > 1 &&
1549                                (0, i.JE)(
1550                                  'Multiple "module" bids for the same s2s configuration; all will be ignored',
1551                                  n,
1552                                ),
1553                              (e.bids = oe(e.bids, t).map(
1554                                (e) => ((e.bid_id = (0, i.s0)()), e),
1555                              )));
1556                          }),
1557                          (n = n.filter(
1558                            (e) =>
1559                              !(
1560                                (t.filterBidderlessCalls &&
1561                                  1 === e.bids.length &&
1562                                  null == e.bids[0].bidder) ||
1563                                (0 === e.bids.length && null == e.s2sBid)
1564                              ),
1565                          )),
1566                          { adUnits: n, hasModuleBids: o }
1567                        );
1568                      })(e, o),
1569                      c = (0, i.lk)();
1570                    ((0 === h.length && d ? [null] : h).forEach((e) => {
1571                      const d = (0, i.lk)(),
1572                        l = I(e),
1573                        f = u.fork(),
1574                        g = A(
1575                          {
1576                            bidderCode: e,
1577                            auctionId: n,
1578                            bidderRequestId: d,
1579                            pageViewId: l,
1580                            uniquePbsTid: c,
1581                            bids: ie({
1582                              bidderCode: e,
1583                              auctionId: n,
1584                              bidderRequestId: d,
1585                              adUnits: (0, r.Go)(a),
1586                              src: S.RW.SRC,
1587                              metrics: f,
1588                              getTid: p,
1589                            }),
1590                            auctionStart: t,
1591                            timeout: o.timeout,
1592                            src: S.RW.SRC,
1593                            refererInfo: v,
1594                            metrics: f,
1595                            alwaysHasCapacity: o.alwaysHasCapacity,
1596                          },
1597                          s,
1598                        );
1599                      0 !== g.bids.length && w.push(g);
1600                    }),
1601                      a.forEach((e) => {
1602                        const t = e.bids.filter((e) =>
1603                          w.find((t) =>
1604                            t.bids.find((t) => t.bidId === e.bid_id),
1605                          ),
1606                        );
1607                        e.bids = t;
1608                      }),
1609                      w.forEach((e) => {
1610                        void 0 === e.adUnitsS2SCopy &&
1611                          (e.adUnitsS2SCopy = a.filter(
1612                            (e) => e.bids.length > 0 || null != e.s2sBid,
1613                          ));
1614                      }));
1615                  }
1616                });
1617                const k = (function (e) {
1618                  let t = (0, r.Go)(e);
1619                  return (
1620                    t.forEach((e) => {
1621                      e.bids = oe(e.bids, null);
1622                    }),
1623                    (t = t.filter((e) => 0 !== e.bids.length)),
1624                    t
1625                  );
1626                })(e);
1627                return (
1628                  m.forEach((e) => {
1629                    const o = (0, i.lk)(),
1630                      a = I(e),
1631                      d = u.fork(),
1632                      c = Y[e],
1633                      l = A({
1634                        bidderCode: e,
1635                        auctionId: n,
1636                        pageViewId: a,
1637                        bidderRequestId: o,
1638                        bids: ie({
1639                          bidderCode: e,
1640                          auctionId: n,
1641                          bidderRequestId: o,
1642                          adUnits: (0, r.Go)(k),
1643                          src: "client",
1644                          metrics: d,
1645                          getTid: p,
1646                        }),
1647                        auctionStart: t,
1648                        timeout: s,
1649                        refererInfo: v,
1650                        metrics: d,
1651                        src: "client",
1652                        alwaysHasCapacity: c?.getSpec?.().alwaysHasCapacity,
1653                      });
1654                    (c ||
1655                      (0, i.vV)(
1656                        `Trying to make a request for bidder that does not exist: ${e}`,
1657                      ),
1658                      c && l.bids && 0 !== l.bids.length && w.push(l));
1659                  }),
1660                  w.forEach((e) => {
1661                    (O.mW.getConsentData() &&
1662                      (e.gdprConsent = O.mW.getConsentData()),
1663                      O.t6.getConsentData() &&
1664                        (e.uspConsent = O.t6.getConsentData()),
1665                      O.ad.getConsentData() &&
1666                        (e.gppConsent = O.ad.getConsentData()));
1667                  }),
1668                  w
1669                );
1670              },
1671              "makeBidRequests",
1672            ),
1673            callBids(e, t, n, r, o, s, c, u = {}) {
1674              if (!t.length)
1675                return void (0, i.JE)(
1676                  "callBids executed with no bidRequests.  Were they filtered by labels or sizing?",
1677                );
1678              const [l, f] = t.reduce(
1679                (e, t) => (
1680                  e[Number(void 0 !== t.src && t.src === S.RW.SRC)].push(t),
1681                  e
1682                ),
1683                [[], []],
1684              );
1685              var p = [];
1686              f.forEach((e) => {
1687                for (var t = -1, n = 0; n < p.length; ++n)
1688                  if (e.uniquePbsTid === p[n].uniquePbsTid) {
1689                    t = n;
1690                    break;
1691                  }
1692                t <= -1 && p.push(e);
1693              });
1694              let g = 0;
1695              (ee.forEach((e) => {
1696                if (e && p[g] && ae(e).has(p[g].bidderCode)) {
1697                  const t = (0, a.er)(
1698                      "prebid",
1699                      H,
1700                      s,
1701                      o
1702                        ? { request: o.request.bind(null, "s2s"), done: o.done }
1703                        : void 0,
1704                    ),
1705                    d = e.bidders,
1706                    l = Y[e.adapter],
1707                    m = p[g].uniquePbsTid,
1708                    h = p[g].adUnitsS2SCopy,
1709                    b = f.filter((e) => e.uniquePbsTid === m);
1710                  if (l) {
1711                    const o = {
1712                      ad_units: h,
1713                      s2sConfig: e,
1714                      ortb2Fragments: u,
1715                      requestBidsTimeout: s,
1716                    };
1717                    if (o.ad_units.length) {
1718                      const e = b.map(
1719                          (e) => (
1720                            (e.start = (0, i.vE)()),
1721                            function (t, ...n) {
1722                              (t || c(e.bidderRequestId),
1723                                r.apply(e, [t, ...n]));
1724                            }
1725                          ),
1726                        ),
1727                        s = (0, i.ZA)(o.ad_units).filter((e) => d.includes(e));
1728                      ((0, i.OG)(
1729                        `CALLING S2S HEADER BIDDERS ==== ${s.length > 0 ? s.join(", ") : 'No bidder specified, using "ortb2Imp" definition(s) only'}`,
1730                      ),
1731                        b.forEach((e) => {
1732                          B.Ic(S.qY.BID_REQUESTED, { ...e, tid: e.auctionId });
1733                        }),
1734                        l.callBids(o, f, n, (t) => e.forEach((e) => e(t)), t));
1735                    }
1736                  } else (0, i.vV)("missing " + e.adapter);
1737                  g++;
1738                }
1739              }),
1740                l.forEach((e) => {
1741                  e.start = (0, i.vE)();
1742                  const t = Y[e.bidderCode];
1743                  d.$.runWithBidder(e.bidderCode, () => {
1744                    ((0, i.OG)("CALLING BIDDER"), B.Ic(S.qY.BID_REQUESTED, e));
1745                  });
1746                  const u = (0, a.er)(
1747                      "bidder",
1748                      e.bidderCode,
1749                      s,
1750                      o
1751                        ? {
1752                            request: o.request.bind(null, e.bidderCode),
1753                            done: o.done,
1754                          }
1755                        : void 0,
1756                    ),
1757                    l = r.bind(e);
1758                  try {
1759                    d.$.runWithBidder(
1760                      e.bidderCode,
1761                      t.callBids.bind(
1762                        t,
1763                        e,
1764                        n,
1765                        l,
1766                        u,
1767                        () => c(e.bidderRequestId),
1768                        d.$.callbackWithBidder(e.bidderCode),
1769                      ),
1770                    );
1771                  } catch (t) {
1772                    ((0, i.vV)(
1773                      `${e.bidderCode} Bid Adapter emitted an uncaught error when parsing their bidRequest`,
1774                      { e: t, bidRequest: e },
1775                    ),
1776                      l());
1777                  }
1778                }));
1779            },
1780            videoAdapters: [],
1781            registerBidAdapter(e, t, { supportedMediaTypes: n = [] } = {}) {
1782              e && t
1783                ? "function" == typeof e.callBids
1784                  ? ((Y[t] = e),
1785                    O.o2.register("bidder", t, e.getSpec?.().gvlid),
1786                    n.includes("video") && ue.videoAdapters.push(t),
1787                    n.includes("native") && o.mT.push(t))
1788                  : (0, i.vV)(
1789                      "Bidder adaptor error for bidder code: " +
1790                        t +
1791                        "bidder must implement a callBids() function",
1792                    )
1793                : (0, i.vV)("bidAdapter or bidderCode not specified");
1794            },
1795            aliasBidAdapter(e, t, n) {
1796              if (void 0 === Y[t]) {
1797                const r = Y[e];
1798                if (void 0 === r) {
1799                  const n = [];
1800                  (ee.forEach((r) => {
1801                    if (r.bidders && r.bidders.length) {
1802                      const i = r && r.bidders;
1803                      r && i.includes(t) ? (X[t] = e) : n.push(e);
1804                    }
1805                  }),
1806                    n.forEach((e) => {
1807                      (0, i.vV)(
1808                        'bidderCode "' + e + '" is not an existing bidder.',
1809                        "adapterManager.aliasBidAdapter",
1810                      );
1811                    }));
1812                } else
1813                  try {
1814                    let a;
1815                    const d = (function (e) {
1816                      const t = [];
1817                      ue.videoAdapters.includes(e) && t.push("video");
1818                      o.mT.includes(e) && t.push("native");
1819                      return t;
1820                    })(e);
1821                    if (r.constructor.prototype !== Object.prototype)
1822                      ((a = new r.constructor()), a.setBidderCode(t));
1823                    else {
1824                      const { useBaseGvlid: o = !1 } = n || {},
1825                        d = r.getSpec(),
1826                        c = o ? d.gvlid : n?.gvlid;
1827                      null == c &&
1828                        null != d.gvlid &&
1829                        (0, i.JE)(
1830                          `Alias '${t}' will NOT re-use the GVL ID of the original adapter ('${d.code}', gvlid: ${d.gvlid}). Functionality that requires TCF consent may not work as expected.`,
1831                        );
1832                      const u = n && n.skipPbsAliasing;
1833                      ((a = (0, s.xb)(
1834                        Object.assign({}, d, {
1835                          code: t,
1836                          gvlid: c,
1837                          skipPbsAliasing: u,
1838                        }),
1839                      )),
1840                        (X[t] = e));
1841                    }
1842                    ue.registerBidAdapter(a, t, { supportedMediaTypes: d });
1843                  } catch (t) {
1844                    (0, i.vV)(
1845                      e + " bidder does not currently support aliasing.",
1846                      "adapterManager.aliasBidAdapter",
1847                    );
1848                  }
1849              } else
1850                (0, i.OG)('alias name "' + t + '" has been already specified.');
1851            },
1852            resolveAlias(e) {
1853              let t,
1854                n = e;
1855              for (; X[n] && (!t || !t.has(n));)
1856                ((n = X[n]), (t = t || new Set()).add(n));
1857              return n;
1858            },
1859            registerAnalyticsAdapter({ adapter: e, code: t, gvlid: n }) {
1860              e && t
1861                ? "function" == typeof e.enableAnalytics
1862                  ? ((e.code = t),
1863                    (Z[t] = { adapter: e, gvlid: n }),
1864                    O.o2.register(U, t, n))
1865                  : (0, i.vV)(
1866                      `Prebid Error: Analytics adaptor error for analytics "${t}"\n        analytics adapter must implement an enableAnalytics() function`,
1867                    )
1868                : (0, i.vV)(
1869                    "Prebid Error: analyticsAdapter or analyticsCode not specified",
1870                  );
1871            },
1872            enableAnalytics(e) {
1873              ((0, r.cy)(e) || (e = [e]),
1874                e.forEach((e) => {
1875                  const t = Z[e.provider];
1876                  if (t && t.adapter) {
1877                    if (((t.config = e), ce(e)))
1878                      try {
1879                        (t.adapter.enableAnalytics(e), (t.enabled = !0));
1880                      } catch (t) {
1881                        (0, i.vV)(
1882                          `Could not enable '${e.provider}' analytics`,
1883                          t,
1884                        );
1885                      }
1886                  } else
1887                    (0, i.vV)(
1888                      `Prebid Error: no analytics adapter found in registry for '${e.provider}'.`,
1889                    );
1890                }));
1891            },
1892            disableAnalytics(e) {
1893              const t = Z[e];
1894              if (t && t.enabled)
1895                if ("function" == typeof t.adapter.disableAnalytics)
1896                  try {
1897                    (t.adapter.disableAnalytics(), (t.enabled = !1));
1898                  } catch (t) {
1899                    (0, i.vV)(`Could not disable '${e}' analytics`, t);
1900                  }
1901                else
1902                  (0, i.JE)(
1903                    `Could not disable '${e}' analytics: adapter does not provide a 'disableAnalytics' method`,
1904                  );
1905            },
1906            refreshAnalytics() {
1907              Object.entries(Z).forEach(([e, t]) => {
1908                const { enabled: n, config: r } = t;
1909                n && !ce(r)
1910                  ? ue.disableAnalytics(e)
1911                  : n || null == r || ue.enableAnalytics(r);
1912              });
1913            },
1914            getBidAdapter: (e) => Y[e],
1915            getAnalyticsAdapter: (e) => Z[e],
1916            callTimedOutBidders(e, t, n) {
1917              ((t = t.map(
1918                (t) => (
1919                  (t.params = (0, i.SB)(e, t.adUnitCode, t.bidder)),
1920                  (t.timeout = n),
1921                  t
1922                ),
1923              )),
1924                (t = (0, i.$z)(t, "bidder")),
1925                Object.keys(t).forEach((e) => {
1926                  pe(e, "onTimeout", t[e]);
1927                }));
1928            },
1929            callBidWonBidder(e, t, n) {
1930              ((t.params = (0, i.SB)(n, t.adUnitCode, t.bidder)),
1931                v(t.adUnitCode, t.bidder),
1932                pe(e, "onBidWon", t));
1933            },
1934            triggerBilling: (() => {
1935              const e = new WeakSet();
1936              return (t) => {
1937                e.has(t) ||
1938                  (e.add(t),
1939                  ((0, z.$)(t.eventtrackers)[1]?.[1] || []).forEach((e) =>
1940                    i.mM.triggerPixel(e),
1941                  ),
1942                  pe(t.bidder, "onBidBillable", t));
1943              };
1944            })(),
1945            callSetTargetingBidder(e, t) {
1946              pe(e, "onSetTargeting", t);
1947            },
1948            callBidViewableBidder(e, t) {
1949              pe(e, "onBidViewable", t);
1950            },
1951            callBidderError(e, t, n) {
1952              pe(e, "onBidderError", { error: t, bidderRequest: n });
1953            },
1954            callAdRenderSucceededBidder(e, t) {
1955              pe(e, "onAdRenderSucceeded", t);
1956            },
1957            callOnInterventionBidder(e, t, n) {
1958              pe(e, "onIntervention", { bid: t, intervention: n });
1959            },
1960            callDataDeletionRequest: (0, c.A_)("sync", function (...e) {
1961              const t = "onDataDeletionRequest";
1962              (Object.keys(Y)
1963                .filter((e) => !X.hasOwnProperty(e))
1964                .forEach((n) => {
1965                  const r = le(n, t);
1966                  if (null != r) {
1967                    const i = k.n.getBidsRequested().filter(
1968                      (e) =>
1969                        (function (e) {
1970                          const t = new Set();
1971                          for (; X.hasOwnProperty(e) && !t.has(e);)
1972                            (t.add(e), (e = X[e]));
1973                          return e;
1974                        })(e.bidderCode) === n,
1975                    );
1976                    fe(n, t, ...r, i, ...e);
1977                  }
1978                }),
1979                Object.entries(Z).forEach(([n, r]) => {
1980                  const o = r?.adapter?.[t];
1981                  if ("function" == typeof o)
1982                    try {
1983                      o.apply(r.adapter, e);
1984                    } catch (e) {
1985                      (0, i.vV)(`error calling ${t} of ${n}`, e);
1986                    }
1987                }));
1988            }),
1989          };
1990          function le(e, t) {
1991            const n = Y[e],
1992              r = n?.getSpec && n.getSpec();
1993            if (r && r[t] && "function" == typeof r[t]) return [r, r[t]];
1994          }
1995          function fe(e, t, n, r, ...o) {
1996            try {
1997              ((0, i.fH)(`Invoking ${e}.${t}`),
1998                d.$.runWithBidder(e, r.bind(n, ...o)));
1999            } catch (n) {
2000              (0, i.JE)(`Error calling ${t} of ${e}`);
2001            }
2002          }
2003          function pe(e, t, n) {
2004            if (n?.source !== S.RW.SRC) {
2005              const r = le(e, t);
2006              null != r && fe(e, t, ...r, n);
2007            }
2008          }
2009          O.SL.onChange(ue.refreshAnalytics);
2010          const ge = ue;
2011        },
2012        2682(e, t, n) {
2013          n.d(t, { xb: () => I, a$: () => A });
2014          var r = n(6001),
2015            i = n(8384),
2016            o = n(7797),
2017            s = n(3838),
2018            a = n(5657),
2019            d = n(7791),
2020            c = n(5521),
2021            u = n(3399),
2022            l = n(3350),
2023            f = n(7413),
2024            p = n(1785),
2025            g = n(6825),
2026            m = n(5437),
2027            h = n(2822),
2028            b = n(4283),
2029            y = n(5881),
2030            v = n(323);
2031          const E = ["cpm", "ttl", "creativeId", "netRevenue", "currency"],
2032            w = {
2033              auctionId: (e) => e.ortb2?.source?.tid,
2034              transactionId: (e) => e.ortb2Imp?.ext?.tid,
2035            };
2036          function A(e) {
2037            const t = Array.isArray(e.supportedMediaTypes)
2038              ? { supportedMediaTypes: e.supportedMediaTypes }
2039              : void 0;
2040            function n(e) {
2041              const n = I(e);
2042              r.Ay.registerBidAdapter(n, e.code, t);
2043            }
2044            (n(e),
2045              Array.isArray(e.aliases) &&
2046                e.aliases.forEach((t) => {
2047                  let i,
2048                    o,
2049                    s = t;
2050                  ((0, l.Qd)(t) &&
2051                    ((s = t.code), (i = t.gvlid), (o = t.skipPbsAliasing)),
2052                    (r.Ay.aliasRegistry[s] = e.code),
2053                    n(
2054                      Object.assign({}, e, {
2055                        code: s,
2056                        gvlid: i,
2057                        skipPbsAliasing: o,
2058                      }),
2059                    ));
2060                }));
2061          }
2062          const T = (0, f.Bj)(({ bidderCode: e }) => {
2063            const t = (0, b.io)(v.VJ, (0, y.s)("bidder", e));
2064            function n(e, n, r) {
2065              return w.hasOwnProperty(n)
2066                ? t
2067                  ? w[n](e)
2068                  : null
2069                : Reflect.get(e, n, r);
2070            }
2071            function r(e, t) {
2072              const n = new Proxy(e, t);
2073              return (
2074                Object.entries(e)
2075                  .filter(([e, t]) => "function" == typeof t)
2076                  .forEach(([t, r]) => {
2077                    n[t] = r.bind(e);
2078                  }),
2079                n
2080              );
2081            }
2082            const i = (0, f.Bj)(
2083              (e) => r(e, { get: n }),
2084              (e) => e.bidId,
2085            );
2086            return {
2087              bidRequest: i,
2088              bidderRequest: (e) =>
2089                r(e, {
2090                  get: (t, r, o) => ("bids" === r ? e.bids.map(i) : n(t, r, o)),
2091                }),
2092            };
2093          });
2094          function I(e) {
2095            return Object.assign(
2096              ((t = e.code),
2097              (n = t),
2098              {
2099                callBids: function () {},
2100                setBidderCode: function (e) {
2101                  n = e;
2102                },
2103                getBidderCode: function () {
2104                  return n;
2105                },
2106              }),
2107              {
2108                getSpec: function () {
2109                  return Object.freeze(Object.assign({}, e));
2110                },
2111                registerSyncs: s,
2112                callBids: function (t, n, p, b, y, v) {
2113                  if (!Array.isArray(t.bids)) return;
2114                  const A = T(t),
2115                    I = {};
2116                  function C(e, t, r = null) {
2117                    const o = (0, h.BO)(t.metrics);
2118                    (o.checkpoint("addBidResponse"),
2119                      (I[e] = !0),
2120                      o.measureTime("addBidResponse.validate", () =>
2121                        (function (
2122                          e,
2123                          t,
2124                          {
2125                            index: n = g.n.index,
2126                            responseMediaType: r = t.mediaType,
2127                          } = {},
2128                        ) {
2129                          function o() {
2130                            const e = Object.keys(t);
2131                            return E.every(
2132                              (n) =>
2133                                e.includes(n) && ![void 0, null].includes(t[n]),
2134                            );
2135                          }
2136                          function s(e) {
2137                            return `Invalid bid from ${t.bidderCode}. Ignoring bid: ${e}`;
2138                          }
2139                          if (!e)
2140                            return (
2141                              (0, f.JE)(
2142                                "No adUnitCode was supplied to addBidResponse.",
2143                              ),
2144                              !1
2145                            );
2146                          if (!t)
2147                            return (
2148                              (0, f.JE)(
2149                                `Some adapter tried to add an undefined bi
2149d for ${e}.`,
2150                              ),
2151                              !1
2152                            );
2153                          if (!o())
2154                            return (
2155                              (0, f.vV)(
2156                                s(
2157                                  `Bidder ${t.bidderCode} is missing required params. Check http://prebid.org/dev-docs/bidder-adapter-1.html for list of params.`,
2158                                ),
2159                              ),
2160                              !1
2161                            );
2162                          const c = i.$.getConfig("auctionOptions") || {},
2163                            u = !0 === c.rejectUnknownMediaTypes,
2164                            l = !1 !== c.rejectInvalidMediaTypes,
2165                            p = n.getMediaTypes(t);
2166                          if (p && Object.keys(p).length > 0) {
2167                            if (null == r && u)
2168                              return (
2169                                (0, f.vV)(
2170                                  s(
2171                                    `Bid mediaType is required. Allowed: ${Object.keys(p).join(", ")}`,
2172                                  ),
2173                                ),
2174                                !1
2175                              );
2176                            if (null != r && l && !p.hasOwnProperty(r))
2177                              return (
2178                                (0, f.vV)(
2179                                  s(
2180                                    `Bid mediaType '${r}' is not supported by the ad unit. Allowed: ${Object.keys(p).join(", ")}`,
2181                                  ),
2182                                ),
2183                                !1
2184                              );
2185                          }
2186                          if (
2187                            "native" === t.mediaType &&
2188                            !(0, a.Bm)(t, { index: n })
2189                          )
2190                            return (
2191                              (0, f.vV)(
2192                                s(
2193                                  "Native bid missing some required properties.",
2194                                ),
2195                              ),
2196                              !1
2197                            );
2198                          if (
2199                            "video" === t.mediaType &&
2200                            !(0, d.vk)(t, { index: n })
2201                          )
2202                            return (
2203                              (0, f.vV)(
2204                                s(
2205                                  "Video bid does not have required vastUrl or renderer property",
2206                                ),
2207                              ),
2208                              !1
2209                            );
2210                          if (
2211                            "banner" === t.mediaType &&
2212                            !(function (e, t, { index: n = g.n.index } = {}) {
2213                              if (
2214                                (t.width || 0 === parseInt(t.width, 10)) &&
2215                                (t.height || 0 === parseInt(t.height, 10))
2216                              )
2217                                return (
2218                                  (t.width = parseInt(t.width, 10)),
2219                                  (t.height = parseInt(t.height, 10)),
2220                                  !0
2221                                );
2222                              if (null != t.wratio && null != t.hratio)
2223                                return (
2224                                  (t.wratio = parseInt(t.wratio, 10)),
2225                                  (t.hratio = parseInt(t.hratio, 10)),
2226                                  !0
2227                                );
2228                              const r = n.getBidRequest(t),
2229                                i = n.getMediaTypes(t),
2230                                o =
2231                                  (r && r.sizes) ||
2232                                  (i && i.banner && i.banner.sizes),
2233                                s = (0, f.kK)(o);
2234                              if (1 === s.length) {
2235                                const [e, n] = s[0].split("x");
2236                                return (
2237                                  (t.width = parseInt(e, 10)),
2238                                  (t.height = parseInt(n, 10)),
2239                                  !0
2240                                );
2241                              }
2242                              return !1;
2243                            })(0, t, { index: n })
2244                          )
2245                            return (
2246                              (0, f.vV)(
2247                                s("Banner bids require a width and height"),
2248                              ),
2249                              !1
2250                            );
2251                          return !0;
2252                        })(e, t, { responseMediaType: r }),
2253                      )
2254                        ? n(e, t)
2255                        : n.reject(e, t, c.Tf.INVALID));
2256                  }
2257                  const B = [];
2258                  function R() {
2259                    (p(),
2260                      i.$.runWithBidder(e.code, () => {
2261                        (u.Ic(c.qY.BIDDER_DONE, t),
2262                          s(B, t.gdprConsent, t.uspConsent, t.gppConsent));
2263                      }));
2264                  }
2265                  const k = S(t).measureTime("validate", () =>
2266                    t.bids.filter((t) =>
2267                      (function (t) {
2268                        if (!e.isBidRequestValid(t))
2269                          return (
2270                            (0, f.JE)(
2271                              `Invalid bid sent to bidder ${e.code}: ${JSON.stringify(t)}`,
2272                            ),
2273                            !1
2274                          );
2275                        return !0;
2276                      })(A.bidRequest(t)),
2277                    ),
2278                  );
2279                  if (0 === k.length) return void R();
2280                  const U = {};
2281                  (k.forEach((e) => {
2282                    U[e.bidId] = e;
2283                  }),
2284                    O(e, k, t, b, v, {
2285                      onRequest: (e) => u.Ic(c.qY.BEFORE_BIDDER_HTTP, t, e),
2286                      onResponse: (t) => {
2287                        (y(e.code), B.push(t));
2288                      },
2289                      onError: (n, i) => {
2290                        (i.timedOut || y(e.code),
2291                          r.Ay.callBidderError(e.code, i, t),
2292                          u.Ic(c.qY.BIDDER_ERROR, {
2293                            error: i,
2294                            bidderRequest: t,
2295                          }),
2296                          (0, f.vV)(
2297                            `Server call for ${e.code} failed: ${n} ${i.status}. Continuing without bids.`,
2298                            { bidRequests: k },
2299                          ));
2300                      },
2301                      onBid: (t) => {
2302                        const r = U[t.requestId],
2303                          i = t;
2304                        if (r) {
2305                          if (
2306                            ((i.adapterCode = r.bidder),
2307                            (function (e, t) {
2308                              const n =
2309                                m.u.get(t, "allowAlternateBidderCodes") || !1;
2310                              let r = m.u.get(t, "allowedAlternateBidderCodes");
2311                              if (
2312                                e &&
2313                                t &&
2314                                t !== e &&
2315                                ((r = (0, l.cy)(r)
2316                                  ? r
2317                                      .map((e) => e.trim().toLowerCase())
2318                                      .filter((e) => !!e)
2319                                      .filter(f.hj)
2320                                  : r),
2321                                !n ||
2322                                  ((0, l.cy)(r) &&
2323                                    "*" !== r[0] &&
2324                                    !r.includes(e)))
2325                              )
2326                                return !0;
2327                              return !1;
2328                            })(t.bidderCode, r.bidder))
2329                          )
2330                            return (
2331                              (0, f.JE)(
2332                                `${t.bidderCode} is not a registered partner or known bidder of ${r.bidder}, hence continuing without bid. If you wish to support this bidder, please mark allowAlternateBidderCodes as true in bidderSettings.`,
2333                              ),
2334                              void n.reject(
2335                                r.adUnitCode,
2336                                t,
2337                                c.Tf.BIDDER_DISALLOWED,
2338                              )
2339                            );
2340                          ((i.originalCpm = t.cpm),
2341                            (i.originalCurrency = t.currency),
2342                            (i.meta = t.meta || Object.assign({}, t[r.bidder])),
2343                            (i.deferBilling = r.deferBilling),
2344                            (i.deferRendering =
2345                              i.deferBilling &&
2346                              (t.deferRendering ??
2347                                "function" != typeof e.onBidBillable)));
2348                          const s = Object.assign(
2349                              (0, o.O)(r),
2350                              i,
2351                              (0, f.Up)(r, Object.keys(w)),
2352                            ),
2353                            a = Object.prototype.hasOwnProperty.call(
2354                              t,
2355                              "mediaType",
2356                            )
2357                              ? t.mediaType
2358                              : null;
2359                          C(r.adUnitCode, s, a);
2360                        } else
2361                          ((0, f.JE)(
2362                            `Bidder ${e.code} made bid for unknown request ID: ${t.requestId}. Ignoring.`,
2363                          ),
2364                            n.reject(null, t, c.Tf.INVALID_REQUEST_ID));
2365                      },
2366                      onCompletion: R,
2367                    }));
2368                },
2369              },
2370            );
2371            var t, n;
2372            function s(t, n, r, i) {
2373              B(e, t, n, r, i);
2374            }
2375          }
2376          const C = ["bids", "paapi"],
2377            O = (0, p.A_)(
2378              "async",
2379              function (
2380                e,
2381                t,
2382                n,
2383                r,
2384                i,
2385                {
2386                  onRequest: o,
2387                  onResponse: s,
2388                  onError: a,
2389                  onBid: d,
2390                  onCompletion: u,
2391                },
2392              ) {
2393                const p = S(n);
2394                u = p.startTiming("total").stopBefore(u);
2395                const g = T(n);
2396                let h = p.measureTime("buildRequests", () =>
2397                  e.buildRequests(t.map(g.bidRequest), g.bidderRequest
2397(n)),
2398                );
2399                if ((Array.isArray(h) || (h = [h]), !h || 0 === h.length))
2400                  return void u();
2401                const E = (0, f.U6)(u, h.length);
2402                h.forEach((t) => {
2403                  const n = p.fork();
2404                  function u(e) {
2405                    (null != e && (e.metrics = n.fork().renameWith()), d(e));
2406                  }
2407                  const g = i(function (r, i) {
2408                      w();
2409                      try {
2410                        r = JSON.parse(r);
2411                      } catch (e) {}
2412                      ((r = {
2413                        body: r,
2414                        headers: { get: i.getResponseHeader.bind(i) },
2415                      }),
2416                        s(r));
2417                      try {
2418                        r = n.measureTime("interpretResponse", () =>
2419                          e.interpretResponse(r, t),
2420                        );
2421                      } catch (t) {
2422                        return (
2423                          (0, f.vV)(
2424                            `Bidder ${e.code} failed to interpret the server's response. Continuing without bids`,
2425                            null,
2426                            t,
2427                          ),
2428                          void E()
2429                        );
2430                      }
2431                      let o;
2432                      ((o =
2433                        r && !Object.keys(r).some((e) => !C.includes(e))
2434                          ? r.bids
2435                          : r),
2436                        o && ((0, l.cy)(o) ? o.forEach(u) : u(o)),
2437                        E());
2438                    }),
2439                    h = i(function (e, t) {
2440                      (w(), a(e, t), E());
2441                    });
2442                  o(t);
2443                  const w = n.startTiming("net"),
2444                    A = "TRUE" === (0, f.Ez)(c.M).toUpperCase() || (0, f.dp)();
2445                  function T(n) {
2446                    const r = t.options;
2447                    return Object.assign(n, r, {
2448                      browsingTopics:
2449                        !(
2450                          r?.hasOwnProperty("browsingTopics") &&
2451                          !r.browsingTopics
2452                        ) &&
2453                        (m.u.get(e.code, "topicsHeader") ?? !0) &&
2454                        (0, b.io)(v.DL, (0, y.s)("bidder", e.code)),
2455                      suppressTopicsEnrollmentWarning: r?.hasOwnProperty(
2456                        "suppressTopicsEnrollmentWarning",
2457                      )
2458                        ? r.suppressTopicsEnrollmentWarning
2459                        : !A,
2460                    });
2461                  }
2462                  switch (t.method) {
2463                    case "GET":
2464                      r(
2465                        `${t.url}${(function (e) {
2466                          if (e)
2467                            return `?${"object" == typeof e ? (0, f.bL)(e) : e}`;
2468                          return "";
2469                        })(t.data)}`,
2470                        { success: g, error: h },
2471                        void 0,
2472                        T({ method: "GET", withCredentials: !0 }),
2473                      );
2474                      break;
2475                    case "POST":
2476                      const n = t.options?.endpointCompression,
2477                        i = ({ url: e, payload: t }) => {
2478                          r(
2479                            e,
2480                            { success: g, error: h },
2481                            t,
2482                            T({
2483                              method: "POST",
2484                              contentType: "text/plain",
2485                              withCredentials: !0,
2486                            }),
2487                          );
2488                        };
2489                      (n &&
2490                        A &&
2491                        (0, f.JE)(
2492                          `Skipping GZIP compression for ${e.code} as debug mode is enabled`,
2493                        ),
2494                        n && !A && (0, f.nT)()
2495                          ? (0, f.ZK)(t.data).then((e) => {
2496                              const n = new URL(t.url);
2497                              (n.searchParams.has("gzip") ||
2498                                n.searchParams.set("gzip", "1"),
2499                                i({ url: n.href, payload: e }));
2500                            })
2501                          : i({
2502                              url: t.url,
2503                              payload:
2504                                "string" == typeof t.data
2505                                  ? t.data
2506                                  : JSON.stringify(t.data),
2507                            }));
2508                      break;
2509                    default:
2510                      ((0, f.JE)(
2511                        `Skipping invalid request from ${e.code}. Request type ${t.method} must be GET or POST`,
2512                      ),
2513                        E());
2514                  }
2515                });
2516              },
2517              "processBidderRequests",
2518            ),
2519            B = (0, p.A_)(
2520              "async",
2521              function (e, t, n, o, a) {
2522                const d = i.$.getConfig("userSync.aliasSyncEnabled");
2523                if (e.getUserSyncs && (d || !r.Ay.aliasRegistry[e.code])) {
2524                  let r = e.getUserSyncs(
2525                    {
2526                      iframeEnabled: s.zt.canBidderRegisterSync(
2527                        "iframe",
2528                        e.code,
2529                      ),
2530                      pixelEnabled: s.zt.canBidderRegisterSync("image", e.code),
2531                    },
2532                    t,
2533                    n,
2534                    o,
2535                    a,
2536                  );
2537                  r &&
2538                    (Array.isArray(r) || (r = [r]),
2539                    r.forEach((t) => {
2540                      s.zt.registerSync(t.type, e.code, t.url);
2541                    }),
2542                    s.zt.bidderDone(e.code));
2543                }
2544              },
2545              "registerSyncs",
2546            );
2547          function S(e) {
2548            return (0, h.BO)(e.metrics).renameWith((t) => [
2549              `adapter.client.${t}`,
2550              `adapters.client.${e.bidderCode}.${t}`,
2551            ]);
2552          }
2553        },
2554        8468(e, t, n) {
2555          n.d(t, { R: () => c });
2556          var r = n(323),
2557            i = n(5881),
2558            o = n(4283),
2559            s = n(7413);
2560          const a = new WeakMap();
2561          function d(e, t, n) {
2562            return t && n && e
2563              ? !!(0, o.io)(r.jP, (0, i.s)(t, n))
2564              : ((0, s.vV)(
2565                  "cannot load external script without url, moduleType, or module
2565Code",
2566                ),
2567                !1);
2568          }
2569          function c(e, t, n, r, i, o) {
2570            if (!d(e, t, n)) return;
2571            const c =
2572              "function" == typeof r ||
2573              "function" == typeof r?.success ||
2574              "function" == typeof r?.error;
2575            function u(e, t) {
2576              null == t
2577                ? "function" == typeof e
2578                  ? e()
2579                  : e.success?.()
2580                : e.error?.(t);
2581            }
2582            i || (i = document);
2583            const l = g(i, e);
2584            if (l)
2585              return (
2586                c && (l.loaded ? u(r, l.error) : l.callbacks.push(r)),
2587                l.tag
2588              );
2589            const f = a.get(i) || {},
2590              p = { error: null, loaded: !1, tag: null, callbacks: [] };
2591            return (
2592              (f[e] = p),
2593              a.set(i, f),
2594              c && p.callbacks.push(r),
2595              (0, s.JE)(`module ${n} is loading external JavaScript`),
2596              (function (t, n, r, i) {
2597                r || (r = document);
2598                var o = r.createElement("script");
2599                ((o.type = "text/javascript"), (o.async = !0));
2600                const a = g(r, e);
2601                a && (a.tag = o);
2602                function d(e) {
2603                  ((a.error = e), c());
2604                }
2605                function c() {
2606                  (o.removeEventListener("error", d),
2607                    (o.onload = null),
2608                    (o.onreadystatechange = null),
2609                    n());
2610                }
2611                (o.addEventListener("error", d),
2612                  o.readyState
2613                    ? (o.onreadystatechange = function () {
2614                        ("loaded" !== o.readyState &&
2615                          "complete" !== o.readyState) ||
2616                          ((o.onreadystatechange = null), c());
2617                      })
2618                    : (o.onload = function () {
2619                        c();
2620                      }));
2621                ((o.src = t), i && (0, s.Bg)(o, i));
2622                return ((0, s._s)(o, r), o);
2623              })(
2624                e,
2625                function () {
2626                  p.loaded = !0;
2627                  try {
2628                    for (let e = 0; e < p.callbacks.length; e++)
2629                      u(p.callbacks[e], p.error);
2630                    p.callbacks.length = 0;
2631                  } catch (e) {
2632                    (0, s.vV)(
2633                      "Error executing callback",
2634                      "adloader.js:loadExternalScript",
2635                      e,
2636                    );
2637                  }
2638                },
2639                i,
2640                o,
2641              )
2642            );
2643            function g(e, t) {
2644              const n = a.get(e);
2645              return n && n[t] ? n[t] : null;
2646            }
2647          }
2648          const u = (0, s.Bj)(function (e) {
2649            return new Promise((t, n) => {
2650              const r = document.createElement("link");
2651              ((r.rel = "preload"),
2652                (r.as = "script"),
2653                (r.href = e),
2654                (r.onload = () => t()),
2655                (r.onerror = n),
2656                (0, s._s)(r));
2657            });
2658          });
2659          u.clear;
2660        },
2661        8964(e, t, n) {
2662          n.d(t, { RD: () => v, er: () => y });
2663          var r = n(323),
2664            i = n(5881),
2665            o = n(4283),
2666            s = n(8384),
2667            a = n(7413);
2668          const d = {
2669              fetch: window.fetch.bind(window),
2670              makeRequest: (e, t) => new Request(e, t),
2671              timeout(e, t) {
2672                const n = new AbortController();
2673                let r = setTimeout(() => {
2674                  (n.abort(),
2675                    (0, a.vV)(`Request timeout after ${e}ms`, t),
2676                    (r = null));
2677                }, e);
2678                return {
2679                  signal: n.signal,
2680                  done() {
2681                    r && clearTimeout(r);
2682                  },
2683                };
2684              },
2685            },
2686            c = "GET",
2687            u = "Content-Type";
2688          function l(e = []) {
2689            const t = [e];
2690            return {
2691              attach: (e, n) =>
2692                function (...r) {
2693                  t.push(n);
2694                  try {
2695                    return e(...r);
2696                  } finally {
2697                    t.pop();
2698                  }
2699                },
2700              getCallers: () => t[t.length - 1],
2701            };
2702          }
2703          function f(e = 3e3, { request: t, done: n } = {}, r, i) {
2704            return p(l(), e, { request: t, done: n }, r, i);
2705          }
2706          function p(e, t = 3e3, { request: n, done: c } = {}, u, l) {
2707            l &&
2708              u &&
2709              (e = (function (e, t) {
2710                return { attach: (e) => e, getCallers: () => [[e, t]] };
2711              })(u, l));
2712            let f = (n, c) => {
2713              const u = n?._keepalive ?? c?.keepalive ?? n?.keepalive;
2714              let l;
2715              null == t ||
2716                null != c?.signal ||
2717                s.$.getConfig("disableAjaxTimeout") ||
2718                ((l = d.timeout(t, n)),
2719                (c = Object.assign({ signal: l.signal }, c)));
2720              let f,
2721                p = d.makeRequest(n, { ...c, keepalive: !1 });
2722              return (
2723                "include" !== p.credentials ||
2724                  (0 !== e.getCallers().length &&
2725                    !e
2726                      .getCallers()
2727                      .some(([e, t]) => !(0, o.io)(r.yg, (0, i.s)(e, t)))) ||
2728                  (p = d.makeRequest(p, { credentials: "same-origin" })),
2729                (f = u
2730                  ? p
2731                      .clone()
2732                      .blob()
2733                      .then(
2734                        (e) => (
2735                          e.size > 65536
2736                            ? (0, a.JE)(
2737                                "Ignoring keepalive: request body exceeds 65536 bytes",
2738                                p,
2739                              )
2740                            : (p = d.makeRequest(p, { keepalive: !0 })),
2741                          d.fetch(p)
2742                        ),
2743                      )
2744                  : d.fetch(p)),
2745                null != l?.done && (f = f.finally(l.done)),
2746                f
2747              );
2748            };
2749            return (
2750              (null == n && null == c) ||
2751                (f = ((e) =>
2752                  function (t, r) {
2753                    const i = new URL(
2754                      null == t?.url ? t : t.url,
2755                      document.location,
2756                    ).origin;
2757                    let o = e(t, r);
2758                    return (n && n(i), c && (o = o.finally(() => c(i))), o);
2759                  })(f)),
2760              (f.withCallers = (t) => e.attach(f, t)),
2761              f
2762            );
2763          }
2764          function g({ status: e, statusText: t = "", headers: n, url: r }, i) {
2765            let o;
2766            function s(e) {
2767              if (void 0 === o)
2768                try {
2769                  o = new DOMParser().parseFromString(
2770                    i,
2771                    n?.get(u)?.split(";")?.[0],
2772                  );
2773                } catch (t) {
2774                  ((o = null), e && e(t));
2775                }
2776              return o;
2777            }
2778            return {
2779              readyState: XMLHttpRequest.DONE,
2780              status: e,
2781              statusText: t,
2782              responseText: i,
2783              response: i,
2784              responseType: "",
2785              responseURL: r,
2786              get responseXML() {
2787                return s(a.vV);
2788              },
2789              getResponseHeader: (e) => (n?.has(e) ? n.get(e) : null),
2790              toJSON() {
2791                return Object.assign({ responseXML: s() }, this);
2792              },
2793              timedOut: !1,
2794            };
2795          }
2796          function m(e = 3e3, { request: t, done: n } = {}, r, i) {
2797            return h(l(), e, { request: t, done: n }, r, i);
2798          }
2799          function h(e, t = 3e3, { request: n, done: r } = {}, i, o) {
2800            const s = p(e, t, { request: n, done: r }, i, o);
2801            function l(e, t, n, r = {}) {
2802              !(function (e, t) {
2803                const { success: n, error: r } =
2804                  "object" == typeof t && null != t
2805                    ? t
2806                    : {
2807                        success: "function" == typeof t ? t : () => null,
2808                        error: (e, t) => (0, a.vV)("Network error", e, t),
2809                      };
2810                e.then((e) => e.text().then((t) => [e, t])).then(
2811                  ([e, t]) => {
2812                    const i = g(e, t);
2813                    e.ok || 304 === e.status ? n(t, i) : r(e.statusText, i);
2814                  },
2815                  (e) =>
2816                    r(
2817                      "",
2818                      Object.assign(g({ status: 0 }, ""), {
2819                        reason: e,
2820                        timedOut: "AbortError" === e?.name,
2821                      }),
2822                    ),
2823                );
2824              })(
2825                s(
2826                  (function (e, t, n = {}) {
2827                    const r = n.method || (t ? "POST" : c);
2828                    if (r === c && t) {
2829                      const r = (0, a.Dl)(e, n);
2830                      (Object.assign(r.search, t), (e = (0, a.c$)(r)));
2831                    }
2832                    const i = new Headers(n.customHeaders);
2833                    i.set(u, n.contentType || "text/plain");
2834                    const o = { method: r, headers: i };
2835                    (r !== c && t && (o.body = t),
2836                      n.withCredentials && (o.credentials = "include"),
2837                      isSecureContext &&
2838                        (["browsingTopics"].forEach((e) => {
2839                          n[e] && (o[e] = !0);
2840                        }),
2841                        null != n.suppressTopicsEnrollmentWarning &&
2842                          (o.suppressTopicsEnrollmentWarning =
2843                            n.suppressTopicsEnrollmentWarning)));
2844                    const s = d.makeRequest(e, o);
2845                    return (n.keepalive && (s._keepalive = !0), s);
2846                  })(e, n, r),
2847                ),
2848                t,
2849              );
2850            }
2851            return ((l.withCallers = (t) => e.attach(l, t)), l);
2852          }
2853          function b(e) {
2854            return function (t, n, r, i) {
2855              if (!t || !n)
2856                throw new Error("moduleType and moduleName are required");
2857              return e(r, i, t, n);
2858            };
2859          }
2860          ((f.withCallers =
2861            (e) =>
2862            (...t) =>
2863              p(l(e), ...t)),
2864            (m.withCallers =
2865              (e) =>
2866              (...t) =>
2867                h(l(e), ...t)));
2868          const y = b(m),
2869            v = (b(f), m());
2870          f();
2871        },
2872        6825(e, t, n) {
2873          n.d(t, { n: () => ie });
2874          var r = n(7413),
2875            i = n(3350),
2876            o = n(6969),
2877            s = n(5657),
2878            a = n(8964),
2879            d = n(8384),
2880            c = n(1785),
2881            u = n(7791);
2882          const l = new Map();
2883          const f = (0, c.A_)(
2884              "sync",
2885              function (e) {
2886                !e.vastXml &&
2887                  e.vastUrl &&
2888                  (e.vastXml = (function (e, t) {
2889                    const n = t?.impression?.length
2890                        ? t.impression
2891                            .map(
2892                              (e) =>
2893                                `<Impression><![CDATA[${e}]]></Impression>`,
2894                            )
2895                            .join("")
2896                        : "",
2897                      r = t?.error?.length
2898                        ? t.error
2899                            .map((e) => `<Error><![CDATA[${e}
2899]]></Error>`)
2900                            .join("")
2901                        : "";
2902                    let i = "";
2903                    t?.trackingEvents?.length &&
2904                      (i = `<Creative><Linear><TrackingEvents>${t.trackingEvents.map(({ event: e, url: t }) => `<Tracking event="${e}"><![CDATA[${t}]]></Tracking>`).join("")}</TrackingEvents></Linear></Creative>`);
2905                    return (
2906                      '<VAST version="3.0"><Ad><Wrapper><AdSystem>prebid.org wrapper</AdSystem><VASTAdTagURI><![CDATA[' +
2907                      e +
2908                      "]]></VASTAdTagURI>" +
2909                      n +
2910                      r +
2911                      "<Creatives>" +
2912                      i +
2913                      "</Creatives></Wrapper></Ad></VAST>"
2914                    );
2915                  })(e.vastUrl, e.vastTrackers));
2916              },
2917              "updateVast",
2918            ),
2919            p = (e, t, n) => {
2920              ((e.videoCacheKey = n || (0, r.lk)()),
2921                e.vastUrl || (e.vastUrl = t));
2922            },
2923            g = {
2924              store: function (
2925                e,
2926                t,
2927                n = (e) => (0, a.er)("prebid", "cache", e),
2928              ) {
2929                const r = {
2930                  puts: e.map((e) =>
2931                    (function (e, { index: t = ie.index } = {}) {
2932                      const n = e.vastXml,
2933                        r = t.getAuction(e),
2934                        i = {
2935                          type: "xml",
2936                          value: n,
2937                          ttlseconds: Number(e.ttl) + 15,
2938                        };
2939                      return (
2940                        d.$.getConfig("cache.vasttrack") &&
2941                          ((i.bidder = e.bidder),
2942                          (i.bidid = e.requestId),
2943                          (i.aid = e.auctionId)),
2944                        null != r && (i.timestamp = r.getAuctionStart()),
2945                        "string" == typeof e.customCacheKey &&
2946                          "" !== e.customCacheKey &&
2947                          (i.key = e.customCacheKey),
2948                        i
2949                      );
2950                    })(e),
2951                  ),
2952                };
2953                n(d.$.getConfig("cache.timeout"))(
2954                  d.$.getConfig("cache.url"),
2955                  (function (e) {
2956                    return {
2957                      success: function (t) {
2958                        let n;
2959                        try {
2960                          n = JSON.parse(t).responses;
2961                        } catch (t) {
2962                          return void e(t, []);
2963                        }
2964                        n
2965                          ? e(null, n)
2966                          : e(
2967                              new Error(
2968                                "The cache server didn't respond with a responses property.",
2969                              ),
2970                              [],
2971                            );
2972                      },
2973                      error: function (t, n) {
2974                        e(
2975                          new Error(
2976                            `Error storing video ad in the cache: ${t}: ${JSON.stringify(n)}`,
2977                          ),
2978                          [],
2979                        );
2980                      },
2981                    };
2982                  })(t),
2983                  JSON.stringify(r),
2984                  { contentType: "text/plain", withCredentials: !0 },
2985                );
2986              },
2987            };
2988          function m(e) {
2989            const t = e.map((e) => e.bidResponse);
2990            const n = d.$.getConfig("cache.url");
2991            g.store(t, function (i, o) {
2992              var s;
2993              i
2994                ? ((s = i),
2995                  (0, r.vV)(
2996                    `Failed to save to the video cache: ${s}. Video bids will be discarded:`,
2997                    t,
2998                  ))
2999                : e.length !== o.length
3000                  ? (0, r.vV)(
3001                      `expected ${e.length} cache IDs, got ${o.length} instead`,
3002                    )
3003                  : o.forEach((t, i) => {
3004                      const {
3005                        auctionInstance: o,
3006                        bidResponse: s,
3007                        afterBidAdded: a,
3008                      } = e[i];
3009                      "" === t.uuid
3010                        ? (0, r.JE)(
3011                            "Supplied video cache key was already in use by Prebid Cache; caching attempt was rejected. Video bid must be discarded.",
3012                          )
3013                        : ((s.cacheUrl = n),
3014                          p(
3015                            s,
3016                            (function (e, t) {
3017                              return `${e}?uuid=${t}`;
3018                            })(n, t.uuid),
3019                            t.uuid,
3020                          ),
3021                          Q(o, s),
3022                          a());
3023                    });
3024            });
3025          }
3026          let h, b, y;
3027          d.$.getConfig("cache", ({ cache: e }) => {
3028            ((h =
3029              "number" == typeof e.batchSize && e.batchSize > 0
3030                ? e.batchSize
3031                : 1),
3032              (b =
3033                "number" == typeof e.batchTimeout && e.batchTimeout > 0
3034                  ? e.batchTimeout
3035                  : 0),
3036              e.useLocal &&
3037                !y &&
3038                (y = ie.onExpiry((e) => {
3039                  e.getBidsReceived().forEach((e) => {
3040                    const t = l.get(e.videoCacheKey);
3041                    (t && t.startsWith("blob") && URL.revokeObjectURL(t),
3042                      l.delete(e.videoCacheKey));
3043                  });
3044                })));
3045          });
3046          const v = ((e = setTimeout, t = m) => {
3047              let n = [[]],
3048                r = !1;
3049              const i = (e) => e();
3050              return function (o, s, a) {
3051                const d = b > 0 ? e : i;
3052                (n[n.length - 1].length >= h && n.push([]),
3053                  n[n.length - 1].push({
3054                    auctionInstance: o,
3055                    bidResponse: s,
3056                    afterBidAdded: a,
3057                  }),
3058                  r ||
3059                    ((r = !0),
3060                    d(() => {
3061                      (n.forEach(t), (n = [[]]), (r = !1));
3062                    }, b)));
3063              };
3064            })(),
3065            E = (0, c.A_)(
3066              "async",
3067              function (e, t, n, r) {
3068                d.$.getConfig("cache.useLocal")
3069                  ? (((e) => {
3070                      const t = e.vastXml,
3071                        n = URL.createObjectURL(
3072                          new Blob([t], { type: "text/xml" }),
3073                        );
3074                      (p(e, n), l.set(e.videoCacheKey, n));
3075                    })(t),
3076                    Q(e, t),
3077                    n())
3078                  : v(e, t, n);
3079              },
3080              "callPrebidCache",
3081            );
3082          var w = n(6901),
3083            A = n(3838),
3084            T = n(5437),
3085            I = n(3399),
3086            C = n(6001),
3087            O = n(5521),
3088            B = n(8203),
3089            S = n(2822),
3090            R = n(9200),
3091            k = n(1129),
3092            U = n(7834),
3093            D = n(5423),
3094            $ = n(4283),
3095            _ = n(323),
3096            j = n(6540),
3097            x = n(4983);
3098          const { syncUsers: q } = A.zt,
3099            N = "completed";
3100          I.on(O.qY.BID_ADJUSTMENT, function (e) {
3101            !(function (e) {
3102              const t = ie.index.getBidRequest(e),
3103                n = (0, R.y)(e.cpm, e, t);
3104              n >= 0 && (e.cpm = n);
3105              const r = (0, x.j)(e, t);
3106              e.desirability = r;
3107            })(e);
3108          });
3109          const P = {},
3110            V = {},
3111            M = [],
3112            G = (0, k.m)();
3113          const F = (0, c.A_)("sync", (e) => {});
3114          function W({
3115            adUnits: e,
3116            adUnitCodes: t,
3117            callback: n,
3118            cbTimeout: i,
3119            labels: a,
3120            auctionId: c,
3121            ortb2Fragments: l,
3122            metrics: p,
3123          }) {
3124            p = (0, S.BO)(p);
3125            const g = e,
3126              m = a,
3127              h = t,
3128              b = c || (0, r.lk)(),
3129              y = i,
3130              v = new Set(),
3131              A = (0, B.v6)(),
3132              T = (0, B.v6)();
3133            let R = [],
3134              k = n,
3135              $ = [];
3136            const _ = (0, U.H)({
3137              startTime: (e) => e.responseTimestamp,
3138              ttl: (e) => {
3139                const t = (0, D.X9)(e);
3140                return null == t ? null : 1e3 * Math.max(t, e.ttl);
3141              },
3142            });
3143            let j,
3144              x,
3145              W,
3146              X,
3147              Z = [],
3148              ee = [],
3149              te = [];
3150            function re() {
3151              return {
3152                auctionId: b,
3153                timestamp: j,
3154                auctionEnd: x,
3155                auctionStatus: X,
3156                adUnits: g,
3157                adUnitCodes: h,
3158                labels: m,
3159                bidderRequests: $,
3160                noBids: Z,
3161                bidsReceived: _.toArray(),
3162                bidsRejected: R,
3163                winningBids: ee,
3164                timeout: y,
3165                metrics: p,
3166                seatNonBids: te,
3167              };
3168            }
3169            function oe(t) {
3170              if (
3171                (t ? I.Ic(O.qY.AUCTION_TIMEOUT, re()) : clearTimeout(W),
3172                void 0 === x)
3173              ) {
3174                let n = [];
3175                (t &&
3176                  ((0, r.OG)(`Auction ${b} timedOut`),
3177                  (n = $.filter((e) => !v.has(e.bidderRequestId)).flatMap(
3178                    (e) => e.bids,
3179                  )),
3180                  n.length && I.Ic(O.qY.BID_TIMEOUT, n)),
3181                  (X = N),
3182                  (x = Date.now()),
3183                  p.checkpoint("auctionEnd"),
3184                  p.timeBetween(
3185                    "requestBids",
3186                    "auctionEnd",
3187                    "requestBids.total",
3188                  ),
3189                  p.timeBetween(
3190                    "callBids",
3191                    "auctionEnd",
3192                    "requestBids.callBids",
3193                  ),
3194                  A.resolve(),
3195                  I.Ic(O.qY.AUCTION_END, re()),
3196                  H(g, c, function () {
3197                    try {
3198                      if (null != k) {
3199                        const e = _.toArray()
3200                          .filter((e) => h.includes(e.adUnitCode))
3201                          .reduce(ne, {});
3202                        (k.apply(G, [e, t, b]), (k = null));
3203                      }
3204                    } catch (e) {
3205                      (0, r.vV)("Error executing bidsBackHandler", null, e);
3206                    } finally {
3207                      n.length && C.Ay.callTimedOutBidders(e, n, y);
3208                      const t = d.$.getConfig("userSync") ?? {};
3209                      t.enableOverride || q(t.syncDelay);
3210                    }
3211                  }));
3212              }
3213            }
3214            function se() {
3215              (d.$.resetBidder(),
3216                (0, r.fH)(
3217                  `Bids Received for Auction with id: ${b}`,
3218                  _.toArray(),
3219                ),
3220                (X = N),
3221                oe(!1));
3222            }
3223            function ae(e) {
3224              v.add(e);
3225            }
3226            function de(e) {
3227              e.forEach((e) => {
3228                var t;
3229                ((t = e), ($ = $.concat(t)));
3230              });
3231              const t = {},
3232                n = {
3233                  bidRequests: e,
3234                  run: () => {
3235                    (F(this),
3236                      (W = setTimeout(() => oe(!0), y)),
3237                      (X = "inProgress"),
3238                      I.Ic(O.qY.AUCTION_INIT, re()));
3239                    const n = (function (e, t, { index: n = ie.index } = {}) {
3240                      let i = 0,
3241                        a = !1;
3242                      const c = new Set(),
3243                        l = {};
3244                      function p() {
3245                        (i--, a && 0 === i && e());
3246                      }
3247                      function g(e, t, n) {
3248                        return (
3249                          (l[t.requestId] = !0),
3250                          (function (e, t, { index: n = ie.index } = {}) {
3251                            const r = n.getAdUnit(e);
3252                            (K(e, { index: n }),
3253                              Object.assign(e, {
3254                                cpm: parseFloat(e.cpm) || 0,
3255                                bidder: e.bidder || e.bidderCode,
3256                                adUnitCode: t,
3257                              }),
3258                              null != r?.ttlBuffer &&
3259                                (e.ttlBuffer = r.ttlBuffer));
3260                          })(t, e),
3261                          i++,
3262                          n(p)
3263                        );
3264                      }
3265                      function m(e, i) {
3266                        g(e, i, (e) => {
3267                          const a = (function (
3268                            e,
3269                            { index: t = ie.index } = {},
3270                          ) {
3271                            I.Ic(O.qY.BID_ADJUSTMENT, e);
3272                            const n = t.getAdUnit(e);
3273                            ((e.instl = 1 === n?.ortb2Imp?.instl),
3274                              (e.element = n?.element));
3275                            const r = t.getBidRequest(e),
3276                              i = r?.renderer || n?.renderer,
3277                              s = r?.safeRenderer || n?.safeRenderer,
3278                              a = e.mediaType,
3279                              c = t.getMediaTypes(e),
3280                              u = c && c[a],
3281                              l = u && u.renderer,
3282                              f = u && u.safeRenderer;
3283                            let p = null;
3284                            !l ||
3285                            !l.render ||
3286                            (!0 === l.backupOnly && e.renderer)
3287                              ? !i ||
3288                                !i.render ||
3289                                (!0 === i.backupOnly && e.renderer) ||
3290                                (p = i)
3291                              : (p = l);
3292                            let g = null;
3293                            !f ||
3294                            !f?.url ||
3295                            (!0 === l?.backupOnly && e.safeRenderer)
3296                              ? !s ||
3297                                !s?.url ||
3298                                (!0 === l?.backupOnly && e.safeRenderer) ||
3299                                (g = s)
3300                              : (g = f);
3301                            null != g && (e.safeRenderer = g);
3302                            (d.$.getConfig("allowTopWindowRenderers") ?? 1)
3303                              ? p &&
3304                                ((e.renderer = w.A4.install({
3305                                  url: p.url,
3306                                  config: p.options,
3307                                  renderNow: null == p.url,
3308                                })),
3309                                e.renderer.setRender(p.render))
3310                              : (e.renderer = null);
3311                            const m = Y(
3312                                e.mediaType,
3313                                c,
3314                                d.$.getConfig("mediaTypePriceGranularity"),
3315                              ),
3316                              h = (0, o.j)(
3317                                e.cpm,
3318                                "object" == typeof m
3319                                  ? m
3320                                  : d.$.getConfig("customPriceBucket"),
3321                                d.$.getConfig("currency.granularityMultiplier"),
3322                              );
3323                            return (
3324                              (e.pbLg = h.low),
3325                              (e.pbMg = h.med),
3326                              (e.pbHg = h.high),
3327                              (e.pbAg = h.auto),
3328                              (e.pbDg = h.dense),
3329                              (e.pbCg = h.custom),
3330                              e
3331                            );
3332                          })(i);
3333                          (I.Ic(O.qY.BID_ACCEPTED, a),
3334                            "video" === a.mediaType || "audio" === a.mediaType
3335                              ? (function (
3336                                  e,
3337                                  t,
3338                                  n,
3339                                  { index: i = ie.index } = {},
3340                                ) {
3341                                  const o = i.getMediaTypes({
3342                                    requestId:
3343                                      t.originalRequestId || t.requestId,
3344                                    adUnitId: t.adUnitId,
3345                                  })?.video;
3346                                  !(function ({
3347                                    bidResponse: e,
3348                                    auctionInstance: t,
3349                                    afterBidAdded: n,
3350                                    videoMediaType: i,
3351                                  }) {
3352                                    f(e);
3353                                    const o = i && i?.context,
3354                                      s = i && i?.useCacheKey,
3355                                      {
3356                                        useLocal: a,
3357                                        url: c,
3358                                        ignoreBidderCacheKey: l,
3359                                      } = d.$.getConfig("cache") || {},
3360                                      p = (a || c) && (s || o !== u.H6),
3361                                      g = !e.videoCacheKey || l;
3362                                    p && g
3363                                      ? E(t, e, n, i)
3364                                      : !p || g || e.vastUrl
3365                                        ? (Q(t, e), n())
3366                                        : (0, r.vV)(
3367                                            "videoCacheKey specified but not required vastUrl for video bid",
3368                                          );
3369                                  })({
3370                                    bidResponse: t,
3371                                    auctionInstance: e,
3372                                    afterBidAdded: n,
3373                                    videoMediaType: o,
3374                                  });
3375                                })(t, a, e)
3376                              : ((0, s.l6)(a) && (0, s.gs)(a, n.getAdUnit(a)),
3377                                Q(t, a),
3378                                e()));
3379                        });
3380                      }
3381                      function h(e, n, i) {
3382                        return g(e, n, (e) => {
3383                          ((n.rejectionReason = i),
3384                            (0, r.JE)(
3385                              `Bid from ${n.bidder || "unknown bidder"} was rejected: ${i}`,
3386                              n,
3387                            ),
3388                            I.Ic(O.qY.BID_REJECTED, n),
3389                            t.addBidRejected(n),
3390                            e());
3391                        });
3392                      }
3393                      function b() {
3394                        const n = this;
3395                        let o = t.getBidRequests();
3396                        const s = d.$.getConfig("auctionOptions");
3397                        if ((c.add(n), s && !(0, r.Im)(s))) {
3398                          const e = s.secondaryBidders;
3399                          e &&
3400                            !o.every((t) => e.includes(t.bidderCode)) &&
3401                            (o = o.filter((t) => !e.includes(t.bidderCode)));
3402                        }
3403                        ((a = o.every((e) => c.has(e))),
3404                          n.bids.forEach((e) => {
3405                            l[e.bidId] ||
3406                              (K(e), t.addNoBid(e), I.Ic(O.qY.NO_BID, e));
3407                          }),
3408                          a && 0 === i && e());
3409                      }
3410                      return {
3411                        addBidResponse: (function () {
3412                          function e(e, t) {
3413                            L.call(
3414                              { dispatch: m },
3415                              e,
3416                              t,
3417                              (() => {
3418                                let n = !1;
3419                                return (r) => {
3420                                  n || (h(e, t, r), (n = !0));
3421                                };
3422                              })(),
3423                            );
3424                          }
3425                          return ((e.reject = h), e);
3426                        })(),
3427                        adapterDone: function () {
3428                          z(B.U9.resolve()).finally(() => b.call(this));
3429                        },
3430                      };
3431                    })(se, this);
3432                    (C.Ay.callBids(
3433                      g,
3434                      e,
3435                      n.addBidResponse,
3436                      n.adapterDone,
3437                      {
3438                        request(e, n) {
3439                          (a(P, n),
3440                            a(t, e),
3441                            V[e] || (V[e] = { SRA: !0, origin: n }),
3442                            t[e] > 1 && (V[e].SRA = !1));
3443                        },
3444                        done(e) {
3445                          (P[e]--, M[0] && i(M[0]) && M.shift());
3446                        },
3447      
3447                },
3448                      y,
3449                      ae,
3450                      l,
3451                    ),
3452                      T.resolve());
3453                  },
3454                };
3455              function i(e) {
3456                let t = !0;
3457                const n = d.$.getConfig("maxRequestsPerOrigin") || 4;
3458                return (
3459                  e.bidRequests.some((e) => {
3460                    let r = 1;
3461                    const i =
3462                      void 0 !== e.src && e.src === O.RW.SRC
3463                        ? "s2s"
3464                        : e.bidderCode;
3465                    return (
3466                      !(
3467                        e.alwaysHasCapacity &&
3468                        !d.$.getConfig("forceMaxRequestsPerOrigin")
3469                      ) &&
3470                      (V[i] &&
3471                        (!1 === V[i].SRA && (r = Math.min(e.bids.length, n)),
3472                        P[V[i].origin] + r > n && (t = !1)),
3473                      !t)
3474                    );
3475                  }),
3476                  t && e.run(),
3477                  t
3478                );
3479              }
3480              function a(e, t) {
3481                void 0 === e[t] ? (e[t] = 1) : e[t]++;
3482              }
3483              i(n) ||
3484                ((0, r.JE)("queueing auction due to limited endpoint capacity"),
3485                M.push(n));
3486            }
3487            return (
3488              (0, D.lc)(() => _.refresh()),
3489              I.on(O.qY.PBS_ANALYTICS, (e) => {
3490                var t;
3491                e.auctionId === b &&
3492                  null != e.seatnonbid &&
3493                  ((t = e.seatnonbid), (te = te.concat(t)));
3494              }),
3495              {
3496                addBidReceived: function (e) {
3497                  _.add(e);
3498                },
3499                addBidRejected: function (e) {
3500                  R = R.concat(e);
3501                },
3502                addNoBid: function (e) {
3503                  Z = Z.concat(e);
3504                },
3505                callBids: function () {
3506                  ((X = "started"), (j = Date.now()));
3507                  const e = p.measureTime("requestBids.makeRequests", () =>
3508                    C.Ay.makeBidRequests(g, j, b, y, m, l, p),
3509                  );
3510                  ((0, r.fH)(`Bids Requested for Auction with id: ${b}`, e),
3511                    p.checkpoint("callBids"),
3512                    e.length < 1
3513                      ? ((0, r.JE)(
3514                          "No valid bid requests returned for auction",
3515                        ),
3516                        se())
3517                      : J.call({ dispatch: de, context: this }, e));
3518                },
3519                addWinningBid: function (t) {
3520                  ((ee = ee.concat(t)),
3521                    C.Ay.callBidWonBidder(t.adapterCode || t.bidder, t, e),
3522                    t.deferBilling || C.Ay.triggerBilling(t));
3523                },
3524                setBidTargeting: function (e) {
3525                  (C.Ay.callSetTargetingBidder(e.adapterCode || e.bidder, e),
3526                    _.refresh());
3527                },
3528                getWinningBids: () => ee,
3529                getAuctionStart: () => j,
3530                getAuctionEnd: () => x,
3531                getTimeout: () => y,
3532                getAuctionId: () => b,
3533                getAuctionStatus: () => X,
3534                getAdUnits: () => g,
3535                getAdUnitCodes: () => h,
3536                getBidRequests: () => $,
3537                getBidsReceived: () => _.toArray(),
3538                getNoBids: () => Z,
3539                getNonBids: () => te,
3540                getFPD: () => l,
3541                getMetrics: () => p,
3542                end: A.promise,
3543                requestsDone: T.promise,
3544                getProperties: re,
3545              }
3546            );
3547          }
3548          const L = (0, c.u2)(
3549              (0, c.A_)(
3550                "async",
3551                function (e, t, n) {
3552                  !(function (e) {
3553                    const t = d.$.getConfig("maxBid");
3554                    return !t || !e.cpm || t >= Number(e.cpm);
3555                  })(t)
3556                    ? n(O.Tf.PRICE_TOO_HIGH)
3557                    : (0, $.io)(
3558                          _.it,
3559                          (0, C.sc)("bidder", t.bidder || t.bidderCode, {
3560                            bid: t,
3561                            ortb2: ie.index.getOrtb2(t),
3562                            adUnit: ie.index.getAdUnit(t),
3563                          }),
3564                        )
3565                      ? this.dispatch.call(null, e, t)
3566                      : n(O.Tf.BIDDER_DISALLOWED);
3567                },
3568                "addBidResponse",
3569              ),
3570            ),
3571            z = (0, c.A_)("sync", (e) => e, "responsesReady"),
3572            J = (0, c.A_)(
3573              "sync",
3574              function (e) {
3575                this.dispatch.call(this.context, e);
3576              },
3577              "addBidderRequests",
3578            ),
3579            H = (0, c.A_)(
3580              "async",
3581              function (e, t, n) {
3582                n && n();
3583              },
3584              "bidsBackCallback",
3585            );
3586          function Q(e, t) {
3587            (!(function (e) {
3588              let t;
3589              const n =
3590                !0 === T.u.get(e.bidderCode, "allowZeroCpmBids")
3591                  ? e.cpm >= 0
3592                  : e.cpm > 0;
3593              e.bidderCode &&
3594                (n || e.dealId) &&
3595                (t = (function (e, t, { index: n = ie.index } = {}) {
3596                  if (!t) return {};
3597                  const r = n.getBidRequest(t);
3598                  var i = {};
3599                  const o = ee(t.mediaType, e);
3600                  (te(i, o, t, r),
3601                    e &&
3602                      T.u.getOwn(e, O.iD.ADSERVER_TARGETING) &&
3603                      (te(i, T.u.ownSettingsFor(e), t, r),
3604                      (t.sendStandardTargeting = T.u.get(
3605                        e,
3606                        "sendStandardTargeting",
3607                      ))));
3608                  return i;
3609                })(e.bidderCode, e));
3610              e.adserverTargeting = Object.assign(e.adserverTargeting || {}, t);
3611            })(t),
3612              (0, S.BO)(t.metrics).timeSince(
3613                "addBidResponse",
3614                "addBidResponse.total",
3615              ),
3616              e.addBidReceived(t),
3617              I.Ic(O.qY.BID_RESPONSE, t));
3618          }
3619          function K(e, { index: t = ie.index } = {}) {
3620            const n = t.getBidderRequest(e),
3621              i = (n && n.start) || e.requestTimestamp;
3622            (Object.assign(e, {
3623              responseTimestamp: e.responseTimestamp || (0, r.vE)(),
3624              requestTimestamp: e.requestTimestamp || i,
3625            }),
3626              (e.timeToRespond = e.responseTimestamp - e.requestTimestamp));
3627          }
3628          function Y(e, t, n) {
3629            if (e && n) {
3630              if ("video" === e) {
3631                const e = t?.video?.context ?? "instream";
3632                if (n[`video-${e}`]) return n[`video-${e}`];
3633              }
3634              return n[e];
3635            }
3636          }
3637          const X = (e) => (t) => {
3638            const n =
3639              e ||
3640              ((e, { index: t = ie.index } = {}) => {
3641                const n = Y(
3642                  e.mediaType,
3643                  t.getMediaTypes(e),
3644                  d.$.getConfig("mediaTypePriceGranularity"),
3645                );
3646                return "string" == typeof e.mediaType && n
3647                  ? "string" == typeof n
3648                    ? n
3649                    : "custom"
3650                  : d.$.getConfig("priceGranularity");
3651              })(t);
3652            return n === O.UE.AUTO
3653              ? t.pbAg
3654              : n === O.UE.DENSE
3655                ? t.pbDg
3656                : n === O.UE.LOW
3657                  ? t.pbLg
3658                  : n === O.UE.MEDIUM
3659                    ? t.pbMg
3660                    : n === O.UE.HIGH
3661                      ? t.pbHg
3662                      : n === O.UE.CUSTOM
3663                        ? t.pbCg
3664                        : void 0;
3665          };
3666          function Z(e, t) {
3667            return {
3668              key: e,
3669              val:
3670                "function" == typeof t
3671                  ? function (e, n) {
3672                      return t(e, n);
3673                    }
3674                  : function (e) {
3675                      return e[t];
3676                    },
3677            };
3678          }
3679          function ee(e, t) {
3680            const n = Object.assign({}, T.u.settingsFor(null));
3681            if (
3682              (n[O.iD.ADSERVER_TARGETING] ||
3683                (n[O.iD.ADSERVER_TARGETING] = [
3684                  Z(O.xS.BIDDER, "bidderCode"),
3685                  Z(O.xS.AD_ID, "adId"),
3686                  Z(O.xS.PRICE_BUCKET, X()),
3687                  Z(O.xS.SIZE, "size"),
3688                  Z(O.xS.DEAL, "dealId"),
3689                  Z(O.xS.SOURCE, "source"),
3690                  Z(O.xS.FORMAT, "mediaType"),
3691                  Z(O.xS.ADOMAIN, (e) =>
3692                    e.meta &&
3693                    e.meta.advertiserDomains &&
3694                    e.meta.advertiserDomains.length > 0
3695                      ? [e.meta.advertiserDomains].flat()[0]
3696                      : "",
3697                  ),
3698                  Z(O.xS.ACAT, (e) => {
3699                    const t = e?.meta?.primaryCatId;
3700                    return Array.isArray(t) ? t[0] || "" : t || "";
3701                  }),
3702                  Z(O.xS.DSP, (e) =>
3703                    e.meta && (e.meta.networkId || e.meta.networkName)
3704                      ? e?.meta?.networkName || e?.meta?.networkId
3705                      : "",
3706                  ),
3707                  Z(O.xS.CRID, (e) => (e.creativeId ? e.creativeId : "")),
3708                ]),
3709              "video" === e)
3710            ) {
3711              const e = n[O.iD.ADSERVER_TARGETING].slice();
3712              ((n[O.iD.ADSERVER_TARGETING] = e),
3713                [O.xS.UUID, O.xS.CACHE_ID].forEach((t) => {
3714                  void 0 === e.find((e) => e.key === t) &&
3715                    e.push(Z(t, "videoCacheKey"));
3716                }),
3717                !d.$.getConfig("cache.url") ||
3718                  (t && !1 === T.u.get(t, "sendStandardTargeting")) ||
3719                  (void 0 === e.find((e) => e.key === O.xS.CACHE_HOST) &&
3720                    e.push(
3721                      Z(O.xS.CACHE_HOST, function (e) {
3722                        return e.cacheUrl
3723                          ? (0, r.Dl)(e.cacheUrl).hostname
3724                          : e.adserverTargeting?.[O.xS.CACHE_HOST];
3725                      }),
3726                    )));
3727            }
3728            return n;
3729          }
3730          function te(e, t, n, o) {
3731            var s = t[O.iD.ADSERVER_TARGETING];
3732            return (
3733              (n.size = n.getSize()),
3734              (s || []).forEach(function (s) {
3735                var a = s.key,
3736                  d = s.val;
3737                if (
3738                  (e[a] && (0, r.JE)("The key: " + a + " is being overwritten"),
3739                  (0, i.fp)(d))
3740                )
3741                  try {
3742                    d = d(n, o);
3743                  } catch (e) {
3744                    (0, r.vV)("bidmanager", "ERROR", e);
3745                  }
3746                ((void 0 === t.suppressEmptyKeys ||
3747                  !0 !== t.suppressEmptyKeys) &&
3748                  a !== O.xS.DEAL &&
3749                  a !== O.xS.ACAT &&
3750                  a !== O.xS.DSP &&
3751                  a !== O.xS.CRID) ||
3752                (!(0, r.xQ)(d) && null != d)
3753                  ? (e[a] = d)
3754                  : (0, r.fH)(
3755                      "suppressing empty key '" +
3756                        a +
3757                        "' from adserver targeting",
3758                    );
3759              }),
3760              e
3761            );
3762          }
3763          function ne(e, t) {
3764            return (
3765              e[t.adUnitCode] || (e[t.adUnitCode] = (0, j.O)([])),
3766              e[t.adUnitCode].push(t),
3767              e
3768            );
3769          }
3770          function re(e) {
3771            Object.assign(this, {
3772              getAuction({ auctionId: t }) {
3773                if (null != t) return e().find((e) => e.getAuctionId() === t);
3774              },
3775              getAdUnit({ adUnitId: t }) {
3776                if (null != t)
3777                  return e()
3778                    .flatMap((e) => e.getAdUnits())
3779                    .find((e) => e.adUnitId === t);
3780              },
3781              getMediaTypes({ adUnitId: e, requestId: t }) {
3782                if (null != t) {
3783                  const n = this.getBidRequest({ requestId: t });
3784                  if (null != n && (null == e || n.adUnitId === e))
3785                    return n.mediaTypes;
3786                } else if (null != e) {
3787                  const t = this.getAdUnit({ adUnitId: e });
3788                  if (null != t) return t.mediaTypes;
3789                }
3790              },
3791              getBidderRequest({ requestId: t, bidderRequestId: n }) {
3792                if (null != t || null != n) {
3793                  let r = e().flatMap((e) => e.getBidRequests());
3794                  return (
3795                    null != n && (r = r.filter((e) => e.bidderRequestId === n)),
3796                    null == t
3797                      ? r[0]
3798                      : r.find(
3799                          (e) =>
3800                            e.bids && null != e.bids.find((e) => e.bidId === t),
3801                        )
3802                  );
3803                }
3804              },
3805              getBidRequest({ requestId: t }) {
3806                if (null != t)
3807                  return e()
3808                    .flatMap((e) => e.getBidRequests())
3809                    .flatMap((e) => e.bids)
3810                    .find((e) => e && e.bidId === t);
3811              },
3812              getOrtb2(e) {
3813                return (
3814                  this.getBidderRequest(e)?.ortb2 ||
3815                  this.getAuction(e)?.getFPD()?.global?.ortb2
3816                );
3817              },
3818            });
3819          }
3820          const ie = (function () {
3821            const e = (0, U.H)({
3822              startTime: (e) => e.end.then(() => e.getAuctionEnd()),
3823              ttl: (e) =>
3824                e.end.then(() => {
3825                  const t = e.getBidsReceived();
3826                  if (0 === t.length) {
3827                    const e = (0, D.S9)();
3828                    return null == e ? null : 1e3 * e;
3829                  }
3830                  const n = t.map((e) => {
3831                    const t = (0, D.X9)(e);
3832                    return null == t ? null : Math.max(t, e.ttl);
3833                  });
3834                  return n.some((e) => null == e) ? null : 1e3 * Math.max(...n);
3835                }),
3836            });
3837            (0, D.lc)(() => e.refresh());
3838            const t = { onExpiry: e.onExpiry };
3839            function n(t) {
3840              for (const n of e) if (n.getAuctionId() === t) return n;
3841            }
3842            function i() {
3843              return e.toArray().flatMap((e) => e.getBidsReceived());
3844            }
3845            return (
3846              (t.addWinningBid = function (e) {
3847                const t = (0, S.BO)(e.metrics);
3848                (t.checkpoint("bidWon"),
3849                  t.timeBetween("auctionEnd", "bidWon", "adserver.pending"),
3850                  t.timeBetween("requestBids", "bidWon", "adserver.e2e"));
3851                const i = n(e.auctionId);
3852                i
3853                  ? i.addWinningBid(e)
3854                  : (0, r.JE)("Auction not found when adding winning bid");
3855              }),
3856              Object.entries({
3857                getAllWinningBids: { name: "getWinningBids" },
3858                getBidsRequested: { name: "getBidRequests" },
3859                getNoBids: {},
3860                getAdUnits: {},
3861                getBidsReceived: { pre: (e) => e.getAuctionStatus() === N },
3862                getAdUnitCodes: { post: r.hj },
3863              }
3863).forEach(([n, { name: r = n, pre: i, post: o }]) => {
3864                const s =
3865                    null == i ? (e) => e[r]() : (e) => (i(e) ? e[r]() : []),
3866                  a = null == o ? (e) => e : (e) => e.filter(o);
3867                t[n] = () => a(e.toArray().flatMap(s));
3868              }),
3869              (t.getAllBidsForAdUnitCode = function (e) {
3870                return i().filter((t) => t && t.adUnitCode === e);
3871              }),
3872              (t.createAuction = function (t) {
3873                const n = W(t);
3874                return (
3875                  (function (t) {
3876                    e.add(t);
3877                  })(n),
3878                  n
3879                );
3880              }),
3881              (t.findBidByAdId = function (e) {
3882                return i().find((t) => t.adId === e);
3883              }),
3884              (t.getStandardBidderAdServerTargeting = function () {
3885                return ee()[O.iD.ADSERVER_TARGETING];
3886              }),
3887              (t.setStatusForBids = function (r, i) {
3888                const o = t.findBidByAdId(r);
3889                if ((o && (o.status = i), o && i === O.tl.BID_TARGETING_SET)) {
3890                  const t = n(o.auctionId);
3891                  t && (t.setBidTargeting(o), e.refresh());
3892                }
3893              }),
3894              (t.getLastAuctionId = function () {
3895                const t = e.toArray();
3896                return t.length && t[t.length - 1].getAuctionId();
3897              }),
3898              (t.clearAllAuctions = function () {
3899                e.clear();
3900              }),
3901              (t.index = new re(() => e.toArray())),
3902              t
3903            );
3904          })();
3905        },
3906        1662(e, t, n) {
3907          n.d(t, { kl: () => l });
3908          var r = n(7413),
3909            i = n(3350),
3910            o = n(8384),
3911            s = n(1785),
3912            a = n(4864);
3913          const d = "outstream",
3914            c = [
3915              [
3916                "mimes",
3917                (e) =>
3918                  Array.isArray(e) &&
3919                  e.length > 0 &&
3920                  e.every((e) => "string" == typeof e),
3921              ],
3922              ["minduration", i.Fq],
3923              ["maxduration", i.Fq],
3924              ["startdelay", i.Fq],
3925              ["maxseq", i.Fq],
3926              ["poddur", i.Fq],
3927              ["protocols", i.Uu],
3928              ["battr", i.Uu],
3929              ["maxextended", i.Fq],
3930              ["minbitrate", i.Fq],
3931              ["maxbitrate", i.Fq],
3932              ["delivery", i.Uu],
3933              ["api", i.Uu],
3934              ["companiontype", i.Uu],
3935              ["feed", i.Fq],
3936              ["stitched", i.Fq],
3937              ["nvol", i.Fq],
3938            ],
3939            u = new Map(c);
3940          function l(e) {}
3941          (0, s.A_)(
3942            "sync",
3943            function (e, t, n, i, s) {
3944              if (n && (s || i !== d)) {
3945                const { url: t, useLocal: n } = o.$.getConfig("cache") || {};
3946                return t || n || !e.vastXml || e.vastUrl
3947                  ? !(!e.vastUrl && !e.vastXml)
3948                  : ((0, r.vV)(
3949                      `\n        This bid contains only vastXml and will not work when a prebid cache url is not specified.\n        Try enabling either prebid cache with ${(0, a.k)()}.setConfig({ cache: {url: "..."} });\n        or local cache with ${(0, a.k)()}.setConfig({ cache: { useLocal: true }});\n      `,
3950                    ),
3951                    !1);
3952              }
3953              return (
3954                !(i === d && !s) ||
3955                !!(e.renderer || (t && t.renderer) || n.renderer)
3956              );
3957            },
3958            "checkAudioBidSetup",
3959          );
3960          n.d(t, ["Ai", 0, u]);
3961        },
3962        5423(e, t, n) {
3963          n.d(t, { S9: () => p, X9: () => g, cT: () => f, lc: () => h });
3964          var r = n(8384),
3965            i = n(7413),
3966            o = n(5521);
3967          const s = "minBidCacheTTL",
3968            a = "minTargetedBidCacheTTL";
3969          let d = 1,
3970            c = null,
3971            u = null;
3972          const l = [];
3973          function f(e) {
3974            return e.ttl - (e.hasOwnProperty("ttlBuffer") ? e.ttlBuffer : d);
3975          }
3976          function p() {
3977            return c;
3978          }
3979          function g(e) {
3980            const t = c;
3981            return null == t && null == u
3982              ? null
3983              : e?.status === o.tl.BID_TARGETING_SET && "number" == typeof u
3984                ? u
3985                : t;
3986          }
3987          function m() {
3988            l.forEach((e) => e(c));
3989          }
3990          function h(e) {
3991            l.push(e);
3992          }
3993          (r.$.getConfig("ttlBuffer", (e) => {
3994            "number" == typeof e.ttlBuffer
3995              ? (d = e.ttlBuffer)
3996              : (0, i.vV)("Invalid value for ttlBuffer", e.ttlBuffer);
3997          }),
3998            r.$.getConfig(s, (e) => {
3999              const t = c;
4000              ((c = e?.[s]),
4001                (c = "number" == typeof c ? c : null),
4002                t !== c && m());
4003            }),
4004            r.$.getConfig(a, (e) => {
4005              const t = u;
4006              ((u = e?.[a]),
4007                (u = "number" == typeof u ? u : null),
4008                t !== u && m());
4009            }));
4010        },
4011        5437(e, t, n) {
4012          var r = n(7413),
4013            i = n(8928),
4014            o = n(1129),
4015            s = n(5521);
4016          const a = new (class {
4017            constructor(e, t) {
4018              ((this.getSettings = e), (this.defaultScope = t));
4019            }
4020            get(e, t) {
4021              let n = this.getOwn(e, t);
4022              return (void 0 === n && (n = this.getOwn(null, t)), n);
4023            }
4024            getOwn(e, t) {
4025              return (
4026                (e = this.#e(e)),
4027                (0, i.A)(this.getSettings(), `${e}.${t}`)
4028              );
4029            }
4030            getScopes() {
4031              return Object.keys(this.getSettings()).filter(
4032                (e) => e !== this.defaultScope,
4033              );
4034            }
4035            settingsFor(e) {
4036              return (0, r.D9)(
4037                {},
4038                this.ownSettingsFor(null),
4039                this.ownSettingsFor(e),
4040              );
4041            }
4042            ownSettingsFor(e) {
4043              return ((e = this.#e(e)), this.getSettings()[e] || {});
4044            }
4045            #e(e) {
4046              return e ?? this.defaultScope;
4047            }
4048          })(() => (0, o.m)().bidderSettings || {}, s.iD.BD_SETTING_STANDARD);
4049          n.d(t, ["u", 0, a]);
4050        },
4051        7797(e, t, n) {
4052          n.d(t, { O: () => o });
4053          var r = n(7413);
4054          function i({
4055            src: e = "client",
4056            bidder: t = "",
4057            bidId: n,
4058            transactionId: i,
4059            adUnitId: o,
4060            auctionId: s,
4061          } = {}) {
4062            var a = e;
4063            (Object.assign(this, {
4064              bidderCode: t,
4065              width: 0,
4066              height: 0,
4067              adId: (0, r.s0)(),
4068              requestId: n,
4069              transactionId: i,
4070              adUnitId: o,
4071              auctionId: s,
4072              mediaType: "banner",
4073              source: a,
4074            }),
4075              (this.getSize = function () {
4076                return this.width + "x" + this.height;
4077              }));
4078          }
4079          function o(e) {
4080            return new i(e);
4081          }
4082        },
4083        4864(e, t, n) {
4084          n.d(t, { k: () => i, rT: () => s, uP: () => o });
4085          var r = n(3715);
4086          function i() {
4087            return r.A.pbGlobal;
4088          }
4089          function o() {
4090            return r.A.defineGlobal;
4091          }
4092          function s() {
4093            return r.A.distUrlBase;
4094          }
4095        },
4096        8384(e, t, n) {
4097          n.d(t, { $: () => m });
4098          var r = n(6969),
4099            i = n(7413),
4100            o = n(8928),
4101            s = n(3350),
4102            a = n(5521);
4103          const d = "TRUE" === (0, i.Ez)(a.M).toUpperCase(),
4104            c = {},
4105            u = "random",
4106            l = {};
4107          ((l[u] = !0), (l.fixed = !0));
4108          const f = u,
4109            p = {
4110              LOW: "low",
4111              MEDIUM: "medium",
4112              HIGH: "high",
4113              AUTO: "auto",
4114              DENSE: "dense",
4115              CUSTOM: "custom",
4116            };
4117          function g(e, t = !0) {
4118            const n = t
4119                ? {
4120                    priceGranularity: p.MEDIUM,
4121                    customPriceBucket: {},
4122                    mediaTypePriceGranularity: {},
4123                    bidderSequence: f,
4124                    auctionOptions: {},
4125                  }
4126                : {},
4127              o = (() => {
4128                const e = [
4129                    "suppressStaleRender",
4130                    "suppressExpiredRender",
4131                    "legacyRender",
4132                    "rejectUnknownMediaTypes",
4133                    "rejectInvalidMediaTypes",
4134                  ],
4135                  t = ["secondaryBidders"],
4136                  n = [].concat(e).concat(t);
4137                return function (r) {
4138                  if (!(0, s.Qd)(r))
4139                    return ((0, i.JE)("Auction Options must be an object"), !1);
4140                  for (const o of Object.keys(r)) {
4141                    if (!n.includes(o))
4142                      return (
4143                        (0, i.JE)(
4144                          `Auction Options given an incorrect param: ${o}`,
4145                        ),
4146                        !1
4147                      );
4148                    if (t.includes(o)) {
4149                      if (!(0, s.cy)(r[o]))
4150                        return (
4151                          (0, i.JE)(
4152                            `Auction Options ${o} must be of type Array`,
4153                          ),
4154                          !1
4155                        );
4156                      if (!r[o].every(s.O8))
4157                        return (
4158                          (0, i.JE)(`Auction Options ${o} must be only string`),
4159                          !1
4160                        );
4161                    } else if (e.includes(o) && !(0, s.Lm)(r[o]))
4162                      return (
4163                        (0, i.JE)(
4164                          `Auction Options ${o} must be of type boolean`,
4165                        ),
4166                        !1
4167                      );
4168                  }
4169                  return !0;
4170                };
4171              })();
4172            function a(e) {
4173              return n[e];
4174            }
4175            function d(t, r) {
4176              (n.hasOwnProperty(t) ||
4177                Object.defineProperty(e, t, { enumerable: !0 }),
4178                (n[t] = r));
4179            }
4180            const c = {
4181              publisherDomain: {
4182                set(e) {
4183                  (null != e &&
4184                    (0, i.JE)(
4185                      "publisherDomain is deprecated and has no effect since v7 - use pageUrl instead",
4186                    ),
4187                    d("publisherDomain", e));
4188                },
4189              },
4190              priceGranularity: {
4191                set(e) {
4192                  g(e) &&
4193                    ("string" == typeof e
4194                      ? d("priceGranularity", u(e) ? e : p.MEDIUM)
4195                      : (0, s.Qd)(e) &&
4196                        (d("customPriceBucket", e),
4197                        d("priceGranularity", p.CUSTOM),
4198                        (0, i.OG)("Using custom price granularity")));
4199                },
4200              },
4201              customPriceBucket: {},
4202              mediaTypePriceGranularity: {
4203                set(e) {
4204                  null != e &&
4205                    d(
4206                      "mediaTypePriceGranularity",
4207                      Object.keys(e).reduce(
4208                        (t, n) => (
4209                          g(e[n])
4210                            ? "string" == typeof e[n]
4211                              ? (t[n] = u(e[n]) ? e[n] : a("priceGranularity"))
4212                              : (0, s.Qd)(e[n]) &&
4213                                ((t[n] = e[n]),
4214                                (0, i.OG)(
4215                                  `Using custom price granularity for ${n}`,
4216                                ))
4217                            : (0, i.JE)(
4218                                `Invalid price granularity for media type: ${n}`,
4219                              ),
4220                          t
4221                        ),
4222                        {},
4223                      ),
4224                    );
4225                },
4226              },
4227              bidderSequence: {
4228                set(e) {
4229                  l[e]
4230                    ? d("bidderSequence", e)
4231                    : (0, i.JE)(
4232                        `Invalid order: ${e}. Bidder Sequence was not set.`,
4233                      );
4234                },
4235              },
4236              auctionOptions: {
4237                set(e) {
4238                  o(e) && d("auctionOptions", e);
4239                },
4240              },
4241            };
4242            return (
4243              Object.defineProperties(
4244                e,
4245                Object.fromEntries(
4246                  Object.entries(c).map(([e, t]) => [
4247                    e,
4248                    Object.assign(
4249                      {
4250                        get: a.bind(null, e),
4251                        set: d.bind(null, e),
4252                        enumerable: n.hasOwnProperty(e),
4253                        configurable: !n.hasOwnProperty(e),
4254                      },
4255                      t,
4256                    ),
4257                  ]),
4258                ),
4259              ),
4260              e
4261            );
4262            function u(e) {
4263              return Object.keys(p).find((t) => e === p[t]);
4264            }
4265            function g(e) {
4266              if (!e)
4267                return (
4268                  (0, i.vV)(
4269                    "Prebid Error: no value passed to `setPriceGranularity()`",
4270                  ),
4271                  !1
4272                );
4273              if ("string" == typeof e)
4274                u(e) ||
4275                  (0, i.JE)(
4276                    "Prebid Warning: setPriceGranularity was called with invali
4276d setting, using `medium` as default.",
4277                  );
4278              else if ((0, s.Qd)(e) && !(0, r.q)(e))
4279                return (
4280                  (0, i.vV)(
4281                    "Invalid custom price value passed to `setPriceGranularity()`",
4282                  ),
4283                  !1
4284                );
4285              return !0;
4286            }
4287          }
4288          const m = (function () {
4289            const e = [];
4290            let t,
4291              n,
4292              r,
4293              a = null;
4294            function u() {
4295              t = {};
4296              const e = g({
4297                debug: d,
4298                bidderTimeout: 3e3,
4299                enableSendAllBids: true,
4300                useBidCache: false,
4301                deviceAccess: true,
4302                disableAjaxTimeout: false,
4303                maxNestedIframes: 10,
4304                maxBid: 5e3,
4305                userSync: { topics: c },
4306              });
4307              (n &&
4308                v(
4309                  Object.keys(n).reduce(
4310                    (t, r) => (n[r] !== e[r] && (t[r] = e[r] || {}), t),
4311                    {},
4312                  ),
4313                ),
4314                (n = e),
4315                (r = {}));
4316            }
4317            function l() {
4318              if (a && r && (0, s.Qd)(r[a])) {
4319                const e = r[a],
4320                  t = new Set([...Object.keys(n), ...Object.keys(e)]),
4321                  o = {};
4322                for (const r of t) {
4323                  const t = n[r],
4324                    a = e[r];
4325                  o[r] =
4326                    void 0 === a
4327                      ? t
4328                      : void 0 === t
4329                        ? a
4330                        : (0, s.Qd)(a)
4331                          ? (0, i.D9)({}, t, a)
4332                          : a;
4333                }
4334                return o;
4335              }
4336              return { ...n };
4337            }
4338            const [f, p] = [
4339                l,
4340                function () {
4341                  const e = l();
4342                  return (
4343                    Object.defineProperty(e, "ortb2", {
4344                      get: function () {
4345                        throw new Error(
4346                          "invalid access to 'orbt2' config - use request parameters instead",
4347                        );
4348                      },
4349                    }),
4350                    e
4351                  );
4352                },
4353              ].map(
4354                (e) =>
4355                  function (...t) {
4356                    if (t.length <= 1 && "function" != typeof t[0]) {
4357                      const n = t[0];
4358                      return n ? (0, o.A)(e(), n) : l();
4359                    }
4360                    return y(...t);
4361                  },
4362              ),
4363              [m, h] = [p, f].map(
4364                (e) =>
4365                  function (...t) {
4366                    let n = e(...t);
4367                    return (n && "object" == typeof n && (n = (0, s.Go)(n)), n);
4368                  },
4369              );
4370            function b(e) {
4371              if (!(0, s.Qd)(e))
4372                return void (0, i.vV)("setConfig options must be an object");
4373              const r = Object.keys(e),
4374                o = {};
4375              (r.forEach((r) => {
4376                let a = e[r];
4377                (0, s.Qd)(t[r]) &&
4378                  (0, s.Qd)(a) &&
4379                  (a = Object.assign({}, t[r], a));
4380                try {
4381                  o[r] = n[r] = a;
4382                } catch (e) {
4383                  (0, i.JE)(`Cannot set config for property ${r} : `, e);
4384                }
4385              }),
4386                v(o));
4387            }
4388            function y(t, n, r = {}) {
4389              let o = n;
4390              if (
4391                ("string" != typeof t && ((o = t), (t = "*"), (r = n || {})),
4392                "function" != typeof o)
4393              )
4394                return void (0, i.vV)("listener must be a function");
4395              const s = { topic: t, callback: o };
4396              return (
4397                e.push(s),
4398                r.init && o("*" === t ? p() : { [t]: p(t) }),
4399                function () {
4400                  e.splice(e.indexOf(s), 1);
4401                }
4402              );
4403            }
4404            function v(t) {
4405              const n = Object.keys(t);
4406              (e
4407                .filter((e) => n.includes(e.topic))
4408                .forEach((e) => {
4409                  e.callback({ [e.topic]: t[e.topic] });
4410                }),
4411                e.filter((e) =>
4411 "*" === e.topic).forEach((e) => e.callback(t)));
4412            }
4413            function E(e, t = !1) {
4414              try {
4415                (!(function (e) {
4416                  if (!(0, s.Qd)(e))
4417                    throw new Error(
4418                      "setBidderConfig bidder options must be an object",
4419                    );
4420                  if (!Array.isArray(e.bidders) || !e.bidders.length)
4421                    throw new Error(
4422                      "setBidderConfig bidder options must contain a bidders list with at least 1 bidder",
4423                    );
4424                  if (!(0, s.Qd)(e.config))
4425                    throw new Error(
4426                      "setBidderConfig bidder options must contain a config object",
4427                    );
4428                })(e),
4429                  e.bidders.forEach((n) => {
4430                    (r[n] || (r[n] = g({}, !1)),
4431                      Object.keys(e.config).forEach((o) => {
4432                        const a = e.config[o],
4433                          d = r[n][o];
4434                        if ((0, s.Qd)(a) && (null == d || (0, s.Qd)(d))) {
4435                          const e = t ? i.D9 : Object.assign;
4436                          r[n][o] = e({}, d || {}, a);
4437                        } else r[n][o] = a;
4438                      }));
4439                  }));
4440              } catch (e) {
4441                (0, i.vV)(e);
4442              }
4443            }
4444            function w(e, t) {
4445              a = e;
4446              try {
4447                return t();
4448              } finally {
4449                A();
4450              }
4451            }
4452            function A() {
4453              a = null;
4454            }
4455            return (
4456              u(),
4457              {
4458                getCurrentBidder: function () {
4459                  return a;
4460                },
4461                resetBidder: A,
4462                getConfig: p,
4463                getAnyConfig: f,
4464                readConfig: m,
4465                readAnyConfig: h,
4466                setConfig: b,
4467                mergeConfig: function (e) {
4468                  if (!(0, s.Qd)(e))
4469                    return void (0, i.vV)(
4470                      "mergeConfig input must be an object",
4471                    );
4472                  const t = (0, i.D9)(l(), e);
4473                  return (
4474                    b(
4475                      Object.keys(e).reduce(
4476                        (e, n) => (
4477                          Object.prototype.hasOwnProperty.call(t, n) &&
4478                            (e[n] = t[n]),
4479                          e
4480                        ),
4481                        {},
4482                      ),
4483                    ),
4484                    t
4485                  );
4486                },
4487                setDefaults: function (e) {
4488                  (0, s.Qd)(t)
4489                    ? (Object.assign(t, e), Object.assign(n, e))
4490                    : (0, i.vV)("defaults must be an object");
4491                },
4492                resetConfig: u,
4493                runWithBidder: w,
4494                callbackWithBidder: function (e) {
4495                  return function (t) {
4496                    return function (...n) {
4497                      if ("function" == typeof t)
4498                        return w(e, t.bind(this, ...n));
4499                      (0, i.JE)(
4500                        "config.callbackWithBidder callback is not a function",
4501                      );
4502                    };
4503                  };
4504                },
4505                setBidderConfig: E,
4506                getBidderConfig: function () {
4507                  return r;
4508                },
4509                mergeBidderConfig: function (e) {
4510                  return E(e, !0);
4511                },
4512              }
4513            );
4514          })();
4515        },
4516        1068(e, t, n) {
4517          var r = n(7413),
4518            i = n(3350),
4519            o = n(8203),
4520            s = n(8384);
4521          Object.freeze({});
4522          const a = "gdpr",
4523            d = "gpp",
4524            c = "usp",
4525            u = "coppa";
4526          function l({
4527            getMeta: e = (e, t) => ({ generatedAt: t }),
4528            hashFields: t,
4529          } = {}) {
4530            let n, i, s, a, d, c, u, l, f, p;
4531            function g() {
4532              ((s = (0, o.v6)()),
4533                (n = !1),
4534                (d = null),
4535                (c = !1),
4536                (a = null),
4537                (i = !0),
4538                (u = null),
4539                (l = null),
4540                (f = !1),
4541                (p = []));
4542            }
4543            function m(e) {
4544              return e && t ? t.map((t) => e[t]) : e;
4545            }
4546            function h(e) {
4547              return !(0, r.bD)(m(d), m(e));
4548            }
4549            function b() {
4550              i && p.forEach((e) => e(d));
4551            }
4552            function y(e) {
4553              ((i = h(e)),
4554                (d = e),
4555                (f = !1),
4556                (l = null),
4557                (c = !0),
4558                s.resolve(e),
4559                b());
4560            }
4561            return (
4562              g(),
4563              {
4564                reset: g,
4565                get generatedTime() {
4566                  return a;
4567                },
4568                enable() {
4569                  n = !0;
4570                },
4571                get enabled() {
4572                  return n;
4573                },
4574                get ready() {
4575                  return c;
4576                },
4577                get promise() {
4578                  return c
4579                    ? f
4580                      ? o.U9.reject(l)
4581                      : o.U9.resolve(d)
4582                    : (n || y(null), s.promise);
4583                },
4584                setConsentData(e, t = (0, r.vE)()) {
4585                  ((a = t), y(e));
4586                },
4587                getConsentData: () => (n ? d : null),
4588                getConsentMeta() {
4589                  if (null != a && null != d) return e(d, a);
4590                },
4591                error: function (e) {
4592                  ((i = h(null)),
4593                    (d = null),
4594                    (c = !0),
4595                    (l = e),
4596                    (f = !0),
4597                    s.reject(e),
4598                    b());
4599                },
4600                get hash() {
4601                  return (
4602                    i && ((u = (0, r.PB)(JSON.stringify(m(d)))), (i = !1)),
4603                    u
4604                  );
4605                },
4606                onChange(e) {
4607                  p.push(e);
4608                },
4609              }
4610            );
4611          }
4612          const f = l(),
4613            p = l({
4614              getMeta(e, t) {
4615                if (e.vendorData)
4616                  return {
4617                    gdprApplies: e.gdprApplies,
4618                    consentStringSize: (0, i.O8)(e.vendorData.tcString)
4619                      ? e.vendorData.tcString.length
4620                      : 0,
4621                    generatedAt: t,
4622                    apiVersion: e.apiVersion,
4623                  };
4624              },
4625              hashFields: ["gdprApplies", "consentString"],
4626            }),
4627            g = l({ hashFields: ["applicableSections", "gppString"] }),
4628            m = (() => {
4629              const e = ((e) =>
4630                Object.assign(e, {
4631                  getCoppa: () => e.getConsentData(),
4632                  reset() {},
4633                }))(l({ getMeta: (e, t) => e }));
4634              return (
4635                e.enable(),
4636                e.setConsentData(!!s.$.getConfig("coppa")),
4637                s.$.getConfig("coppa", (t) => {
4638                  e.setConsentData(
4639                    ("object" != typeof t.coppa || !(0, r.Im)(t.coppa)) &&
4640                      !!t.coppa,
4641                  );
4642                }),
4643                e
4644              );
4645            })();
4646          const h = (function () {
4647              const e = {},
4648                t = {},
4649                n = {};
4650              return {
4651                register(r, i, o) {
4652                  o &&
4653                    (((e[i] = e[i] || {})[r] = o),
4654                    t.hasOwnProperty(i)
4655                      ? t[i] !== o && (t[i] = n)
4656                      : (t[i] = o));
4657                },
4658                get(r) {
4659                  const i = { modules: e[r] || {} };
4660                  return (
4661                    t.hasOwnProperty(r) && t[r] !== n && (i.gvlid = t[r]),
4662                    i
4663                  );
4664                },
4665              };
4666            })(),
4667            b = { [a]: p, [c]: f, [d]: g, [u]: m };
4668          const y = (function (e = b) {
4669            const t = Object.entries(e);
4670            function n(e) {
4671              return function () {
4672                return Object.fromEntries(t.map(([t, n]) =>
4672 [t, n[e]()]));
4673              };
4674            }
4675            const i = n("getConsentData"),
4676              s = n("reset");
4677            let a;
4678            function d() {
4679              ((a = []),
4680                Object.values(e).forEach((e) =>
4681                  e.onChange(() => {
4682                    a.forEach((e) => e(i()));
4683                  }),
4684                ));
4685            }
4686            return (
4687              d(),
4688              {
4689                getConsentData: i,
4690                onChange(e) {
4691                  a.push(e);
4692                },
4693                get promise() {
4694                  return o.U9.all(
4695                    t.map(([e, t]) => t.promise.then((t) => [e, t])),
4696                  ).then((e) => Object.fromEntries(e));
4697                },
4698                get hash() {
4699                  return (0, r.PB)(t.map(([e, t]) => t.hash).join(":"));
4700                },
4701                getConsentMeta: n("getConsentMeta"),
4702                reset() {
4703                  (s(), d());
4704                },
4705              }
4706            );
4707          })();
4708          n.d(t, [
4709            "SL",
4710            0,
4711            y,
4712            "W1",
4713            0,
4714            {},
4715            "ad",
4716            0,
4717            g,
4718            "mW",
4719            0,
4720            p,
4721            "o2",
4722            0,
4723            h,
4724            "t6",
4725            0,
4726            f,
4727          ]);
4728        },
4729        5521(e, t, n) {
4730          n.d(t, [
4731            "IY",
4732            0,
4733            "__pb_locator__",
4734            "M",
4735            0,
4736            "pbjs_debug",
4737            "RW",
4738            0,
4739            {
4740              SRC: "s2s",
4741              DEFAULT_ENDPOINT:
4742                "https://prebid.adnxs.com/pbs/v1/openrtb2/auction",
4743              SYNCED_BIDDERS_KEY: "pbjsSyncs",
4744            },
4745            "Tf",
4746            0,
4747            {
4748              INVALID: "Bid has missing or invalid properties",
4749              INVALID_REQUEST_ID: "Invalid request ID",
4750              BIDDER_DISALLOWED:
4751                "Bidder code is not allowed by allowedAlternateBidderCodes / allowUnknownBidderCodes",
4752              FLOOR_NOT_MET: "Bid does not meet price floor",
4753              CANNOT_CONVERT_CURRENCY: "Unable to convert currency",
4754              DSA_REQUIRED:
4755                "Bid does not provide required DSA transparency info",
4756              DSA_MISMATCH: "Bid indicates inappropriate DSA rendering method",
4757              PRICE_TOO_HIGH: "Bid price exceeds maximum value",
4758            },
4759            "UE",
4760            0,
4761            {
4762              LOW: "low",
4763              MEDIUM: "medium",
4764              HIGH: "high",
4765              AUTO: "auto",
4766              DENSE: "dense",
4767              CUSTOM: "custom",
4768            },
4769            "Zh",
4770            0,
4771            {
4772              BIDDER: "hb_bidder",
4773              AD_ID: "hb_adid",
4774              PRICE_BUCKET: "hb_pb",
4775              SIZE: "hb_size",
4776              DEAL: "hb_deal",
4777              FORMAT: "hb_format",
4778              UUID: "hb_uuid",
4779              CACHE_HOST: "hb_cache_host",
4780              VERSION: "hb_ver",
4781            },
4782            "_B",
4783            0,
4784            ["privacyIcon", "clickUrl", "adTemplate", "rendererUrl", "type"],
4785            "as",
4786            0,
4787            {
4788              PREVENT_WRITING_ON_MAIN_DOCUMENT: "preventWritingOnMainDocument",
4789              NO_AD: "noAd",
4790              EXCEPTION: "exception",
4791              CANNOT_FIND_AD: "cannotFindAd",
4792              MISSING_DOC_OR_ADID: "missingDocOrAdid",
4793            },
4794            "cA",
4795            0,
4796            { bidWon: "adUnitCode" },
4797            "h0",
4798            0,
4799            {
4800              body: "desc",
4801              body2: "desc2",
4802              sponsoredBy: "sponsored",
4803              cta: "ctatext",
4804              rating: "rating",
4805              address: "address",
4806              downloads: "downloads",
4807              likes: "likes",
4808              phone: "phone",
4809              price: "price",
4810              salePrice: "saleprice",
4811              displayUrl: "displayurl",
4812            },
4813            "iD",
4814            0,
4815            {
4816              PL_CODE: "code",
4817              PL_SIZE: "sizes",
4818              PL_BIDS: "bids",
4819              BD_BIDDER: "bidder",
4820              BD_ID: "paramsd",
4821              BD_PL_ID: "placementId",
4822              ADSERVER_TARGETING: "adserverTargeting",
4823              BD_SETTING_STANDARD: "standard",
4824            },
4825            "jO",
4826            0,
4827            {
4828              sponsored: 1,
4829              desc: 2,
4830              rating: 3,
4831              likes: 4,
4832              downloads: 5,
4833              price: 6,
4834              saleprice: 7,
4835              phone: 8,
4836              address: 9,
4837              desc2: 10,
4838              displayurl: 11,
4839              ctatext: 12,
4840            },
4841            "nl",
4842            0,
4843            {
4844              REQUEST: "Prebid Request",
4845              RESPONSE: "Prebid Response",
4846              NATIVE: "Prebid Native",
4847              EVENT: "Prebid Event",
4848              INTERVENTION: "Prebid Intervention",
4849            },
4850            "oA",
4851            0,
4852            { ICON: 1, MAIN: 3 },
4853            "qY",
4854            0,
4855            {
4856              AUCTION_INIT: "auctionInit",
4857              AUCTION_TIMEOUT: "auctionTimeout",
4858              AUCTION_END: "auctionEnd",
4859              BID_ADJUSTMENT: "bidAdjustment",
4860              BID_TIMEOUT: "bidTimeout",
4861              BID_REQUESTED: "bidRequested",
4862              BID_RESPONSE: "bidResponse",
4863              BID_ACCEPTED: "bidAccepted",
4864              BID_REJECTED: "bidRejected",
4865              NO_BID: "noBid",
4866              BID_WON: "bidWon",
4867              BIDDER_DONE: "bidderDone",
4868              BIDDER_ERROR: "bidderError",
4869              SET_TARGETING: "setTargeting",
4870              BEFORE_REQUEST_BIDS: "beforeRequestBids",
4871              BEFORE_BIDDER_HTTP: "beforeBidderHttp",
4872              REQUEST_BIDS: "requestBids",
4873              AD_RENDER_FAILED: "adRenderFailed",
4874              AD_RENDER_SUCCEEDED: "adRenderSucceeded",
4875              TCF2_ENFORCEMENT: "tcf2Enforcement",
4876              AUCTION_DEBUG: "auctionDebug",
4877              BID_VIEWABLE: "bidViewable",
4878              STALE_RENDER: "staleRender",
4879              EXPIRED_RENDER: "expiredRender",
4880              BILLABLE_EVENT: "billableEvent",
4881              PBS_ANALYTICS: "pbsAnalytics",
4882              BEFORE_PBS_HTTP: "beforePBSHttp",
4883              BROWSI_INIT: "browsiInit",
4884              BROWSI_DATA: "browsiData",
4885              BROWSER_INTERVENTION: "browserIntervention",
4886            },
4887            "tl",
4888            0,
4889            {
4890              BID_TARGETING_SET: "targetingSet",
4891              RENDERED: "rendered",
4892              BID_REJECTED: "bidRejected",
4893            },
4894            "x5",
4895            0,
4896            {
4897              title: "hb_native_title",
4898              body: "hb_native_body",
4899              body2: "hb_native_body2",
4900              privacyLink: "hb_native_privacy",
4901              privacyIcon: "hb_native_privicon",
4902              sponsoredBy: "hb_native_brand",
4903              image: "hb_native_image",
4904              icon: "hb_native_icon",
4905              clickUrl: "hb_native_linkurl",
4906              displayUrl: "hb_native_displayurl",
4907              cta: "hb_native_cta",
4908              rating: "hb_native_rating",
4909              address: "hb_native_address",
4910              downloads: "hb_native_downloads",
4911              likes: "hb_native_likes",
4912              phone: "hb_native_phone",
4913              price: "hb_native_price",
4914              salePrice: "hb_native_saleprice",
4915              rendererUrl: "hb_renderer_url",
4916              adTemplate: "hb_adTemplate",
4917            },
4918            "xS",
4919            0,
4920            {
4921              BIDDER: "hb_bidder",
4922              AD_ID: "hb_adid",
4923              PRICE_BUCKET: "hb_pb",
4924              SIZE: "hb_size",
4925              DEAL: "hb_deal",
4926              SOURCE: "hb_source",
4927              FORMAT: "hb_format",
4928              UUID: "hb_uuid",
4929              CACHE_ID: "hb_cache_id",
4930              CACHE_HOST: "hb_cache_host",
4931              ADOMAIN: "hb_adomain",
4932              ACAT: "hb_acat",
4933              CRID: "hb_crid",
4934              DSP: "hb_dsp",
4935              VERSION: "hb_ver",
4936            },
4937          ]);
4938        },
4939        6969(e, t, n) {
4940          n.d(t, { j: () => u, q: () => f });
4941          var r = n(7413),
4942            i = n(8384);
4943          const o = { buckets: [{ max: 5, increment: 0.5 }] },
4944            s = { buckets: [{ max: 20, increment: 0.1 }] },
4945            a = { buckets: [{ max: 20, increment: 0.01 }] },
4946            d = {
4947              buckets: [
4948                { max: 3, increment: 0.01 },
4949                { max: 8, increment: 0.05 },
4950                { max: 20, increment: 0.5 },
4951              ],
4952            },
4953            c = {
4954              buckets: [
4955                { max: 5, increment: 0.05 },
4956                { max: 10, increment: 0.1 },
4957                { max: 20, increment: 0.5 },
4958              ],
4959            };
4960          function u(e, t, n = 1) {
4961            let r = parseFloat(e);
4962            return (
4963              isNaN(r) && (r = ""),
4964              {
4965                low: "" === r ? "" : l(e, o, n),
4966                med: "" === r ? "" : l(e, s, n),
4967                high: "" === r ? "" : l(e, a, n),
4968                auto: "" === r ? "" : l(e, c, n),
4969                dense: "" === r ? "" : l(e, d, n),
4970                custom: "" === r ? "" : l(e, t, n),
4971              }
4972            );
4973          }
4974          function l(e, t, n) {
4975            let o = "";
4976            if (!f(t)) return o;
4977            const s = t.buckets.reduce((e, t) => (e.max > t.max ? e : t), {
4978              max: 0,
4979            });
4980            let a = 0;
4981            const d = t.buckets.find((t) => {
4982              if (e > s.max * n) {
4983                let e = t.precision;
4984                (void 0 === e && (e = 2), (o = (t.max * n).toFixed(e)));
4985              } else {
4986                if (e <= t.max * n && e >= a * n) return ((t.min = a), t);
4987                a = t.max;
4988              }
4989            });
4990            return (
4991              d &&
4992                (o = (function (e, t, n) {
4993                  const o = void 0 !== t.precision ? t.precision : 2,
4994                    s = t.increment * n,
4995                    a = t.min * n;
4996                  let d = Math.floor;
4997                  const c = i.$.getConfig("cpmRoundingFunction");
4998                  "function" == typeof c && (d = c);
4999                  const u = Math.pow(10, o + 2),
5000                    l = (e * u - a * u) / (s * u);
5001                  let f, p;
5002                  try {
5003                    f = d(l) * s + a;
5004                  } catch (e) {
5005                    p = !0;
5006                  }
5007                  (p || "number" != typeof f) &&
5008                    ((0, r.JE)("Invalid rounding function passed in config"),
5009                    (f = Math.floor(l) * s + a));
5010                  return ((f = Number(f.toFixed(10))), f.toFixed(o));
5011                })(e, d, n)),
5012              o
5013            );
5014          }
5015          function f(e) {
5016            if ((0, r.Im)(e) || !e.buckets || !Array.isArray(e.buckets))
5017              return !1;
5018            let t = !0;
5019            return (
5020              e.buckets.forEach((e) => {
5021                (e.max && e.increment) || (t = !1);
5022              }),
5023              t
5024            );
5025          }
5026        },
5027        3895(e, t, n) {
5028          n.d(t, { DX: () => c, HH: () => l, kj: () => u });
5029          var r = n(8203),
5030            i = n(7413),
5031            o = n(1852),
5032            s = n(157),
5033            a = n(1785),
5034            d = n(5595);
5035          const c = (0, a.A_)("sync", function (e) {
5036              return o.G;
5037            }),
5038            u = function (e) {
5039              return (0, d.Hd)(e) ? s.G : c(e);
5040            },
5041            l = (function () {
5042              const e = {};
5043              return function (t) {
5044                const n = u(t);
5045                return (
5046                  e.hasOwnProperty(n) ||
5047                    (e[n] = new r.U9((e) => {
5048                      const r = (0, i.CA)();
5049                      r.srcdoc = `\n            <script>${n}<\/script>\n            <script>\n              window.parent.postMessage(\n                  { type: 'RENDERER_READY_${t.adId}' },\n                  '*'\n            );<\/script>`;
5050                      const o = (n) => {
5051                        n.source === r.contentWindow &&
5052                          n.data?.type === `RENDERER_READY_${t.adId}` &&
5053                          (window.removeEventListener("message", o),
5054                          e(r.contentWindow.render));
5055                      };
5056                      (window.addEventListener("message", o),
5057                        document.body.appendChild(r));
5058                    })),
5059                  e[n]
5060                );
5061              };
5062            })();
5063        },
5064        8693(e, t, n) {
5065          n.d(t, { $: () => r });
5066          function r(e) {
5067            return (e ?? []).reduce((e, { event: t, method: n, url: r }) => {
5068              const i = (e[t] = e[t] ?? {});
5069              return ((i[n] = i[n] ?? []).push(r), e);
5070            }, {});
5071          }
5072        },
5073        3399(e, t, n) {
5074          var r = n(7413),
5075            i = n(5521),
5076            o = n(7834),
5077            s = n(8384),
5078            a = n(1343);
5079          const d = "eventHistoryTTL";
5080          let c = null;
5081          const u = (0, o.H)({ monotonic: !0, ttl: () => c });
5082          s.$.getConfig(d, (e) => {
5083            const t = c,
5084              n = e?.[d];
5085            ((c = "number" == typeof n ? 1e3 * n : null),
5086              t !== c && u.refresh());
5087          });
5088          let l = Object.values(i.qY);
5089          const f = i.cA;
5090          let p = 0;
5091          const g = new WeakMap(),
5092            m = (function () {
5093              const e = {};
5094              function t(e) {
5095                return l.includes(e);
5096              }
5097              function n(n, i, o) {
5098                if (t(n)) {
5099                  const t = e[n] || { que: [] };
5100                  (o
5101                    ? ((t[o] = t[o] || { que: [] }), t[o].que.push(i))
5102                    : t.que.push(i),
5103                    (e[n] = t));
5104                } else
5105                  r.vV("Wrong event name : " + n + " Valid event names :" + l);
5106              }
5107              return {
5108                has: t,
5109                listen: n,
5110                on: function (e, t, r) {
5111                  const i = g.has(t) ? g.get(t) : (e, ...n) => t(...n);
5112                  (g.set(t, i), n(e, i, r));
5113                },
5114                emit: function (t, ...n) {
5115                  !(function (t, n) {
5116                    r.OG("Emitting event for: " + t);
5117                    const i = n[0] || {},
5118                      o = i[f[t]],
5119                      s = e[t] || { que: [] };
5120                    var a = Object.keys(s);
5121                    const d = [],
5122                      c = {
5123                        eventType: t,
5124                        args: i,
5125                        id: o,
5126                        elapsedTime: r.V(),
5127                        sequence: p++,
5128                      };
5129                    (u.add(c),
5130                      o && a.includes(o) && d.push(...s[o].que),
5131                      d.push(...s.que),
5132                      (d || []).forEach(function (e) {
5133                        if (e)
5134                          try {
5135                            e(c, ...n);
5136                          } catch (e) {
5137                            r.vV("Error executing handler:", "events.js", e, t);
5138                          }
5139                      }));
5140                  })(t, n);
5141                },
5142                off: function (t, n, i) {
5143                  null != n && g.has(n) && (n = g.get(n));
5144                  const o = e[t];
5145                  if (r.Im(o) || (r.Im(o.que) && r.Im(o[i]))) return;
5146                  if (i && (r.Im(o[i]) || r.Im(o[i].que))) return;
5147                  const s = (e) => e.filter((e) => e !== n);
5148                  (i && o[i].que?.length > 0
5149                    ? (o[i].que = s(o[i].que))
5150                    : o.que?.length > 0 && (o.que = s(o.que)),
5151                    (e[t] = o));
5152                },
5153                get: function () {
5154                  return e;
5155                },
5156                addEvents: function (e) {
5157                  l = l.concat(e);
5158                },
5159                getEvents: function () {
5160                  return u.toArray().map((e) => Object.assign({}, e));
5161                },
5162              };
5163            })();
5164          (0, a.cD)(m.emit.bind(m));
5165          const {
5166            on: h,
5167            off: b,
5168            get: y,
5169            getEvents: v,
5170            emit: E,
5171            addEvents: w,
5172            has: A,
5173            listen: T,
5174          } = m;
5175          n.d(t, ["AU", 0, b, "Ic", 0, E, "kQ", 0, v, "on", 0, h]);
5176        },
5177        7850(e, t, n) {
5178          n.d(t, { O$: () => s, i8: () => o });
5179          var r = n(7413);
5180          const i = ["dooh", "app", "site"];
5181          function o(e) {
5182            return function (t) {
5183              return (
5184                i.reduce(
5185                  (n, i) => (
5186                    s(t, i) &&
5187                      (null != n
5188                        ? ((0, r.JE)(
5189                            `${e} specifies both '${n}' and '${i}'; dropping the latter.`,
5190                          ),
5191                          delete t[i])
5192                        : (n = i)),
5193                    n
5194                  ),
5195                  null,
5196                ),
5197                t
5198              );
5199            };
5200          }
5201          function s(e, t) {
5202            return null != e[t] && Object.keys(e[t]).length > 0;
5203          }
5204          n.d(t, ["Dy", 0, i]);
5205        },
5206        1785(e, t, n) {
5207          n.d(t, { Y6: () => c, u2: () => u });
5208          var r = n(5481),
5209            i = n.n(r),
5210            o = n(8203);
5211          const s = i()({ ready: i().SYNC | i().ASYNC | i().QUEUE }),
5212            a = (0, o.v6)();
5213          s.ready = (() => {
5214            const e = s.ready;
5215            return function () {
5216              try {
5217                return e.apply(s);
5218              } finally {
5219                a.resolve();
5220              }
5221            };
5222          })();
5223          a.promise;
5224          const d = s.get;
5225          function c(e, t) {
5226            return (
5227              Object.defineProperties(
5228                t,
5229                Object.fromEntries(
5230                  ["before", "after", "getHooks", "removeAll"].map((t) => [
5231                    t,
5232                    { get: () => e[t] },
5233                  ]),
5234                ),
5235              ),
5236              t
5237            );
5238          }
5239          function u(e) {
5240            return c(e, function (...t) {
5241              return (t.push(function () {}), e.apply(this, t));
5242            });
5243          }
5244          n.d(t, ["A_", 0, s, "Yn", 0, d]);
5245        },
5246        5657(e, t, n) {
5247          n.d(t, {
5248            Bm: () => y,
5249            IX: () => I,
5250            gs: () => E,
5251            l6: () => g,
5252            mT: () => u,
5253            nk: () => h,
5254            vO: () => v,
5255            yl: () => C,
5256          });
5257          var r = n(7413),
5258            i = n(3350),
5259            o = n(6825),
5260            s = n(5521),
5261            a = n(5595),
5262            d = n(3895),
5263            c = n(8693);
5264          const u = [],
5265            l = {
5266              image: {
5267                ortb: {
5268                  ver: "1.2",
5269                  assets: [
5270                    {
5271                      required: 1,
5272                      id: 1,
5273                      img: { type: 3, wmin: 100, hmin: 100 },
5274                    },
5275                    { required: 1, id: 2, title: { len: 140 } },
5276                    { required: 1, id: 3, data: { type: 1 } },
5277                    { required: 0, id: 4, data: { type: 2 } },
5278                    {
5279                      required: 0,
5280                      id: 5,
5281                      img: { type: 1, wmin: 20, hmin: 20 },
5282                    },
5283                  ],
5284                },
5285                image: { required: !0 },
5286                title: { required: !0 },
5287                sponsoredBy: { required: !0 },
5288                clickUrl: { required: !0 },
5289                body: { required: !1 },
5290                icon: { required: !1 },
5291              },
5292            },
5293            f = R(s.h0),
5294            p = R(s.jO);
5295          function g(e) {
5296            return null != e.native && "object" == typeof e.native;
5297          }
5298          function m(e) {
5299            if (
5300              (e &&
5301                e.type &&
5302                (function (e) {
5303                  if (!e || !Object.keys(l).includes(e))
5304                    return ((0, r.vV)(`${e} nativeParam is not supported`), !1);
5305                  return !0;
5306                })(e.type) &&
5307                (e = l[e.type]),
5308              !e || !e.ortb || b(e.ortb))
5309            )
5310              return e;
5311          }
5312          function h(e) {
5313            e.forEach((e) => {
5314              const t = e.nativeParams || e?.mediaTypes?.native;
5315              (t && (e.nativeParams = m(t)),
5316                e.nativeParams &&
5317                  (e.nativeOrtbRequest =
5318                    e.nativeParams.ortb ||
5319                    (function (e) {
5320                      if (!e && !(0, i.Qd)(e))
5321                        return void (0, r.vV)(
5322                          "Native assets object is empty or not an object: ",
5323                          e,
5324                        );
5325                      const t = { ver: "1.2", assets: [] };
5326                      for (const n in e) {
5327                        if (s._B.includes(n)) continue;
5328                        if (!s.x5.hasOwnProperty(n)) {
5329                          (0, r.vV)(
5330                            `Unrecognized native asset code: ${n}. Asset will be ignored.`,
5331                          );
5332                          continue;
5333                        }
5334                        if ("privacyLink" === n) {
5335                          t.privacy = 1;
5336                          continue;
5337                        }
5338                        const o = e[n];
5339                        let a = 0;
5340                        o.required &&
5341                          (0, i.Lm)(o.required) &&
5342                          (a = Number(o.required));
5343                        const d = { id: t.assets.length, required: a };
5344                        if (n in s.h0)
5345                          ((d.data = { type: s.jO[s.h0[n]] }),
5346                            o.len && (d.data.len = o.len));
5347                        else if ("icon" === n || "image" === n) {
5348                          if (
5349                            ((d.img = {
5350                              type: "icon" === n ? s.oA.ICON : s.oA.MAIN,
5351                            }),
5352                            o.aspect_ratios)
5353                          )
5354                            if ((0, i.cy)(o.aspect_ratios))
5355                              if (o.aspect_ratios.length) {
5356                                const { min_width: e, min_height: t } =
5357                                  o.aspect_ratios[0];
5358                                (0, i.Fq)(e) && (0, i.Fq)(t)
5359                                  ? ((d.img.wmin = e), (d.img.hmin = t))
5360                                  : (0, r.vV)(
5361                                      "image.aspect_ratios min_width or min_height are invalid: ",
5362                                      e,
5363                                      t,
5364                                    );
5365                                const n = o.aspect_ratios
5366                                  .filter(
5367                                    (e) => e.ratio_width && e.ratio_height,
5368                                  )
5369                                  .map(
5370                                    (e) => `${e.ratio_width}:${e.ratio_height}`,
5371                                  );
5372                                n.length > 0 &&
5373                                  (d.img.ext = { aspectratios: n });
5374                              } else
5375                                (0, r.vV)(
5376                                  "image.aspect_ratios was passed, but it's empty:",
5377                                  o.aspect_ratios,
5378                                );
5379                            else
5380                              (0, r.vV)(
5381                                "image.aspect_ratios was passed, but it's not a an array:",
5382                                o.aspect_ratios,
5383                              );
5384                          o.sizes &&
5385                            (2 === o.sizes.length &&
5386                            (0, i.Fq)(o.sizes[0]) &&
5387                            (0, i.Fq)(o.sizes[1])
5388                              ? ((d.img.w = o.sizes[0]),
5389                                (d.img.h = o.sizes[1]),
5390                                delete d.img.hmin,
5391                                delete d.img.wmin)
5392                              : (0, r.vV)(
5393                                  "image.sizes was passed, but its value is not an array of integers:",
5394                                  o.sizes,
5395                                ));
5396                        } else
5397                          "title" === n
5398                            ? (d.title = { len: o.len || 140 })
5399                            : "ext" === n && ((d.ext = o), delete d.required);
5400                        t.assets.push(d);
5401                      }
5402                      return t;
5403                    })(e.nativeParams)));
5404            });
5405          }
5406          function b(e) {
5407            const t = e.assets;
5408            if (!Array.isArray(t) || 0 === t.length)
5409              return (
5410                (0, r.vV)(
5411                  "assets in mediaTypes.native.ortb is not an array, or it's empty. Assets: ",
5412                  t,
5413                ),
5414                !1
5415              );
5416            const n = t.map((e) => e.id);
5417            return t.length !== new Set(n).size ||
5418              n.some((e) => e !== parseInt(e, 10))
5419              ? ((0, r.vV)(
5420                  "each asset object must have 'id' property, it must be unique and it must be an integer",
5421                ),
5422                !1)
5423              : e.hasOwnProperty("eventtrackers") &&
5424                  !Array.isArray(e.eventtrackers)
5425                ? ((0, r.vV)(
5426                    "ortb.eventtrackers is not an array. Eventtrackers: ",
5427                    e.eventtrackers,
5428                  ),
5429                  !1)
5430                : t.every((e) =>
5431                    (function (e) {
5432                      if (!(0, i.Qd)(e))
5433                        return (
5434                          (0, r.vV)(
5435                            "asset must be an object. Provided asset: ",
5436                            e,
5437                          ),
5438                          !1
5439                        );
5440                      if (e.img) {
5441                        if (!(0, i.Et)(e.img.w) && !(0, i.Et)(e.img.wmin))
5442                          return (
5443                            (0, r.vV)(
5444                              "for img asset there must be 'w' or 'wmin' property",
5445                            ),
5446                            !1
5447                          );
5448                        if (!(0, i.Et)(e.img.h) && !(0, i.Et)(e.img.hmin))
5449                          return (
5450                            (0, r.vV)(
5451                              "for img asset there must be 'h' or 'hmin' property",
5452                            ),
5453                            !1
5454                          );
5455                      } else if (e.title) {
5456                        if (!(0, i.Et)(e.title.len))
5457                          return (
5458                            (0, r.vV)(
5459                              "for title asset there must be 'len' property defined",
5460                            ),
5461                            !1
5462                          );
5463                      } else if (e.data) {
5464                        if (!(0, i.Et)(e.data.type))
5465                          return (
5466                            (0, r.vV)(
5467                              "for data asset 'type' property must be a number",
5468                            ),
5469                            !1
5470                          );
5471                      } else if (
5472                        e.video &&
5473                        !(
5474                          Array.isArray(e.video.mimes) &&
5475                          Array.isArray(e.video.protocols) &&
5476                          (0, i.Et)(e.video.minduration) &&
5477                          (0, i.Et)(e.video.maxduration)
5478                        )
5479                      )
5480                        return (
5481                          (0, r.vV)("video asset is not properly configured"),
5482                          !1
5483                        );
5484                      return !0;
5485                    })(e),
5486                  );
5487          }
5488          function y(e, { index: t = o.n.index } = {}) {
5489            const n = t.getAdUnit(e);
5490            if (!n) return !1;
5491            const i = n.nativeOrtbRequest;
5492            return (function (e, t) {
5493              if (!e?.link?.url)
5494                return (
5495                  (0, r.vV)(
5496                    "native response doesn't have 'link' property. Ortb response: ",
5497                    e,
5498                  ),
5499                  !1
5500                );
5501              const n = t.assets
5502                  .filter((e) => 1 === e.required)
5503                  .map((e) => e.id),
5504                i = e.assets.map((e) => e.id),
5505                o = n.every((e) => i.includes(e));
5506              o ||
5507                (0, r.vV)(
5508                  `didn't receive a bid with all required assets. Required ids: ${n}, but received ids in response: ${i}`,
5509                );
5510              return o;
5511            })(e.native?.ortb || S(e.native, i), i);
5512          }
5513          function v(e, t) {
5514            const n = t.native.ortb || B(t.native);
5515            return (
5516              "click" === e.action
5517                ? (function (e, t = null, { fetchURL: n = r.z$ } = {}) {
5518                    if (t) {
5519                      const r = (e.assets || [])
5520                          .filter((e) => e.link)
5521                          .reduce((e, t) => ((e[t.id] = t.link), e), {}),
5522                        i = e.link?.clicktrackers || [],
5523                        o = r[t];
5524                      let s = i;
5525                      (o && (s = o.clicktrackers || []),
5526                        s.forEach((e) => n(e)));
5527                    } else (e.link?.clicktrackers || []).forEach((e) => n(e));
5528                  })(n, e?.assetId)
5529                : (function (
5530                    e,
5531                    t,
5532                    {
5533                      runMarkup: n = (e) => (0, r.ro)(e),
5534                      fetchURL: i = r.z$,
5535                    } = {},
5536                  ) {
5537                    const s = (function (e, t) {
5538                      const n = [
5539                          { event: 1, methods: [1, 2] },
5540                          { event: 2, methods: [1, 2] },
5541                        ],
5542                        r = (o.n.index.getMediaTypes(t) || {}).native || {},
5543                        i = r.ortb?.eventtrackers || n,
5544                        { eventtrackers: s = [] } = e || {};
5545                      return s.filter((e) =>
5546                        i.some(
5547                          (t) =>
5548                            t.event === e.event && t.methods.includes(e.method),
5549                        ),
5550                      );
5551                    })(e, t);
5552                    let { 1: a = [], 2: d = [] } = (0, c.$)(s || [])[1] || {};
5553                    e.imptrackers && (a = a.concat(e.imptrackers));
5554                    (a.forEach((e) => i(e)),
5555                      (d = d.map((e) => `<script async src="${e}"><\/script>`)),
5556                      e.jstracker && (d = d.concat([e.jstracker])));
5557                    d.length && n(d.join("\n"));
5558                  })(n, t),
5559              e.action
5560            );
5561          }
5562          function E(e, t) {
5563            const n = t?.nativeOrtbRequest,
5564              r = e.native?.ortb;
5565            if (n && r) {
5566              const t = (function (e, t) {
5567                const n = {},
5568                  r = t?.assets || [];
5569                ((n.clickUrl = e.link?.url), (n.privacyLink = e.privacy));
5570                for (const t of e?.assets || []) {
5571                  const e = r.find((e) => t.id === e.id);
5572                  t.title
5573                    ? (n.title = t.title.text)
5574                    : t.img
5575                      ? (n[e?.img?.type === s.oA.MAIN ? "image" : "icon"] = {
5576                          url: t.img.url,
5577                          width: t.img.w,
5578                          height: t.img.h,
5579                        })
5580                      : t.data && (n[f[p[e?.data?.type]]] = t.data.value);
5581                }
5582                n.impressionTrackers = [];
5583                let i = [];
5584                e.imptrackers && n.impressionTrackers.push(...e.imptrackers);
5585                for (const t of e?.eventtrackers || [])
5586                  (1 === t.event &&
5587                    1 === t.method &&
5588                    n.impressionTrackers.push(t.url),
5589                    1 === t.event && 2 === t.method && i.push(t.url));
5590                ((i = i.map((e) => `<script async src="${e}"><\/script>`)),
5591                  e?.jstracker && i.push(e.jstracker));
5592                i.length && (n.javascriptTrackers = i.join("\n"));
5593                return n;
5594              })(r, n);
5595              Object.assign(e.native, t);
5596            }
5597            ["rendererUrl", "adTemplate"].forEach((n) => {
5598              const r = t?.nativeParams?.[n];
5599              r && (e.native[n] = O(r));
5600            });
5601          }
5602          function w(e, t, n = !1) {
5603            const r = [];
5604            return (
5605              Object.entries(e)
5606                .filter(
5607                  ([e, r]) =>
5608                    r &&
5609                    ((!1 === n && "ext" === e) || null == t || t.includes(e)),
5610                )
5611                .forEach(([e, i]) => {
5612                  !1 === n && "ext" === e
5613                    ? r.push(...w(i, t, !0))
5614                    : (n || s.x5.hasOwnProperty(e)) &&
5615                      r.push({ key: e, value: O(i) });
5616                }),
5617              r
5618            );
5619          }
5620          function A(e, t, n, { index: r = o.n.index } = {}) {
5621            const c = { message: "assetResponse", adId: e.adId };
5622            let u = (0, a.vd)(t).native;
5623            return (
5624              u
5625                ? ((c.native = Object.assign({}, u)),
5626                  (c.renderer = (0, d.DX)(t)),
5627                  (c.rendererVersion = 3),
5628                  null != n &&
5629                    (u.assets = u.assets.filter(({ key: e }) => n.includes(e))))
5630                : (u = (function (e, t, n) {
5631                    const r = {
5632                      ...(0, i.SH)(e.native, ["rendererUrl", "adTemplate"]),
5633                      assets: w(e.native, n),
5634                      nativeKeys: s.x5,
5635                    };
5636                    return (
5637                      e.native.ortb
5638                        ? (r.ortb = e.native.ortb)
5639                        : t.mediaTypes?.native?.ortb &&
5640                          (r.ortb = S(e.native, t.nativeOrtbRequest)),
5641                      r
5642                    );
5643                  })(t, r.getAdUnit(t), n)),
5644              Object.assign(c, u)
5645            );
5646          }
5647          const T = Object.fromEntries(
5648            Object.entries(s.x5).map(([e, t]) => [t, e]),
5649          );
5650          function I(e, t) {
5651            const n = e.assets.map((e) => T[e]);
5652            return A(e, t, n);
5653          }
5654          function C(e, t) {
5655            return A(e, t, null);
5656          }
5657          function O(e) {
5658            return e?.url || e;
5659          }
5660          function B(e) {
5661            const t = { link: {}, eventtrackers: [] };
5662            return (
5663              Object.entries(e).forEach(([e, n]) => {
5664                switch (e) {
5665                  case "clickUrl":
5666                    t.link.url = n;
5667                    break;
5668                  case "clickTrackers":
5669                    t.link.clicktrackers = Array.isArray(n) ? n : [
5669n];
5670                    break;
5671                  case "impressionTrackers":
5672                    (Array.isArray(n) ? n : [n]).forEach((e) => {
5673                      t.eventtrackers.push({ event: 1, method: 1, url: e });
5674                    });
5675                    break;
5676                  case "javascriptTrackers":
5677                    t.jstracker = Array.isArray(n) ? n.join("") : n;
5678                    break;
5679                  case "privacyLink":
5680                    t.privacy = n;
5681                }
5682              }),
5683              t
5684            );
5685          }
5686          function S(e, t) {
5687            const n = { ...B(e), assets: [] };
5688            function r(e, r) {
5689              let o = t.assets.find(e);
5690              null != o && ((o = (0, i.Go)(o)), r(o), n.assets.push(o));
5691            }
5692            return (
5693              Object.keys(e)
5694                .filter((t) => !!e[t])
5695                .forEach((t) => {
5696                  const n = O(e[t]);
5697                  switch (t) {
5698                    case "title":
5699                      r(
5700                        (e) => null != e.title,
5701                        (e) => {
5702                          e.title = { text: n };
5703                        },
5704                      );
5705                      break;
5706                    case "image":
5707                    case "icon":
5708                      const e = "image" === t ? s.oA.MAIN : s.oA.ICON;
5709                      r(
5710                        (t) => null != t.img && t.img.type === e,
5711                        (e) => {
5712                          e.img = { url: n };
5713                        },
5714                      );
5715                      break;
5716                    default:
5717                      t in s.h0 &&
5718                        r(
5719                          (e) =>
5720                            null != e.data && e.data.type === s.jO[s.h0[t]],
5721                          (e) => {
5722                            e.data = { value: n };
5723                          },
5724                        );
5725                  }
5726                }),
5727              n
5728            );
5729          }
5730          function R(e) {
5731            var t = {};
5732            for (var n in e) t[e[n]] = n;
5733            return t;
5734          }
5735        },
5736        80(e, t, n) {
5737          const r = ["request", "imp", "bidResponse", "response"],
5738            [i, o, s, a] = r,
5739            [d, c] = ["default", "pbs"],
5740            u = new Set(r);
5741          const { registerOrtbProcessor: l, getProcessors: f } = (function () {
5742            const e = {};
5743            return {
5744              registerOrtbProcessor({
5745                type: t,
5746                name: n,
5747                fn: i,
5748                priority: o = 0,
5749                dialects: s = [d],
5750              }) {
5751                if (!u.has(t))
5752                  throw new Error(
5753                    `ORTB processor type must be one of: ${r.join(", ")}`,
5754                  );
5755                s.forEach((r) => {
5756                  (e.hasOwnProperty(r) || (e[r] = {}),
5757                    e[r].hasOwnProperty(t) || (e[r][t] = {}),
5758                    (e[r][t][n] = { priority: o, fn: i }));
5759                });
5760              },
5761              getProcessors: (t) => e[t] || {},
5762            };
5763          })();
5764          n.d(t, [
5765            "Cf",
5766            0,
5767            a,
5768            "S3",
5769            0,
5770            i,
5771            "Tb",
5772            0,
5773            o,
5774            "WR",
5775            0,
5776            s,
5777            "e4",
5778            0,
5779            c,
5780            "qN",
5781            0,
5782            d,
5783            "yB",
5784            0,
5785            f,
5786            "zt",
5787            0,
5788            r,
5789          ]);
5790        },
5791        7824(e, t, n) {
5792          var r = n(1129),
5793            i = n(7413),
5794            o = {};
5795          (n.r(o),
5796            n.d(o, {
5797              _each: () => i.bu,
5798              _map: () => i.K2,
5799              binarySearch: () => i.El,
5800              buildUrl: () => i.c$,
5801              canAccessWindowTop: () => i.av,
5802              checkCookieSupport: () => i.GE,
5803              cleanObj: () => i.tT,
5804              compareCodeAndSlot: () => i.sC,
5805              compressDataWithGZip: () => i.ZK,
5806              contains: () => i.gR,
5807              convertObjectToArray: () => i.n_,
5808              createIframe: () => i.hw,
5809              createInvisibleIframe: () => i.CA,
5810              createTrackPixelHtml: () => i.Tz,
5811              cyrb53Hash: () => i.PB,
5812              debugTurnedOn: () => i.dp,
5813              deepAccess: () => i.Fe,
5814              deepClone: () => i.Go,
5815              deepEqual: () => i.bD,
5816              deepSetValue: () => i.qL,
5817              delayExecution: () => i.U6,
5818              encodeMacroURI: () => i.Bk,
5819              extractDomainFromHost: () => i.M3,
5820              flatten: () => i.Bq,
5821              formatQS: () => i.eP,
5822              generateUUID: () => i.lk,
5823              getBidIdParameter: () => i.u5,
5824              getBidRequest: () => i.D4,
5825              getBidderCodes: () => i.ZA,
5826              getDefinedParams: () => i.SH,
5827              getDocument: () => i.YE,
5828              getDomLoadingDuration: () => i.tf,
5829              getFallbackWindow: () => i.x,
5830              getParameterByName: () => i.Ez,
5831              getPerformanceNow: () => i.V,
5832              getPrebidInternal: () => i.YI,
5833              getSafeframeGeometry: () => i.xV,
5834              getScreenOrientation: () => i.Vv,
5835              getUniqueIdentifierStr: () => i.s0,
5836              getUnixTimestampFromNow: () => i.Ni,
5837              getUserConfiguredParams: () => i.SB,
5838              getValue: () => i._W,
5839              getWinDimensions: () => i.Ot,
5840              getWindowLocation: () => i.KQ,
5841              getWindowSelf: () => i.l4,
5842              getWindowTop: () => i.mb,
5843              groupBy: () => i.$z,
5844              hasDeviceAccess: () => i.N9,
5845              hasNonSerializableProperty: () => i.kL,
5846              inIframe: () => i.al,
5847              insertElement: () => i._s,
5848              insertHtmlIntoIframe: () => i.ro,
5849              insertUserSyncIframe: () => i.SG,
5850              internal: () => i.mM,
5851              isAdUnitCodeMatchingSlot: () => i.iC,
5852              isApnGetTagDefined: () => i.t1,
5853              isArray: () => i.cy,
5854              isArrayOfNums: () => i.Uu,
5855              isBoolean: () => i.Lm,
5856              isChromeIOSBrowser: () => i.yW,
5857              isEmpty: () => i.Im,
5858              isEmptyStr: () => i.xQ,
5859              isFirefoxBrowser: () => i.M_,
5860              isFn: () => i.fp,
5861              isGptPubadsDefined: () => i.II,
5862              isGzipCompressionSupported: () => i.nT,
5863              isInteger: () => i.Fq,
5864              isNumber: () => i.Et,
5865              isPlainObject: () => i.Qd,
5866              isSafariBrowser: () => i.Vt,
5867              isSafeFrameWindow: () => i.Jw,
5868              isStr: () => i.O8,
5869              isValidMediaTypes: () => i.wD,
5870              logError: () => i.vV,
5871              logInfo: () => i.fH,
5872              logMessage: () => i.OG,
5873              logWarn: () => i.JE,
5874              memoize: () => i.Bj,
5875              mergeDeep: () => i.D9,
5876              parseGPTSingleSizeArray: () => i.n7,
5877              parseGPTSingleSizeArrayToRtbSize: () => i.nX,
5878              parseQS: () => i.u4,
5879              parseQueryStringParameters: () => i.bL,
5880              parseSizesInput: () => i.kK,
5881              parseUrl: () => i.Dl,
5882              pick: () => i.Up,
5883              politeInsertUserSyncIframe: () => i.HV,
5884              politeTriggerPixel: () => i.ER,
5885              prefixLog: () => i.h0,
5886              replaceAuctionPrice: () => i.ZU,
5887              replaceClickThrough: () => i.mJ,
5888              replaceMacros: () => i.gM,
5889              resetWinDimensions: () => i.Bp,
5890              runBackgroundTask: () => i.fi,
5891              safeJSONEncode: () => i.wV,
5892              safeJSONParse: () => i.$l,
5893              setOnAny: () => i.eY,
5894              setScriptAttributes: () => i.Bg,
5895              shuffle: () => i.k4,
5896              sizeTupleToRtbSize: () => i.cf,
5897              sizeTupleToSizeString: () => i.bM,
5898              sizesToSizeTuples: () => i.y$,
5899              sortByHighestCpm: () => i.Q0,
5900              timestamp: () => i.vE,
5901              transformAdServerTargetingObj: () => i.$D,
5902              triggerNurlWithCpm: () => i.Wf,
5903              triggerPixel: () => i.z$,
5904              uniques: () => i.hj,
5905              unsupportedBidderMessage: () => i.bz,
5906              waitForElementToLoad: () => i.OI,
5907            }));
5908          var s = n(3350),
5909            a = n(8928),
5910            d = n(3435),
5911            c = n(5657),
5912            u = n(5521),
5913            l = n(5595),
5914            f = n(3895),
5915            p = n(8203),
5916            g = n(5262),
5917            m = n(6825),
5918            h = n(7936);
5919          const { REQUEST: b, RESPONSE: y, NATIVE: v, EVENT: E } = u.nl,
5920            w = {
5921              [b]: function (e, t, n) {
5922                (0, l.bw)({
5923                  renderFn(t) {
5924                    e(
5925                      Object.assign(
5926                        {
5927                          message: y,
5928                          renderer: (0, f.kj)(n),
5929                          rendererVersion: 3,
5930                        },
5931                        t,
5932                      ),
5933                    );
5934                  },
5935                  resizeFn: T(t.adId, n),
5936                  options: t.options,
5937                  adId: t.adId,
5938                  bidResponse: n,
5939                });
5940              },
5941              [E]: function (e, t, n) {
5942                if (null == n)
5943                  return void (0, i.vV)(
5944                    `Cannot find ad '${t.adId}' for x-origin event request`,
5945                  );
5946                if (n.status !== u.tl.RENDERED)
5947                  return void (0, i.JE)(
5948                    `Received x-origin event request without corresponding render request for ad '${n.adId}'`,
5949                  );
5950                return (0, l.Uc)(t, n);
5951              },
5952            };
5953          function A() {
5954            window.addEventListener(
5955              "message",
5956              function (e) {
5957                !(function (e, t) {
5958                  var n,
5959                    r = e.message ? "message" : "data";
5960                  try {
5961                    n = JSON.parse(e[r]);
5962                  } catch (e) {
5963                    return;
5964                  }
5965                  n &&
5966                    n.adId &&
5967                    n.message &&
5968                    w.hasOwnProperty(n.message) &&
5969                    (w[n.message](
5970                      ((o = n.adId),
5971                      (s = (function (e) {
5972                        return null == e.origin && 0 === e.ports.length
5973                          ? function () {
5974                              const e =
5975                                "Cannot post message to a frame with null origin. Please update creatives to use MessageChannel, see https://github.com/prebid/Prebid.js/issues/7870";
5976                              throw ((0, i.vV)(e), new Error(e));
5977                            }
5978                          : e.ports.length > 0
5979                            ? function (t) {
5980                                e.ports[0].postMessage(JSON.stringify(t));
5981                              }
5982                            : function (t) {
5983                                e.source.postMessage(
5984                                  JSON.stringify(t),
5985                                  e.origin,
5986                                );
5987                              };
5988                      })(e)),
5989                      function (e, ...t) {
5990                        return s(Object.assign({}
5990, e, { adId: o }), ...t);
5991                      }),
5992                      n,
5993                      m.n.findBidByAdId(n.adId),
5994                    ),
5995                    t && t());
5996                  var o, s;
5997                })(e);
5998              },
5999              !1,
6000            );
6001          }
6002          function T(e, t) {
6003            return function (n, r) {
6004              !(function ({
6005                instl: e,
6006                element: t,
6007                adId: n,
6008                adUnitCode: r,
6009                width: o,
6010                height: s,
6011              }) {
6012                if (e) return;
6013                function a(e) {
6014                  if (e) {
6015                    const t = e.style;
6016                    ((t.width = I(o)), (t.height = I(s)));
6017                  } else
6018                    (0, i.vV)(
6019                      `Unable to locate matching page element for adUnitCode ${r}.  Can't resize it to ad's dimensions.  Please review setup.`,
6020                    );
6021                }
6022                const d = u('iframe:not([style*="display: none"])');
6023                a(d);
6024                const c = d?.closest("ins[data-anchor-status]");
6025                function u(e) {
6026                  const i = l(n, r),
6027                    o =
6028                      null == i
6029                        ? (0, g.o)({ element: t, adUnitCode: r })
6030                        : document.getElementById(i);
6031                  return o && o.querySelector(e);
6032                }
6033                function l(e, t) {
6034                  if ((0, i.II)()) {
6035                    const t = f(e);
6036                    if (t) return t;
6037                  }
6038                  if ((0, i.t1)()) {
6039                    const e = m(t);
6040                    if (e) return e;
6041                  }
6042                }
6043                function f(e) {
6044                  const t = window.googletag
6045                    .pubads()
6046                    .getSlots()
6047                    .find((t) =>
6048                      (0, h.W$)(t).find((n) => (0, h.A6)(t, n).includes(e)),
6049                    );
6050                  return t ? t.getSlotElementId() : null;
6051                }
6052                function m(e) {
6053                  const t = window.apntag.getTag(e);
6054                  return t && t.targetId;
6055                }
6056                c
6057                  ? (function (e, t, n) {
6058                      new p.U9((r, i) => {
6059                        let o = 10;
6060                        const s = setInterval(() => {
6061                          let a = !1;
6062                          (Object.entries({ width: t, height: n }).forEach(
6063                            ([t, n]) => {
6064                              /\d+px/.test(e.style[t]) &&
6065                                ((e.style[t] = I(n)), (a = !0));
6066                            },
6067                          ),
6068                            (a || 0 === o--) &&
6069                              (clearInterval(s),
6070                              a
6071                                ? r()
6072                                : i(new Error("Could not resize anchor"))));
6073                        }, 50);
6074                      });
6075                    })(c, o, s)
6076                  : a(d?.parentElement);
6077              })({ ...t, width: n, height: r, adId: e });
6078            };
6079          }
6080          function I(e) {
6081            return e ? e + "px" : "100%";
6082          }
6083          Object.assign(w, {
6084            [v]: function (e, t, n) {
6085              if (null == n)
6086                return void (0, i.vV)(
6087                  `Cannot find ad for x-origin event request: '${t.adId}'`,
6088                );
6089              switch (t.action) {
6090                case "assetRequest":
6091                  (0, l.Hh)(n, () => e((0, c.IX)(t, n)));
6092                  break;
6093                case "allAssetRequest":
6094                  (0, l.Hh)(n, () => e((0, c.yl)(t, n)));
6095                  break;
6096                default:
6097                  ((0, l.vW)(t, n, { resizeFn: T(t.adId, n) }), (0, l.Pk)(n));
6098              }
6099            },
6100          });
6101          var C = n(3838),
6102            O = n(8384),
6103            B = n(2247),
6104            S = n(5437),
6105            R = n(3399),
6106            k = n(1785);
6107          function U(e, t) {
6108            return e === t ? 0 : e < t ? -1 : 1;
6109          }
6110          function D(e = (e) => e) {
6111            return (t, n) => U(e(t), e(n));
6112          }
6113          function $(e = U) {
6114            return (t, n) => -e(t, n) || 0;
6115          }
6116          function _(...e) {
6117            return function (t, n) {
6118              for (const r of e) {
6119                const e = r(t, n);
6120                if (0 !== e) return e;
6121              }
6122              return 0;
6123            };
6124          }
6125          function j(e = U) {
6126            return (function (e = U) {
6127              return (t, n) => (e(n, t) < 0 ? n : t);
6128            })($(e));
6129          }
6130          const x = D((e) => e.cpm),
6131            q = D((e) => e.responseTimestamp),
6132            N = j(_(x, $(D((e) => e.timeToRespond)))),
6133            P = j(
6134              _(
6135                D((e) =>
6135 e.desirability),
6136                $(D((e) => e.timeToRespond)),
6137              ),
6138            ),
6139            V = j(_(x, $(q)));
6140          j(_(x, q));
6141          var M = n(3721),
6142            G = n(4983),
6143            F = [];
6144          const W = 20,
6145            L = "targetingControls.allowTargetingKeys",
6146            z = "targetingControls.addTargetingKeys",
6147            J = `Only one of "${L}" or "${z}" can be set`,
6148            H = Object.keys(u.xS).map((e) => u.xS[e]),
6149            Q = (0, k.A_)("sync", function (e, t, n = 0, r = !1, o = G.v) {
6150              if (!r) {
6151                const r = [],
6152                  s = O.$.getConfig("sendBidsControl.dealPrioritization"),
6153                  a = (0, i.$z)(e, "adUnitCode");
6154                return (
6155                  Object.keys(a).forEach((e) => {
6156                    let d = [];
6157                    const c = (0, i.$z)(a[e], "bidderCode");
6158                    Object.keys(c).forEach((e) => {
6159                      d.push(c[e].reduce(t));
6160                    });
6161                    const u = "object" == typeof n ? n[e] : n;
6162                    u
6163                      ? ((d = s ? d.sort(K(!0)) : d.sort(o)),
6164                        r.push(...d.slice(0, u)))
6165                      : ((d = d.sort(o)), r.push(...d));
6166                  }),
6167                  r
6168                );
6169              }
6170              return e;
6171            });
6172          function K(e = !1) {
6173            return function (t, n) {
6174              return void 0 !== t.adserverTargeting.hb_deal &&
6175                void 0 === n.adserverTargeting.hb_deal
6176                ? -1
6177                : void 0 === t.adserverTargeting.hb_deal &&
6178                    void 0 !== n.adserverTargeting.hb_deal
6179                  ? 1
6180                  : e
6181                    ? n.desirability && t.desirability
6182                      ? n.desirability - t.desirability
6183                      : n.cpm - t.cpm
6184                    : n.adserverTargeting.hb_pb - t.adserverTargeting.hb_pb;
6185            };
6186          }
6187          function Y(e, t) {
6188            if (!O.$.getConfig("enableSendAllBids")) return 0;
6189            const n = O.$.getConfig("sendBidsControl.bidLimit"),
6190              r = new Set(e),
6191              i = {};
6192            for (const e of m.n.getAdUnits())
6193              r.has(e.code) && (i[e.code] = e?.bidLimit || t || n);
6194            return i;
6195          }
6196          const X = "1.17.2";
6197          const Z = (function (e) {
6198            const t = {},
6199              n = {
6200                setLatestAuctionForAdUnit(e, n) {
6201                  t[e] = n;
6202                },
6203                resetPresetTargetingAST(e) {
6204                  r(e).forEach(function (e) {
6205                    const t = window.apntag.getTag(e);
6206                    if (t && t.keywords) {
6207                      const n = Object.keys(t.keywords),
6208                        r = {};
6209                      (n.forEach((e) => {
6210                        F.includes(e.toLowerCase()) || (r[e] = t.keywords[e]);
6211                      }),
6212                        window.apntag.modifyTag(e, { keywords: r }));
6213                    }
6214                  });
6215                },
6216                getAllTargeting(t, n, a, l = P, f = G.v) {
6217                  a ||= o(l, f);
6218                  const p = r(t),
6219                    g = Y(p, n),
6220                    { customKeysByUnit: m, filteredBids: h } = (function (
6221                      e,
6222                      t,
6223                    ) {
6224                      const n = [],
6225                        r = {},
6226                        o = O.$.getConfig(
6227                          "targetingControls.alwaysIncludeDeals",
6228                        ),
6229                        s = O.$.getConfig("bidTargetingExclusion"),
6230                        a = t.filter((t) => {
6231                          const n = e.includes(t.adUnitCode),
6232                            r =
6233                              !0 === S.u.get(t.bidderCode, "allowZeroCpmBids")
6234                                ? t.cpm >= 0
6235                                : t.cpm > 0,
6236                            i = o && t.dealId;
6237                          return n && (i || r);
6238                        });
6239                      return (
6240                        a.forEach((e) => {
6241                          let t = !0;
6242                          if ("function" == typeof s)
6243                            try {
6244                              t = s(e, a);
6245                            } catch (n) {
6246                              ((0, i.JE)(
6247                                `Error in bidTargetingExclusion function - excluding bid ${e.bidderCode} [${e.adUnitCode}]`,
6248                              ),
6249                                (t = !1));
6250                            }
6251                          t &&
6252                            (n.push(e),
6253                            Object.keys(e.adserverTargeting)
6254                              .filter(
6255                                (function () {
6256                                  const e = c();
6257                                  return function (t) {
6258                                    return -1 === e.indexOf(t);
6259                                  };
6260                                })(),
6261                              )
6262                              .forEach((t) => {
6263                                const n = t.substring(0, 20),
6264                                  o = r[e.adUnitCode] || {},
6265                                  s = [e.adserverTargeting[t]];
6266                                (o[n]
6267                                  ? (o[n] = o[n].concat(s).filter(i.hj))
6268                                  : (o[n] = s),
6269                                  (r[e.adUnitCode] = o));
6270                              }));
6271                        }),
6272                        { filteredBids: n, customKeysByUnit: r }
6273                      );
6274                    })(p, a);
6275                  let b = (function (t, n, r) {
6276                    const i =
6277                        !0 ===
6278                        O.$.getConfig(
6279                          "targetingControls.allBidsCustomTargeting",
6280                        ),
6281                      o = d(t, r)
6282                        .concat(
6283                          (function (e) {
6284                            const t = O.$.getConfig(
6285                                "targetingControls.alwaysIncludeDeals",
6286                              ),
6287                              n = O.$.getConfig("enableSendAllBids");
6288                            return (function (e, t = !1, n = !1) {
6289                              const r = H.slice(),
6290                                i = O.$.getConfig(
6291                                  "targetingControls.allowSendAllBidsTargetingKeys",
6292                                ),
6293                                o = i ? i.map((e) => u.xS[e]) : r;
6294                              return e.reduce((e, i) => {
6295                                if (t || (n && i.dealId)) {
6296                                  const t = (function (e, t) {
6297                                    return t.reduce(
6298                                      (t, n) => (
6299                                        e.adserverTargeting[n] &&
6300                                          t.push({
6301                                            [`${n}_${e.bidderCode}`.substring(
6302                                              0,
6303                                              W,
6304                                            )]: [e.adserverTargeting[n]],
6305                                          }),
6306                                        t
6307                                      ),
6308                                      [],
6309                                    );
6310                                  })(
6311                                    i,
6312                                    r.filter(
6313                                      (e) =>
6314                                        void 0 !== i.adserverTargeting[e] &&
6315                                        (n || -1 !== o.indexOf(e)),
6316                                    ),
6317                                  );
6318                                  t && e.push({ [i.adUnitCode]: t });
6319                                }
6320                                return e;
6321                              }, []);
6322                            })(e, n, t);
6323                          })(t),
6324                        )
6325                        .concat(
6326                          (function (t) {
6327                            function n(e) {
6328                              return e?.[u.iD.ADSERVER_TARGETING];
6329                            }
6330                            function r(e) {
6331                              const t = n(e);
6332                              return Object.keys(t).map(function (e) {
6333                                return (
6334                                  (0, s.O8)(t[e]) &&
6335                                    (t[e] = t[e]
6336                                      .split(",")
6337                                      .map((e) => e.trim())),
6338                                  (0, s.cy)(t[e]) || (t[e] = [t[e]
6338]),
6339                                  { [e]: t[e] }
6340                                );
6341                              });
6342                            }
6343                            return e
6344                              .getAdUnits()
6345                              .filter((e) => t.includes(e.code) && n(e))
6346                              .reduce((e, t) => {
6347                                const n = r(t);
6348                                return (n && e.push({ [t.code]: n }), e);
6349                              }, []);
6350                          })(r),
6351                        )
6352                        .concat(
6353                          (function (e) {
6354                            let t = O.$.getConfig("targetingControls.version");
6355                            return !1 === t
6356                              ? []
6357                              : e.map((e) => ({
6358                                  [e]: [{ [u.xS.VERSION]: [t ?? X] }],
6359                                }));
6360                          })(r),
6361                        );
6362                    i &&
6363                      o.push(
6364                        ...(function (e, t) {
6365                          return e.reduce((e, n) => {
6366                            const r = Object.assign({}, n),
6367                              i = t[r.adUnitCode],
6368                              o = [];
6369                            return (
6370                              i &&
6371                                Object.keys(i).forEach((e) => {
6372                                  e && i[e] && o.push({ [e]: i[e] });
6373                                }),
6374                              e.push({ [r.adUnitCode]: o }),
6375                              e
6376                            );
6377                          }, []);
6378                        })(t, n),
6379                      );
6380                    return (
6381                      o.forEach((e) => {
6382                        !(function (e) {
6383                          Object.keys(e).forEach((t) => {
6384                            e[t].forEach((e) => {
6385                              const t = Object.keys(e);
6386                              -1 === F.indexOf(t[0]) && (F = t.concat(F));
6387                            });
6388                          });
6389                        })(e);
6390                      }),
6391                      o
6392                    );
6393                  })(Q(h, l, g, void 0, f), m, p);
6394                  const y = Object.keys(Object.assign({}, u.Zh));
6395                  let v = O.$.getConfig(L);
6396                  const E = O.$.getConfig(z);
6397                  if (null != E && null != v) throw new Error(J);
6398                  ((v = null != E ? y.concat(E) : v || y),
6399                    Array.isArray(v) &&
6400                      v.length > 0 &&
6401                      (b = (function (e, t) {
6402                        const n = Object.assign({}, u.xS),
6403                          r = Object.keys(u.xS),
6404                          o = {};
6405                        ((0, i.fH)(
6406                          `allowTargetingKeys - allowed keys [ ${t.map((e) => n[e]).join(", ")} ]`,
6407                        ),
6408                          e.forEach((e) => {
6409                            const i = Object.keys(e)[0],
6410                              s = e[i].filter((e) => {
6411                                const i = Object.keys(e)[0],
6412                                  s =
6413                                    0 ===
6414                                      r.filter((e) => 0 === i.indexOf(n[e]))
6415                                        .length ||
6416                                    t.find((e) => {
6417                                      const t = n[e];
6418                                      return 0 === i.indexOf(t);
6419                                    });
6420                                return ((o[i] = !s), s);
6421                              });
6422                            e[i] = s;
6423                          }));
6424                        const s = Object.keys(o).filter((e) => o[e]);
6425                        (0, i.fH)(
6426                          `allowTargetingKeys - removed keys [ ${s.join(", ")} ]`,
6427                        );
6428                        const a = e.filter(
6429                          (e) => e[Object.keys(e)[0]].length > 0,
6430                        );
6431                        return a;
6432                      })(b, v)));
6433                  let w = (function (e) {
6434                    return e
6435                      .map((e) => ({
6436                        [Object.keys(e)[0]]: e[Object.keys(e)[0]]
6437                          .map((e) => ({
6438                            [Object.keys(e)[0]]: e[Object.keys(e)[0]].join(","),
6439                          }))
6440                          .reduce((e, t) => Object.assign(t, e), {}),
6441                      }))
6442                      .reduce(function (e, t) {
6443                        var n = Object.keys(t)[0];
6444                        return ((e[n] = Object.assign({}, e[n], t[n])), e);
6445                      }, {});
6446                  })(b);
6447                  const A = O.$.getConfig(
6448                    "targetingControls.auctionKeyMaxChars",
6449                  );
6450                  return (
6451                    A &&
6452                      ((0, i.fH)(
6453                        `Detected 'targetingControls.auctionKeyMaxChars' was active for this auction; set with a limit of ${A} characters.  Running checks on auction keys...`,
6454                      ),
6455                      (w = (function (e, t) {
6456                        const n = (0, s.Go)(e),
6457                          r = Object.keys(n)
6458                            .map((e) => ({
6459                              adUnitCode: e,
6460                              adserverTargeting: n[e],
6461                            }))
6462                            .sort(K());
6463                        return r.reduce(function (e, r, o, s) {
6464                          let a =
6465                            ((d = r.adserverTargeting),
6466                            Object.keys(d).reduce(function (e, t) {
6467                              return (e += `${t}%3d${encodeURIComponent(d[t])}%26`);
6468                            }, ""));
6469                          var d;
6470                          o + 1 === s.length && (a = a.slice(0, -3));
6471                          const c = r.adUnitCode,
6472                            u = a.length;
6473                          return (
6474                            u <= t
6475                              ? ((t -= u),
6476                                (0, i.fH)(
6477                                  `AdUnit '${c}' auction keys comprised of ${u} characters.  Deducted from running threshold; new limit is ${t}`,
6478                                  n[c],
6479                                ),
6480                                (e[c] = n[c]))
6481                              : (0, i.JE)(
6482                                  `The following keys for adUnitCode '${c}' exceeded the current limit of the 'auctionKeyMaxChars' setting.\nThe key-set size was ${u}, the current allotted amount was ${t}.\n`,
6483                                  n[c],
6484                                ),
6485                            o + 1 === s.length &&
6486                              0 === Object.keys(e).length &&
6487                              (0, i.vV)(
6488                                "No auction targeting keys were permitted due to the setting in setConfig(targetingControls.auctionKeyMaxChars).  Please review setup and consider adjusting.",
6489                              ),
6490                            e
6491                          );
6492                        }, {});
6493                      })(w, A))),
6494                    p.forEach((e) => {
6495                      (w[e] || (w[e] = {}),
6496                        1 === Object.keys(w[e]).length &&
6497                          null != w[e][u.xS.VERSION] &&
6498                          delete w[e][u.xS.VERSION]);
6499                    }),
6500                    w
6501                  );
6502                },
6503                updateGPTTargeting(e, t, n) {
6504                  const r = Object.fromEntries(F.map((e) => [e, null]));
6505                  Object.entries(
6506                    (function (
6507                      e,
6508                      t = () => window.googletag.pubads().getSlots(),
6509                    ) {
6510                      return t().reduce(
6511                        (e, t) => (
6512                          Object.keys(e)
6513                            .filter((0, i.iC)(t))
6514                            .forEach((n) => e[n].push(t)),
6515                          e
6516                        ),
6517                        Object.fromEntries(e.map((e) => [e, []])),
6518                      );
6519                    })(Object.keys(e)),
6520                  ).forEach(([o, s]) => {
6521                    s.forEach((s) => {
6522                      (Object.keys(e[o]).forEach((t) => {
6523                        let n = e[o][t];
6524                        ("string" == typeof n &&
6525                          -1 !== n.indexOf(",") &&
6526                          (n = n.split(",")),
6527                          (e[o][t] = n));
6528                      }),
6529                        (0, i.OG)(
6530                          `Attempting to ${t} targeting-map for slot: ${s.getSlotElementId()} with targeting-map:`,
6531                          e[o],
6532                        ),
6533                        (0, h.ns)(s, Object.assign({}, r, e[o])),
6534                        null != n && n(e[o]));
6535                    });
6536                  });
6537                },
6538                presetGPTTargeting(e) {
6539                  !1 !==
6540                    O.$.getConfig("targetingControls.presetGPTTargeting") &&
6541                    (0, i.II)() &&
6542                    n.updateGPTTargeting(
6543                      n.getAllTargeting(e, 0, []),
6544                      "pre-set",
6545                    );
6546                },
6547                setTargetingForGPT: (0, k.A_)(
6548                  "sync",
6549                  function (t) {
6550                    const r = n.getAllTargeting(t);
6551                    (n.updateGPTTargeting(r, "set", (e) => M.s.lock(e)),
6552                      Object.keys(r).forEach((t) => {
6553                        Object.keys(r[t]).forEach((n) => {
6554                          n === u.xS.AD_ID &&
6555                            e.setStatusForBids(r[t][n], u.tl.BID_TARGETING_SET);
6556                        });
6557                      }),
6558                      n.targetingDone(r),
6559                      R.Ic(u.qY.SET_TARGETING, r));
6560                  },
6561                  "setTargetingForGPT",
6562                ),
6563                targetingDone: (0, k.A_)(
6564                  "sync",
6565                  function (e) {
6566                    return e;
6567                  },
6568                  "targetingDone",
6569                ),
6570                getWinningBids(e, t, n = N, s = G.v) {
6571                  const a = t || o(n, s),
6572                    d = r(e);
6573                  return a
6574                    .filter((e) => d.includes(e.adUnitCode))
6575                    .filter((e) =>
6576                      !0 === S.u.get(e.bidderCode, "allowZeroCpmBids")
6577                        ? e.cpm >= 0
6578                        : e.cpm > 0,
6579                    )
6580                    .map((e) => e.adUnitCode)
6581                    .filter(i.hj)
6582                    .map((e) =>
6583                      a
6584                        .filter((t) => (t.adUnitCode === e ? t : null))
6585                        .reduce(N),
6586                    );
6587                },
6588                setTargetingForAst(e) {
6589                  const t = n.getAllTargeting(e);
6590                  try {
6591                    n.resetPresetTargetingAST(e);
6592                  } catch (e) {
6593                    (0, i.vV)("unable to reset targeting for AST" + e);
6594                  }
6595                  Object.keys(t).forEach((e) => {
6596                    (M.s.lock(t[e]),
6597                      Object.keys(t[e]).forEach((n) => {
6598                        if (
6599                          ((0, i.OG)(
6600                            `Attempting to set targeting for targetId: ${e} key: ${n} value: ${t[e][n]}`,
6601                          ),
6602                          (0, s.O8)(t[e][n]) || (0, s.cy)(t[e][n]))
6603                        ) {
6604                          const r = {},
6605                            i = /pt[0-9]/;
6606                          (n.search(i) < 0
6607                            ? (r[n.toUpperCase()] = t[e][n])
6608                            : (r[n] = t[e][n]),
6609                            window.apntag.setKeywords(e, r, {
6610                              overrideKeyValue: !0,
6611                            }));
6612                        }
6613                      }));
6614                  });
6615                },
6616                isApntagDefined() {
6617                  if (window.apntag && (0, s.fp)(window.apntag.setKeywords))
6618                    return !0;
6619                },
6620              };
6621            function r(t) {
6622              return "string" == typeof t
6623                ? [t]
6624                : (0, s.cy)(t)
6625                  ? t
6626                  : e.getAdUnitCodes() || [];
6627            }
6628            function o(n = V, r = void 0) {
6629              const i = e.getBidsReceived().reduce((e, n) => {
6630                const r = O.$.getConfig("useBidCache"),
6631                  i = O.$.getConfig("bidCacheFilterFunction"),
6632                  o = t[n.adUnitCode] === n.auctionId,
6633                  s = !(r && !o && "function" == typeof i) || !!i(n);
6634                return (
6635                  (r || o) &&
6636                    s &&
6637                    (0, B.Y)(n) &&
6638                    ((n.latestTargetedAuctionId = t[n.adUnitCode]), e.push(n)),
6639                  e
6640                );
6641              }, []);
6642              return Q(i, n, void 0, void 0, r);
6643            }
6644            function d(e, t) {
6645              const r = n.getWinningBids(t, e),
6646                i = c();
6647              return r.map((e) => ({
6648                [e.adUnitCode]: Object.keys(e.adserverTargeting)
6649                  .filter(
6650                    (t) =>
6651                      void 0 === e.sendStandardTargeting ||
6652                      e.sendStandardTargeting ||
6653                      -1 === i.indexOf(t),
6654                  )
6655                  .reduce((t, n) => {
6656                    const r = [e.adserverTargeting[n]],
6657                      i = { [n.substring(0, W)]: r };
6658                    if (n === u.xS.DEAL) {
6659                      const o = `${n}_${e.bidderCode}`.substring(0, W),
6660                        s = { [o]: r };
6661                      return [...t, i, s];
6662                    }
6663                    return [...t, i];
6664                  }, []),
6665              }));
6666            }
6667            function c() {
6668              return e
6669                .getStandardBidderAdServerTargeting()
6670                .map((e) => e.key)
6671                .concat(H)
6672                .filter(i.hj);
6673            }
6674            return (
6675              R.on(u.qY.AUCTION_INIT, ({ adUnitCodes: e }) => {
6676                n.presetGPTTargeting(e);
6677              }),
6678              O.$.getConfig("targetingControls", function (e) {
6679                null != (0, a.A)(e, L) &&
6680                  null != (0, a.A)(e, z) &&
6681                  (0, i.vV)(J);
6682              }),
6683              n
6684            );
6685          })(m.n);
6686          var ee = n(7797),
6687            te = n(8468),
6688            ne = n(6901),
6689            re = n(4864);
6690          const ie = `__${(0, re.k)()}_debugging__`;
6691          function oe() {
6692            return (0, r.m)().installedModules.includes("debugging");
6693          }
6694          function se(e) {
6695            return new p.U9((t, n) => {
6696              (0, te.R)(e, "prebid", "debugging", { success: t, error: n });
6697            });
6698          }
6699          function ae({ alreadyInstalled: e = oe, script: t = se } = {}) {
6700            let n = null;
6701            return function () {
6702              return (
6703                null == n &&
6704                  (n = new p.U9((n, s) => {
6705                    setTimeout(() => {
6706                      if (e()) n();
6707                      else {
6708                        const e = `${(0, re.rT)()}debugging-standalone.js`;
6709                        ((0, i.OG)(
6710                          `Debugging module not installed, loading it from "${e}"...`,
6711                        ),
6712                          ((0, r.m)()._installDebugging = !0),
6713                          t(e)
6714                            .then(() => {
6715                              (0, r.m)()._installDebugging({
6716                                DEBUG_KEY: ie,
6717                                hook: k.A_,
6718                                config: O.$,
6719                                createBid: ee.O,
6720                                logger: (0, i.h0)("DEBUG:"),
6721                                utils: o,
6722                                BANNER: "banner",
6723                                NATIVE: "native",
6724                                VIDEO: "video",
6725                                Renderer: ne.A4,
6726                              });
6727                            })
6728                            .then(n, s));
6729                      }
6730                    });
6731                  })),
6732                n
6733              );
6734            };
6735          }
6736          const de = (function ({
6737            load: e = ae(),
6738            hook: t = (0, k.Yn)("requestBids"),
6739          } = {}) {
6740            let n = null,
6741              r = !1;
6742            function o(e, ...t) {
6743              return (n || p.U9.resolve())
6744                .catch((e) => {
6745                  (0, i.vV)("Could not load debugging module", e);
6746                })
6747                .then(() => e.apply(this, t));
6748            }
6749            function s() {
6750              (t.getHooks({ hook: o }).remove(), (r = !1));
6751            }
6752            return {
6753              enable: function () {
6754                r || ((n = e()), t.before(o, 99), (r = !0));
6755              },
6756              disable: s,
6757              reset: function () {
6758                ((n = null), s());
6759              },
6760            };
6761          })();
6762          de.reset;
6763          O.$.getConfig("debugging", function ({ debugging: e }) {
6764            e?.enabled ? de.enable() : de.disable();
6765          });
6766          var ce = n(2354),
6767            ue = n(6001),
6768            le = n(2822),
6769            fe = n(7686);
6770          const pe = (0, ce.CK)("fpdEnrichment"),
6771            ge = (0, i.Bj)(function (e = window.location.host) {
6772              if (!pe.cookiesAreEnabled()) return e;
6773              const t = e.split(".");
6774              if (2 === t.length) return e;
6775              let n,
6776                r,
6777                i = -2;
6778              do {
6779                ((n = t.slice(i).join(".")),
6780                  (0, ce.d_)(n, pe)
6781                    ? (r = !1)
6782                    : ((i += -1), (r = Math.abs(i) <= t.length)));
6783              } while (r);
6784              return n;
6785            });
6786          var me = n(8378);
6787          const he = [
6788              "architecture",
6789              "bitness",
6790              "model",
6791              "platformVersion",
6792              "fullVersionList",
6793            ],
6794            be = ["brands", "mobile", "platform"],
6795            ye = (function (e = window.navigator?.userAgentData) {
6796              const t =
6797                e && be.some((t) => void 0 !== e[t])
6798                  ? Object.freeze(Ee(1, e))
6799                  : null;
6800              return function () {
6801                return t;
6802              };
6803            })(),
6804            ve = (function (e = window.navigator?.userAgentData) {
6805              const t = {},
6806                n = new WeakMap();
6807              return function (r = he) {
6808                if (!n.has(r)) {
6809                  const e = Array.from(r);
6810                  (e.sort(), n.set(r, e.join("|")));
6811                }
6812                const o = n.get(r);
6813                if (!t.hasOwnProperty(o))
6814                  try {
6815                    t[o] = e
6816                      .getHighEntropyValues(r)
6817                      .then((e) =>
6818                        (0, i.Im)(e) ? null : Object.freeze(Ee(2, e)),
6819                      )
6820                      .catch(() => null);
6821                  } catch (e) {
6822                    t[o] = p.U9.resolve(null);
6823                  }
6824                return t[o];
6825              };
6826            })();
6827          function Ee(e, t) {
6828            function n(e, t) {
6829              const n = { brand: e };
6830              return (
6831                (0, s.O8)(t) && !(0, i.xQ)(t) && (n.version = t.split(".")),
6832                n
6833              );
6834            }
6835            const r = { source: e };
6836            return (
6837              t.platform && (r.platform = n(t.platform, t.platformVersion)),
6838              (t.fullVersionList || t.brands) &&
6839                (r.browsers = (t.fullVersionList || t.brands).map(
6840                  ({ brand: e, version: t }) => n(e, t),
6841                )),
6842              void 0 !== t.mobile && (r.mobile = t.mobile ? 1 : 0),
6843              ["model", "bitness", "architecture"].forEach((e) => {
6844                const n = t[e];
6845                (0, s.O8)(n) && (r[e] = n);
6846              }),
6847              r
6848            );
6849          }
6850          var we = n(7850),
6851            Ae = n(5720);
6852          const Te = {
6853              getRefererInfo: fe.EN,
6854              findRootDomain: ge,
6855              getWindowTop: i.mb,
6856              getWindowSelf: i.l4,
6857              getHighEntropySUA: ve,
6858              getLowEntropySUA: ye,
6859              getDocument: i.YE,
6860            },
6861            Ie = (0, we.i8)("FPD"),
6862            Ce = (0, k.A_)("sync", (e) => {
6863              const t = [e, Be().catch(() => null)];
6864              return p.U9.all(t).then(([e, t]) => {
6865                const n = Te.getRefererInfo();
6866                (Object.entries(Re).forEach(([t, r]) => {
6867                  const o = r(e, n);
6868                  o &&
6869                    Object.keys(o).length > 0 &&
6870                    (e[t] = (0, i.D9)({}, o, e[t]));
6871                }),
6872                  t &&
6873                    (0, d.J)(
6874                      e,
6875                      "device.sua",
6876                      Object.assign({}, t, e.device.sua),
6877                    ));
6878                const r = Te.getDocument().documentElement.lang;
6879                if (
6880                  r &&
6881                  ((0, d.J)(e, "site.ext.data.documentLang", r),
6882                  !(0, a.A)(e, "site.content.language"))
6883                ) {
6884                  const t = r.split("-")[0];
6885                  (0, d.J)(e, "site.content.language", t);
6886                }
6887                e = Ie(e);
6888                for (const t of we.Dy)
6889                  if ((0, we.O$)(e, t)) {
6890                    e[t] = (0, i.D9)({}, De(e, n), e[t]);
6891                    break;
6892                  }
6893                return e;
6894              });
6895            });
6896          function Oe(e) {
6897            try {
6898              return e(Te.getWindowTop());
6899            } catch (t) {
6900              return e(Te.getWindowSelf());
6901            }
6902          }
6903          function Be() {
6904            const e = O.$.getConfig("firstPartyData.uaHints");
6905            return Array.isArray(e) && 0 !== e.length
6906              ? Te.getHighEntropySUA(e)
6907              : p.U9.resolve(Te.getLowEntropySUA());
6908          }
6909          function Se(e) {
6910            return (0, s.SH)(e, Object.keys(e));
6911          }
6912          const Re = {
6913              site(e, t) {
6914                if (
6915                  !we.Dy.filter((e) => "site" !== e).some(we.O$.bind(null, e))
6916                )
6917                  return Se({ page: t.page, ref: t.ref });
6918              },
6919              device: () =>
6920                Oe((e) => {
6921                  const t = (0, me.Ot)().screen.width,
6922                    n = (0, me.Ot)().screen.height,
6923                    { width: r, height: i } = (0, Ae.M)();
6924                  return {
6925                    w: t,
6926                    h: n,
6927                    ua: e.navigator.userAgent,
6928                    language: e.navigator.language.split("-").shift(),
6929                    ext: { vpw: r, vph: i },
6930                  };
6931                }),
6932              regs() {
6933                const e = {};
6934                Oe((e) => e.navigator.globalPrivacyControl) &&
6935                  (0, d.J)(e, "ext.gpc", "1");
6936                const t = O.$.getConfig("coppa");
6937                return ("boolean" == typeof t && (e.coppa = t ? 1 : 0), e);
6938              },
6939            },
6940            ke = (0, i.Bj)(() =>
6941              Oe((e) => {
6942                const t = e.document,
6943                  n = Array.from(
6944                    t.querySelectorAll('script[type="application/ld+json"]'),
6945                  );
6946                let r = [];
6947                for (const e of n)
6948                  try {
6949                    const t = JSON.parse(e.textContent),
6950                      n = Array.isArray(t) ? t : [t];
6951                    for (const e of n)
6952                      if ("string" == typeof e.keywords) {
6953                        const t = e.keywords
6954                          .split(",")
6955                          .map((e) => e.trim())
6956                          .filter((e) => e.length > 0);
6957                        r.push(...t);
6958                      }
6959                  } catch (e) {}
6960                return r;
6961              }),
6962            ),
6963            Ue = (0, i.Bj)(() =>
6964              Oe((e) =>
6965                e.document
6966                  .querySelector('meta[name="keywords"]')
6967                  ?.content?.split(",")
6968                  .map((e) => e.trim()),
6969              ),
6970            );
6971          function De(e, t) {
6972            const n = (0, fe.gR)(t.page, { noLeadingWww: !0 }),
6973              r = new Set();
6974            return (
6975              (O.$.getConfig("firstPartyData.keywords.meta") ?? 1) &&
6976                (Ue() ?? []).forEach((e) => r.add(e)),
6977              (O.$.getConfig("firstPartyData.keywords.json") ?? 1) &&
6978                (ke() ?? []).forEach((e) => r.add(e)),
6979              Se({
6980                domain: n,
6981                keywords: r.size > 0 ? Array.from(r.keys()).join(",") : void 0,
6982                publisher: Se({ domain: Te.findRootDomain(n) }),
6983              })
6984            );
6985          }
6986          var $e = n(1068),
6987            _e = n(7791);
6988          const je = [
6989              [
6990                "format",
6991                (e) =>
6992                  Array.isArray(e) &&
6993                  e.length > 0 &&
6994                  e.every((e) => "object" == typeof e),
6995              ],
6996              ["w", s.Fq],
6997              ["h", s.Fq],
6998              ["btype", s.Uu],
6999              ["battr", s.Uu],
7000              ["pos", s.Fq],
7001              [
7002                "mimes",
7003                (e) =>
7004                  Array.isArray(e) &&
7005                  e.length > 0 &&
7006                  e.every((e) => "string" == typeof e),
7007              ],
7008              ["topframe", (e) => [1, 0].includes(e)],
7009              ["expdir", s.Uu],
7010              ["api", s.Uu],
7011              ["id", s.O8],
7012              ["vcm", (e) => [1, 0].includes(e)],
7013            ],
7014            xe = new Map(je);
7015          function qe(e, t) {
7016            return (...n) =>
7017              document.prerendering && e()
7018                ? new Promise((e) => {
7019                    document.addEventListener(
7020                      "prerenderingchange",
7021                      () => {
7022                        ((0, i.fH)(
7023                          "Auctions were suspended while page was prerendering",
7024                        ),
7025                          e(t.apply(this, n)));
7026                      },
7027                      { once: !0 },
7028                    );
7029                  })
7030                : Promise.resolve(t.apply(this, n));
7031          }
7032          var Ne = n(2682);
7033          const Pe = (0, k.A_)("sync", function (e) {
7034            return (
7035              [
7036                Ve,
7037                Me("source.schain", "source.ext.schain", "source.ext.schain"),
7038                Me("device.sua", "device.ext.sua", "device.sua"),
7039                Me("regs.gdpr", "regs.ext.gdpr", "regs.ext.gdpr"),
7040                Me("user.consent", "user.ext.consent", "user.ext.consent"),
7041                Me(
7042                  "regs.us_privacy",
7043                  "regs.ext.us_privacy",
7044                  "regs.ext.us_privacy",
7045                ),
7046                Me("regs.gpp", "regs.ext.gpp", "regs.gpp"),
7047                Me("regs.gpp_sid", "regs.ext.gpp_sid", "regs.gpp_sid"),
7048              ].forEach((t) =>
7049                (function (e, t) {
7050                  ((t.global = e(t.global, "global FPD")),
7051                    Object.entries(t.bidder).forEach(([n, r]) => {
7052                      t.bidder[n] = e(r, `bidder '${n}' FPD`);
7053                    }));
7054                })(t, e),
7055              ),
7056              e
7057            );
7058          });
7059          function Ve(e, t) {
7060            if (!e) return e;
7061            const n = [],
7062              r = [
7063                ...(e?.user?.eids ?? []).map((e) => [0, e]),
7064                ...(e?.user?.ext?.eids ?? []).map((e) => [1, e]),
7065              ].filter(([e, r]) =>
7066                n.findIndex(([t, n]) => e !== t && (0, i.bD)(n, r)) > -1
7067                  ? ((0, i.JE)(
7068                      `Found duplicate EID in user.eids and user.ext.eids (${t})`,
7069                      r,
7070                    ),
7071                    !1)
7072                  : (n.push([e, r]), !0),
7073              );
7074            return (
7075              r.length > 0 &&
7076                (0, d.J)(
7077                  e,
7078                  "user.ext.eids",
7079                  r.map(([e, t]) => t),
7080                ),
7081              delete e?.user?.eids,
7082              e
7083            );
7084          }
7085          function Me(e, t, n) {
7086            if (n !== e && n !== t) throw new Error("invalid argument");
7087            const r = (n === e ? t : e).split("."),
7088              o = r.pop(),
7089              s = r.join(".");
7090            return function (r, c) {
7091              if (!r) return r;
7092              const u = (0, a.A)(r, e),
7093                l = (0, a.A)(r, t);
7094              (null == u ||
7095                null == l ||
7096                (0, i.bD)(u, l) ||
7097                (0, i.JE)(`Conflicting ${e} and ${t} (${c}), preferring ${e}`, {
7098                  [e]: u,
7099                  [t]: l,
7100                }),
7101                null != (u ?? l) && (0, d.J)(r, n, u ?? l));
7102              const f = (0, a.A)(r, s);
7103              return (null != f && "object" == typeof f && delete f[o], r);
7104            };
7105          }
7106          var Ge = n(1662),
7107            Fe = n(6540),
7108            We = n(2859);
7109          const Le = (0, r.m)(),
7110            { triggerUserSyncs: ze } = C.zt,
7111            { REQUEST_BIDS: Je, SET_TARGETING: He } = u.qY;
7112          function Qe(e, t) {
7113            let n = [];
7114            return (
7115              (0, s.cy)(e) &&
7116                (t ? e.length === t : e.length > 0) &&
7117                (e.every((e) => (0, s.Uu)(e, 2))
7118                  ? (n = e)
7119                  : (0, s.Uu)(e, 2) && n.push(e)),
7120              n
7121            );
7122          }
7123          function Ke(e, t) {
7124            const n = (0, a.A)(e, `ortb2Imp.${t}`),
7125              r = (0, a.A)(e, `mediaTypes.${t}`);
7126            if (!n && !r) return;
7127            const o = { video: _e.Zy, banner: xe }[t];
7128            o &&
7129              [...o].forEach(([n, r]) => {
7130                const o = (0, a.A)(e, `mediaTypes.${t}.${n}`),
7131                  s = (0, a.A)(e, `ortb2Imp.${t}.${n}`);
7132                (void 0 === o && void 0 === s) ||
7133                  (void 0 === o
7134                    ? (0, d.J)(e, `mediaTypes.${t}.${n}`, s)
7135                    : void 0 === s
7136                      ? (0, d.J)(e, `ortb2Imp.${t}.${n}`, o)
7137                      : (0, i.bD)(o, s) ||
7138                        ((0, i.JE)(
7139                          `adUnit ${e.code}: specifies conflicting ortb2Imp.${t}.${n} and mediaTypes.${t}.${n}, the latter will be ignored`,
7140                          e,
7141                        ),
7142                        (0, d.J)(e, `mediaTypes.${t}.${n}`, s)));
7143              });
7144          }
7145          function Ye(e) {
7146            const t = (0, s.Go)(e),
7147              n = t.mediaTypes.banner,
7148              r = null == n.sizes ? null : Qe(n.sizes),
7149              o = e.ortb2Imp?.banner?.format ?? n?.format;
7150            let a;
7151            if (null != o) {
7152              ((0, d.J)(t, "ortb2Imp.banner.format", o), (n.format = o));
7153              try {
7154                a = o
7155                  .filter(({ w: t, h: n, wratio: r, hratio: o }) =>
7156                    null != (t ?? n) && null != (r ?? o)
7157                      ? ((0, i.JE)(
7158                          "Ad unit banner.format specifies both w/h and wratio/hratio",
7159                          e,
7160                        ),
7161                        !1)
7162                      : (null != t && null != n) || (null != r && null != o),
7163                  )
7164                  .map(({ w: e, h: t, wratio: n, hratio: r }) => [
7165                    e ?? n,
7166                    t ?? r,
7167                  ]);
7168              } catch (t) {
7169                (0, i.vV)(`Invalid format definition on ad unit ${e.code}`, o);
7170              }
7171              null == a ||
7172                null == r ||
7173                (0, i.bD)(r, a) ||
7174                (0, i.JE)(
7175                  `Ad unit ${e.code} has conflicting sizes and format definitions`,
7176                  e,
7177                );
7178            }
7179            const c = a ?? r ?? [],
7180              u = e.ortb2Imp?.banner?.expdir ?? n.expdir;
7181            return (
7182              null != u &&
7183                ((n.expdir = u), (0, d.J)(t, "ortb2Imp.banner.expdir", u)),
7184              c.length > 0
7185                ? ((n.sizes = c), (t.sizes = c))
7186                : ((0, i.vV)(
7187                    "Detected a mediaTypes.banner object without a proper sizes field.  Please ensure the sizes are listed like: [[300, 250], ...].  Removing invalid mediaTypes.banner object from request.",
7188                  ),
7189                  delete t.mediaTypes.banner),
7190              et(t, "banner"),
7191              Ke(t, "banner"),
7192              t
7193            );
7194          }
7195          function Xe(e) {
7196            const t = (0, s.Go)(e);
7197            return (et(t, "audio"), Ke(t, "audio"), t);
7198          }
7199          function Ze(e) {
7200            const t = (0, s.Go)(e),
7201              n = t.mediaTypes.video;
7202            if (n.playerSize) {
7203              const e = "number" == typeof n.playerSize[0] ? 2 : 1,
7204                r = Qe(n.playerSize, e);
7205              r.length > 0
7206                ? (2 === e &&
7207                    (0, i.fH)(
7208                      "Transforming video.playerSize from [640,480] to [[640,480]] so it's in the proper format.",
7209                    ),
7210                  (n.playerSize = r),
7211                  (t.sizes = r))
7212                : ((0, i.vV)(
7213                    "Detected incorrect configuration of mediaTypes.video.playerSize.  Please specify only one set of dimensions in a format like: [[640, 480]]. Removing invalid mediaTypes.video.playerSize property from request.",
7214                  ),
7215                  delete t.mediaTypes.video.playerSize);
7216            }
7217            return (et(t, "video"), Ke(t, "video"), t);
7218          }
7219          function et(e, t, n) {
7220            const r = (e?.mediaTypes || {})[t],
7221              o = ((e) =>
7222                "banner" === e
7223                  ? xe
7224                  : "audio" === e
7225                    ? Ge.Ai
7226                    : "video" === e
7227                      ? _e.Zy
7228                      : void 0)(t);
7229            (0, s.Qd)(r)
7230              ? null != o &&
7231                null != r &&
7232                Object.entries(r).forEach(([s, a]) => {
7233                  if (!o.has(s)) return;
7234                  o.get(s)(a) ||
7235                    ("function" == typeof n
7236                      ? n(s, a, e)
7237                      : (delete r[s],
7238                        (0, i.JE)(
7239                          `Invalid prop in adUnit "${e.code}": Invalid value for mediaTypes.${t}.${s} ORTB property. The property has been removed.`,
7240                        )));
7241                })
7242              : (0, i.JE)(
7243                  `validateOrtb${t}Fields: ${t}Params must be an object.`,
7244                );
7245          }
7246          function tt(e) {
7247            function t(t) {
7248              return (
7249                (0, i.vV)(
7250                  `Error in adUnit "${e.code}": ${t}. Removing native request from ad unit`,
7251                  e,
7252                ),
7253                delete r.mediaTypes.native,
7254                r
7255              );
7256            }
7257            function n(e) {
7258              for (const t of ["types"])
7259                if (o.hasOwnProperty(t)) {
7260                  const n = e(t);
7261                  if (n) return n;
7262                }
7263            }
7264            const r = (0, s.Go)(e),
7265              o = r.mediaTypes.native;
7266            if (o.ortb) {
7267              if (
7268                o.ortb.assets?.some(
7269                  (e) => !(0, s.Et)(e.id) || e.id < 0 || e.id % 1 != 0,
7270                )
7271              )
7272                return t("native asset ID must be a nonnegative integer");
7273              if (n((e) => t(`ORTB native requests cannot specify "${e}"`)))
7274                return r;
7275              const e = Object.keys(u.x5).filter((e) =>
7276                  u.x5[e].includes("hb_native_"),
7277                ),
7278                a = Object.keys(o).filter((t) => e.includes(t));
7279              a.length > 0 &&
7280                ((0, i.vV)(
7281                  `when using native OpenRTB format, you cannot use legacy native properties. Deleting ${a} keys from request.`,
7282                ),
7283                a.forEach((e) => delete r.mediaTypes.native[e]));
7284            } else
7285              n((t) =>
7286                (0, i.JE)(
7287                  `mediaTypes.native.${t} is deprecated, consider using native ORTB instead`,
7288                  e,
7289                ),
7290              );
7291            return (
7292              o.image &&
7293                o.image.sizes &&
7294                !Array.isArray(o.image.sizes) &&
7295                ((0, i.vV)(
7296                  "Please use an array of sizes for native.image.sizes field.  Removing invalid mediaTypes.native.image.sizes property from request.",
7297                ),
7298                delete r.mediaTypes.native.image.sizes),
7299              o.image &&
7300                o.image.aspect_ratios &&
7301                !Array.isArray(o.image.aspect_ratios) &&
7302                ((0, i.vV)(
7303                  "Please use an array of sizes for native.image.aspect_ratios field.  Removing invalid mediaTypes.native.image.aspect_ratios property from request.",
7304                ),
7305                delete r.mediaTypes.native.image.aspect_ratios),
7306              o.icon &&
7307                o.icon.sizes &&
7308                !Array.isArray(o.icon.sizes) &&
7309                ((0, i.vV)(
7310                  "Please use an array of sizes for native.icon.sizes field.  Removing invalid mediaTypes.native.icon.sizes property from request.",
7311                ),
7312                delete r.mediaTypes.native.icon.sizes),
7313              r
7314            );
7315          }
7316          function nt(e, t) {
7317            const n = e?.mediaTypes?.[t]?.pos;
7318            if (!(0, s.Et)(n) || isNaN(n) || !isFinite(n)) {
7319              const n = `Value of property 'pos' on ad unit ${e.code} should be of type: Number`;
7320              ((0, i.JE)(n), delete e.mediaTypes[t].pos);
7321            }
7322            return e;
7323          }
7324          function rt(e) {
7325            const t = (e) => `adUnit.code '${n.code}' ${e}`,
7326              n = e,
7327              r = n.mediaTypes,
7328              o = n.bids;
7329            return null == o || (0, s.cy)(o)
7330              ? null == o && null == n.ortb2Imp
7331                ? ((0, i.vV)(
7332                    t(
7333                      "has no 'adUnit.bids' and no 'adUnit.ortb2Imp'. Removing adUnit from auction",
7334                    ),
7335                  ),
7336                  null)
7337                : r && 0 !== Object.keys(r).length
7338                  ? (null == n.ortb2Imp ||
7339                      (null != o && 0 !== o.length) ||
7340                      ((n.bids = [{ bidder: null }]),
7341                      (0, i.OG)(
7342                        t(
7343                          "defines 'adUnit.ortb2Imp' with no 'adUnit.bids'; it will be seen only by S2S adapters",
7344                        ),
7345                      )),
7346                    n)
7347                  : ((0, i.vV)(
7348                      t(
7349                        "does not define a 'mediaTypes' object.  This is a required field for the auction, so this adUnit has been removed.",
7350                      ),
7351                    ),
7352                    null)
7353              : ((0, i.vV)(
7354                  t(
7355                    "defines 'adUnit.bids' that is not an array. Removing adUnit from auction",
7356                  ),
7357                ),
7358                null);
7359          }
7360          (!(function () {
7361            let e = null;
7362            try {
7363              e = window.sessionStorage;
7364            } catch (e) {}
7365            if (null !== e) {
7366              const t = de;
7367              let n = null;
7368              try {
7369                n = e.getItem(ie);
7370              } catch (e) {}
7371              null !== n && t.enable();
7372            }
7373          })(),
7374            (Le.bidderSettings = Le.bidderSettings || {}),
7375            (Le.libLoaded = !0),
7376            (Le.version = "v11.26.0-pre"),
7377            (0, i.fH)("Prebid.js v11.26.0-pre loaded"),
7378            (Le.adUnits = Le.adUnits || []),
7379            (Le.pageViewIdPerBidder = Le.pageViewIdPerBidder || new Map()));
7380          const it = {
7381            validateAdUnit: rt,
7382            validateBannerMediaType: Ye,
7383            validateSizes: Qe,
7384          };
7385          (Object.assign(it, { validateNativeMediaType: tt }),
7386            Object.assign(it, { validateVideoMediaType: Ze }),
7387            Object.assign(it, { validateAudioMediaType: Xe }));
7388          const ot = (0, k.A_)(
7389            "sync",
7390            function (e) {
7391              const t = [];
7392              return (
7393                e.forEach((e) => {
7394                  const n = rt(e);
7395                  if (null == n) return;
7396                  const r = n.mediaTypes;
7397                  let i, o, s, a;
7398                  (r.banner &&
7399                    ((i = Ye(n)),
7400                    r.banner.hasOwnProperty("pos") && (i = nt(i, "banner"))),
7401                    r.video &&
7402                      ((o = Ze(i || n)),
7403                      r.video.hasOwnProperty("pos") && (o = nt(o, "video"))),
7404                    r.native && (s = tt(o || i || n)),
7405                    r.audio && (a = Xe(s || n)));
7406                  const d = Object.assign({}, i, o, s, a);
7407                  t.push(d);
7408                }),
7409                t
7410              );
7411            },
7412            "checkAdUnitSetup",
7413          );
7414          function st(e, t) {
7415            return function (...n) {
7416              return (
7417                (0, i.fH)(`Invoking ${(0, re.k)()}.${e}`, n),
7418                t.apply(this, n)
7419              );
7420            };
7421          }
7422          function at(e, t, n = !0) {
7423            (0, r.m)()[e] = n ? st(e, t) : t;
7424          }
7425          function dt(e) {
7426            return ct(e)[e];
7427          }
7428          function ct(e) {
7429            return Z.getAllTargeting(e);
7430          }
7431          function ut(e) {
7432            const t = m.n[e]().filter((e) =>
7433                m.n.getAdUnitCodes().includes(e.adUnitCode),
7434              ),
7435              n = m.n.getLastAuctionId();
7436            return t
7437              .map((e) => e.adUnitCode)
7438              .filter(i.hj)
7439              .map((e) =>
7440                t.filter((t) => t.auctionId === n && t.adUnitCode === e),
7441              )
7442              .filter((e) => e && e[0] && e[0].adUnitCode)
7443              .map((e) => ({ [e[0].adUnitCode]: (0, Fe.O)(e) }))
7444              .reduce((e, t) => Object.assign(e, t), {});
7445          }
7446          (at("triggerUserSyncs", ze),
7447            at("getAdserverTargetingForAdUnitCodeStr", function (e) {
7448              if (e) {
7449                const t = dt(e);
7450                return (0, i.$D)(t);
7451              }
7452              (0, i.OG)(
7453                "Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode",
7454              );
7455            }),
7456            at("getHighestUnusedBidResponseForAdUnitCode", function (e) {
7457              if (e) {
7458                const t = m.n.getAllBidsForAdUnitCode(e).filter(
7458B.Y);
7459                return t.length ? t.reduce(N) : null;
7460              }
7461              (0, i.OG)(
7462                "Need to call getHighestUnusedBidResponseForAdUnitCode with adunitCode",
7463              );
7464            }),
7465            at("getAdserverTargetingForAdUnitCode", dt),
7466            at("getAdserverTargeting", ct),
7467            at("getConsentMetadata", function () {
7468              return $e.SL.getConsentMeta();
7469            }),
7470            at("getNoBids", function () {
7471              return ut("getNoBids");
7472            }),
7473            at("getNoBidsForAdUnitCode", function (e) {
7474              const t = m.n.getNoBids().filter((t) => t.adUnitCode === e);
7475              return (0, Fe.O)(t);
7476            }),
7477            at("getBidResponses", function () {
7478              return ut("getBidsReceived");
7479            }),
7480            at("getBidResponsesForAdUnitCode", function (e) {
7481              const t = m.n.getBidsReceived().filter((t) => t.adUnitCode === e);
7482              return (0, Fe.O)(t);
7483            }),
7484            at("setTargetingForGPTAsync", function (e) {
7485              (0, i.II)()
7486                ? Z.setTargetingForGPT(e)
7487                : (0, i.vV)("window.googletag is not defined on the page");
7488            }),
7489            at("setTargetingForAst", function (e) {
7490              Z.isApntagDefined()
7491                ? (Z.setTargetingForAst(e), R.Ic(He, Z.getAllTargeting()))
7492                : (0, i.vV)("window.apntag is not defined on the page");
7493            }),
7494            at("renderAd", function (e, t, n) {
7495              (0, l.BS)(e, t, n);
7496            }),
7497            at("removeAdUnit", function (e) {
7498              if (!e) return void (Le.adUnits = []);
7499              let t;
7500              ((t = (0, s.cy)(e) ? e : [e]),
7501                t.forEach((e) => {
7502                  for (let t = Le.adUnits.length - 1; t >= 0; t--)
7503                    Le.adUnits[t].code === e && Le.adUnits.splice(t, 1);
7504                }));
7505            }));
7506          const lt = (function () {
7507            function e(e, t) {
7508              return (
7509                null == t || Array.isArray(t) || (t = [t]),
7510                null == t || (Array.isArray(t) && 0 === t.length)
7511                  ? {
7512                      included: e,
7513                      excluded: [],
7514                      adUnitCodes: e.map((e) => e.code).filter(i.hj),
7515                    }
7516                  : ((t = t.filter(i.hj)),
7517                    Object.assign(
7518                      { adUnitCodes: t },
7519                      e.reduce(
7520                        ({ included: e, excluded: n }, r) => (
7521                          (t.includes(r.code) ? e : n).push(r),
7522                          { included: e, excluded: n }
7523                        ),
7524                        { included: [], excluded: [] },
7525                      ),
7526                    ))
7527              );
7528            }
7529            const t = (0, k.A_)(
7530              "async",
7531              function (t) {
7532                let {
7533                  bidsBackHandler: n,
7534                  timeout: r,
7535                  adUnits: o,
7536                  adUnitCodes: a,
7537                  labels: d,
7538                  auctionId: c,
7539                  ttlBuffer: u,
7540                  ortb2: l,
7541                  metrics: f,
7542                  defer: g,
7543                } = t ?? {};
7544                const m = r || O.$.getConfig("bidderTimeout");
7545                ({ included: o, adUnitCodes: a } = e(o, a));
7546                let h = {
7547                  global: (0, i.D9)(
7548                    {},
7549                    O.$.getAnyConfig("ortb2") || {},
7550                    l || {},
7551                  ),
7552                  bidder: Object.fromEntries(
7553                    Object.entries(O.$.getBidderConfig())
7554                      .map(([e, t]) => [e, (0, s.Go)(t.ortb2)])
7555                      .filter(([e, t]) => null != t),
7556                  ),
7557                };
7558                ((h = Pe(h)),
7559                  Ce(p.U9.resolve(h.global)).then(
7560                    (e) => (
7561                      (h.global = e),
7562                      ft({
7563                        bidsBackHandler: n,
7564                        timeout: m,
7565                        adUnits: o,
7566                        adUnitCodes: a,
7567                        labels: d,
7568                        auctionId: c,
7569                        ttlBuffer: u,
7570                        ortb2Fragments: h,
7571                        metrics: f,
7572                        defer: g,
7573                      })
7574                    ),
7575                  ));
7576              },
7577              "requestBids",
7578            );
7579            return (0, k.Y6)(
7580              t,
7581              st(
7582                "requestBids",
7583                qe(
7584                  () => !O.$.getConfig("allowPrerendering"),
7585                  function (n = {}) {
7586                    const r = n.adUnits || Le.adUnits;
7587                    n.adUnits = Array.isArray(r) ? r.slice() : [r];
7588                    const i = (0, le.K7)();
7589                    i.checkpoint("requestBids");
7590                    const {
7591                      included: o,
7592                      excluded: s,
7593                      adUnitCodes: a,
7594                    } = e(r, n.adUnitCodes);
7595                    R.Ic(Je, Object.assign(n, { adUnits: o, adUnitCodes: a }));
7596                    const d = Object.assign({}, n, {
7597                      adUnits: n.adUnits.slice().concat(s),
7598                      adUnitCodes: a,
7599                      metrics: i,
7600                      defer: (0, p.v6)({
7601                        promiseFactory: (e) => new Promise(e),
7602                      }),
7603                    });
7604                    return (t.call(this, d), d.defer.promise);
7605                  },
7606                ),
7607              ),
7608            );
7609          })();
7610          at("requestBids", lt, !1);
7611          const ft = (0, k.A_)(
7612            "async",
7613            function ({
7614              bidsBackHandler: e,
7615              timeout: t,
7616              adUnits: n,
7617              ttlBuffer: r,
7618              adUnitCodes: o,
7619              labels: s,
7620              auctionId: a,
7621              ortb2Fragments: d,
7622              metrics: c,
7623              defer: u,
7624            } = {}) {
7625              const l = (0, ue.pX)(O.$.getConfig("s2sConfig") || []);
7626              !(function (e) {
7627                (e.forEach((e) => (0, _e.V0)(e)),
7628                  e.forEach((e) => (0, Ge.kl)(e)));
7629              })(n);
7630              const f = (0, le.BO)(c).measureTime("requestBids.validate", () =>
7631                ot(n),
7632              );
7633              function p(t, n, r) {
7634                if ("function" == typeof e)
7635                  try {
7636                    e(t, n, r);
7637                  } catch (e) {
7638                    (0, i.vV)("Error executing bidsBackHandler", null, e);
7639                  }
7640                u.resolve({ bids: t, timedOut: n, auctionId: r });
7641              }
7642              const g = {};
7643              if (
7644                (f.forEach((e) => {
7645                  const t = Object.keys(e.mediaTypes || { banner: "banner" }),
7646                    n = e.bids.map((e) =>
7646 e.bidder).filter(Boolean),
7647                    o = ue.Ay.bidderRegistry,
7648                    s = n.filter((e) => !l.has(e));
7649                  e.adUnitId = (0, i.lk)();
7650                  const a = e.ortb2Imp?.ext?.tid;
7651                  (a &&
7652                    (g.hasOwnProperty(e.code)
7653                      ? (0, i.JE)(
7654                          `Multiple distinct ortb2Imp.ext.tid were provided for twin ad units '${e.code}'`,
7655                        )
7656                      : (g[e.code] = a)),
7657                    null == r ||
7658                      e.hasOwnProperty("ttlBuffer") ||
7659                      (e.ttlBuffer = r),
7660                    s.forEach((n) => {
7661                      const r = o[n],
7662                        s = r && r.getSpec && r.getSpec(),
7663                        a = (s && s.supportedMediaTypes) || ["banner"];
7664                      t.some((e) => a.includes(e)) ||
7665                        ((0, i.JE)((0, i.bz)(e, n)),
7666                        (e.bids = e.bids.filter((e) => e.bidder !== n)));
7667                    }));
7668                }),
7669                f && 0 !== f.length)
7670              ) {
7671                f.forEach((e) => {
7672                  const t = e.ortb2Imp?.ext?.tid || g[e.code] || (0, i.lk)();
7673                  (g.hasOwnProperty(e.code) || (g[e.code] = t),
7674                    (e.transactionId = t));
7675                });
7676                const e = m.n.createAuction({
7677                    adUnits: f,
7678                    adUnitCodes: o,
7679                    callback: p,
7680                    cbTimeout: t,
7681                    labels: s,
7682                    auctionId: a,
7683                    ortb2Fragments: d,
7684                    metrics: c,
7685                  }),
7686                  n = f.length;
7687                (n > 15 &&
7688                  (0, i.fH)(
7689                    `Current auction ${e.getAuctionId()} contains ${n} adUnits.`,
7690                    f,
7691                  ),
7692                  o.forEach((t) =>
7693                    Z.setLatestAuctionForAdUnit(t, e.getAuctionId()),
7694                  ),
7695                  e.callBids());
7696              } else
7697                ((0, i.OG)("No adUnits configured. No bids requested."), p());
7698            },
7699            "startAuction",
7700          );
7701          (lt.before(function (e, t) {
7702            function n(e) {
7703              let t;
7704              for (; (t = e.shift());) t();
7705            }
7706            (n(ce.s0), n(mt), e.call(this, t));
7707          }, 49),
7708            at("addAdUnits", function (e) {
7709              Le.adUnits.push(...(Array.isArray(e) ? e : [e]));
7710            }));
7711          const pt = {
7712            bidWon(e) {
7713              if (
7714                m.n
7715                  .getBidsRequested()
7716                  .map((e) => e.bids.map((e) => e.adUnitCode))
7717                  .reduce(i.Bq)
7718                  .filter(i.hj)
7719                  .includes(e)
7720              )
7721                return !0;
7722              (0, i.vV)('The "' + e + '" placement is not defined.');
7723            },
7724          };
7725          function gt(e, t) {
7726            return pt.hasOwnProperty(e) && pt[e](t);
7727          }
7728          (at("onEvent", function (e, t, n) {
7729            (0, s.fp)(t)
7730              ? !n || gt(e, n)
7731                ? R.on(e, t, n)
7732                : (0, i.vV)(
7733                    'The id provided is not valid for event "' +
7734                      e +
7735                      '" and no handler was set.',
7736                  )
7737              : (0, i.vV)(
7738                  'The event handler provided is not a function and was not set on event "' +
7739                    e +
7740                    '".',
7741                );
7742          }),
7743            at("offEvent", function (e, t, n) {
7744              (n && !gt(e, n)) || R.AU(e, t, n);
7745            }),
7746            at("getEvents", function () {
7747              return R.kQ();
7748            }),
7749            at("registerBidAdapter", function (e, t, n) {
7750              try {
7751                const r = n ? (0, Ne.xb)(n) : e();
7752                ue.Ay.registerBidAdapter(r, t);
7753              } catch (e) {
7754                (0, i.vV)("Error registering bidder adapter : " + e.message);
7755              }
7756            }),
7757            at("registerAnalyticsAdapter", function (e) {
7758              try {
7759                ue.Ay.registerAnalyticsAdapter(e);
7760              } catch (e) {
7761                (0, i.vV)("Error registering analytics adapter : " + e.message);
7762              }
7763            }));
7764          const mt = [],
7765            ht = (0, k.A_)(
7766              "async",
7767              function (e) {
7768                e && !(0, i.Im)(e)
7769                  ? ue.Ay.enableAnalytics(e)
7770                  : (0, i.vV)(
7771                      `${(0, re.k)()}.enableAnalytics should be called with option {}`,
7772                    );
7773              },
7774              "enableAnalyticsCb",
7775            );
7776          function bt(e) {
7777            if (e) {
7778              const t = m.n.getBidsReceived().filter((t) => t.adId === e);
7779              if (t.length) return t[0];
7780              (0, i.JE)(`Could not find ad matching adId '${e}'`);
7781            } else (0, i.vV)("adId is required");
7782            return null;
7783          }
7784          function yt(e, t = !0) {
7785            (t ? (0, l.n6)(e) : m.n.addWinningBid(e), (0, l.qn)(e));
7786          }
7787          let vt;
7788          function Et(e) {
7789            vt.promise.then(() => {
7790              if ("function" == typeof e)
7791                try {
7792                  e.call();
7793                } catch (e) {
7794                  (0, i.vV)("Error processing command :", e.message, e.stack);
7795                }
7796              else
7797                (0, i.vV)(
7798                  `Commands written into ${(0, re.k)()}.cmd.push must be wrapped in a function`,
7799                );
7800            });
7801          }
7802          function wt(e, t) {
7803            (0, We.JE)(
7804              () => (0, r.m)().yield ?? !0,
7805              e.map(
7806                (e) => () =>
7807                  (function (e) {
7808                    if (void 0 === e.called)
7809                      try {
7810                        (e.call(), (e.called = !0));
7811                      } catch (e) {
7812                        (0, i.vV)("Error processing command :", "prebid.js", e);
7813                      }
7814                  })(e),
7815              ),
7816              t,
7817            );
7818          }
7819          (at("enableAnalytics", function (e) {
7820            mt.push(ht.bind(this, e));
7821          }),
7822            at("aliasBidder", function (e, t, n) {
7823              e && t
7824                ? ue.Ay.aliasBidAdapter(e, t, n)
7825                : (0, i.vV)(
7826                    "bidderCode and alias must be passed as arguments",
7827                    `${(0, re.k)()}.aliasBidder`,
7828                  );
7829            }),
7830            (Le.aliasRegistry = ue.Ay.aliasRegistry),
7831            O.$.getConfig("aliasRegistry", (e) => {
7832              "private" === e.aliasRegistry && delete Le.aliasRegistry;
7833            }),
7834            at("getAllWinningBids", function () {
7835              return m.n.getAllWinningBids();
7836            }),
7837            at("getAllPrebidWinningBids", function () {
7838              return (
7839                (0, i.JE)(
7840                  "getAllPrebidWinningBids may be removed or renamed in a future version. This function returns bids that have won in prebid and have had targeting set but have not (yet?) won in the ad server. It excludes bids that have been rendered.",
7841                ),
7842                m.n
7843                  .getBidsReceived()
7844                  .filter((e) => e.status === u.tl.BID_TARGETING_SET)
7845              );
7846            }),
7847            at("getHighestCpmBids", function (e) {
7848              return Z.getWinningBids(e);
7849            }),
7850            at("clearAllAuctions", function () {
7851              m.n.clearAllAuctions();
7852            }),
7853            at("getBidResponseByAdId", function (e, t) {
7854              const n = bt(e);
7855              return (null != n && t?.markAsUsed && yt(n, !0), n);
7856            }),
7857            at(
7858              "markWinningBidAsUsed",
7859              function ({
7860                adId: e,
7861                adUnitCode: t,
7862                analytics: n = !1,
7863                events: r = !1,
7864              }) {
7865                let o;
7866                (t && null == e
7867                  ? (o = Z.getWinningBids(t)[0])
7868                  : e
7869                    ? (o = bt(e))
7870                    : (0, i.JE)(
7871                        "Improper use of markWinningBidAsUsed. It needs an adUnitCode or an adId to function.",
7872                      ),
7873                  null != o && yt(o, n || r));
7874              },
7875            ),
7876            at("getConfig", O.$.getAnyConfig),
7877            at("readConfig", O.$.readAnyConfig),
7878            at("mergeConfig", O.$.mergeConfig),
7879            at("mergeBidderConfig", O.$.mergeBidderConfig),
7880            at("setConfig", O.$.setConfig),
7881            at("setBidderConfig", O.$.setBidderConfig),
7882            Le.que.push(() => A()),
7883            (vt = (0, p.v6)()));
7884          (at(
7885            "processQueue",
7886            qe(
7887              () => Le.delayPrerendering,
7888              async function () {
7889                ((Le.que.push = Le.cmd.push = Et),
7890                  (0, l.XO)(),
7891                  k.A_.ready(),
7892                  wt(Le.que, () => {
7893                    wt(Le.cmd, () => {
7894                      vt.resolve();
7895                    });
7896                  }));
7897              },
7898            ),
7899            !1,
7900          ),
7901            at("triggerBilling", function ({ adId: e, adUnitCode: t }) {
7902              m.n
7903                .getAllWinningBids()
7904                .filter(
7905                  (n) => n.adId === e || (null == e && n.adUnitCode === t),
7906                )
7907                .forEach((e) => {
7908                  (ue.Ay.triggerBilling(e), (0, l.vB)(e));
7909                });
7910            }),
7911            at("refreshPageViewId", function () {
7912              for (const e of Le.pageViewIdPerBidder.keys())
7913                Le.pageViewIdPerBidder.set(e, (0, i.lk)());
7914            }));
7915        },
7916        1129(e, t, n) {
7917          n.d(t, { E: () => a, m: () => s });
7918          var r = n(4864);
7919          const i = (0, r.uP)() ? window : {},
7920            o = (i[(0, r.k)()] = i[(0, r.k)()] || {});
7921          function s() {
7922            return o;
7923          }
7924          function a(e) {
7925            o.installedModules.push(e);
7926          }
7927          ((o.cmd = o.cmd || []),
7928            (o.que = o.que || []),
7929            (o.installedModules = o.installedModules || []),
7930            i === window &&
7931              ((i._pbjsGlobals = i._pbjsGlobals || []),
7932              i._pbjsGlobals.push((0, r.k)())));
7933        },
7934        7686(e, t, n) {
7935          n.d(t, { gR: () => s });
7936          var r = n(8384),
7937            i = n(7413);
7938          function o(e, t = window) {
7939            if (!e) return e;
7940            if (/\w+:\/\//.exec(e)) return e;
7941            let n = t.location.protocol;
7942            try {
7943              n = t.top.location.protocol;
7944            } catch (e) {}
7945            return /^\/\//.exec(e) ? n + e : `${n}//${e}`;
7946          }
7947          function s(e, { noLeadingWww: t = !1, noPort: n = !1 } = {}) {
7948            let r;
7949            try {
7950              r = new URL(o(e));
7951            } catch (e) {
7952              return;
7953            }
7954            return (
7955              (r = n ? r.hostname : r.host),
7956              t && r.startsWith("www.") && (r = r.substring(4)),
7957              r
7958            );
7959          }
7960          function a(e) {
7961            try {
7962              const t = e.querySelector("link[rel='canonical']");
7963              if (null !== t) return t.href;
7964            } catch (e) {}
7965            return null;
7966          }
7967          const d = (function (e, t = window) {
7968            if (t.top !== t) return e;
7969            let n, r, i;
7970            return function () {
7971              const o = a(t.document),
7972                s = t.location.href;
7973              return ((n === o && s === r) || ((n = o), (r = s), (i = e())), i);
7974            };
7975          })(
7976            ((c = window),
7977            function () {
7978              const e = [],
7979                t = (function (e) {
7980                  try {
7981                    if (!e.location.ancestorOrigins) return;
7982                    return e.location.ancestorOrigins;
7983                  } catch (e) {}
7984                })(c),
7985                n = r.$.getConfig("maxNestedIframes");
7986              let d,
7987                u,
7988                l,
7989                f,
7990                p = !1,
7991                g = 0,
7992                m = !1,
7993                h = !1,
7994                b = !1;
7995              do {
7996                const n = d,
7997                  r = h;
7998                let o,
7999                  s = !1,
8000                  f = null;
8001                ((h = !1), (d = d ? d.parent : c));
8002                try {
8003                  o = d.location.href || null;
8004                } catch (e) {
8005                  s = !0;
8006                }
8007                if (s)
8008                  if (r) {
8009                    const e = n.context;
8010                    try {
8011                      ((f = e.sourceUrl),
8012                        (u = f),
8013                        (b = !0),
8014                        (m = !0),
8015                        d === c.top && (p = !0),
8016                        e.canonicalUrl && (l = e.canonicalUrl));
8017                    } catch (e) {}
8018                  } else {
8019                    (0, i.JE)(
8020                      "Trying to access cross domain iframe. Continuing without referrer and location",
8021                    );
8022                    try {
8023                      const e = n.document.referrer;
8024                      e && ((f = e), d === c.top && (p = !0));
8025                    } catch (e) {}
8026                    (!f &&
8027                      t &&
8028                      t[g - 1] &&
8029                      ((f = t[g - 1]), d === c.top && (b = !0)),
8030                      f && !m && (u = f));
8031                  }
8032                else {
8033                  if (o && ((f = o), (u = f), (m = !1), d === c.top)) {
8034                    p = !0;
8035                    const e = a(d.document);
8036                    e && (l = e);
8037                  }
8038                  d.context && d.context.sourceUrl && (h = !0);
8039                }
8040                (e.push(f), g++);
8041              } while (d !== c.top && g < n);
8042              e.reverse();
8043              try {
8044                f = c.top.document.referrer;
8045              } catch (e) {}
8046              const y = p || b ? u : null,
8047                v = r.$.getConfig("pageUrl") || l || null;
8048              let E = r.$.getConfig("pageUrl") || y || o(v, c);
8049              return (
8050                y &&
8051                  y.indexOf("?") > -1 &&
8052                  -1 === E.indexOf("?") &&
8053                  (E = `${E}${y.substring(y.indexOf("?"))}`),
8054                {
8055                  reachedTop: p,
8056                  isAmp: m,
8057                  numIframes: g - 1,
8058                  stack: e,
8059                  topmostLocation: u || null,
8060                  location: y,
8061                  canonicalUrl: v,
8062                  page: E,
8063                  domain: s(E) || null,
8064                  ref: f || null,
8065                  legacy: {
8066                    reachedTop: p,
8067                    isAmp: m,
8068                    numIframes: g - 1,
8069                    stack: e,
8070                    referer: u || null,
8071                    canonicalUrl: v,
8072                  },
8073                }
8074              );
8075            }),
8076          );
8077          var c;
8078          n.d(t, ["EN", 0, d]);
8079        },
8080        2354(e, t, n) {
8081          n.d(t, { CK: () => b, d_: () => y, s0: () => g, vM: () => h });
8082          var r = n(7413),
8083            i = n(5437),
8084            o = n(4283),
8085            s = n(724),
8086            a = n(323),
8087            d = n(8384),
8088            c = n(1785),
8089            u = n(6001),
8090            l = n(5881);
8091          const f = "html5",
8092            p = "cookie";
8093          let g = [];
8094          function m(
8095            { moduleName: e, moduleType: t, advertiseKeys: n = !0 } = {},
8096            { isAllowed: i = o.io } = {},
8097          ) {
8098            function c(r, o, c, f) {
8099              let p = e;
8100              const g = d.$.getCurrentBidder();
8101              g && "bidder" === t && u.Ay.aliasRegistry[g] === e && (p = g);
8102              const m = { [s.Zw]: o, write: f };
8103              n && null != c && (m[s.Ez] = c);
8104              return r({ valid: i(a.Ue, (0, l.s)(t, p, m)) });
8105            }
8106            function m(e, t, n, r, i) {
8107              if (!i || "function" != typeof i) return c(e, t, n, r);
8108              g.push(function () {
8109                let o = c(e, t, n, r);
8110                i(o);
8111              });
8112            }
8113            function h(e) {
8114              const t = e.charAt(0).toUpperCase() + e.substring(1),
8115                n = () => window[e],
8116                i = function (t) {
8117                  return m(
8118                    function (t) {
8119                      if (t && t.valid)
8120                        try {
8121                          return !!n();
8122                        } catch (t) {
8123                          (0, r.vV)(`${e} api disabled`);
8124                        }
8125                      return !1;
8126                    },
8127                    f,
8128                    null,
8129                    !1,
8130                    t,
8131                  );
8132                };
8133              return {
8134                [`has${t}`]: i,
8135                [`${e}IsEnabled`]: (e) =>
8136                  m(
8137                    function (e) {
8138                      if (e && e.valid)
8139                        try {
8140                          return (
8141                            n().setItem("prebid.cookieTest", "1"),
8142                            "1" === n().getItem("prebid.cookieTest")
8143                          );
8144                        } catch (e) {
8145                        } finally {
8146                          try {
8147                            n().removeItem("prebid.cookieTest");
8148                          } catch (e) {}
8149                        }
8150                      return !1;
8151                    },
8152                    f,
8153                    null,
8154                    !1,
8155                    e,
8156                  ),
8157                [`setDataIn${t}`]: (e, t, r) =>
8158                  m(
8159                    function (r) {
8160                      r && r.valid && i() && n().setItem(e, t);
8161                    },
8162                    f,
8163                    e,
8164                    !0,
8165                    r,
8166                  ),
8167                [`getDataFrom${t}`]: (e, t) =>
8168                  m(
8169                    function (t) {
8170                      return t && t.valid && i() ? n().getItem(e) : null;
8171                    },
8172                    f,
8173                    e,
8174                    !1,
8175                    t,
8176                  ),
8177                [`removeDataFrom${t}`]: (e, t) =>
8178                  m(
8179                    function (t) {
8180                      t && t.valid && i() && n().removeItem(e);
8181                    },
8182                    f,
8183                    e,
8184                    !0,
8185                    t,
8186                  ),
8187              };
8188            }
8189            return {
8190              setCookie: function (e, t, n, r, i, o) {
8191                return m(
8192                  function (o) {
8193                    if (o && o.valid) {
8194                      const o =
8195                          i && "" !== i
8196                            ? ` ;domain=${encodeURIComponent(i)}`
8197                            : "",
8198                        s = n && "" !== n ? ` ;expires=${n}` : "",
8199                        a = "none" === r?.toLowerCase() ? "; Secure" : "";
8200                      document.cookie = `${e}=${encodeURIComponent(t)}${s}; path=/${o}${r ? `; SameSite=${r}` : ""}${a}`;
8201                    }
8202                  },
8203                  p,
8204                  e,
8205                  !0,
8206                  o,
8207                );
8208              },
8209              getCookie: function (e, t) {
8210                return m(
8211                  function (t) {
8212                    if (t && t.valid) {
8213                      let t = window.document.cookie.match(
8214                        "(^|;)\\s*" + e + "\\s*=\\s*([^;]*)\\s*(;|$)",
8215                      );
8216                      return t ? decodeURIComponent(t[2]) : null;
8217                    }
8218                    return null;
8219                  },
8220                  p,
8221                  e,
8222                  !1,
8223                  t,
8224                );
8225              },
8226              cookiesAreEnabled: function (e) {
8227                return m(
8228                  function (e) {
8229                    return !(!e || !e.valid) && (0, r.GE)() && y();
8230                  },
8231                  p,
8232                  null,
8233                  !1,
8234                  e,
8235                );
8236              },
8237              ...h("localStorage"),
8238              ...h("sessionStorage"),
8239              findSimilarCookies: function (e, t) {
8240                return m(
8241                  function (t) {
8242                    if (t && t.valid) {
8243                      const t = [];
8244                      if ((0, r.N9)()) {
8245                        const n = document.cookie.split(";");
8246                        for (; n.length;) {
8247                          const r = n.pop();
8248                          let i = r.indexOf("=");
8249                          i = i < 0 ? r.length : i;
8250                          decodeURIComponent(
8251                            r.slice(0, i).replace(/^\s+/, ""),
8252                          ).indexOf(e) >= 0 &&
8253                            t.push(decodeURIComponent(r.slice(i + 1)));
8254                        }
8255                      }
8256                      return t;
8257                    }
8258                  },
8259                  p,
8260                  e,
8261                  !1,
8262                  t,
8263                );
8264              },
8265            };
8266          }
8267          function h({ moduleType: e, moduleName: t, bidderCode: n } = {}) {
8268            function r() {
8269              throw new Error(
8270                "Invalid invocation for getStorageManager: must set either bidderCode, or moduleType + moduleName",
8271              );
8272            }
8273            return (
8274              n
8275                ? (((e && "bidder" !== e) || t) && r(), (e = "bidder"), (t = n))
8276                : (t && e) || r(),
8277              m({ moduleType: e, moduleName: t })
8278            );
8279          }
8280          function b(e) {
8281            return m({ moduleName: e, moduleType: "prebid" });
8282          }
8283          const y = (() => {
8284            const e = b("storage");
8285            return (0, r.Bj)(function (t, n = e) {
8286              const i = new Date((0, r.vE)() + 1e4).toUTCString(),
8287                o = `_rdc${Date.now()}`,
8288                s = "writeable";
8289              n.setCookie(o, s, i, "Lax", t);
8290              return (
8291                n.getCookie(o) === s &&
8292                (n.setCookie(o, "", "Thu, 01 Jan 1970 00:00:01 GMT", void 0, t),
8293                !0)
8294              );
8295            });
8296          })();
8297          function v() {
8298            if (!(0, r.N9)()) return { allow: !1 };
8299          }
8300          ((0, o.qB)(a.Ue, "deviceAccess config", v),
8301            (0, o.qB)(a.yg, "deviceAccess config", v),
8302            (0, o.qB)(
8303              a.Ue,
8304              "bidderSettings.*.storageAllowed",
8305              function (e, t = i.u) {
8306                if ("bidder" !== e[s.Dk]) return;
8307                let n = t.get(e[s.q7], "storageAllowed");
8308                if (n && !0 !== n) {
8309                  const t = e[s.Zw];
8310                  n = Array.isArray(n) ? n.some((e) => e === t) : n === t;
8311                } else n = !!n;
8312                return n ? void 0 : { allow: n };
8313              },
8314            ));
8315          (0, c.A_)("sync", (e, t) => {});
8316        },
8317        2247(e, t, n) {
8318          n.d(t, { Y: () => d });
8319          var r = n(5423),
8320            i = n(5521),
8321            o = n(7413),
8322            s = n(3721);
8323          const a = {
8324            isBidNotExpired: (e) =>
8325              e.responseTimestamp + 1e3 * (0, r.cT)(e) > (0, o.vE)(),
8326            isUnusedBid: (e) =>
8327              e &&
8328              ((e.status && ![i.tl.RENDERED].includes(e.status)) || !e.status),
8329            isBidNotLocked: (e) => !s.s.isLocked(e.adserverTargeting),
8330          };
8331          function d(e) {
8332            return !Object.values(a).some((t) => !t(e));
8333          }
8334          n.d(t, ["Z", 0, a]);
8335        },
8336        3721(e, t, n) {
8337          var r = n(8384),
8338            i = n(7834),
8339            o = n(7413),
8340            s = n(7936);
8341          const a = 3e3;
8342          const d = (function () {
8343            let e,
8344              t,
8345              n = (0, i.H)({ monotonic: !0, ttl: () => e, slack: 0 });
8346            r.$.getConfig("targetingControls", (r) => {
8347              (({ lock: t, lockTimeout: e = a } = r.targetingControls ?? {}),
8348                null == t || Array.isArray(t) ? null == t && c() : (t = [t]),
8349                n.clear());
8350            });
8351            const [d, c] = (() => {
8352              let e = !1;
8353              function r({ slot: e }) {
8354                t?.forEach((t) => (0, s.A6)(e, t)?.forEach(n.delete));
8355              }
8356              return [
8357                () => {
8358                  null != t &&
8359                    !e &&
8360                    (0, o.II)() &&
8361                    (googletag
8362                      .pubads()
8363                      .addEventListener?.("slotRenderEnded", r),
8364                    (e = !0));
8365                },
8366                () => {
8367                  e &&
8368                    (0, o.II)() &&
8369                    (googletag
8370                      .pubads()
8371                      .removeEventListener?.("slotRenderEnded", r),
8372                    (e = !1));
8373                },
8374              ];
8375            })();
8376            return {
8377              isLocked: (e) =>
8378                t?.some((t) => null != e[t] && n.has(e[t])) ?? !1,
8379              lock(e) {
8380                (d(), t?.forEach((t) => null != e[t] && n.add(e[t])));
8381              },
8382            };
8383          })();
8384          n.d(t, ["s", 0, d]);
8385        },
8386        3838(e, t, n) {
8387          n.d(t, { zt: () => f });
8388          var r = n(7413),
8389            i = n(3350),
8390            o = n(8384),
8391            s = n(2354),
8392            a = n(4283),
8393            d = n(323),
8394            c = n(724),
8395            u = n(5881);
8396          o.$.setDefaults({
8397            userSync: (0, i.Go)({
8398              syncEnabled: !0,
8399              filterSettings: { image: { bidders: "*", filter: "include" } },
8400              syncsPerBidder: 5,
8401              syncDelay: 3e3,
8402              auctionDelay: 500,
8403              usePoliteSync: !1,
8404            }),
8405          });
8406          const l = (0, s.CK)("usersync");
8407          const f = (function (e) {
8408            const t = {};
8409            let n = { image: [], iframe: [] };
8410            const s = new Set();
8411            let a = {};
8412            const l = { image: !0, iframe: !1 };
8413            let f = e.config;
8414            function p() {
8415              if (f.syncEnabled && e.browserSupportsCookies) {
8416                try {
8417                  (!(function () {
8418                    if (!l.iframe) return;
8419                    g(n.iframe, (e) => {
8420                      const [t, i] = e;
8421                      ((0, r.OG)(`Invoking iframe user sync for bidder: ${t}`),
8422                        f.usePoliteSync ? (0, r.HV)(i) : (0, r.SG)(i),
8423                        (function (e, t) {
8424                          e.image = e.image.filter((e) => e[0] !== t);
8425                        })(n, t));
8426                    });
8427                  })(),
8428                    (function () {
8429                      if (!l.image) return;
8430                      g(n.image, (e) => {
8431                        const [t, n] = e;
8432                        ((0, r.OG)(
8433                          `Invoking image pixel user sync for bidder: ${t}`,
8434                        ),
8435                          f.usePoliteSync ? (0, r.ER)(n) : (0, r.z$)(n));
8436                      });
8437                    })());
8438                } catch (e) {
8439                  return (0, r.vV)("Error firing user syncs", e);
8440                }
8441                n = { image: [], iframe: [] };
8442              }
8443            }
8444            function g(e, t) {
8445              (0, r.k4)(e).forEach(t);
8446            }
8447            function m(e, t) {
8448              const n = f.filterSettings;
8449              if (
8450                (function (e, t) {
8451                  if (e.all && e[t])
8452                    return (
8453                      (0, r.JE)(
8454                        `Detected presence of the "filterSettings.all" and "filterSettings.${t}" in userSync config.  You cannot mix "all" with "iframe/image" configs; they are mutually exclusive.`,
8455                      ),
8456                      !1
8457                    );
8458                  const n = e.all ? e.all : e[t],
8459                    o = e.all ? "all" : t;
8460                  if (!n) return !1;
8461                  const s = n.filter,
8462                    a = n.bidders;
8463                  if (s && "include" !== s && "exclude" !== s)
8464                    return (
8465                      (0, r.JE)(
8466                        `UserSync "filterSettings.${o}.filter" setting '${s}' is not a valid option; use either 'include' or 'exclude'.`,
8467                      ),
8468                      !1
8469                    );
8470                  if (
8471                    "*" !== a &&
8472                    !(
8473                      Array.isArray(a) &&
8474                      a.length > 0 &&
8475                      a.every((e) => (0, i.O8)(e) && "*" !== e)
8476                    )
8477                  )
8478                    return (
8479                      (0, r.JE)(
8480                        `Detected an invalid setup in userSync "filterSettings.${o}.bidders"; use either '*' (to represent all bidders) or an array of bidders.`,
8481                      ),
8482                      !1
8483                    );
8484                  return !0;
8485                })(n, e)
8486              ) {
8487                l[e] = !0;
8488                const r = n.all ? n.all : n[e],
8489                  i = "*" === r.bidders ? [t] : r.bidders,
8490                  o = {
8491                    include: (e, t) => !e.includes(t),
8492                    exclude: (e, t) => e.includes(t),
8493                  };
8494                return o[r.filter || "include"](i, t);
8495              }
8496              return !l[e];
8497            }
8498            return (
8499              o.$.getConfig("userSync", (e) => {
8500                if (e.userSync) {
8501                  const t = e.userSync.filterSettings;
8502                  (0, i.Qd)(t) &&
8503                    (t.image ||
8504                      t.all ||
8505                      (e.userSync.filterSettings.image = {
8506                        bidders: "*",
8507                        filter: "include",
8508                      }));
8509                }
8510                f = Object.assign(f, e.userSync);
8511              }),
8512              e.regRule(d.Ml, "userSync config", (e) => {
8513                if (!f.syncEnabled)
8514                  return { allow: !1, reason: "syncs are disabled" };
8515                if ("bidder" === e[c.Dk]) {
8516                  const n = e[c.bt],
8517                    r = e[c.iK];
8518                  if (!t.canBidderRegisterSync(n, r))
8519                    return {
8520                      allow: !1,
8521                      reason: `${n} syncs are not enabled for ${r}`,
8522                    };
8523                }
8524              }),
8525              (t.registerSync = (t, o, l) =>
8526                s.has(o)
8527                  ? (0, r.OG)(
8528                      `already fired syncs for "${o}", ignoring registerSync call`,
8529                    )
8530                  : f.syncEnabled && (0, i.cy)(n[t])
8531                    ? o
8532                      ? 0 !== f.syncsPerBidder &&
8533                        Number(a[o]) >= f.syncsPerBidder
8534                        ? (0, r.JE)(`Number of user syncs exceeded for "${o}"`)
8535                        : void (
8536                            e.isAllowed(
8537                              d.Ml,
8538                              (0, u.s)("bidder", o, { [c.bt]: t, [c.e3]: l }),
8539                            ) &&
8540                            (n[t].push([o, l]),
8541                            (a = (function (e, t) {
8542                              return (e[t] ? (e[t] += 1) : (e[t] = 1), e);
8543                            })(a, o)))
8544                          )
8545                      : (0, r.JE)("Bidder is required for registering sync")
8546                    : (0, r.JE)(`User sync type "${t}" not supported`)),
8547              (t.bidderDone = s.add.bind(s)),
8548              (t.syncUsers = (e = 0) => {
8549                if (e) return setTimeout(p, Number(e));
8550                p();
8551              }),
8552              (t.triggerUserSyncs = () => {
8553                f.enableOverride && t.syncUsers();
8554              }),
8555              (t.canBidderRegisterSync = (e, t) =>
8556                !f.filterSettings || !m(e, t)),
8557              t
8558            );
8559          })(
8560            Object.defineProperties(
8561              {
8562                config: o.$.getConfig("userSync"),
8563                isAllowed: a.io,
8564                regRule: a.qB,
8565              },
8566              {
8567                browserSupportsCookies: {
8568                  get: function () {
8569                    return (
8570                      !(0, r.Vt)() &&
8571                      !(0, r.M_)() &&
8572                      !(0, r.yW)() &&
8573                      l.cookiesAreEnabled()
8574                    );
8575                  },
8576                },
8577              },
8578            ),
8579          );
8580        },
8581        7413(e, t, n) {
8582          (n.r(t),
8583            n.d(t, {
8584              $D: () => O,
8585              $l: () => We,
8586              $z: () => Se,
8587              Bg: () => Qe,
8588              Bj: () => ze,
8589              Bk: () => re,
8590              Bp: () => u.Bp,
8591              Bq: () => oe,
8592              CA: () => M,
8593              D4: () => se,
8594              D9: () => Me,
8595              Dl: () => Ne,
8596              ER: () => K,
8597              El: () => Ke,
8598              Et: () => s.Et,
8599              Ez: () => G,
8600              Fe: () => o.A,
8601              Fq: () => s.Fq,
8602              GE: () => Oe,
8603              Go: () => s.Go,
8604              HV: () => Y,
8605              II: () => ce,
8606              Im: () => F,
8607              JE: () => f,
8608              Jw: () => ge,
8609              K2: () => J,
8610              KQ: () => x,
8611              Lm: () => s.Lm,
8612              M3: () => Ze,
8613              M_: () => be,
8614              N9: () => Ce,
8615              Ni: () => Je,
8616              O8: () => s.O8,
8617              OG: () => g,
8618              OI: () => Q,
8619              Ot: () => u.Ot,
8620              PB: () => Fe,
8621              Q0: () => le,
8622              Qd: () => s.Qd,
8623              SB: () => ke,
8624              SG: () => te,
8625              SH: () => s.SH,
8626              Tz: () => ne,
8627              U6: () => Be,
8628              Up: () => je,
8629              Uu: () => s.Uu,
8630              V: () => Te,
8631              Vt: () => he,
8632              Vv: () => u.Vv,
8633              Wf: () => et,
8634              YE: () => q,
8635              YI: () => v,
8636              ZA: () => de,
8637              ZK: () => nt,
8638              ZU: () => Ee,
8639              _W: () => ae,
8640              _s: () => H,
8641              al: () => pe,
8642              av: () => N,
8643              bD: () => Ve,
8644              bL: () => C,
8645              bM: () => R,
8646              bu: () => L,
8647              bz: () => $e,
8648              c$: () => Pe,
8649              cf: () => U,
8650              cy: () => s.cy,
8651              dp: () => h,
8652              eP: () => qe,
8653              eY: () => Xe,
8654              fH: () => l,
8655              fi: () => Z,
8656              fp: () => s.fp,
8657              gM: () => ve,
8658              gR: () => z,
8659              h0: () => m,
8660              hj: () => ie,
8661              hw: () => V,
8662              iC: () => De,
8663              k4: () => fe,
8664              kK: () => S,
8665              kL: () => Ye,
8666              l4: () => j,
8667              lk: () => T,
8668              mJ: () => we,
8669              mM: () => b,
8670              mb: () => _,
8671              n7: () => k,
8672              nT: () => tt,
8673              nX: () => D,
8674              n_: () => He,
8675              qL: () => c.J,
8676              ro: () => ee,
8677              s0: () => A,
8678              sC: () => Ue,
8679              t1: () => ue,
8680              tT: () => _e,
8681              tf: () => Ie,
8682              u4: () => xe,
8683              u5: () => I,
8684              vE: () => Ae,
8685              vV: () => p,
8686              wD: () => Re,
8687              wV: () => Le,
8688              x: () => P,
8689              xQ: () => W,
8690              xV: () => me,
8691              y$: () => B,
8692              yW: () => ye,
8693              z$: () => X,
8694            }));
8695          var r = n(8384),
8696            i = n(8203),
8697            o = n(8928),
8698            s = n(3350),
8699            a = n(1343),
8700            d = n(217),
8701            c = n(3435),
8702            u = n(8378);
8703          const l = a.fH,
8704            f = a.JE,
8705            p = a.vV,
8706            g = a.OG,
8707            m = a.h0,
8708            h = d.d,
8709            b = {
8710              checkCookieSupport: Oe,
8711              getWindowSelf: j,
8712              getWindowTop: _,
8713              canAccessWindowTop: N,
8714              getWindowLocation: x,
8715              insertUserSyncIframe: te,
8716              insertElement: H,
8717              isFn: s.fp,
8718              triggerPixel: X,
8719              logError: p,
8720              logWarn: f,
8721              logMessage: g,
8722              logInfo: l,
8723              parseQS: xe,
8724              formatQS: qe,
8725              deepEqual: Ve,
8726              runBackgroundTask: Z,
8727            },
8728            y = {};
8729          function v() {
8730            return y;
8731          }
8732          var E,
8733            w =
8734              ((E = 0),
8735              function () {
8736                return ++E;
8737              });
8738          function A() {
8739            return w() + Math.random().toString(16).substring(2);
8740          }
8741          function T(e) {
8742            return e
8743              ? (
8744                  e ^
8745                  ((window && window.crypto && window.crypto.getRandomValues
8746                    ? window.crypto.getRandomValues(new Uint8Array(1))[0] % 16
8747                    : 16 * Math.random()) >>
8748                    (e / 4))
8749                ).toString(16)
8750              : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, T);
8751          }
8752          function I(e, t) {
8753            return t?.[e] || "";
8754          }
8755          function C(e) {
8756            let t = "";
8757            for (var n in e)
8758              e.hasOwnProperty(n) &&
8759                (t += n + "=" + encodeURIComponent(e[n]) + "&");
8760            return ((t = t.replace(/&$/, "")), t);
8761          }
8762          function O(e) {
8763            return e && Object.getOwnPropertyNames(e).length > 0
8764              ? Object.keys(e)
8765                  .map((t) => `${t}=${encodeURIComponent(e[t])}`)
8766                  .join("&")
8767              : "";
8768          }
8769          function B(e) {
8770            return "string" == typeof e
8771              ? e
8772                  .split(/\s*,\s*/)
8773                  .map((e) => e.match(/^(\d+)x(\d+)$/i))
8774                  .filter((e) => e)
8775                  .map(([e, t, n]) => [parseInt(t, 10), parseInt(n, 10)])
8776              : Array.isArray(e)
8777                ? $(e)
8778                  ? [e]
8779                  : e.filter($)
8780                : [];
8781          }
8782          function S(e) {
8783            return B(e).map(R);
8784          }
8785          function R(e) {
8786            return e[0] + "x" + e[1];
8787          }
8788          function k(e) {
8789            if ($(e)) return R(e);
8790          }
8791          function U(e) {
8792            return { w: e[0], h: e[1] };
8793          }
8794          function D(e) {
8795            if ($(e)) return U(e);
8796          }
8797          function $(e) {
8798            return (
8799              (0, s.cy)(e) && 2 === e.length && !isNaN(e[0]) && !isNaN(e[1])
8800            );
8801          }
8802          function _() {
8803            return window.top;
8804          }
8805          function j() {
8806            return window.self;
8807          }
8808          function x() {
8809            return window.location;
8810          }
8811          function q() {
8812            return document;
8813          }
8814          function N() {
8815            try {
8816              if (b.getWindowTop().location.href) return !0;
8817            } catch (e) {
8818              return !1;
8819            }
8820          }
8821          function P(e) {
8822            return e || (N() ? b.getWindowTop() : b.getWindowSelf());
8823          }
8824          const V = (() => {
8825            const e = {
8826              border: "0px",
8827              hspace: "0",
8828              vspace: "0",
8829              marginWidth: "0",
8830              marginHeight: "0",
8831              scrolling: "no",
8832              frameBorder: "0",
8833              allowtransparency: "true",
8834            };
8835            return (t, n, r = {}) => {
8836              const i = t.createElement("iframe");
8837              return (
8838                Object.assign(i, Object.assign({}, e, n)),
8839                Object.assign(i.style, r),
8840                i
8841              );
8842            };
8843          })();
8844          function M() {
8845            return V(
8846              document,
8847              { id: A(), width: 0, height: 0, src: "about:blank" },
8848              { display: "none", height: "0px", width: "0px", border: "0px" },
8849            );
8850          }
8851          function G(e) {
8852            return xe(x().search)[e] || "";
8853          }
8854          function F(e) {
8855            return (
8856              !e ||
8857              ((0, s.cy)(e) || (0, s.O8)(e)
8858                ? !(e.length > 0)
8859                : Object.keys(e).length <= 0)
8860            );
8861          }
8862          function W(e) {
8863            return (0, s.O8)(e) && (!e || 0 === e.length);
8864          }
8865          function L(e, t) {
8866            if ((0, s.fp)(e?.forEach)) return e.forEach(t, this);
8867            Object.entries(e || {}
8867).forEach(([e, n]) => t.call(this, n, e));
8868          }
8869          function z(e, t) {
8870            return (0, s.fp)(e?.includes) && e.includes(t);
8871          }
8872          function J(e, t) {
8873            return (0, s.fp)(e?.map)
8874              ? e.map(t)
8875              : Object.entries(e || {}).map(([n, r]) => t(r, n, e));
8876          }
8877          function H(e, t, n, r) {
8878            let i;
8879            ((t = t || document),
8880              (i = n
8881                ? t.getElementsByTagName(n)
8882                : t.getElementsByTagName("head")));
8883            try {
8884              if (
8885                ((i = i.length ? i : t.getElementsByTagName("body")), i.length)
8886              ) {
8887                i = i[0];
8888                const t = r ? null : i.firstChild;
8889                return i.insertBefore(e, t);
8890              }
8891            } catch (e) {}
8892          }
8893          function Q(e, t) {
8894            let n = null;
8895            return new i.U9((r) => {
8896              const i = function () {
8897                (e.removeEventListener("load", i),
8898                  e.removeEventListener("error", i),
8899                  null != n && window.clearTimeout(n),
8900                  r());
8901              };
8902              (e.addEventListener("load", i),
8903                e.addEventListener("error", i),
8904                null != t && (n = window.setTimeout(i, t)));
8905            });
8906          }
8907          function K(e, t = "include") {
8908            Z(() => {
8909              if (window.fetch && window.Request)
8910                try {
8911                  const n = new Request(e, {
8912                    method: "GET",
8913                    mode: "no-cors",
8914                    credentials: t,
8915                    keepalive: !0,
8916                  });
8917                  return void window.fetch(n).catch(() => {
8918                    "omit" !== t && X(e);
8919                  });
8920                } catch (e) {}
8921              "omit" !== t && X(e);
8922            });
8923          }
8924          function Y(e) {
8925            Z(() => te(e));
8926          }
8927          function X(e, t, n) {
8928            const r = new Image();
8929            (t && b.isFn(t) && Q(r, n).then(t), (r.src = e));
8930          }
8931          function Z(e) {
8932            const t = window.scheduler;
8933            t?.postTask
8934              ? t.postTask(e, { priority: "background" }).catch(() => e())
8935              : "function" != typeof window.requestIdleCallback
8936                ? e()
8937                : window.requestIdleCallback(() => e(), { timeout: 2e3 });
8938          }
8939          function ee(e) {
8940            if (!e) return;
8941            const t = M();
8942            var n;
8943            (b.insertElement(t, document, "body"),
8944              (n = t.contentWindow.document).open(),
8945              n.write(e),
8946              n.close());
8947          }
8948          function te(e, t, n) {
8949            if (!e) return;
8950            const r = V(
8951              document,
8952              { sandbox: "allow-scripts allow-same-origin", src: e },
8953              { width: "0px", height: "0px", display: "none" },
8954            );
8955            (t && b.isFn(t) && Q(r, n).then(t),
8956              b.insertElement(r, document, "html", !0));
8957          }
8958          function ne(e, t = encodeURI) {
8959            if (!e) return "";
8960            let n =
8961              '<div style="position:absolute;left:0px;top:0px;visibility:hidden;">';
8962            return ((n += '<img src="' + t(e) + '"></div>'), n);
8963          }
8964          function re(e) {
8965            return Array.from(e.matchAll(/\$({[^}]+})/g))
8966              .map((e) => e[1])
8967              .reduce(
8968                (e, t) => e.replace("$" + encodeURIComponent(t), "$" + t),
8969                encodeURI(e),
8970              );
8971          }
8972          function ie(e, t, n) {
8973            return n.indexOf(e) === t;
8974          }
8975          function oe(e, t) {
8976            return e.concat(t);
8977          }
8978          function se(e, t) {
8979            if (e)
8980              return t
8981                .flatMap((e) => e.bids)
8982                .find((t) =>
8983                  ["bidId", "adId", "bid_id"].some((n) => t[n] === e),
8984                );
8985          }
8986          function ae(e, t) {
8987            return e[t];
8988          }
8989          function de(e) {
8990            return e
8991              .map((e) => e.bids.map((e) => e.bidder).reduce(oe, []))
8992              .reduce(oe, [])
8993              .filter((e) => void 0 !== e)
8994              .filter(ie);
8995          }
8996          function ce() {
8997            if (
8998              window.googletag &&
8999              (0, s.fp)(window.googletag.pubads) &&
9000              (0, s.fp)(window.googletag.pubads().getSlots)
9001            )
9002              return !0;
9003          }
9004          function ue() {
9005            if (window.apntag && (0, s.fp)(window.apntag.getTag)) return !0;
9006          }
9007          const le = (e, t) => t.cpm - e.cpm;
9008          function fe(e) {
9009            let t = e.length;
9010            for (; t > 0;) {
9011              const n = Math.floor(Math.random() * t);
9012              t--;
9013              const r = e[t];
9014              ((e[t] = e[n]), (e[n] = r));
9015            }
9016            return e;
9017          }
9018          function pe() {
9019            try {
9020              return b.getWindowSelf() !== b.getWindowTop();
9021            } catch (e) {
9022              return !0;
9023            }
9024          }
9025          function ge() {
9026            if (!pe()) return !1;
9027            const e = b.getWindowSelf();
9028            return !(!e.$sf || !e.$sf.ext);
9029          }
9030          function me() {
9031            try {
9032              const e = j();
9033              return "function" == typeof e.$sf.ext.geom
9034                ? e.$sf.ext.geom()
9035                : void 0;
9036            } catch (e) {
9037              return void p("Error getting SafeFrame geometry", e);
9038            }
9039          }
9040          function he() {
9041            return /^((?!chrome|chromium|android|crios|fxios).)*safari/i.test(
9042              navigator.userAgent,
9043            );
9044          }
9045          function be() {
9046            return /firefox|fxios/i.test(navigator.userAgent);
9047          }
9048          function ye() {
9049            return /crios|crmo/i.test(navigator.userAgent);
9050          }
9051          function ve(e, t) {
9052            if (e)
9053              return Object.entries(t).reduce(
9054                (e, [t, n]) =>
9055                  e.replace(new RegExp("\\$\\{" + t + "\\}", "g"), n || ""),
9056                e,
9057              );
9058          }
9059          function Ee(e, t) {
9060            return ve(e, { AUCTION_PRICE: t });
9061          }
9062          function we(e, t) {
9063            if (e && t && "string" == typeof t)
9064              return e.replace(/\${CLICKTHROUGH}/g, t);
9065          }
9066          function Ae() {
9067            return new Date().getTime();
9068          }
9069          function Te() {
9070            return (
9071              (window.performance &&
9072                window.performance.now &&
9073                window.performance.now()) ||
9074              0
9075            );
9076          }
9077          function Ie(e) {
9078            let t = -1;
9079            const n = (e = e || j()).performance;
9080            if (
9081              e.performance?.timing &&
9082              e.performance.timing.navigationStart > 0
9083            ) {
9084              const e = n.timing.domLoading - n.timing.navigationStart;
9085              e > 0 && (t = e);
9086            }
9087            return t;
9088          }
9089          function Ce() {
9090            return !1 !== r.$.getConfig("deviceAccess");
9091          }
9092          function Oe() {
9093            if (window.navigator.cookieEnabled || document.cookie.length)
9094              return !0;
9095          }
9096          function Be(e, t) {
9097            if (t < 1)
9098              throw new Error(
9099                `numRequiredCalls must be a positive number. Got ${t}`,
9100              );
9101            let n = 0;
9102            return function () {
9103              (n++, n === t && e.apply(this, arguments));
9104            };
9105          }
9106          function Se(e, t) {
9107            return e.reduce(function (e, n) {
9108              return ((e[n[t]] = e[n[t]] || []).push(n), e);
9109            }, {});
9110          }
9111          function Re(e) {
9112            const t = ["banner", "native", "video", "audio"],
9113              n = ["instream", "outstream"];
9114            return (
9115              !!Object.keys(e).every((e) => t.includes(e)) &&
9116              (!e.video || !e.video.context || n.includes(e.video.context))
9117            );
9118          }
9119          function ke(e, t, n) {
9120            return e
9121              .filter((e) => e.code === t)
9122              .flatMap((e) => e.bids)
9123              .filter((e) => e.bidder === n)
9124              .map((e) => e.params || {});
9125          }
9126          const Ue = (e, t) =>
9127            e.getAdUnitPath() === t || e.getSlotElementId() === t;
9128          function De(e) {
9129            const t = r.$.getConfig("customGptSlotMatching"),
9130              n = (0, s.fp)(t) && t(e);
9131            return (0, s.fp)(n) ? n : (t) => Ue(e, t);
9132          }
9133          function $e(e, t) {
9134            const n = Object.keys(e.mediaTypes || { banner: "banner" }).join(
9135              ", ",
9136            );
9137            return `\n    ${e.code} is a ${n} ad unit\n    containing bidders that don't support ${n}: ${t}
9137.\n    This bidder won't fetch demand.\n  `;
9138          }
9139          function _e(e) {
9140            return Object.fromEntries(
9141              Object.entries(e).filter(([e, t]) => void 0 !== t),
9142            );
9143          }
9144          function je(e, t) {
9145            return "object" != typeof e
9146              ? {}
9147              : t.reduce((n, r, i) => {
9148                  if ("function" == typeof r) return n;
9149                  let o = r;
9150                  const s = r.match(/^(.+?)\sas\s(.+?)$/i);
9151                  s && ((r = s[1]), (o = s[2]));
9152                  let a = e[r];
9153                  return (
9154                    "function" == typeof t[i + 1] && (a = t[i + 1](a, n)),
9155                    void 0 !== a && (n[o] = a),
9156                    n
9157                  );
9158                }, {});
9159          }
9160          function xe(e) {
9161            return e
9162              ? e
9163                  .replace(/^\?/, "")
9164                  .split("&")
9165                  .reduce((e, t) => {
9166                    let [n, r] = t.split("=");
9167                    return (
9168                      /\[\]$/.test(n)
9169                        ? ((n = n.replace("[]", "")),
9170                          (e[n] = e[n] || []),
9171                          e[n].push(r))
9172                        : (e[n] = r || ""),
9173                      e
9174                    );
9175                  }, {})
9176              : {};
9177          }
9178          function qe(e) {
9179            return Object.keys(e)
9180              .map((t) =>
9181                Array.isArray(e[t])
9182                  ? e[t].map((e) => `${t}[]=${e}`).join("&")
9183                  : `${t}=${e[t]}`,
9184              )
9185              .join("&");
9186          }
9187          function Ne(e, t) {
9188            const n = document.createElement("a");
9189            t && "noDecodeWholeURL" in t && t.noDecodeWholeURL
9190              ? (n.href = e)
9191              : (n.href = decodeURIComponent(e));
9192            const r =
9193              t && "decodeSearchAsString" in t && t.decodeSearchAsString;
9194            return {
9195              href: n.href,
9196              protocol: (n.protocol || "").replace(/:$/, ""),
9197              hostname: n.hostname,
9198              port: +n.port,
9199              pathname: n.pathname.replace(/^(?!\/)/, "/"),
9200              search: r ? n.search : b.parseQS(n.search || ""),
9201              hash: (n.hash || "").replace(/^#/, ""),
9202              host: n.host || window.location.host,
9203            };
9204          }
9205          function Pe(e) {
9206            return (
9207              (e.protocol || "http") +
9208              "://" +
9209              (e.host || e.hostname + (e.port ? `:${e.port}` : "")) +
9210              (e.pathname || "") +
9211              (e.search ? `?${b.formatQS(e.search || "")}` : "") +
9212              (e.hash ? `#${e.hash}` : "")
9213            );
9214          }
9215          function Ve(e, t, { checkTypes: n = !1 } = {}) {
9216            if (e === t) return !0;
9217            if (
9218              "object" != typeof e ||
9219              null === e ||
9220              "object" != typeof t ||
9221              null === t
9222            )
9223              return !1;
9224            const r = Array.isArray(e),
9225              i = Array.isArray(t);
9226            if (r && i) {
9227              if (e.length !== t.length) return !1;
9228              for (let r = 0; r < e.length; r++)
9229                if (!Ve(e[r], t[r], { checkTypes: n })) return !1;
9230              return !0;
9231            }
9232            if (r || i) return !1;
9233            if (n && e.constructor !== t.constructor) return !1;
9234            const o = Object.keys(e),
9235              s = Object.keys(t);
9236            if (o.length !== s.length) return !1;
9237            for (const r of o) {
9238              if (!Object.prototype.hasOwnProperty.call(t, r)) return !1;
9239              if (!Ve(e[r], t[r], { checkTypes: n })) return !1;
9240            }
9241            return !0;
9242          }
9243          function Me(e, ...t) {
9244            for (let n = 0; n < t.length; n++) {
9245              const r = t[n];
9246              (0, s.Qd)(r) && Ge(e, r);
9247            }
9248            return e;
9249          }
9250          function Ge(e, t) {
9251            if (!(0, s.Qd)(e) || !(0, s.Qd)(t)) return;
9252            const n = Object.keys(t);
9253            for (let r = 0; r < n.length; r++) {
9254              const i = n[r];
9255              if ("__proto__" === i || "constructor" === i) continue;
9256              const o = t[i];
9257              (0, s.Qd)(o)
9258                ? ((0, s.Qd)(e[i]) || (e[i] = {}), Ge(e[i], o))
9259                : Array.isArray(o)
9260                  ? Array.isArray(e[i])
9261                    ? o.forEach((t) => {
9262                        e[i].some((e) => Ve(e, t)) || e[i].push(t);
9263                      })
9264                    : (e[i] = [...o])
9265                  : (e[i] = o);
9266            }
9267          }
9268          function Fe(e, t = 0) {
9269            const n = function (e, t) {
9270              if ((0, s.fp)(Math.imul)) return Math.imul(e, t);
9271              var n = (4194303 & e) * (t |= 0);
9272              return (
9273                4290772992 & e && (n += ((4290772992 & e) * t) | 0),
9274                0 | n
9275              );
9276            };
9277            let r = 3735928559 ^ t,
9278              i = 1103547991 ^ t;
9279            for (let t, o = 0; o < e.length; o++)
9280              ((t = e.charCodeAt(o)),
9281                (r = n(r ^ t, 2654435761)),
9282                (i = n(i ^ t, 1597334677)));
9283            return (
9284              (r =
9285                n(r ^ (r >>
9285> 16), 2246822507) ^ n(i ^ (i >>> 13), 3266489909)),
9286              (i =
9287                n(i ^ (i >>> 16), 2246822507) ^ n(r ^ (r >>> 13), 3266489909)),
9288              (4294967296 * (2097151 & i) + (r >>> 0)).toString()
9289            );
9290          }
9291          function We(e) {
9292            try {
9293              return JSON.parse(e);
9294            } catch (e) {}
9295          }
9296          function Le(e) {
9297            try {
9298              return JSON.stringify(e);
9299            } catch (e) {
9300              return "";
9301            }
9302          }
9303          function ze(
9304            e,
9305            t = function (e) {
9306              return e;
9307            },
9308          ) {
9309            const n = new Map(),
9310              r = function () {
9311                const r = t.apply(this, arguments);
9312                return (
9313                  n.has(r) || n.set(r, e.apply(this, arguments)),
9314                  n.get(r)
9315                );
9316              };
9317            return ((r.clear = n.clear.bind(n)), r);
9318          }
9319          function Je(e = 0, t = "d") {
9320            if (["m", "d"].indexOf(t) < 0) return Date.now();
9321            const n = "m" === t ? 60 * e * 1e3 : 24 * e * 60 * 60 * 1e3;
9322            return Date.now() + (e && e > 0 ? n : 0);
9323          }
9324          function He(e) {
9325            return Object.keys(e).map((t) => ({ [t]: e[t] }));
9326          }
9327          function Qe(e, t) {
9328            Object.entries(t).forEach(([t, n]) => e.setAttribute(t, n));
9329          }
9330          function Ke(e, t, n = (e) => e) {
9331            let r = 0,
9332              i = e.length && e.length - 1;
9333            const o = n(t);
9334            for (; i - r > 1;) {
9335              const t = r + Math.round((i - r) / 2);
9336              o > n(e[t]) ? (r = t) : (i = t);
9337            }
9338            for (; e.length > r && o > n(e[r]);) r++;
9339            return r;
9340          }
9341          function Ye(e, t = new Set()) {
9342            for (const n in e) {
9343              const r = e[n],
9344                i = typeof r;
9345              if (
9346                void 0 === r ||
9347                "function" === i ||
9348                "symbol" === i ||
9349                r instanceof RegExp ||
9350                r instanceof Map ||
9351                r instanceof Set ||
9352                r instanceof Date ||
9353                (null !== r &&
9354                  "object" === i &&
9355                  Object.prototype.hasOwnProperty.call(r, "toJSON"))
9356              )
9357                return !0;
9358              if (null !== r && "object" === i && r.constructor === Object) {
9359                if (t.has(r)) return !0;
9360                if ((t.add(r), Ye(r, t))) return !0;
9361              }
9362            }
9363            return !1;
9364          }
9365          function Xe(e, t) {
9366            for (let n, r = 0; r < e.length; r++)
9367              if (((n = (0, o.A)(e[r], t)), n)) return n;
9368          }
9369          function Ze(e) {
9370            let t = null;
9371            try {
9372              const n =
9373                /[-\w]+\.([-\w]+|[-\w]{3,}|[-\w]{1,3}\.[-\w]{2})$/i.exec(e);
9374              if (null != n && n.length > 0) {
9375                t = n[0];
9376                for (let e = 1; e < n.length; e++)
9377                  n[e].length > t.length && (t = n[e]);
9378              }
9379            } catch (e) {
9380              t = null;
9381            }
9382            return t;
9383          }
9384          function et(e, t) {
9385            (0, s.O8)(e.nurl) &&
9386              "" !== e.nurl &&
9387              ((e.nurl = e.nurl.replace(/\${AUCTION_PRICE}/, t)), X(e.nurl));
9388          }
9389          const tt = (function () {
9390            let e;
9391            return function () {
9392              if (void 0 !== e) return e;
9393              try {
9394                void 0 === window.CompressionStream
9395                  ? (e = !1)
9396                  : (new window.CompressionStream("gzip"), (e = !0));
9397              } catch (t) {
9398                e = !1;
9399              }
9400              return e;
9401            };
9402          })();
9403          async function nt(e) {
9404            "string" != typeof e && (e = JSON.stringify(e));
9405            const t = new TextEncoder().encode(e),
9406              n = new Blob([t])
9407                .stream()
9408                .pipeThrough(new window.CompressionStream("gzip")),
9409              r = await new Response(n).blob(),
9410              i = await r.arrayBuffer();
9411            return new Uint8Array(i);
9412          }
9413        },
9414        5262(e, t, n) {
9415          function r(e) {
9416            if (null != e.element) return e.element;
9417            const t = e.adUnitCode ?? e.code;
9418            return t ? document.getElementById(t) : null;
9419          }
9420          n.d(t, { o: () => r });
9421        },
9422        9200(e, t, n) {
9423          n.d(t, { H: () => s, y: () => a });
9424          var r = n(6825),
9425            i = n(5437),
9426            o = n(7413);
9427          function s(e, t, n, r) {
9428            const i = e?.adapterCode,
9429              o = e?.bidderCode || r?.bidder,
9430              s = t.get(e?.adapterCode, "adjustAlternateBids");
9431            return t.getOwn(o, n) || t.get(s ? i : o, n);
9432          }
9433          function a(e, t, n, { index: a = r.n.index, bs: d = i.u } = {}) {
9434            const c = s(
9435              t,
9436              d,
9437              "bidCpmAdjustment",
9438              (n = n || a.getBidRequest(t)),
9439            );
9440            if (c && "function" == typeof c)
9441              try {
9442                return c(e, Object.assign({}, t), n);
9443              } catch (e) {
9444                (0, o.vV)("Error during bid adjustment", e);
9445              }
9446            return e;
9447          }
9448        },
9449        217(e, t, n) {
9450          n.d(t, { d: () => i });
9451          var r = n(8384);
9452          function i() {
9453            return !!r.$.getConfig("debug");
9454          }
9455        },
9456        4983(e, t, n) {
9457          n.d(t, { j: () => s, v: () => a });
9458          var r = n(5437),
9459            i = n(7413),
9460            o = n(9200);
9461          function s(e, t, n = {}) {
9462            const s = n.bs ?? r.u,
9463              a = Object.assign({}, e),
9464              d = e.cpm,
9465              c = (0, o.H)(e, s, "bidDesirabilityAdjustment", t);
9466            if ("function" != typeof c) return d;
9467            try {
9468              return c(d, a, t);
9469            } catch (e) {
9470              return (
9471                (0, i.vV)("Error during bid desirability adjustment", e),
9472                d
9473              );
9474            }
9475          }
9476          function a(e, t) {
9477            return t.desirability && e.desirability
9478              ? t.desirability - e.desirability
9479              : t.cpm - e.cpm;
9480          }
9481        },
9482        7936(e, t, n) {
9483          function r(e) {
9484            return "function" == typeof e.getConfig;
9485          }
9486          function i(e) {
9487            return e.getConfig("targeting").targeting ?? {};
9488          }
9489          function o(e, t) {
9490            r(e) ? e.setConfig({ targeting: t }) : e.updateTargetingFromMap(t);
9491          }
9492          function s(e, t) {
9493            return r(e) ? (i(e)[t] ?? []) : e.getTargeting(t);
9494          }
9495          function a(e) {
9496            return r(e) ? Object.keys(i(e)) : e.getTargetingKeys();
9497          }
9498          n.d(t, { A6: () => s, W$: () => a, ns: () => o });
9499        },
9500        1343(e, t, n) {
9501          n.d(t, {
9502            JE: () => f,
9503            OG: () => u,
9504            cD: () => d,
9505            fH: () => l,
9506            h0: () => g,
9507            vV: () => p,
9508          });
9509          var r = n(8384),
9510            i = n(217),
9511            o = n(5521);
9512          const s = {
9513            log: "MESSAGE",
9514            info: "INFO",
9515            warn: "WARNING",
9516            error: "ERROR",
9517          };
9518          let a;
9519          function d(e) {
9520            a = e;
9521          }
9522          function c(e, t = !1) {
9523            const n = window.console?.[e],
9524              d = `${s[e]}:`;
9525            return function (...c) {
9526              ("function" == typeof n &&
9527                (0, i.d)() &&
9528                n.apply(
9529                  console,
9530                  (function (e, t) {
9531                    e = [].slice.call(e);
9532                    const n = r.$.getCurrentBidder();
9533                    (t && e.unshift(t), n && e.unshift(i("#aaa")));
9534                    return (
9535                      e.unshift(i("#3b88c3")),
9536                      e.unshift("%cPrebid" + (n ? `%c${n}` : "")),
9537                      e
9538                    );
9539                    function i(e) {
9540                      return `display: inline-block; color: #fff; background: ${e}; padding: 1px 4px; border-radius: 3px;`;
9541                    }
9542                  })(c, d),
9543                ),
9544                t &&
9545                  ((e, ...t) => {
9546                    null != a && a(e, ...t);
9547                  })(o.qY.AUCTION_DEBUG, { type: s[e], arguments: c }));
9548            };
9549          }
9550          const u = c("log"),
9551            l = c("info"),
9552            f = c("warn", !0),
9553            p = c("error", !0);
9554          function g(e) {
9555            function t(t) {
9556              return function (...n) {
9557                t(e, ...n);
9558              };
9559            }
9560            return {
9561              logError: t(p),
9562              logWarn: t(f),
9563              logMessage: t(u),
9564              logInfo: t(l),
9565            };
9566          }
9567        },
9568        3350(e, t, n) {
9569          n.d(t, {
9570            Et: () => u,
9571            Go: () => i,
9572            Lm: () => f,
9573            O8: () => d,
9574            Qd: () => l,
9575            SH: () => o,
9576            Uu: () => g,
9577            fp: () => a,
9578          });
9579          var r = n(1490);
9580          function i(e) {
9581            return (0, r.Q)(e) || {};
9582          }
9583          function o(e, t) {
9584            return t
9585              .filter((t) => e[t])
9586              .reduce((t, n) => Object.assign(t, { [n]: e[n] }), {});
9587          }
9588          const s = Object.prototype.toString;
9589          function a(e) {
9590            return "function" == typeof e;
9591          }
9592          function d(e) {
9593            return "string" == typeof e;
9594          }
9595          const c = Array.isArray.bind(Array);
9596          function u(e) {
9597            return "number" == typeof e;
9598          }
9599          function l(e) {
9600            return "[object Object]" === s.call(e);
9601          }
9602          function f(e) {
9603            return "boolean" == typeof e;
9604          }
9605          const p = Number.isInteger.bind(Number);
9606          function g(e, t) {
9607            return c(e) && (!t || e.length === t) && e.every((e) => p(e));
9608          }
9609          n.d(t, ["Fq", 0, p, "cy", 0, c]);
9610        },
9611        2822(e, t, n) {
9612          n.d(t, { BO: () => p });
9613          var r = n(8384);
9614          const i = "performanceMetrics",
9615            o =
9616              window.performance && window.performance.now
9617                ? () => window.performance.now()
9618                : () => Date.now(),
9619            s = new WeakMap();
9620          function a(e, t, n) {
9621            return function (...r) {
9622              t && t();
9623              try {
9624                return e.apply(this, r);
9625              } finally {
9626                n && n();
9627              }
9628            };
9629          }
9630          function d({
9631            now: e = o,
9632            mkNode: t = u,
9633            mkTimer: n = c,
9634            mkRenamer: r = (e) => e,
9635            nodes: i = s,
9636          } = {}) {
9637            return function () {
9638              return (function o(
9639                s,
9640                a = (e) => ({
9641                  forEach(t) {
9642                    t(e);
9643                  },
9644                }),
9645              ) {
9646                a = r(a);
9647                const d =
9648                  ((c = "timestamps"),
9649                  function (e) {
9650                    return s.dfWalk({
9651                      visit(t, n) {
9652                        const r = n[c];
9653                        if (r.hasOwnProperty(e)) return r[e];
9654                      },
9655                    });
9656                  });
9657                var c;
9658                function u(e, t) {
9659                  const n = a(e);
9660                  s.dfWalk({
9661                    follow: (e, t) => t.propagate && (!e || !e.stopPropagation),
9662                    visit(e, r) {
9663                      n.forEach((n) => {
9664                        null == e
9665                          ? (r.metrics[n] = t)
9666                          : (r.groups.hasOwnProperty(n) || (r.groups[n] = []),
9667                            r.groups[n].push(t));
9668                      });
9669                    },
9670                  });
9671                }
9672                function l(t) {
9673                  return n(e, (e) => u(t, e));
9674                }
9675                function f() {
9676                  const e = {};
9677                  return (
9678                    s.dfWalk({
9679                      visit(t, n) {
9680                        const r = (t, n) => {
9681                          Object.prototype.hasOwnProperty.call(e, t) ||
9682                            (e[t] = n);
9683                        };
9684                        (Object.entries(n.metrics).forEach(([e, t]) => r(e, t)),
9685                          (t && !t.includeGroups) ||
9686                            Object.entries(n.groups).forEach(([e, t]) =>
9687                              r(e, t),
9688                            ));
9689                      },
9690                    }),
9691                    e
9692                  );
9693                }
9694                const p = {
9695                  startTiming: l,
9696                  measureTime: function (e, t) {
9697                    return l(e).stopAfter(t)();
9698                  },
9699                  measureHookTime: function (e, t, n) {
9700                    const r = l(e);
9701                    return n(
9702                      (function (e) {
9703                        const t = r.stopBefore(e);
9704                        return (
9705                          (t.bail = e.bail && r.stopBefore(e.bail)),
9706                          (t.stopTiming = r),
9707                          (t.untimed = e),
9708                          t
9709                        );
9710                      })(t),
9711                    );
9712                  },
9713                  checkpoint: function (t) {
9714                    s.timestamps[t] = e();
9715                  },
9716                  timeSince: function (t, n) {
9717                    const r = d(t),
9718                      i = null != r ? e() - r : null;
9719                    return (null != n && u(n, i), i);
9720                  },
9721                  timeBetween: function (e, t, n) {
9722                    const r = d(e),
9723                      i = d(t),
9724                      o = null != r && null != i ? i - r : null;
9725                    return (null != n && u(n, o), o);
9726                  },
9727                  setMetric: u,
9728                  getMetrics: f,
9729                  fork: function ({
9730                    propagate: e = !0,
9731                    stopPropagation: n = !1,
9732                    includeGroups: r = !1,
9733                  } = {}) {
9734                    return o(
9735                      t([
9736                        [
9737                          s,
9738                          {
9739                            propagate: e,
9740                            stopPropagation: n,
9741                            includeGroups: r,
9742                          },
9743                        ],
9744                      ]),
9745                      a,
9746                    );
9747                  },
9748                  join: function (
9749                    e,
9750                    {
9751                      propagate: t = !0,
9752                      stopPropagation: n = !1,
9753                      includeGroups: r = !1,
9754                    } = {},
9755                  ) {
9756                    const o = i.get(e);
9757                    null != o &&
9758                      o.addParent(s, {
9759                        propagate: t,
9760                        stopPropagation: n,
9761                        includeGroups: r,
9762                      });
9763                  },
9764                  newMetrics: function () {
9765                    return o(s.newSibling(), a);
9766                  },
9767                  renameWith: function (e) {
9768                    return o(s, e);
9769                  },
9770                  toJSON: () => f(),
9771                };
9772                return (i.set(p, s), p);
9773              })(t([]));
9774            };
9775          }
9776          function c(e, t) {
9777            const n = e();
9778            let r = !1;
9779            function i() {
9780              r || (t(e() - n), (r = !0));
9781            }
9782            return (
9783              (i.stopBefore = (e) => a(e, i)),
9784              (i.stopAfter = (e) => a(e, null, i)),
9785              i
9786            );
9787          }
9788          function u(e) {
9789            return {
9790              metrics: {},
9791              timestamps: {},
9792              groups: {},
9793              addParent(t, n) {
9794                e.push([t, n]);
9795              },
9796              newSibling: () => u(e.slice()),
9797              dfWalk({
9798                visit: t,
9799                follow: n = () => !0,
9800                visited: r = new Set(),
9801                inEdge: i,
9802              } = {}) {
9803                let o;
9804                if (!r.has(this)) {
9805                  if ((r.add(this), (o = t(i, this)), null != o)) return o;
9806                  for (const [s, a] of e)
9807                    if (
9808                      n(i, a) &&
9809                      ((o = s.dfWalk({
9810                        visit: t,
9811                        follow: n,
9812                        visited: r,
9813                        inEdge: a,
9814                      })),
9815                      null != o)
9816                    )
9817                      return o;
9818                }
9819              },
9820            };
9821          }
9822          const l = (() => {
9823            const e = function () {},
9824              t = () => ({}),
9825              n = { forEach: e },
9826              r = () => null;
9827            ((r.stopBefore = (e) => e), (r.stopAfter = (e) => e));
9828            const i = Object.defineProperties(
9829              { dfWalk: e, newSibling: () => i, addParent: e },
9830              Object.fromEntries(
9831                ["metrics", "timestamps", "groups"].map((e) => [e, { get: t }]),
9832              ),
9833            );
9834            return d({
9835              now: () => 0,
9836              mkNode: () => i,
9837              mkRenamer: () => () => n,
9838              mkTimer: () => r,
9839              nodes: { get: e, set: e },
9840            })();
9841          })();
9842          let f = !0;
9843          function p(e) {
9844            return (f && e) || l;
9845          }
9846          r.$.getConfig(i, (e) => {
9847            f = !!e[i];
9848          });
9849          const g = (() => {
9850            const e = d();
9851            return function () {
9852              return f ? e() : l;
9853            };
9854          })();
9855          function m(e, t) {
9856            return function (n, r) {
9857              return (i, ...o) =>
9858                p(t.apply(this, o)).measureHookTime(e + n, i, (e) =>
9859                  r.call(this, e, ...o),
9860                );
9861            };
9862          }
9863          (m("requestBids.", (e) => e.metrics),
9864            m("addBidResponse.", (e, t) => t.metrics));
9865          n.d(t, ["K7", 0, g]);
9866        },
9867        8203(e, t, n) {
9868          n.d(t, { v6: () => o });
9869          var r = n(1129);
9870          (0, r.m)().setTimeout ?? setTimeout;
9871          const i = (0, r.m)().Promise ?? Promise;
9872          function o({ promiseFactory: e = (e) => new i(e) } = {}) {
9873            function t(e) {
9874              return (t) => e(t);
9875            }
9876            let n, r;
9877            return {
9878              promise: e((e, t) => {
9879                ((n = e), (r = t));
9880              }),
9881              resolve: t(n),
9882              reject: t(r),
9883            };
9884          }
9885          n.d(t, ["U9", 0, i]);
9886        },
9887        7834(e, t, n) {
9888          n.d(t, { H: () => u });
9889          var r = n(8203),
9890            i = n(7413);
9891          let o = null,
9892            s = 0,
9893            a = [];
9894          function d() {
9895            document.hidden
9896              ? (o = Date.now())
9897              : ((s += Date.now() - (o ?? 0)),
9898                (o = null),
9899                a.forEach(({ callback: e, startTime: t, setTimerId: n }) =>
9900                  n(c(e, s - t)()),
9901                ),
9902                (a = []));
9903          }
9904          function c(e, t) {
9905            const n = s;
9906            let r = setTimeout(() => {
9907              s === n && null == o
9908                ? e()
9909                : null != o
9910                  ? a.push({
9911                      callback: e,
9912                      startTime: n,
9913                      setTimerId(e) {
9914                        r = e;
9915                      },
9916                    })
9917                  : (r = c(e, s - n)());
9918            }, t);
9919            return () => r;
9920          }
9921          function u({
9922            startTime: e = i.vE,
9923            ttl: t = () => null,
9924            monotonic: n = !1,
9925            slack: o = 5e3,
9926          } = {}) {
9927            const s = new Map(),
9928              a = [],
9929              d = [],
9930              u = n
9931                ? (e) => d.push(e)
9932                : (e) =>
9933                    d.splice(
9934                      (0, i.El)(d, e, (e) => e.expiry),
9935                      0,
9936                      e,
9937                    );
9938            let l, f;
9939            function p() {
9940              if ((f && clearTimeout(f()), d.length > 0)) {
9941                const e = (0, i.vE)();
9942                ((l = Math.max(e, d[0].expiry + o)),
9943                  (f = c(() => {
9944                    const e = (0, i.vE)();
9945                    let t = 0;
9946                    for (const n of d) {
9947                      if (n.expiry > e) break;
9948                      (a.forEach((e) => {
9949                        try {
9950                          e(n.item);
9951                        } catch (e) {
9952                          (0, i.vV)(e);
9953                        }
9954                      }),
9955                        s.delete(n.item),
9956                        t++);
9957                    }
9958                    (d.splice(0, t), (f = null), p());
9959                  }, l - e)));
9960              } else f = null;
9961            }
9962            function g(n) {
9963              const i = {},
9964                s = m;
9965              let a;
9966              const [d, c] = Object.entries({ start: e, delta: t }).map(
9967                  ([e, t]) => {
9968                    let d;
9969                    return function () {
9970                      const c = (d = {});
9971                      r.U9.resolve(t(n)).then((t) => {
9972                        c === d &&
9973                          ((i[e] = t),
9974                          s === m &&
9975                            null != i.start &&
9976                            null != i.delta &&
9977                            ((a = i.start + i.delta),
9978                            u(g),
9979                            (null == f || l > a + o) && p()));
9980                      });
9981                    };
9982                  },
9983                ),
9984                g = {
9985                  item: n,
9986                  refresh: c,
9987                  get expiry() {
9988                    return a;
9989                  },
9990                };
9991              return (d(), c(), g);
9992            }
9993            let m = {};
9994            return {
9995              [Symbol.iterator]: () => s.keys(),
9996              add(e) {
9997                !s.has(e) && s.set(e, g(e));
9998              },
9999              has: (e) => s.has(e),
10000              delete(e) {
10001                const t = s.get(e);
10002                if (t)
10003                  for (let e = 0; e < d.length && d[e].expiry <= t.expiry; e++)
10004                    if (d[e] === t) {
10005                      d.splice(e, 1);
10006                      break;
10007                    }
10008                return s.delete(e);
10009              },
10010              clear() {
10011                ((d.length = 0), p(), s.clear(), (m = {}));
10012              },
10013              toArray: () => Array.from(s.keys()),
10014              refresh() {
10015                ((d.length = 0), p());
10016                for (const e of s.values()) e.refresh();
10017              },
10018              onExpiry: (e) => (
10019                a.push(e),
10020                () => {
10021                  const t = a.indexOf(e);
10022                  t >= 0 && a.splice(t, 1);
10023                }
10024              ),
10025            };
10026          }
10027          document.addEventListener("visibilitychange", d);
10028        },
10029        8378(e, t, n) {
10030          n.d(t, { Vv: () => d, Ot: () => s, Bp: () => a });
10031          var r = n(7413);
10032          const i = new (function e(t, n) {
10033              const r = {};
10034              let i = {};
10035              const o = [];
10036              (Object.entries(n).forEach(([n, s]) => {
10037                if (null != s && "object" == typeof s) {
10038                  const i = new e(() => t()?.[n], s);
10039                  ((r[n] = i.obj), o.push(i.reset));
10040                } else
10041                  !0 === s &&
10042                    Object.defineProperty(r, n, {
10043                      get: () => (
10044                        i.hasOwnProperty(n) || (i[n] = t()?.[n]),
10045                        i[n]
10046                      ),
10047                    });
10048              }),
10049                (this.obj = r),
10050                (this.reset = function () {
10051                  (o.forEach((e) => e()), (i = {}));
10052                }));
10053            })(
10054              () => ((0, r.av)() ? r.mM.getWindowTop() : r.mM.getWindowSelf()),
10055              {
10056                innerHeight: !0,
10057                innerWidth: !0,
10058                screen: { width: !0, height: !0 },
10059                visualViewport: { width: !0, height: !0 },
10060                document: {
10061                  documentElement: {
10062                    clientWidth: !0,
10063                    clientHeight: !0,
10064                    scrollTop: !0,
10065                    scrollLeft: !0,
10066                  },
10067                  body: {
10068                    scrollTop: !0,
10069                    scrollLeft: !0,
10070                    clientWidth: !0,
10071                    clientHeight: !0,
10072                  },
10073                },
10074              },
10075            ),
10076            o = { winDimensions: i },
10077            s = (() => {
10078              let e;
10079              return function () {
10080                return (
10081                  (!e || Date.now() - e > 20) &&
10082                    (o.winDimensions.reset(), (e = Date.now())),
10083                  o.winDimensions.obj
10084                );
10085              };
10086            })();
10087          function a() {
10088            o.winDimensions.reset();
10089          }
10090          function d(e) {
10091            const t =
10092                e ?? ((0, r.av)() ? r.mM.getWindowTop() : r.mM.getWindowSelf()),
10093              n = t?.screen ?? r.mM.getWindowSelf()?.screen ?? window?.screen,
10094              i = Number(n?.width),
10095              o = Number(n?.height);
10096            if (Number.isFinite(i) && Number.isFinite(o))
10097              return o >= i ? "portrait" : "landscape";
10098          }
10099        },
10100        6540(e, t, n) {
10101          function r(e) {
10102            const t = e.slice();
10103            return ((t.bids = t), t);
10104          }
10105          n.d(t, { O: () => r });
10106        },
10107        2859(e, t, n) {
10108          n.d(t, { JE: () => s, o1: () => o });
10109          var r = n(8203);
10110          function i(e, t) {
10111            e()
10112              ? (function () {
10113                  const e = window.scheduler;
10114                  return "function" == typeof e?.yield
10115                    ? e.yield()
10116                    : r.U9.resolve();
10117                })().then(t)
10118              : t();
10119          }
10120          function o(e, t) {
10121            return function (...n) {
10122              i(e, () => {
10123                t.apply(this, n);
10124              });
10125            };
10126          }
10127          function s(e, t, n) {
10128            !(function (e, t) {
10129              let n = 0;
10130              function r() {
10131                e.length > n
10132                  ? ((n += 1), e[n - 1](r))
10133                  : "function" == typeof t && t();
10134              }
10135              r();
10136            })(
10137              t.map((t) => (n) => {
10138                i(e, () => {
10139                  (t(), n());
10140                });
10141              }),
10142              n,
10143            );
10144          }
10145        },
10146        7791(e, t, n) {
10147          n.d(t, {
10148            H6: () => c,
10149            V0: () => g,
10150            Zy: () => f,
10151            mn: () => u,
10152            vk: () => m,
10153          });
10154          var r = n(7413),
10155            i = n(3350),
10156            o = n(8384),
10157            s = n(1785),
10158            a = n(6825),
10159            d = n(4864);
10160          const c = "outstream",
10161            u = "instream",
10162            l = [
10163              [
10164                "mimes",
10165                (e) =>
10166                  Array.isArray(e) &&
10167                  e.length > 0 &&
10168                  e.every((e) => "string" == typeof e),
10169              ],
10170              ["minduration", i.Fq],
10171              ["maxduration", i.Fq],
10172              ["startdelay", i.Fq],
10173              ["maxseq", i.Fq],
10174              ["poddur", i.Fq],
10175              ["protocols", i.Uu],
10176              ["w", i.Fq],
10177              ["h", i.Fq],
10178              ["podid", i.O8],
10179              ["podseq", i.Fq],
10180              ["rqddurs", i.Uu],
10181              ["placement", i.Fq],
10182              ["plcmt", i.Fq],
10183              ["linearity", i.Fq],
10184              ["skip", (e) => [1, 0].includes(e)],
10185              ["skipmin", i.Fq],
10186              ["skipafter", i.Fq],
10187              ["sequence", i.Fq],
10188              ["slotinpod", i.Fq],
10189              ["mincpmpersec", i.Et],
10190              ["battr", i.Uu],
10191              ["maxextended", i.Fq],
10192              ["minbitrate", i.Fq],
10193              ["maxbitrate", i.Fq],
10194              ["boxingallowed", i.Fq],
10195              ["playbackmethod", i.Uu],
10196              ["playbackend", i.Fq],
10197              ["delivery", i.Uu],
10198              ["pos", i.Fq],
10199              ["api", i.Uu],
10200              ["companiontype", i.Uu],
10201              ["poddedupe", i.Uu],
10202            ],
10203            f = new Map(l);
10204          function p(e) {
10205            return !(!e?.renderer && !e?.safeRenderer);
10206          }
10207          function g(e) {
10208            const t = e?.mediaTypes?.video;
10209            if (null != t) {
10210              null == t.plcmt &&
10211                (t.context === c || [2, 3, 4].includes(t.placement)
10212                  ? (t.plcmt = 4)
10213                  : t.playbackmethod?.some?.((e) => [2, 6].includes(e)) &&
10214                    (t.plcmt = 2));
10215              const n = (0, i.Uu)(t.playerSize, 2)
10216                  ? t.playerSize
10217                  : Array.isArray(t.playerSize) && (0, i.Uu)(t.playerSize[0])
10218                    ? t.playerSize[0]
10219                    : null,
10220                o = (0, i.Et)(t.w) && (0, i.Et)(t.h) ? [t.w, t.h] : null;
10221              let s = !1;
10222              (null == n
10223                ? null != o &&
10224                  (null != t.playerSize ? (s = !0) : (t.playerSize = [o]))
10225                : ["w", "h"].forEach((e, r) => {
10226                    null != t[e] && t[e] !== n[r] ? (s = !0) : (t[e] = n[r]);
10227                  }),
10228                s &&
10229                  (0, r.JE)(
10230                    `Ad unit "${e.code} has conflicting playerSize and w/h`,
10231                    e,
10232                  ));
10233            }
10234          }
10235          function m(e, { index: t = a.n.index } = {}) {
10236            const n = t.getMediaTypes(e)?.video,
10237              r = n && n?.context,
10238              i = n && n?.useCacheKey,
10239              o = t.getAdUnit(e);
10240            return h(e, o, n, r, i);
10241          }
10242          const h = (0, s.A_)(
10243            "sync",
10244            function (e, t, n, i, s) {
10245              if (n && (s || i !== c)) {
10246                const {
10247                  url: t,
10248                  useLocal: n,
10249                  allowVastXmlOnly: i,
10250                } = o.$.getConfig("cache") || {};
10251                return t || n || !e.vastXml || e.vastUrl
10252                  ? !(!e.vastUrl && !e.vastXml)
10253                  : !0 === i
10254                    ? ((0, r.JE)(
10255                        "This bid contains only vastXml, and caching is disabled. Proceeding because cache.allowVastXmlOnly is enabled.",
10256                      ),
10257                      !0)
10258                    : ((0, r.vV)(
10259                        `\n        This bid contains only vastXml and will not work when a prebid cache url is not specified.\n        Try enabling either prebid cache with ${(0, d.k)()}.setConfig({ cache: {url: "..."} });\n        or local cache with ${(0, d.k)()}
10259.setConfig({ cache: { useLocal: true }});\n      `,
10260                      ),
10261                      !1);
10262              }
10263              return !(i === c && !s) || p(e) || p(t) || p(n);
10264            },
10265            "checkVideoBidSetup",
10266          );
10267        },
10268      },
10269    ]);
10270    (self.pbjsChunk = self.pbjsChunk || []).push([
10271      [769],
10272      {
10273        5720(t, e, n) {
10274          n.d(e, { M: () => i });
10275          var c = n(8378);
10276          function i() {
10277            const t = (0, c.Ot)();
10278            try {
10279              const e =
10280                t.innerHeight ||
10281                t.document.documentElement.clientHeight ||
10282                t.document.body.clientHeight ||
10283                0;
10284              return {
10285                width:
10286                  t.innerWidth ||
10287                  t.document.documentElement.clientWidth ||
10288                  t.document.body.clientWidth ||
10289                  0,
10290                height: e,
10291              };
10292            } catch (t) {
10293              return {};
10294            }
10295          }
10296        },
10297      },
10298    ]);
10299    (self.pbjsChunk = self.pbjsChunk || []).push([
10300      [590],
10301      {
10302        157(e, r, n) {
10303          n.d(r, [
10304            "G",
10305            0,
10306            '(()=>{"use strict";window.render=function(e,{mkFrame:n},r){const{safeRenderer:t,...i}=e,o=e.width,d=e.height,c=e.instl;if(null==d){const e=r.document&&r.document.body,n=e&&e.parentElement;e&&e.style&&(e.style.height="100%"),n&&n.style&&(n.style.height="100%")}const a=r.document,l={width:null!=o?o:"100%",height:null!=d?d:"100%"};if(c&&r.frameElement){const e=r.frameElement.style;e.width=o?String(o)+"px":"100vw",e.height=d?String(d)+"px":"100vh"}return"string"!=typeof t.url||""===t.url?Promise.reject(new Error("Prebid SafeRenderer: missing data.safeRenderer.url")):new Promise(function(e,r){const o=n(a,{width:l.width,height:l.height});o.onload=function(){try{const n=o.contentWindow,d=n.document,c=d.createElement("script");c.src=t.url,c.onload=function(){try{const r=n.pbRenderInFrame;if("function"!=typeof r)throw new Error("Prebid SafeRenderer: safeRenderer.url script must define window.pbRenderInFrame as a function.");r.call(n,{config:t.config,...i}),e()}catch(e){r(e)}},c.onerror=function(){r(new Error("Prebid SafeRenderer: failed to load script from safeRenderer.url"))},(d.head||d.body).appendChild(c)}catch(e){r(e)}},o.onerror=function(){r(new Error("Prebid SafeRenderer: iframe failed to load"))},a.body.appendChild(o)})}})();',
10307          ]);
10308        },
10309      },
10310    ]);
10311    (self.pbjsChunk = self.pbjsChunk || []).push([
10312      [85],
10313      {
10314        1852(e, t, n) {
10315          n.d(t, [
10316            "G",
10317            0,
10318            '(()=>{"use strict";const e="Prebid Event",t="browserIntervention";window.render=function({ad:n,adUrl:r,width:o,height:i,instl:s},{mkFrame:a,sendMessage:d},c){if(function(){const n=window;if("ReportingObserver"in n)try{new n.ReportingObserver(n=>{var r;r=n[0],d(e,{event:t,intervention:r})},{buffered:!0,types:["intervention"]}).observe()}catch(e){}}(),!n&&!r){const e=new Error("Missing ad markup or URL");throw e.reason="noAd",e}{if(null==i){const e=c.document?.body;[e,e?.parentElement].filter(e=>null!=e?.style).forEach(e=>{e.style.height="100%"})}const e=c.document,t={width:o??"100%",height:i??"100%"};if(r&&!n?t.src=r:t.srcdoc=n,e.body.appendChild(a(e,t)),s&&c.frameElement){const e=c.frameElement.style;e.width=o?`${o}px`:"100vw",e.height=i?`${i}px`:"100vh";const t=c.parent?.document?.querySelector("div#creative"),n=c.parent?.document?.querySelector("div#ad_position_box"),r=t&&c.parent?.getComputedStyle?.(t),s=n&&c.parent?.getComputedStyle?.(n);t?.parentElement===n&&r?.marginTop&&"0px"!==r?.marginTop&&s&&"flex-start"===s?.alignItems&&(t.style.marginTop="0px",n.style.alignItems="center")}}}})();',
10319          ]);
10320        },
10321      },
10322    ]);
10323    (self.pbjsChunk = self.pbjsChunk || []).push([
10324      [5],
10325      {
10326        828(t, e, n) {
10327          n.d(e, { p: () => l });
10328          var s = n(7413);
10329          const o = new Map();
10330          function l(t) {
10331            if (o.has(t)) return o.get(t);
10332            const e = (function (t) {
10333              let e;
10334              return (
10335                (0, s.II)() &&
10336                  (e = window.googletag
10337                    .pubads()
10338                    .getSlots()
10339                    .find((e) => (0, s.iC)(e)(t))),
10340                e
10341              );
10342            })(t);
10343            let n = {};
10344            return (
10345              e &&
10346                (n = {
10347                  gptSlot: e.getAdUnitPath(),
10348                  divId: e.getSlotElementId(),
10349                }),
10350              !(0, s.Im)(n) && o.set(t, n),
10351              n
10352            );
10353          }
10354        },
10355      },
10356    ]);
10357    (self.pbjsChunk = self.pbjsChunk || []).push([
10358      [498],
10359      {
10360        6271(e, t, r) {
10361          r.d(t, { T: () => b, A: () => f });
10362          const n = new WeakMap();
10363          var i = r(7413);
10364          var s = r(7791);
10365          var o = r(7169),
10366            a = r(3350);
10367          var d = r(80),
10368            p = r(7850),
10369            c = r(1662);
10370          const u = {
10371            [d.S3]: {
10372              fpd: {
10373                priority: 99,
10374                fn(e, t) {
10375                  (0, i.D9)(e, t.ortb2);
10376                },
10377              },
10378              onlyOneClient: { priority: -99, fn: (0, p.i8)("ORTB request") },
10379              props: {
10380                fn(e, t) {
10381                  Object.assign(e, {
10382                    id: e.id || (0, i.lk)(),
10383                    test: e.test || 0,
10384                  });
10385                  const r = parseInt(t.timeout, 10);
10386                  isNaN(r) || (e.tmax = r);
10387                },
10388              },
10389            },
10390            [d.Tb]: {
10391              fpd: {
10392                priority: 99,
10393                fn(e, t) {
10394                  (0, i.D9)(e, t.ortb2Imp);
10395                },
10396              },
10397              id: {
10398                fn(e, t) {
10399                  e.id = t.bidId;
10400                },
10401              },
10402              banner: {
10403                fn: function (e, t, r) {
10404                  if (r.mediaType && "banner" !== r.mediaType) return;
10405                  const n = t?.mediaTypes?.banner;
10406                  if (n) {
10407                    const r = { topframe: !0 === (0, i.al)() ? 0 : 1 };
10408                    (n.sizes &&
10409                      null == t.ortb2Imp?.banner?.format &&
10410                      (r.format = (0, i.y$)(n.sizes).map(i.cf)),
10411                      n.hasOwnProperty("pos") && (r.pos = n.pos),
10412                      (e.banner = (0, i.D9)(r, e.banner)));
10413                  }
10414                },
10415              },
10416              secure: {
10417                fn(e, t) {
10418                  e.secure = e.secure ?? 1;
10419                },
10420              },
10421            },
10422            [d.WR]: {
10423              mediaType: { priority: 99, fn: o.K },
10424              banner: {
10425                fn: (function ({
10426                  createPixel: e = (e) =>
10427                    (0, i.Tz)(decodeURIComponent(e), i.Bk),
10428                } = {}) {
10429                  return function (t, r) {
10430                    "banner" === t.mediaType &&
10431                      (r.adm && r.nurl
10432                        ? (t.ad = e(r.nurl) + r.adm)
10433                        : r.adm
10434                          ? (t.ad = r.adm)
10435                          : r.nurl && (t.adUrl = r.nurl));
10436                  };
10437                })(),
10438              },
10439              props: {
10440                fn(e, t, r) {
10441                  (Object.entries({
10442                    requestId: r.bidRequest?.bidId,
10443                    seatBidId: t.id,
10444                    cpm: t.price,
10445                    currency: r.ortbResponse.cur || r.currency,
10446                    width: t.w,
10447                    height: t.h,
10448                    wratio: t.wratio,
10449                    hratio: t.hratio,
10450                    dealId: t.dealid,
10451                    creative_id: t.crid,
10452                    creativeId: t.crid,
10453                    burl: t.burl,
10454                    ttl: t.exp || r.ttl,
10455                    netRevenue: r.netRevenue,
10456                    duration: t.dur,
10457                  })
10458                    .filter(([e, t]) => void 0 !== t)
10459                    .forEach(([t, r]) => {
10460                      e[t] = r;
10461                    }),
10462                    e.meta || (e.meta = {}),
10463                    t.adomain && (e.meta.advertiserDomains = t.adomain),
10464                    t.ext?.dsa && (e.meta.dsa = t.ext.dsa),
10465                    t.cat &&
10466                      ((e.meta.primaryCatId = t.cat[0]),
10467                      (e.meta.secondaryCatIds = t.cat.slice(1))),
10468                    t.attr && (e.meta.attr = t.attr),
10469                    t.ext?.eventtrackers &&
10470                      (e.eventtrackers = (e.eventtrackers ?? []).concat(
10471                        t.ext.eventtrackers,
10472                      )),
10473                    t.cattax && (e.meta.cattax = t.cattax));
10474                },
10475              },
10476            },
10477          };
10478          ((u[d.Tb].native = {
10479            fn: function (e, t, r) {
10480              if (r.mediaType && "native" !== r.mediaType) return;
10481              let n = t.nativeOrtbRequest;
10482              n &&
10483                ((n = Object.assign({}, r.nativeRequest, n)),
10484                n.assets?.length
10485                  ? (e.native = (0, i.D9)(
10486                      {},
10487                      { request: JSON.stringify(n), ver: n.ver },
10488                      e.native,
10489                    ))
10490                  : (0, i.JE)(
10491                      "mediaTypes.native is set, but no assets were specified. Native request skipped.",
10492                      t,
10493                    ));
10494            },
10495          }),
10496            (u[d.WR].native = {
10497              fn: function (e, t) {
10498                if ("native" === e.mediaType) {
10499                  let r;
10500                  if (
10501                    ((r = "string" == typeof t.adm ? JSON.parse(t.adm) : t.adm),
10502                    !(0, a.Qd)(r) || !Array.isArray(r.assets))
10503                  )
10504                    throw new Error("ORTB native response contained no assets");
10505                  e.native = { ortb: r };
10506                }
10507              },
10508            }),
10509            (u[d.Tb].video = {
10510              fn: function (e, t, r) {
10511                if (r.mediaType && "video" !== r.mediaType) return;
10512                const n = t?.mediaTypes?.video;
10513                if (!(0, i.Im)(n)) {
10514                  const t = Object.fromEntries(
10515                    Object.entries(n).filter(([e]) => s.Zy.has(e)),
10516                  );
10517                  if (n.playerSize) {
10518                    const e = (0, i.y$)(n.playerSize).map(i.cf);
10519                    (e.length > 1 &&
10520                      (0, i.JE)(
10521                        "video request specifies more than one playerSize; all but the first will be ignored",
10522                      ),
10523                      Object.assign(t, e[0]));
10524                  }
10525                  e.video = (0, i.D9)(t, e.video);
10526                }
10527              },
10528            }),
10529            (u[d.WR].video = {
10530              fn: function (e, t, r) {
10531                "video" === e.mediaType &&
10532                  (r?.imp?.video?.w &&
10533                    r?.imp?.video?.h &&
10534                    ([e.playerWidth, e.playerHeight] = [
10535                      r.imp.video.w,
10536                      r.imp.video.h,
10537                    ]),
10538                  t.adm && (e.vastXml = t.adm),
10539                  t.nurl && (e.vastUrl = t.nurl));
10540              },
10541            }),
10542            (u[d.Tb].audio = {
10543              fn: function (e, t, r) {
10544                if (r.mediaType && "audio" !== r.mediaType) return;
10545                const n = t?.mediaTypes?.audio;
10546                if (!(0, i.Im)(n)) {
10547                  const t = Object.fromEntries(
10548                    Object.entries(n).filter(([e]) => c.Ai.has(e)),
10549                  );
10550                  e.audio = (0, i.D9)(t, e.audio);
10551                }
10552              },
10553            }),
10554            (u[d.WR].audio = {
10555              fn: function (e, t) {
10556                "audio" === e.mediaType &&
10557                  (t.adm && (e.vastXml = t.adm),
10558                  t.nurl && (e.vastUrl = t.nurl));
10559              },
10560            }));
10561          var m = r(4162);
10562          function f({
10563            context: e = {},
10564            processors: t = b,
10565            overrides: r = {},
10566            imp: s,
10567            request: o,
10568            bidResponse: a,
10569            response: p,
10570          } = {}) {
10571            const c = new WeakMap();
10572            function u(e, i, s, o) {
10573              let a;
10574              return function (...d) {
10575                return (
10576                  null == a &&
10577                    (a = (function () {
10578                      let a = s.bind(
10579                        this,
10580                        (function (e, t = {}) {
10581                          if (!n.has(e)) {
10582                            const t = Object.entries(e);
10583                            (t.sort((e, t) =>
10584                              (e = e[1].priority || 0) ===
10585                              (t = t[1].priority || 0)
10586                                ? 0
10587                                : e > t
10588                                  ? -1
10589                                  : 1,
10590                            ),
10591                              n.set(
10592                                e,
10593                                t.map(([e, t]) => [e, t.fn]),
10594                              ));
10595                          }
10596                          const r = n
10597                            .get(e)
10598                            .filter(([e]) => !t.hasOwnProperty(e) || t[e])
10599                            .map(function ([e, r]) {
10600                              return t.hasOwnProperty(e)
10601                                ? t[e].bind(this, r)
10602                                : r;
10603                            });
10604                          return function () {
10605                            const e = Array.from(arguments);
10606                            r.forEach((t) => {
10607                              t.apply(this, e);
10608                            });
10609                          };
10610                        })(t()[e] || {}, r[e] || {}),
10611                      );
10612                      return (
10613                        i && (a = i.bind(this, a)),
10614                        function (...e) {
10615                          try {
10616                            return a.apply(this, e);
10617                          } catch (t) {
10618                            o.call(this, t, ...e);
10619                          }
10620                        }
10621                      );
10622                    })()),
10623                  a.apply(this, d)
10624                );
10625              };
10626            }
10627            const m = u(
10628                d.Tb,
10629                s,
10630                function (e, t, r) {
10631                  const n = {};
10632                  return (e(n, t, r), n);
10633                },
10634                function (e, t, r) {
10635                  (0, i.vV)(
10636                    "Error while converting bidRequest to ORTB imp; request skipped.",
10637                    { error: e, bidRequest: t, context: r },
10638                  );
10639                },
10640              ),
10641              f = u(
10642                d.S3,
10643                o,
10644                function (e, t, r, n) {
10645                  const i = { imp: t };
10646                  return (e(i, r, n), i);
10647                },
10648                function (e, t, r, n) {
10649                  throw (
10650                    (0, i.vV)("Error while converting to ORTB request", {
10651                      error: e,
10652                      imps: t,
10653                      bidderRequest: r,
10654                      context: n,
10655                    }),
10656                    e
10657                  );
10658                },
10659              ),
10660              l = u(
10661                d.WR,
10662                a,
10663                function (e, t, r) {
10664                  const n = {};
10665                  return (e(n, t, r), n);
10666                },
10667                function (e, t, r) {
10668                  (0, i.vV)(
10669                    "Error while converting ORTB seatbid.bid to bi
10669dResponse; bid skipped.",
10670                    { error: e, bid: t, context: r },
10671                  );
10672                },
10673              ),
10674              y = u(
10675                d.Cf,
10676                p,
10677                function (e, t, r, n) {
10678                  const i = { bids: t };
10679                  return (e(i, r, n), i);
10680                },
10681                function (e, t, r, n) {
10682                  throw (
10683                    (0, i.vV)("Error while converting from ORTB response", {
10684                      error: e,
10685                      bidResponses: t,
10686                      ortbResponse: r,
10687                      context: n,
10688                    }),
10689                    e
10690                  );
10691                },
10692              );
10693            return {
10694              toORTB({ bidderRequest: t, bidRequests: r, context: n = {} }) {
10695                r = r || t.bids;
10696                const s = {
10697                  req: Object.assign({ bidRequests: r }, e, n),
10698                  imp: {},
10699                };
10700                s.req.impContext = s.imp;
10701                const o = r
10702                    .map((r) => {
10703                      const o = Object.assign(
10704                          { bidderRequest: t, reqContext: s.req },
10705                          e,
10706                          n,
10707                        ),
10708                        a = m(r, o);
10709                      if (null != a) {
10710                        if (a.hasOwnProperty("id"))
10711                          return (
10712                            Object.assign(o, { bidRequest: r, imp: a }),
10713                            (s.imp[a.id] = o),
10714                            a
10715                          );
10716                        (0, i.vV)(
10717                          "Converted ORTB imp does not specify an id, ignoring bid request",
10718                          r,
10719                          a,
10720                        );
10721                      }
10722                    })
10723                    .filter(Boolean),
10724                  a = f(o, t, s.req);
10725                return ((s.req.bidderRequest = t), null != a && c.set(a, s), a);
10726              },
10727              fromORTB({ request: e, response: t }) {
10728                const r = c.get(e);
10729                if (null == r)
10730                  throw new Error(
10731                    "ortbRequest passed to `fromORTB` must be the same object returned by `toORTB`",
10732                  );
10733                function n(t, r = {}) {
10734                  return Object.assign(t, { ortbRequest: e }, r);
10735                }
10736                const s = Object.fromEntries(
10737                    (e.imp || []).map((e) => [e.id, e]),
10738                  ),
10739                  o = (t?.seatbid || [])
10740                    .flatMap((e) =>
10741                      (e.bid || []).map((o) => {
10742                        if (
10743                          s.hasOwnProperty(o.impid) &&
10744                          r.imp.hasOwnProperty(o.impid)
10745                        )
10746                          return l(
10747                            o,
10748                            n(r.imp[o.impid], {
10749                              imp: s[o.impid],
10750                              seatbid: e,
10751                              ortbResponse: t,
10752                            }),
10753                          );
10754                        (0, i.vV)(
10755                          "ORTB response seatbid[].bid[].impid does not match any imp in request; ignoring bid",
10756                          o,
10757                        );
10758                      }),
10759                    )
10760                    .filter(Boolean);
10761                return y(o, t, n(r.req));
10762              },
10763            };
10764          }
10765          const b = (0, i.Bj)(() => (0, m.U)(u, (0, d.yB)(d.qN)));
10766        },
10767        4162(e, t, r) {
10768          r.d(t, { U: () => i });
10769          var n = r(80);
10770          function i(...e) {
10771            const t = e.shift(),
10772              r = e.length > 1 ? i(...e) : e[0];
10773            return Object.fromEntries(
10774              n.zt.map((e) => [e, Object.assign({}, t[e], r[e])]),
10775            );
10776          }
10777        },
10778        7169(e, t, r) {
10779          r.d(t, { K: () => i });
10780          const n = { 1: "banner", 2: "video", 4: "native" };
10781          function i(e, t, r) {
10782            if (e.mediaType) return;
10783            const i = r.mediaType;
10784            if (!i && !n.hasOwnProperty(t.mtype))
10785              throw new Error("Cannot determine mediaType for response");
10786            e.mediaType = i || n[t.mtype];
10787          }
10788          r.d(t, ["X", 0, n]);
10789        },
10790      },
10791    ]);
10792    (self.pbjsChunk = self.pbjsChunk || []).push([
10793      [139],
10794      {
10795        4338(s, e, r) {
10796          function i(s) {
10797            if (!s) return;
10798            let e = [];
10799            if (
10800              s.mediaTypes &&
10801              s.mediaTypes.banner &&
10802              Array.isArray(s.mediaTypes.banner.sizes)
10803            ) {
10804              const r = s.mediaTypes.banner.sizes;
10805              Array.isArray(r[0]) ? (e = r) : e.push(r);
10806            } else
10807              Array.isArray(s.sizes) &&
10808                (Array.isArray(s.sizes[0]) ? (e = s.sizes) : e.push(s.sizes));
10809            return e;
10810          }
10811          r.d(e, { up: () => i });
10812        },
10813      },
10814    ]);
10815    (self.pbjsChunk = self.pbjsChunk || []).push([
10816      [511],
10817      {
10818        9644(n, r, s) {
10819          s.d(r, { n: () => i });
10820          var e = s(8384);
10821          function i(n) {
10822            const r = e.$.getConfig("disableFingerprintingApis");
10823            return (
10824              Array.isArray(r) &&
10825              r.some((r) => String(r).toLowerCase() === n.toLowerCase())
10826            );
10827          }
10828        },
10829      },
10830    ]);
10831    (self.pbjsChunk = self.pbjsChunk || []).push([
10832      [504],
10833      {
10834        2074(e, r, i) {
10835          i.d(r, { m: () => u });
10836          var n = i(9644),
10837            t = i(7413);
10838          function u(e) {
10839            if ((0, n.n)("devicepixelratio")) return 1;
10840            try {
10841              return (0, t.x)(e).devicePixelRatio;
10842            } catch (e) {}
10843            return 1;
10844          }
10845        },
10846      },
10847    ]);
10848    (self.pbjsChunk = self.pbjsChunk || []).push([
10849      [618],
10850      {
10851        9400(e, i, t) {
10852          t.d(i, { m: () => l });
10853          var d = t(4162),
10854            r = t(80),
10855            n = t(3350),
10856            s = t(7413),
10857            a = t(7169);
10858          const b = { banner: "banner", native: "native", video: "video" };
10859          var o = t(6001),
10860            p = t(8384),
10861            c = t(3435);
10862          var f = t(1129);
10863          const u = {
10864            [r.S3]: {
10865              extPrebid: {
10866                fn: function (e, i) {
10867                  ((0, c.J)(
10868                    e,
10869                    "ext.prebid",
10870                    (0, s.D9)(
10871                      {
10872                        auctiontimestamp: i.auctionStart,
10873                        targeting: {
10874                          includewinners: !0,
10875                          includebidderkeys: !1,
10876                        },
10877                      },
10878                      e.ext?.prebid,
10879                    ),
10880                  ),
10881                    p.$.getConfig("debug") && (e.ext.prebid.debug = !0));
10882                },
10883              },
10884              extPrebidChannel: {
10885                fn: function (e) {
10886                  (0, c.J)(
10887                    e,
10888                    "ext.prebid.channel",
10889                    Object.assign(
10890                      { name: "pbjs", version: (0, f.m)().version },
10891                      e.ext?.prebid?.channel,
10892                    ),
10893                  );
10894                },
10895              },
10896              extPrebidAliases: {
10897                fn: function (e, i, t, { am: d = o.Ay } = {}) {
10898                  if (d.aliasRegistry[i.bidderCode]) {
10899                    const t = d.bidderRegistry[i.bidderCode];
10900                    if (!t || !t.getSpec().skipPbsAliasing) {
10901                      (0, c.J)(
10902                        e,
10903                        `ext.prebid.aliases.${i.bidderCode}`,
10904                        d.aliasRegistry[i.bidderCode],
10905                      );
10906                      const r =
10907                        p.$.getConfig(`gvlMapping.${i.bidderCode}`) ||
10908                        t?.getSpec?.().gvlid;
10909                      r &&
10910                        (0, c.J)(
10911                          e,
10912                          `ext.prebid.aliasgvlids.${i.bidderCode}`,
10913                          r,
10914                        );
10915                    }
10916                  }
10917                },
10918              },
10919              extPrebidPageViewIds: {
10920                fn: function (e, i) {
10921                  (0, c.J)(
10922                    e,
10923                    `ext.prebid.page_view_ids.${i.bidderCode}`,
10924                    i.pageViewId,
10925                  );
10926                },
10927              },
10928              extPrebidSafeRenderer: {
10929                fn: function (e, i) {
10930                  (0, c.J)(e, "ext.prebid.safeRenderer", !0);
10931                },
10932              },
10933            },
10934            [r.Tb]: {
10935              params: {
10936                fn: function (e, i) {
10937                  const t = i.params;
10938                  t && (0, c.J)(e, `ext.prebid.bidder.${i.bidder}`, t);
10939                },
10940              },
10941              adUnitCode: {
10942                fn: function (e, i) {
10943                  const t = i.adUnitCode;
10944                  t && (0, c.J)(e, "ext.prebid.adunitcode", t);
10945                },
10946              },
10947            },
10948            [r.WR]: {
10949              mediaType: {
10950                fn: function (e, i, t) {
10951                  let d = t.mediaType;
10952                  (d ||
10953                    ((d = a.X.hasOwnProperty(i.mtype)
10954                      ? a.X[i.mtype]
10955                      : i.ext?.prebid?.type),
10956                    b.hasOwnProperty(d) || (d = "banner")),
10957                    (e.mediaType = d));
10958                },
10959                priority: 99,
10960              },
10961              bidderCode: {
10962                fn(e, i, t) {
10963                  ((e.bidderCode = t.seatbid.seat),
10964                    (e.adapterCode =
10965                      i?.ext?.prebid?.meta?.adaptercode ||
10966                      t.bidRequest?.bidder ||
10967                      e.bidderCode));
10968                },
10969              },
10970              pbsBidId: {
10971                fn(e, i) {
10972                  const t = i?.ext?.prebid?.bidid;
10973                  (0, n.O8)(t) && (e.pbsBidId = t);
10974                },
10975              },
10976              adserverTargeting: {
10977                fn(e, i) {
10978                  const t = i?.ext?.prebid?.targeting;
10979                  (0, n.Qd)(t) && (e.adserverTargeting = t);
10980                },
10981              },
10982              extPrebidMeta: {
10983                fn(e, i) {
10984                  e.meta = (0, s.D9)({}, i?.ext?.prebid?.meta, e.meta);
10985                },
10986              },
10987              pbsWinTrackers: {
10988                fn: function (e, i) {
10989                  ((e.eventtrackers = e.eventtrackers || []),
10990                    [
10991                      [i.burl, 1],
10992                      [i?.ext?.prebid?.events?.win, 500],
10993                    ]
10994                      .filter(
10995                        ([i, t]) =>
10996                          i &&
10997                          null ==
10998                            e.eventtrackers.find(
10999                              ({ method: e, event: d, url: r }) =>
11000                                d === t && 1 === e && r === i,
11001                            ),
11002                      )
11003                      .forEach(([i, t]) => {
11004                        e.eventtrackers.push({ method: 1, event: t, url: i });
11005                      }));
11006                },
11007              },
11008              safeRenderer: {
11009                fn: function (e, i) {
11010                  const { rendererUrl: t } = i.ext?.prebid?.meta || {};
11011                  t && (e.safeRenderer = { url: t });
11012                },
11013              },
11014            },
11015            [r.Cf]: {
11016              serverSideStats: {
11017                fn(e, i, t) {
11018                  const d = t.bidderRequest?.bidderCode,
11019                    r = i?.ext;
11020                  if (!r) return;
11021                  const n = {
11022                    errors: "serverErrors",
11023                    responsetimemillis: "serverResponseTimeMs",
11024                  };
11025                  Object.entries(r).forEach(([e, i]) => {
11026                    if (n[e]) {
11027                      if (!d) return;
11028                      const r = i?.[d];
11029                      if (void 0 !== r) {
11030                        const i = n[e];
11031                        ((t.bidderRequest[i] = r),
11032                          t.bidRequests?.forEach((e) => {
11033                            e[i] = r;
11034                          }));
11035                      }
11036                    } else
11037                      void 0 !== i &&
11038                        ((t.bidderRequest.pbsExt =
11039                          t.bidderRequest.pbsExt || {}),
11040                        (t.bidderRequest.pbsExt[e] = i));
11041                  });
11042                },
11043              },
11044            },
11045          };
11046          u[r.WR].videoCache = {
11047            fn: function (e, i) {
11048              if ("video" === e.mediaType) {
11049                let { cacheId: t, url: d } =
11050                  i?.ext?.prebid?.cache?.vastXml ?? {};
11051                if (!t || !d) {
11052                  const {
11053                    hb_uuid: e,
11054                    hb_cache_host: r,
11055                    hb_cache_path: n,
11056                  } = i?.ext?.prebid?.targeting ?? {};
11057                  e && r && n && ((t = e), (d = `https://${r}${n}?uuid=${e}`));
11058                }
11059                t && d && Object.assign(e, { videoCacheKey: t, vastUrl: d });
11060              }
11061            },
11062            priority: -10,
11063          };
11064          var v = t(6271);
11065          const l = (0, s.Bj)(() => (0, d.U)((0, v.T)(), u, (0, r.yB)(r.e4)));
11066        },
11067      },
11068    ]);
11069    (self.pbjsChunk = self.pbjsChunk || []).push([
11070      [550],
11071      {
11072        9446(p, n, e) {
11073          function t(p, n, e) {
11074            const t = {};
11075            return (
11076              p &&
11077                ("boolean" == typeof p.gdprApplies &&
11078                  (t.gdpr = Number(p.gdprApplies)),
11079                "string" == typeof p.consentString &&
11080                  (t.gdpr_consent = p.consentString)),
11081              n && (t.us_privacy = encodeURIComponent(n)),
11082              e?.gppString &&
11083                ((t.gpp = e.gppString),
11084                (t.gpp_sid = e.applicableSections?.toString())),
11085              t
11086            );
11087          }
11088          e.d(n, { d: () => t });
11089        },
11090      },
11091    ]);
11092    (self.pbjsChunk = self.pbjsChunk || []).push([
11093      [965],
11094      {
11095        8960(e, t, n) {
11096          n.d(t, { S_: () => a });
11097          var r = n(6901),
11098            i = n(7413),
11099            o = n(5262);
11100          function l(e) {
11101            let t = (0, o.o)(e);
11102            if (!t)
11103              return void (0, i.JE)(
11104                `Magnite: unable to find ad unit element with id "${e.adUnitCode}" for rendering.`,
11105              );
11106            const n = t.firstElementChild;
11107            ("DIV" === n?.tagName && (t = n),
11108              (function (e) {
11109                const t = e.querySelector("div[id^='google_ads']");
11110                t && t.style.setProperty("display", "none");
11111              })(t),
11112              (function (e) {
11113                const t = e.querySelector("script[id^='sas_script']"),
11114                  n = t && t.nextSibling;
11115                n &&
11116                  "iframe" === n.localName &&
11117                  n.style.setProperty("display", "none");
11118              })(t));
11119            const r = e.renderer.getConfig();
11120            e.renderer.push(() => {
11121              globalThis.MagniteApex.renderAd({
11122                width: e.width,
11123                height: e.height,
11124                vastUrl: e.vastUrl,
11125                placement: {
11126                  attachTo: t,
11127                  align: r.align || "center",
11128                  position: r.position || "prepend",
11129                },
11130                closeButton: r.closeButton || !1,
11131                label: r.label,
11132                replay: r.replay ?? !0,
11133              });
11134            });
11135          }
11136          function a(e, t, n) {
11137            const o = r.A4.install({
11138              id: e.adId,
11139              url:
11140                t || "https://video-outstream.rubiconproject.com/apex-2.3.7.js",
11141              config: n || {},
11142              loaded: !1,
11143              adUnitCode: e.adUnitCode,
11144            });
11145            try {
11146              o.setRender(l);
11147            } catch (e) {
11148              (0, i.JE)("Prebid Error calling setRender on renderer", e);
11149            }
11150            return o;
11151          }
11152        },
11153      },
11154    ]);
11155    (self.pbjsChunk = self.pbjsChunk || []).push([
11156      [247],
11157      {
11158        9288(r, e, a) {
11159          a.d(e, { D: () => o });
11160          var s = a(7850),
11161            t = a(8928);
11162          const n = ["user.keywords"].concat(
11163            s.Dy.flatMap((r) =>
11164              ["keywords", "content.keywords"].map((e) => `${r}.${e}`),
11165            ),
11166          );
11167          function o(r, ...e) {
11168            return (function (...r) {
11169              const e = new Set();
11170              return (
11171                r
11172                  .filter((r) => r)
11173                  .flatMap((r) => (Array.isArray(r) ? r : r.split(",")))
11174                  .map((r) => r.replace(/^\s*/, "").replace(/\s*$/, ""))
11175                  .filter((r) => r)
11176                  .forEach((r) => e.add(r)),
11177                Array.from(e.keys())
11178              );
11179            })(...n.map((e) => (0, t.A)(r, e)), ...e);
11180          }
11181        },
11182      },
11183    ]);
11184    (self.pbjsChunk = self.pbjsChunk || []).push([
11185      [170],
11186      {
11187        8700(e, t, i) {
11188          var n = i(1068),
11189            r = i(1129),
11190            o = i(7413),
11191            a = i(8928),
11192            s = i(3435),
11193            d = i(3350),
11194            p = i(8384),
11195            c = i(2354),
11196            u = i(2682),
11197            l = i(7791),
11198            f = i(6901),
11199            m = i(828),
11200            g = i(5262);
11201          const x = {};
11202          function b(e, t) {
11203            if (x[e]) return x[e];
11204            const i = (0, g.o)(t),
11205              n = i?.id ? i.id : (0, m.p)(e).divId;
11206            return ((x[e] = n), n);
11207          }
11208          const v = "ix",
11209            h = ["banner", "video", "native"],
11210            y = [144, 144],
11211            I = { JPY: 1 },
11212            A = "p",
11213            w = "x",
11214            C = {
11215              SITE: [
11216                "id",
11217                "name",
11218                "domain",
11219                "cat",
11220                "sectioncat",
11221                "pagecat",
11222                "page",
11223                "ref",
11224                "search",
11225                "mobile",
11226                "privacypolicy",
11227                "publisher",
11228                "content",
11229                "keywords",
11230                "ext",
11231              ],
11232              USER: [
11233                "id",
11234                "buyeruid",
11235                "yob",
11236                "gender",
11237                "keywords",
11238                "customdata",
11239                "geo",
11240                "data",
11241                "ext",
11242              ],
11243            },
11244            O = {
11245              "liveramp.com": "idl",
11246              "netid.de": "NETID",
11247              "neustar.biz": "fabrickId",
11248              "zeotap.com": "zeotapIdPlus",
11249              "uidapi.com": "UID2",
11250              "adserver.org": "TDID",
11251            },
11252            U = ["mimes", "minduration", "maxduration"],
11253            S = [
11254              "mimes",
11255              "minduration",
11256              "maxduration",
11257              "protocols",
11258              "protocol",
11259              "startdelay",
11260              "placement",
11261              "linearity",
11262              "skip",
11263              "skipmin",
11264              "skipafter",
11265              "sequence",
11266              "battr",
11267              "maxextended",
11268              "minbitrate",
11269              "maxbitrate",
11270              "boxingallowed",
11271              "playbackmethod",
11272              "playbackend",
11273              "delivery",
11274              "pos",
11275              "companionad",
11276              "api",
11277              "companiontype",
11278              "ext",
11279              "playerSize",
11280              "w",
11281              "h",
11282              "plcmt",
11283            ],
11284            T = `${v}_features`,
11285            P = (0, c.vM)({ bidderCode: v }),
11286            E = {
11287              REQUESTED_FEATURE_TOGGLES: [],
11288              featureToggles: {},
11289              isFeatureEnabled: function (e) {
11290                return (0, a.A)(
11291                  this.featureToggles,
11292                  `features.${e}.activated`,
11293                  !1,
11294                );
11295              },
11296              getFeatureToggles: function () {
11297                if (P.localStorageIsEnabled()) {
11298                  const e = (0, o.$l)(P.getDataFromLocalStorage(T));
11299                  (0, a.A)(e, "expiry") && e.expiry >= new Date().getTime()
11300                    ? (this.featureToggles = e)
11301                    : this.clearFeatureToggles();
11302                }
11303              },
11304              setFeatureToggles: function (e) {
11305                const t = e.body,
11306                  i = new Date(),
11307                  n = (0, a.A)(t, "ext.features");
11308                n &&
11309                  ((this.featureToggles = {
11310                    expiry: i.setHours(i.getHours() + 1),
11311                    features: n,
11312                  }),
11313                  P.localStorageIsEnabled() &&
11314                    P.setDataInLocalStorage(
11315                      T,
11316                      JSON.stringify(this.featureToggles),
11317                    ));
11318              },
11319              clearFeatureToggles: function () {
11320                ((this.featureToggles = {}),
11321                  P.localStorageIsEnabled() && P.removeDataFromLocalStorage(T));
11322              },
11323            };
11324          let J = 0,
11325            D = "",
11326            k = "",
11327            F = !1;
11328          const _ = 2;
11329          function j(e) {
11330            const t = z(e, "video"),
11331              i = (0, a.A)(e, "mediaTypes.video"),
11332              n = (0, a.A)(e, "params.video");
11333            if (q(i, n).length) return {};
11334            t.video = n ? (0, d.Go)(e.params.video) : {};
11335            const r = (0, a.A)(e, "ortb2Imp.ext.tid");
11336            (r && (0, s.J)(t, "ext.tid", r),
11337              (function (e, t) {
11338                if ((0, a.A)(t, "mediaTypes.video.context") === l.H6) {
11339                  let i = (0, a.A)(t, "mediaTypes.video.renderer");
11340                  if (
11341                    (i || (i = (0, a.A)(t, "renderer")),
11342                    (0, a.A)(t, "ortb2.source.ext.schain", !1))
11343                  )
11344                    e.displaymanager = "pbjs_wrapper";
11345                  else if (i && "object" == typeof i) {
11346                    if (void 0 !== i.url) {
11347                      let t;
11348                      try {
11349                        t = new URL(i.url).hostname;
11350                      } catch {
11351                        return;
11352                      }
11353                      t.includes("js-sec.indexww")
11354                        ? (e.displaymanager = "ix")
11355                        : (e.displaymanager = i.url);
11356                    }
11357                  } else e.displaymanager = "ix";
11358                }
11359              })(t, e),
11360              M(t, e));
11361            for (const e in i)
11362              -1 === S.indexOf(e) ||
11363                t.video.hasOwnProperty(e) ||
11364                (t.video[e] = i[e]);
11365            if (t.video.minduration > t.video.maxduration)
11366              return (
11367                (0, o.vV)(
11368                  `IX Bid Adapter: video minduration [${t.video.minduration}] cannot be greater than video maxduration [${t.video.maxduration}]`,
11369                ),
11370                {}
11371              );
11372            const p = (n && n.context) || (i && i.context);
11373            if (
11374              ((function (e) {
11375                e.video.hasOwnProperty("plcmt") &&
11376                  (!(0, d.Fq)(e.video.plcmt) ||
11377                    e.video.plcmt < 1 ||
11378                    e.video.plcmt > 4) &&
11379                  ((0, o.JE)(
11380                    `IX Bid Adapter: video.plcmt [${e.video.plcmt}] must be an integer between 1-4 inclusive`,
11381                  ),
11382                  delete e.video.plcmt);
11383              })(t),
11384              p &&
11385                !t.video.hasOwnProperty("placement") &&
11386                (p === l.mn
11387                  ? (t.video.placement = 1)
11388                  : p === l.H6
11389                    ? (0, a.A)(n, "playerConfig.floatOnScroll")
11390                      ? (t.video.placement = 5)
11391                      : ((t.video.placement = 3), (F = !0))
11392                    : (0, o.JE)(
11393                        `IX Bid Adapter: Video context '${p}' is not supported`,
11394                      )),
11395              !t.video.w || !t.video.h)
11396            ) {
11397              const i =
11398                N((0, a.A)(t, "video.playerSize")) ||
11399                N((0, a.A)(e, "params.size"));
11400              if (!i)
11401                return (
11402                  (0, o.JE)(
11403                    "IX Bid Adapter: Video size is missing in [mediaTypes.video]",
11404                  ),
11405                  {}
11406                );
11407              ((t.video.w = i[0]), (t.video.h = i[1]));
11408            }
11409            return (R(e, t, "video"), t);
11410          }
11411          function z(e, t) {
11412            const i = {};
11413            if (
11414              ((i.id = e.bidId),
11415              oe() &&
11416                (0, a.A)(e, "params.externalId") &&
11417                (0, s.J)(i, "ext.externalID", e.params.externalId),
11418              (0, a.A)(e, `params.${t}.siteId`) &&
11419                !isNaN(Number(e.params[t].siteId)))
11420            )
11421              switch (t) {
11422                case "banner":
11423                  (0, s.J)(i, "ext.siteID", e.params.banner.siteId.toString());
11424                  break;
11425                case "video":
11426                  (0, s.J)(i, "ext.siteID", e.params.video.siteId.toString());
11427                  break;
11428                case "native":
11429                  (0, s.J)(i, "ext.siteID", e.params.native.siteId.toString());
11430              }
11431            else
11432              e.params.siteId &&
11433                (0, s.J)(i, "ext.siteID", e.params.siteId.toString());
11434            return (
11435              !e.params.hasOwnProperty("id") ||
11436                ("string" != typeof e.params.id &&
11437                  "number" != typeof e.params.id) ||
11438                (0, s.J)(i, "ext.sid", String(e.params.id)),
11439              i
11440            );
11441          }
11442          function R(e, t, i) {
11443            let n = null,
11444              r = null;
11445            if (
11446              (e.params.bidFloor &&
11447                e.params.bidFloorCur &&
11448                (n = {
11449                  floor: e.params.bidFloor,
11450                  currency: e.params.bidFloorCur,
11451                }),
11452              (0, d.fp)(e.getFloor))
11453            ) {
11454              let n = "*",
11455                a = "*";
11456              if (i && (0, o.gR)(h, i)) {
11457                const { w: e, h: r } = t[i];
11458                ((n = i), (a = [e, r]));
11459              }
11460              try {
11461                r = e.getFloor({ mediaType: n, size: a });
11462              } catch (e) {
11463                (0, o.JE)(
11464                  "priceFloors module call getFloor failed, error : ",
11465                  e,
11466                );
11467              }
11468            }
11469            let a = !1;
11470            (r
11471              ? ((t.bidfloor = r.floor),
11472                (t.bidfloorcur = r.currency),
11473                (0, s.J)(t, "ext.fl", A),
11474                (a = !0))
11475              : n &&
11476                ((t.bidfloor = n.floor),
11477                (t.bidfloorcur = n.currency),
11478                (0, s.J)(t, "ext.fl", w),
11479                (a = !0)),
11480              a &&
11481                ("banner" === i
11482                  ? ((0, s.J)(t, "banner.ext.bidfloor", t.bidfloor),
11483                    (0, s.J)(t, "banner.ext.fl", t.ext.fl))
11484                  : "video" === i
11485                    ? ((0, s.J)(t, "video.ext.bidfloor", t.bidfloor),
11486                      (0, s.J)(t, "video.ext.fl", t.ext.fl))
11487                    : ((0, s.J)(t, "native.ext.bidfloor", t.bidfloor),
11488                      (0, s.J)(t, "native.ext.fl", t.ext.fl))));
11489          }
11490          function B(e, t, i) {
11491            const n = {},
11492              r = !(!(0, a.A)(e, "exp") || !(0, d.Fq)(e.exp)),
11493              s = (0, a.A)(e, "dealid") || (0, a.A)(e, "ext.dealid");
11494            (I.hasOwnProperty(t)
11495              ? (n.cpm = e.price / I[t])
11496              : (n.cpm = e.price / 100),
11497              (n.requestId = e.impid),
11498              s && (n.dealId = s),
11499              (n.netRevenue = true),
11500              (n.currency = t),
11501              (n.creativeId = e.hasOwnProperty("crid") ? e.crid : "-"),
11502              Number(e.mtype) !== _ || ((!e.ext || e.ext.vasturl) && e.ext)
11503                ? e.ext && e.ext.vasturl && (n.vastUrl = e.ext.vasturl)
11504                : (n.vastXml = e.adm));
11505            let p = null;
11506            if (
11507              "string" == typeof e.adm &&
11508              "{" === e.adm[0] &&
11509              "}" === e.adm[e.adm.length - 1]
11510            )
11511              try {
11512                p = JSON.parse(e.adm);
11513              } catch (e) {
11514                (0, o.JE)("adm looks like JSON but failed to parse: ", e);
11515              }
11516            return (
11517              (e.ext && e.ext.vasturl) || Number(e.mtype) === _
11518                ? ((n.width = i.video.w),
11519                  (n.height = i.video.h),
11520                  (n.mediaType = "video"),
11521                  (n.mediaTypes = i.mediaTypes),
11522                  (n.ttl = r ? e.exp : 3600))
11523                : p && p.native
11524                  ? ((n.native = { ortb: p.native }),
11525                    (n.width = e.w ? e.w : 1),
11526                    (n.height = e.h ? e.h : 1),
11527                    (n.mediaType = "native"),
11528                    (n.ttl = r ? e.exp : 3600))
11529                  : ((n.ad = e.adm),
11530                    (n.width = e.w),
11531                    (n.height = e.h),
11532                    (n.mediaType = "banner"),
11533                    (n.ttl = r ? e.exp : 300)),
11534              (n.meta = {}),
11535              (n.meta.networkId = (0, a.A)(e, "ext.dspid")),
11536              (n.meta.brandId = (0, a.A)(e, "ext.advbrandid")),
11537              (n.meta.brandName = (0, a.A)(e, "ext.advbrand")),
11538              e.adomain &&
11539                e.adomain.length > 0 &&
11540                (n.meta.advertiserDomains = e.adomain),
11541              e.ext?.dsa && (n.meta.dsa = e.ext.dsa),
11542              e.ext?.ibv && ((n.ext = n.ext || {}), (n.ext.ibv = e.ext.ibv)),
11543              n
11544            );
11545          }
11546          function $(e) {
11547            return (
11548              Array.isArray(e) &&
11549              2 === e.length &&
11550              (0, d.Fq)(e[0]) &&
11551              (0, d.Fq)(e[1])
11552            );
11553          }
11554          function X(e = [], t = []) {
11555            if ($(e)) return e[0] === t[0] && e[1] === t[1];
11556            for (let i = 0; i < e.length; i++)
11557              if (e[i][0] === t[0] && e[i][1] === t[1]) return !0;
11558            return !1;
11559          }
11560          function q(e, t) {
11561            const i = [];
11562            e ||
11563              (0, o.JE)(
11564                "IX Bid Adapter: mediaTypes.video is the preferred location for video params in ad unit",
11565              );
11566            for (const n of U) {
11567              const r = e && e.hasOwnProperty(n),
11568                o = t && t.hasOwnProperty(n);
11569              r ||
11570                o ||
11571                i.push(
11572                  `IX Bid Adapter: ${n} is not included in either the adunit or params level`,
11573                );
11574            }
11575            const n = e && e.hasOwnProperty("protocol"),
11576              r = e && e.hasOwnProperty("protocols"),
11577              a = t && t.hasOwnProperty("protocol"),
11578              s = t && t.hasOwnProperty("protocols");
11579            return (
11580              n ||
11581                r ||
11582                a ||
11583                s ||
11584                i.push(
11585                  "IX Bid Adapter: protocol/protcols is not included in either the adunit or params level",
11586                ),
11587              i
11588            );
11589          }
11590          function N(e = []) {
11591            return $(e) ? e : !!$(e[0]) && e[0];
11592          }
11593          function L(e, t, i) {
11594            if (!e) return;
11595            return {
11596              ...i.find((t) => t.bidId === e),
11597              ...t.find((t) => t.id === e),
11598            };
11599          }
11600          function V(e, t, i, n) {
11601            const r = "https://htlb.casalemedia.com/openrtb/pbjs",
11602              c = (function (e) {
11603                const t = [],
11604                  i = {};
11605                if ((0, d.cy)(e))
11606                  for (const n of e) {
11607                    const e = O.hasOwnProperty(n.source);
11608                    if (
11609                      (0, a.A)(n, "uids.0") &&
11610                      ((i[n.source] = !0),
11611                      e &&
11612                        "" !== O[n.source] &&
11613                        (n.uids[0].ext = { rtiPartner: O[n.source] }),
11614                      t.push(n),
11615                      t.length >= 50)
11616                    )
11617                      break;
11618                  }
11619                return { toSend: t, seenSources: i };
11620              })((0, a.A)(e, "0.userIdAsEids")),
11621              u = c.toSend;
11622            (function (e) {
11623              const t = e?.gdprConsent;
11624              if (!0 === t?.gdprApplies && !t.consentString) return !1;
11625              return !0;
11626            })(t) &&
11627              window.headertag &&
11628              "function" == typeof window.headertag.getIdentityInfo &&
11629              (function (e, t) {
11630                const i = window.headertag.getIdentityInfo();
11631                if (i && "object" == typeof i)
11632                  for (const n in i) {
11633                    if (e.length >= 50) return;
11634                    if (i.hasOwnProperty(n)) {
11635                      const r = i[n];
11636                      !r.responsePending &&
11637                        r.data &&
11638                        "object" == typeof r.data &&
11639                        Object.keys(r.data).length &&
11640                        !t.seenSources[r.data.source] &&
11641                        e.push(r.data);
11642                    }
11643                  }
11644              })(u, c);
11645            const l = [];
11646            let f = (function (e) {
11647              const t = {};
11648              return (
11649                (t.id = e[0].bidderRequestId.toString()),
11650                (t.site = {}),
11651                (t.ext = {}),
11652                (t.ext.source = "prebid"),
11653                (t.ext.ixdiag = {}),
11654                (t.ext.ixdiag.ls = P.localStorageIsEnabled()),
11655                (t.imp = []),
11656                (t.at = 1),
11657                t
11658              );
11659            })(e);
11660            f = (function (e, t) {
11661              t.length > 0 &&
11662                ((e.ext.features = {}),
11663                t.forEach((t) => {
11664                  e.ext.features[t] = { activated: E.isFeatureEnabled(t) };
11665                }));
11666              return e;
11667            })(f, E.REQUESTED_FEATURE_TOGGLES);
11668            const m = (function (e) {
11669              var t = e
11670                .map((e) => e.adUnitCode)
11671                .filter((e, t, i) => i.indexOf(e) === t);
11672              const i = (0, a.A)(e, "0.userIdAsEids", []),
11673                n = {
11674                  mfu: 0,
11675                  bu: 0,
11676                  iu: 0,
11677                  nu: 0,
11678                  ou: 0,
11679                  allu: 0,
11680                  ren: !1,
11681                  version: "11.26.0-pre",
11682                  url: window.location.href.split("?")[0],
11683                  vpd: F,
11684                  eidLength: i.length,
11685                };
11686              for (const i of t) {
11687                const t = e.filter((e) =>
11687 e.adUnitCode === i)[0];
11688                (0, a.A)(t, "mediaTypes") &&
11689                  (Object.keys(t.mediaTypes).length > 1 && n.mfu++,
11690                  (0, a.A)(t, "mediaTypes.native") && n.nu++,
11691                  (0, a.A)(t, "mediaTypes.banner") && n.bu++,
11692                  "outstream" === (0, a.A)(t, "mediaTypes.video.context") &&
11693                    (n.ou++, re(t) && (n.ren = !0)),
11694                  "instream" === (0, a.A)(t, "mediaTypes.video.context") &&
11695                    n.iu++,
11696                  n.allu++);
11697              }
11698              return n;
11699            })(e);
11700            for (const e in m) f.ext.ixdiag[e] = m[e];
11701            ((f = (function (e, t, i, n, r) {
11702              const o = (0, a.A)(t, "timeout");
11703              o && (e.ext.ixdiag.tmax = o);
11704              p.$.getConfig("userSync") &&
11705                (e.ext.ixdiag.syncsPerBidder =
11706                  p.$.getConfig("userSync").syncsPerBidder);
11707              ((e.ext.ixdiag.imps = Object.keys(i).length),
11708                (e.source = { tid: t?.ortb2?.source?.tid }));
11709              const s = n[0]?.ortb2?.source?.ext?.schain;
11710              s &&
11711                ((e.source = e.source || {}),
11712                (e.source.ext = e.source.ext || {}),
11713                (e.source.ext.schain = s));
11714              r.length > 0 && ((e.user = {}), (e.user.eids = r));
11715              document.referrer &&
11716                "" !== document.referrer &&
11717                (e.site.ref = document.referrer);
11718              return e;
11719            })(f, t, i, e, u)),
11720              (f = (function (e, t) {
11721                if (t) {
11722                  (t.gdprConsent &&
11723                    ((D = t.gdprConsent),
11724                    D.hasOwnProperty("gdprApplies") &&
11725                      (e.regs = { ext: { gdpr: D.gdprApplies ? 1 : 0 } }),
11726                    D.hasOwnProperty("consentString") &&
11727                      ((e.user = e.user || {}),
11728                      (e.user.ext = { consent: D.consentString || "" }),
11729                      D.hasOwnProperty("addtlConsent") &&
11730                        D.addtlConsent &&
11731                        (e.user.ext.consented_providers_settings = {
11732                          addtl_consent: D.addtlConsent,
11733                        }))),
11734                    t.uspConsent &&
11735                      ((0, s.J)(e, "regs.ext.us_privacy", t.uspConsent),
11736                      (k = t.uspConsent)));
11737                  const i = (0, a.A)(t, "refererInfo.page");
11738                  (i && (e.site.page = i),
11739                    t.gppConsent &&
11740                      ((0, s.J)(e, "regs.gpp", t.gppConsent.gppString),
11741                      (0, s.J)(
11742                        e,
11743                        "regs.gpp_sid",
11744                        t.gppConsent.applicableSections,
11745                      )));
11746                }
11747                p.$.getConfig("coppa") && (0, s.J)(e, "regs.coppa", 1);
11748                return e;
11749              })(f, t)));
11750            const g = {};
11751            e[0].params.siteId && ((J = e[0].params.siteId), (g.s = J));
11752            const x = Object.keys(i);
11753            let b = !1;
11754            for (let n = 0; n < x.length && !(l.length >= 4); n++) {
11755              f = G(i, x, f, n);
11756              const s = (0, a.A)(t, "ortb2") || {},
11757                c = { ...(s.site || s.context) };
11758              c.page = H(t);
11759              const u = { ...s.user };
11760              ((0, o.Im)(s) ||
11761                b ||
11762                ((f = Q(t, f, s, c, u)),
11763                (f.site = (0, o.D9)({}, f.site, c)),
11764                (f.user = (0, o.D9)({}, f.user, u)),
11765                (b = !0)),
11766                (f = W(i, f, x, n, g, r)));
11767              const m = n === x.length - 1;
11768              if (((f = ue(f)), (f = de(f)), (f = pe(f)), m)) {
11769                let t = `${r}?`;
11770                (0 !== J && (t += `s=${J}`),
11771                  oe() &&
11772                    ((t += 0 !== J ? "&" : ""),
11773                    (t += `p=${p.$.getConfig("exchangeId")}`)),
11774                  l.push({
11775                    method: "POST",
11776                    url: t,
11777                    data: (0, d.Go)(f),
11778                    options: { contentType: "text/plain", withCredentials: !0 },
11779                    validBidRequests: e,
11780                  }),
11781                  (f.imp = []),
11782                  (b = !1));
11783              }
11784            }
11785            return l;
11786          }
11787          function G(e, t, i, n) {
11788            const r = e[t[n]],
11789              { missingImps: o = [], ixImps: p = [] } = r,
11790              c = { ixImps: p, missingBannerImpressions: o },
11791              u = Object.keys(c)
11792                .map((e) => c[e])
11793                .filter((e) => Array.isArray(e))
11794                .reduce((e, t) => e.concat(...t), []),
11795              l = e[t[n]].gpid,
11796              f = e[t[n]].dfp_ad_unit_code,
11797              m = e[t[n]].tid,
11798              g = e[t[n]].sid,
11799              x = u.filter((e) => "banner" in e),
11800              b = u.filter((e) => !("banner" in e));
11801            if (x.length > 0) {
11802              const r = x.reduce(
11803                (e, t) => (
11804                  e[t.adunitCode] || (e[t.adunitCode] = []),
11805                  e[t.adunitCode].push(t),
11806                  e
11807                ),
11808                {},
11809              );
11810              for (const o in r) {
11811                const p = r[o],
11812                  {
11813                    id: c,
11814                    banner: { topframe: u },
11815                  } = p[0],
11816                  x = (0, a.A)(p[0], "ext.externalID"),
11817                  b = {
11818                    id: c,
11819                    banner: {
11820                      topframe: u,
11821                      format: p.map(({ banner: { w: e, h: t }, ext: i }) => ({
11822                        w: e,
11823                        h: t,
11824                        ext: i,
11825                      })),
11826                    },
11827                  };
11828                for (let e = 0; e < b.banner.format.length; e++) {
11829                  (null != b.banner.format[e].ext &&
11830                    (null != b.banner.format[e].ext.sid &&
11831                      delete b.banner.format[e].ext.sid,
11832                    null != b.banner.format[e].ext.externalID &&
11833                      delete b.banner.format[e].ext.externalID),
11834                    "bidfloor" in p[e] &&
11835                      (b.banner.format[e].ext.bidfloor = p[e].bidfloor));
11836                  const t = b.banner.format[e].ext;
11837                  t &&
11838                    0 === Object.keys(t).length &&
11839                    delete b.banner.format[e].ext;
11840                }
11841                const v = e[t[n]].pos;
11842                ((0, d.Fq)(v) && (b.banner.pos = v),
11843                  (f || l || m || g || x) &&
11844                    ((b.ext = {}),
11845                    (b.ext.dfp_ad_unit_code = f),
11846                    (b.ext.gpid = l),
11847                    (b.ext.tid = m),
11848                    (b.ext.sid = g),
11849                    (b.ext.externalID = x)),
11850                  "bidfloor" in p[0] && (b.bidfloor = p[0].bidfloor),
11851                  "bidfloorcur" in p[0] && (b.bidfloorcur = p[0].bidfloorcur));
11852                const h = e[t[n]].adUnitFPD;
11853                (h && (0, s.J)(b, "ext.data", h), i.imp.push(b));
11854              }
11855            }
11856            return (
11857              b.length > 0 &&
11858                b.forEach((e) => {
11859                  if ((l && (0, s.J)(e, "ext.gpid", l), i.imp.length > 0)) {
11860                    let t = !1;
11861                    (i.imp.forEach((n, r) => {
11862                      e.id === n.id && "video" in e
11863                        ? ((n.video = e.video),
11864                          (n.video.ext = Object.assign({}, e.video.ext, e.ext)),
11865                          (0, a.A)(n, "video.ext.bidfloor", !1) &&
11866                            (0, a.A)(n, "bidfloor", !1) &&
11867                            n.video.ext.bidfloor < n.bidfloor &&
11868                            (n.bidfloor = n.video.ext.bidfloor),
11869                          !(0, a.A)(n, "ext.siteID", !1) &&
11870                            (0, a.A)(e, "video.ext.siteID") &&
11871                            ((0, s.J)(n, "ext.siteID", e.video.ext.siteID),
11872                            (0, s.J)(i, "ext.ixdiag.usid", !0)),
11873                          (t = !0))
11874                        : e.id === n.id &&
11875                          "native" in e &&
11876                          ((n.native = e.native),
11877                          (n.native.ext = Object.assign(
11878                            {},
11879                            e.native.ext,
11880                            e.ext,
11881                          )),
11882                          (0, a.A)(n, "native.ext.bidfloor", !1) &&
11883                            (0, a.A)(n, "bidfloor", !1) &&
11884                            n.native.ext.bidfloor < n.bidfloor &&
11885                            (n.bidfloor = n.native.ext.bidfloor),
11886                          !(0, a.A)(n, "ext.siteID", !1) &&
11887                            (0, a.A)(e, "native.ext.siteID", !1) &&
11888                            ((0, s.J)(n, "ext.siteID", e.native.ext.siteID),
11889                            (0, s.J)(i, "ext.ixdiag.usid", !0)),
11890                          (t = !0));
11891                    }),
11892                      t || i.imp.push(e));
11893                  } else i.imp.push(e);
11894                }),
11895              i
11896            );
11897          }
11898          function H(e) {
11899            const t = (e && e.bidderCode) || "ix",
11900              i = p.$.getConfig(t);
11901            let n;
11902            if (
11903              ((n = (0, a.A)(e, "ortb2.site.page")
11904                ? e.ortb2.site.page
11905                : (0, a.A)(e, "refererInfo.page")),
11906              i && "object" == typeof i.firstPartyData)
11907            ) {
11908              return (function (e, t, i) {
11909                let n;
11910                try {
11911                  n = new URL(t);
11912                } catch (i) {
11913                  ((0, o.JE)(
11914                    `IX Bid Adapter: Invalid URL set in ortb2.site.page: ${t}. Using referer URL instead.`,
11915                  ),
11916                    (n = new URL((0, a.A)(e, "refererInfo.page"))));
11917                }
11918                const r = new URLSearchParams(n.search);
11919                for (const [e, t] of Object.entries(i))
11920                  r.has(e) || r.append(e, t);
11921                return ((n.search = r.toString()), n.toString());
11922              })(e, n, i.firstPartyData);
11923            }
11924            return n;
11925          }
11926          function Q(e, t, i, n, r) {
11927            if (
11928              ((t.ext.ixdiag.fpd = !0),
11929              Object.keys(n).forEach((e) => {
11930                -1 === C.SITE.indexOf(e) && delete n[e];
11931              }),
11932              Object.keys(r).forEach((e) => {
11933                -1 === C.USER.indexOf(e) && delete r[e];
11934              }),
11935              i.device)
11936            ) {
11937              const e = { ...i.device.sua };
11938              (0, o.Im)(e) || (0, s.J)(t, "device.sua", e);
11939              const n = i.device.ip;
11940              n && (0, s.J)(t, "device.ip", n);
11941              const r = i.device.ipv6;
11942              r && (0, s.J)(t, "device.ipv6", r);
11943              const a = i.device.geo;
11944              a && (0, s.J)(t, "device.geo", a);
11945            }
11946            if (
11947              i.hasOwnProperty("regs") &&
11948              !e.gppConsent &&
11949              (i.regs.hasOwnProperty("gpp") &&
11950                "string" == typeof i.regs.gpp &&
11951                (0, s.J)(t, "regs.gpp", i.regs.gpp),
11952              i.regs.hasOwnProperty("gpp_sid") &&
11953                Array.isArray(i.regs.gpp_sid) &&
11954                (0, s.J)(t, "regs.gpp_sid", i.regs.gpp_sid),
11955              i.regs.ext?.dsa)
11956            ) {
11957              const e = i.regs.ext.dsa,
11958                n = {};
11959              if (
11960                (["dsarequired", "pubrender", "datatopub"].forEach((t) => {
11961                  (0, d.Et)(e[t]) && (n[t] = e[t]);
11962                }),
11963                (0, d.cy)(e.transparency))
11964              ) {
11965                const t = [];
11966                (e.transparency.forEach((e) => {
11967                  (0, d.Qd)(e) &&
11968                    (0, d.O8)(e.domain) &&
11969                    "" !== e.domain &&
11970                    (0, d.cy)(e.dsaparams) &&
11971                    e.dsaparams.every((e) => (0, d.Et)(e)) &&
11972                    t.push(e);
11973                }),
11974                  t.length > 0 && (n.transparency = t));
11975              }
11976              (0, o.Im)(n) || (0, s.J)(t, "regs.ext.dsa", n);
11977            }
11978            return t;
11979          }
11980          function M(e, t) {
11981            const i = (0, a.A)(t, "ortb2Imp.ext.data");
11982            i && (0, s.J)(e, "ext.data", i);
11983          }
11984          function W(e, t, i, n, r, o) {
11985            const a = e[i[n]].tagId,
11986              s = e[i[n]].adUnitCode,
11987              d = e[i[n]].divId;
11988            return (
11989              (a || s || d) &&
11990                ((t.ext.ixdiag.tagid = a),
11991                (t.ext.ixdiag.adunitcode = s),
11992                (t.ext.ixdiag.divId = d)),
11993              t
11994            );
11995          }
11996          function Y(e, t) {
11997            if (t)
11998              for (let i = 0; i < e.length; i++) {
11999                const n = e[i];
12000                if (t[0] === n[0] && t[1] === n[1]) {
12001                  e.splice(i, 1);
12002                  break;
12003                }
12004              }
12005          }
12006          function Z(e, t) {
12007            const i = (function (e) {
12008              const t = z(e, "native"),
12009                i = e.nativeOrtbRequest;
12010              ((i.eventtrackers = [{ event: 1, methods: [1, 2] }]),
12011                (i.privacy = 1),
12012                (t.native = { request: JSON.stringify(i), ver: "1.2" }));
12013              const n = (0, a.A)(e, "ortb2Imp.ext.tid");
12014              return (
12015                n && (0, s.J)(t, "ext.tid", n),
12016                M(t, e),
12017                R(e, t, "native"),
12018                t
12019              );
12020            })(e);
12021            if (0 !== Object.keys(i).length) {
12022              ((t[e.adUnitCode] = {}),
12023                (t[e.adUnitCode].ixImps = []),
12024                t[e.adUnitCode].ixImps.push(i),
12025                (t[e.adUnitCode].gpid = (0, a.A)(e, "ortb2Imp.ext.gpid")),
12026                (t[e.adUnitCode].dfp_ad_unit_code = (0, a.A)(
12027                  e,
12028                  "ortb2Imp.ext.data.adserver.adslot",
12029                )),
12030                (t[e.adUnitCode].tagId = (0, a.A)(e, "params.tagId")));
12031              const n = e.adUnitCode,
12032                r = b(n, e);
12033              ((t[e.adUnitCode].adUnitCode = n), (t[e.adUnitCode].divId = r));
12034            }
12035          }
12036          function K(e, t) {
12037            const i = j(e);
12038            if (0 !== Object.keys(i).length) {
12039              ((t[e.adUnitCode] = {}),
12040                (t[e.adUnitCode].ixImps = []),
12041                t[e.adUnitCode].ixImps.push(i),
12042                (t[e.adUnitCode].gpid = (0, a.A)(e, "ortb2Imp.ext.gpid")),
12043                (t[e.adUnitCode].dfp_ad_unit_code = (0, a.A)(
12044                  e,
12045                  "ortb2Imp.ext.data.adserver.adslot",
12046                )),
12047                (t[e.adUnitCode].tagId = (0, a.A)(e, "params.tagId")));
12048              const n = e.adUnitCode,
12049                r = b(n, e);
12050              ((t[e.adUnitCode].adUnitCode = n), (t[e.adUnitCode].divId = r));
12051            }
12052          }
12053          function ee(e, t, i, n) {
12054            const r = (function (e) {
12055                const t = z(e, "banner");
12056                ((t.banner = {}), (t.adunitCode = e.adUnitCode));
12057                const i = (0, a.A)(e, "params.size");
12058                return (
12059                  i && ((t.banner.w = i[0]), (t.banner.h = i[1])),
12060                  (t.banner.topframe = (0, o.al)() ? 0 : 1),
12061                  R(e, t, "banner"),
12062                  t
12063                );
12064              })(e),
12065              s = X(
12066                (0, a.A)(e, "mediaTypes.banner.sizes"),
12067                (0, a.A)(e, "params.size"),
12068              );
12069            (i.hasOwnProperty(e.adUnitCode) || (i[e.adUnitCode] = {}),
12070              (i[e.adUnitCode].gpid = (0, a.A)(e, "ortb2Imp.ext.gpid")),
12071              (i[e.adUnitCode].dfp_ad_unit_code = (0, a.A)(
12072                e,
12073                "ortb2Imp.ext.data.adserver.adslot",
12074              )),
12075              (i[e.adUnitCode].tid = (0, a.A)(e, "ortb2Imp.ext.tid")),
12076              (i[e.adUnitCode].tagId = (0, a.A)(e, "params.tagId")),
12077              (i[e.adUnitCode].pos = (0, a.A)(e, "mediaTypes.banner.pos")));
12078            const p = (0, a.A)(e, "ortb2Imp.ext.data");
12079            p && (i[e.adUnitCode].adUnitFPD = p);
12080            const c = (0, a.A)(e, "params.id");
12081            !c ||
12082              ("string" != typeof c && "number" != typeof c) ||
12083              (i[e.adUnitCode].sid = String(c));
12084            const u = e.adUnitCode,
12085              l = b(u, e);
12086            ((i[e.adUnitCode].adUnitCode = u),
12087              (i[e.adUnitCode].divId = l),
12088              s &&
12089                (i[e.adUnitCode].hasOwnProperty("ixImps") ||
12090                  (i[e.adUnitCode].ixImps = []),
12091                i[e.adUnitCode].ixImps.push(r)),
12092              (function (e, t, i) {
12093                if (t.hasOwnProperty(e.adUnitCode)) {
12094                  let i = [];
12095                  (t[e.adUnitCode].hasOwnProperty("missingSizes") &&
12096                    (i = t[e.adUnitCode].missingSizes),
12097                    Y(i, e.params.size),
12098                    (t[e.adUnitCode].missingSizes = i));
12099                } else if ((0, a.A)(e, "mediaTypes.banner.sizes")) {
12100                  const n = (0, d.Go)(e.mediaTypes.banner.sizes);
12101                  Y(n, e.params.size);
12102                  const r = { missingSizes: n, impression: i };
12103                  t[e.adUnitCode] = r;
12104                }
12105              })(e, t, r));
12106          }
12107          function te(e, t, i) {
12108            const n = (0, d.Go)(t);
12109            return (
12110              (n.banner.w = i[0]),
12111              (n.banner.h = i[1]),
12112              R(e, n, "banner"),
12113              n
12114            );
12115          }
12116          function ie(e) {
12117            e.renderer.push(function () {
12118              const t = b(e.adUnitCode, e);
12119              t
12120                ? window.createIXPlayer(t, e)
12121                : (0, o.JE)(
12122                    `IX Bid Adapter: adUnitCode: ${t} not found on page.`,
12123                  );
12124            });
12125          }
12126          function ne(e, t) {
12127            const i = f.A4.install({ id: e, url: t, loaded: !1 });
12128            try {
12129              i.setRender(ie);
12130            } catch (e) {
12131              return (
12132                (0, o.JE)("Prebid Error calling setRender on renderer", e),
12133                null
12134              );
12135            }
12136            return t
12137              ? i
12138              : ((0, o.JE)("Outstream renderer URL not found"), null);
12139          }
12140          function re(e) {
12141            if ("outstream" !== (0, a.A)(e, "mediaTypes.video.context"))
12142              return !1;
12143            let t = (0, a.A)(e, "mediaTypes.video.renderer");
12144            t || (t = (0, a.A)(e, "renderer"));
12145            return (
12146              !!("object" != typeof t || !t.url || !t.render) || t.backupOnly
12147            );
12148          }
12149          function oe() {
12150            const e = p.$.getConfig("exchangeId");
12151            return (
12152              !("number" != typeof e || !isFinite(e)) ||
12153              !("string" != typeof e || "" === e.trim() || !isFinite(Number(e)))
12154            );
12155          }
12156          const ae = {
12157            code: v,
12158            gvlid: 10,
12159            supportedMediaTypes: h,
12160            isBidRequestValid: function (e) {
12161              const t = (0, a.A)(e, "params.video"),
12162                i = (0, a.A)(e, "params.size"),
12163                n = (0, a.A)(e, "mediaTypes.banner.sizes"),
12164                r = (0, a.A)(e, "mediaTypes.video"),
12165                s = (0, a.A)(e, "mediaTypes.video.playerSize"),
12166                d = e.params.hasOwnProperty("bidFloor"),
12167                p = e.params.hasOwnProperty("bidFloorCur");
12168              if (e.hasOwnProperty("mediaType") && !(0, o.gR)(h, e.mediaType))
12169                return (
12170                  (0, o.JE)("IX Bid Adapter: media type is not supported."),
12171                  !1
12172                );
12173              if ((0, a.A)(e, "mediaTypes.banner") && !n) return !1;
12174              if (i) {
12175                const t = N(i);
12176                if (!t)
12177                  return (
12178                    (0, o.vV)("IX Bid Adapter: size has invalid format."),
12179                    !1
12180                  );
12181                if (!X(e.sizes, t) && !X(s, t) && !X(n, t))
12182                  return (
12183                    (0, o.vV)(
12184                      "IX Bid Adapter: bid size is not included in ad unit sizes or player size.",
12185                    ),
12186                    !1
12187                  );
12188              }
12189              if (
12190                !oe() &&
12191                (void 0 === e.params.siteId || null === e.params.siteId)
12192              )
12193                return (
12194                  (0, o.vV)(
12195                    "IX Bid Adapter: Invalid configuration - either siteId or exchangeId must be configured.",
12196                  ),
12197                  !1
12198                );
12199              if (void 0 !== e.params.siteId) {
12200                if (
12201                  "string" != typeof e.params.siteId &&
12202                  "number" != typeof e.params.siteId
12203                )
12204                  return (
12205                    (0, o.vV)(
12206                      "IX Bid Adapter: siteId must be string or number type.",
12207                    ),
12208                    !1
12209                  );
12210                if (
12211                  "string" != typeof e.params.siteId &&
12212                  isNaN(Number(e.params.siteId))
12213                )
12214                  return (
12215                    (0, o.vV)("IX Bid Adapter: siteId must valid value"),
12216                    !1
12217                  );
12218              }
12219              if (
12220                (d || p) &&
12221                !(
12222                  d &&
12223                  p &&
12224                  ((c = e.params.bidFloor),
12225                  (u = e.params.bidFloorCur),
12226                  Boolean(
12227                    "number" == typeof c &&
12228                    "string" == typeof u &&
12229                    u.match(/^[A-Z]{3}$/),
12230                  ))
12231                )
12232              )
12233                return (
12234                  (0, o.vV)(
12235                    "IX Bid Adapter: bidFloor / bidFloorCur parameter has invalid format.",
12236                  ),
12237                  !1
12238                );
12239              var c, u;
12240              if (r && t) {
12241                const i = j(e).video,
12242                  n = q(r, t);
12243                if (
12244                  (0, a.A)(e, "mediaTypes.video.context") === l.H6 &&
12245                  re(e) &&
12246                  i
12247                ) {
12248                  const e = [(0, a.A)(i, "w"), (0, a.A)(i, "h")];
12249                  if (!(e[0] >= y[0] && e[1] >= y[1]))
12250                    return (
12251                      (0, o.vV)(
12252                        `IX Bid Adapter: ${e} is an invalid size for IX outstream renderer`,
12253                      ),
12254                      !1
12255                    );
12256                }
12257                if (n.length)
12258                  return (
12259                    n.forEach((e) => {
12260                      (0, o.vV)(e);
12261                    }),
12262                    !1
12263                  );
12264              }
12265              return (function (e) {
12266                return (
12267                  void 0 === (0, a.A)(e, "mediaTypes.native") ||
12268                  (e.nativeOrtbRequest &&
12269                    Array.isArray(e.nativeOrtbRequest.assets) &&
12270                    e.nativeOrtbRequest.assets.length > 0)
12271                );
12272              })(e);
12273            },
12274            resetSiteID: function () {
12275              J = 0;
12276            },
12277            buildRequests: function (e, t) {
12278              const i = [],
12279                n = {},
12280                r = {},
12281                s = {},
12282                d = {};
12283              (E.getFeatureToggles(),
12284                e.forEach((e) => {
12285                  const t = Object.keys((0, a.A)(e, "mediaTypes", {}));
12286                  for (const i of t)
12287                    switch (i) {
12288                      case "banner":
12289                        ee(e, d, n);
12290                        break;
12291                      case "video":
12292                        K(e, r);
12293                        break;
12294                      case "native":
12295                        Z(e, s);
12296                        break;
12297                      default:
12298                        (0, o.JE)(
12299                          `IX Bid Adapter: ad unit mediaTypes ${i} is not supported`,
12300                        );
12301                    }
12302                }));
12303              for (const t in d)
12304                if (d.hasOwnProperty(t)) {
12305                  const i = d[t].missingSizes;
12306                  (n.hasOwnProperty(t) || (n[t] = {}),
12307                    n[t].hasOwnProperty("missingImps") ||
12308                      ((n[t].missingImps = []), (n[t].missingCount = 0)));
12309                  const r = d[t].impression;
12310                  for (let o = 0; o < i.length; o++) {
12311                    const a = te(e[0], r, i[o]);
12312                    (n[t].missingImps.push(a), n[t].missingCount++);
12313                  }
12314                }
12315              const p = [];
12316              return (
12317                Object.keys(n).length > 0 && p.push(n),
12318                Object.keys(r).length > 0 && p.push(r),
12319                Object.keys(s).length > 0 && p.push(s),
12320                i.push(
12321                  ...V(
12322                    e,
12323                    t,
12324                    (function (e) {
12325                      const t = {};
12326                      return (
12327                        e.forEach((e) => {
12328                          Object.keys(e).forEach((i) => {
12329                            t.hasOwnProperty(i)
12330                              ? t[i].hasOwnProperty("ixImps") &&
12331                                e[i].hasOwnProperty("ixImps")
12332                                ? (t[i].ixImps = [
12333                                    ...t[i].ixImps,
12334                                    ...e[i].ixImps,
12335                                  ])
12336                                : t[i].hasOwnProperty("missingImps") &&
12337                                    e[i].hasOwnProperty("missingImps")
12338                                  ? (t[i].missingImps = [
12339                                      ...t[i].missingImps,
12340                                      ...e[i].missingImps,
12341                                    ])
12342                                  : e[i].hasOwnProperty("ixImps")
12343                                    ? (t[i].ixImps = e[i].ixImps)
12344                                    : e[i].hasOwnProperty("missingImps") &&
12345                                      (t[i].missingImps = e[i].missingImps)
12346                              : (t[i] = e[i]);
12347                          });
12348                        }),
12349                        t
12350                      );
12351                    })(p),
12352                  ),
12353                ),
12354                i
12355              );
12356            },
12357            interpretResponse: function (e, t) {
12358              const i = [];
12359              let n;
12360              if ((E.setFeatureToggles(e), !e.hasOwnProperty("body"))) return i;
12361              const r = e.body,
12362                s = r.seatbid || [];
12363              for (let e = 0; e < s.length; e++) {
12364                if (!s[e].hasOwnProperty("bid")) continue;
12365                const d = s[e].bid,
12366                  p = t.data;
12367                for (let e = 0; e < d.length; e++) {
12368                  const o = L(d[e].impid, p.imp, t.validBidRequests);
12369                  if (
12370                    ((n = B(d[e], r.cur, o)), "video" === n.mediaType && re(o))
12371                  ) {
12372                    const t = (0, a.A)(r, "ext.videoplayerurl");
12373                    if (((n.renderer = ne(d[e].bidId, t)), !n.renderer))
12374                      continue;
12375                  }
12376                  i.push(n);
12377                }
12378                if ((0, a.A)(p, "ext.ixdiag.err") && P.localStorageIsEnabled())
12379                  try {
12380                    P.removeDataFromLocalStorage("ixdiag");
12381                  } catch (e) {
12382                    (0, o.vV)("ix can not clear ixdiag from localStorage.");
12383                  }
12384              }
12385              return i;
12386            },
12387            getUserSyncs: function (e, t) {
12388              const i = [];
12389              let n = null;
12390              if (
12391                (t.length > 0 &&
12392                  (n = (0, a.A)(
12393                    t[0],
12394                    "body.ext.publishersyncsperbidderoverride",
12395                  )),
12396                0 === n)
12397              )
12398                return [];
12399              if (e.iframeEnabled)
12400                i.push({
12401                  type: "iframe",
12402                  url: "https://js-sec.indexww.com/um/ixmatch.html",
12403                });
12404              else {
12405                let e = null;
12406                (p.$.getConfig("userSync") &&
12407                  (e = p.$.getConfig("userSync").syncsPerBidder),
12408                  0 === e && (e = n),
12409                  (e = n && (0 === e || e) ? (n > e ? e : n) : 1));
12410                for (let t = 0; t < e; t++)
12411                  i.push({ type: "image", url: se(e, t) });
12412              }
12413              return i;
12414            },
12415          };
12416          function se(e, t) {
12417            let i = "",
12418              n = "0";
12419            (D &&
12420              D.hasOwnProperty("gdprApplies") &&
12421              (n = D.gdprApplies ? "1" : "0"),
12422              D &&
12423                D.hasOwnProperty("consentString") &&
12424                (i = D.consentString || ""));
12425            return (
12426              "https://dsum.casalemedia.com/pbusermatch?origin=prebid" +
12427              (0 !== J ? "&site_id=" + J.toString() : "") +
12428              "&p=" +
12429              e.toString() +
12430              "&i=" +
12431              t.toString() +
12432              "&gdpr=" +
12433              n +
12434              "&gdpr_consent=" +
12435              i +
12436              "&us_privacy=" +
12437              (k || "")
12438            );
12439          }
12440          function de(e) {
12441            return (
12442              e.imp.forEach((t, i) => {
12443                const n = t.ext;
12444                if (null == n) return e;
12445                ce(t) < 2 ||
12446                  Object.keys(n).forEach((r) => {
12447                    if ("banner" in t) {
12448                      const o = t.banner.ext;
12449                      if (
12450                        (void 0 !== o &&
12451                          void 0 !== o[r] &&
12452                          o[r] === n[r] &&
12453                          delete e.imp[i].banner.ext[r],
12454                        void 0 !== t.banner.format)
12455                      )
12456                        for (let o = 0; o < t.banner.format.length; o++)
12457                          t.banner.format[o]?.ext?.[r] === n[r] &&
12458                            delete e.imp[i].banner.format[o].ext[r];
12459                    }
12460                    if ("video" in t) {
12461                      const o = t.video.ext;
12462                      void 0 !== o &&
12463                        void 0 !== o[r] &&
12464                        o[r] === n[r] &&
12465                        delete e.imp[i].video.ext[r];
12466                    }
12467                    if ("native" in t) {
12468                      const o = t.native.ext;
12469                      void 0 !== o &&
12470                        void 0 !== o[r] &&
12471                        o[r] === n[r] &&
12472                        delete e.imp[i].native.ext[r];
12473                    }
12474                  });
12475              }),
12476              e
12477            );
12478          }
12479          function pe(e) {
12480            return (
12481              e.imp.forEach((t, i) => {
12482                const n = t.ext;
12483                if (null == n) return e;
12484                if (!(ce(t) < 2)) {
12485                  if ("banner" in t) {
12486                    const n = t.banner.ext;
12487                    if (
12488                      (void 0 !== n &&
12489                        void 0 !== n.siteID &&
12490                        delete e.imp[i].banner.ext.siteID,
12491                      void 0 !== t.banner.format)
12492                    )
12493                      for (let n = 0; n < t.banner.format.length; n++)
12494                        void 0 !== t.banner.format[n].ext &&
12495                          void 0 !== t.banner.format[n].ext.siteID &&
12496                          ((0, s.J)(
12497                            e.imp[i],
12498                            "ext.siteID",
12499                            t.banner.format[n].ext.siteID,
12500                          ),
12501                          (0, s.J)(e, "ext.ixdiag.usid", !0),
12502                          delete e.imp[i].banner.format[n].ext.siteID);
12503                  }
12504                  if ("video" in t) {
12505                    const n = t.video.ext;
12506                    void 0 !== n &&
12507                      void 0 !== n.siteID &&
12508                      delete e.imp[i].video.ext.siteID;
12509                  }
12510                  if ("native" in t) {
12511                    const n = t.native.ext;
12512                    void 0 !== n &&
12513                      void 0 !== n.siteID &&
12514                      delete e.imp[i].native.ext.siteID;
12515                  }
12516                }
12517              }),
12518              e
12519            );
12520          }
12521          function ce(e) {
12522            let t = 0;
12523            return (
12524              void 0 !== e.banner && (t += 1),
12525              void 0 !== e.video && (t += 1),
12526              void 0 !== e.native && (t += 1),
12527              t
12528            );
12529          }
12530          function ue(e) {
12531            return (
12532              void 0 === e.device && (e.device = {}),
12533              (e.device.h = window.screen.height),
12534              (e.device.w = window.screen.width),
12535              e
12536            );
12537          }
12538          ((0, u.a$)(ae),
12539            (0, r.E)("ixBidAdapter"),
12540            Object.assign(n.W1, {
12541              10: {
12542                purposes: [1, 2, 4, 7, 10],
12543                legIntPurposes: [],
12544                flexiblePurposes: [2, 7, 10],
12545                specialFeatures: [1],
12546              },
12547            }));
12548        },
12549      },
12550      (e) => {
12551        e.O(0, [802, 769, 590, 85, 5], () => {
12552          return ((t = 8700), e((e.s = t)));
12553          var t;
12554        });
12555        e.O();
12556      },
12557    ]);
12558    (self.pbjsChunk = self.pbjsChunk || []).push([
12559      [575],
12560      {
12561        9121(e, t, n) {
12562          var r = n(1068),
12563            i = n(1129),
12564            s = n(7413),
12565            o = n(8928),
12566            a = n(3435),
12567            p = n(3350),
12568            d = n(2074),
12569            u = n(2682),
12570            c = n(8964),
12571            l = n(4338),
12572            g = n(6271);
12573          const m = c.RD.withCallers([["bidder", "ogury"]]),
12574            y = "https://ms-cookie-sync.presage.io",
12575            b = {
12576              context: { netRevenue: !0, ttl: 60 },
12577              request(e, t, n, r) {
12578                const i = e(t, n, r);
12579                ((i.tmax = 1e3),
12580                  (0, a.J)(i, "device.pxratio", (0, d.m)(A())),
12581                  (0, a.J)(i, "site.page", A().location.href),
12582                  (i.ext = (0, s.D9)({}, i.ext, {
12583                    adapterversion: "2.1.0",
12584                    prebidversion: "11.26.0-pre",
12585                  })));
12586                const p = n.bids.find((e) =>
12587                  Boolean((0, o.A)(e, "params.assetKey", !1)),
12588                );
12589                return (p && (0, a.J)(i, "site.id", p.params.assetKey), i);
12590              },
12591              imp(e, t, n) {
12592                const r = e(t, n),
12593                  i =
12594                    document.timeline && document.timeline.currentTime
12595                      ? document.timeline.currentTime
12596                      : 0,
12597                  o = t.adUnitCode;
12598                ((r.tagid = t.adUnitCode),
12599                  (r.ext = (0, s.D9)(
12600                    {},
12601                    t.params,
12602                    { timeSpentOnPage: i, gpid: o },
12603                    r.ext,
12604                  )));
12605                const a = h(t);
12606                return (a ? (r.bidfloor = a) : delete r.bidfloor, r);
12607              },
12608              bidResponse(e, t, n) {
12609                const r = t.nurl;
12610                delete t.nurl;
12611                const i = e(t, n);
12612                return ((i.currency = "USD"), (i.nurl = r), i);
12613              },
12614            },
12615            f = (0, g.A)(b);
12616          function h(e) {
12617            if (!(0, p.fp)(e.getFloor)) return 0;
12618            const t = Boolean((0, o.A)(e, "mediaTypes.banner")),
12619              n = (0, o.A)(e, "mediaTypes.video.playerSize"),
12620              r = Array.isArray(n) && n.length > 0 && !t ? "video" : "banner",
12621              i = e.getFloor({ currency: "USD", mediaType: r, size: "*" });
12622            return (0, p.Qd)(i) && "USD" === i.currency ? i.floor : 0;
12623          }
12624          function A() {
12625            try {
12626              return (0, s.mb)();
12627            } catch (e) {
12628              return (0, s.l4)();
12629            }
12630          }
12631          const S = {
12632            code: "ogury",
12633            gvlid: 31,
12634            supportedMediaTypes: ["banner", "video"],
12635            isBidRequestValid: function (e) {
12636              const t = (0, l.up)(e),
12637                n = (0, o.A)(e, "mediaTypes.video.playerSize"),
12638                r = Array.isArray(t) && t.length > 0,
12639                i = Array.isArray(n) && n.length > 0,
12640                s = r || i,
12641                a =
12642                  !!(0, o.A)(e, "params.adUnitId") &&
12643                  !!(0, o.A)(e, "params.assetKey"),
12644                p = !!(0, o.A)(e, "ortb2.site.publisher.id") && !!e.adUnitCode;
12645              return s && (a || p);
12646            },
12647            getUserSyncs: function (e, t, n, r, i) {
12648              const s = (n && n.consentString) || "",
12649                o = (i && i.gppString) || "",
12650                a =
12651                  (i &&
12652                    i.applicableSections &&
12653                    i.applicableSections.toString()) ||
12654                  "",
12655                p = r || "";
12656              return e.iframeEnabled
12657                ? [
12658                    {
12659                      type: "iframe",
12660                      url: `${y}/user-sync.html?gdpr_consent=${s}&source=prebid&gpp=${o}&gpp_sid=${a}&us_privacy=${p}`,
12661                    },
12662                  ]
12663                : e.pixelEnabled
12664                  ? [
12665                      {
12666                        type: "image",
12667                        url: `${y}/user-sync?source=prebid&gdpr_consent=${s}&gpp=${o}&gpp_sid=${a}&us_privacy=${p}`,
12668                      },
12669                    ]
12670                  : [];
12671            },
12672            buildRequests: function (e, t) {
12673              return {
12674                method: "POST",
12675                url: "https://mweb-hb.presage.io/api/header-bidding-request",
12676                data: f.toORTB({ bidRequests: e, bidderRequest: t }),
12677                options: { contentType: "application/json" },
12678              };
12679            },
12680            interpretResponse: function (e, t) {
12681              return f.fromORTB({ response: e.body, request: t.data }).bids;
12682            },
12683            getFloor: h,
12684            onBidWon: function (e) {
12685              ((A().OG_PREBID_BID_OBJECT = { ...(e && { ...e }) }),
12686                e && e.nurl && m(e.nurl, null));
12687            },
12688            getWindowContext: A,
12689            onTimeout: function (e) {
12690              m(
12691                "https://ms-ads-monitoring-events.presage.io/bid_timeout",
12692                null,
12693                JSON.stringify({ ...e[0], location: window.location.href }),
12694                { method: "POST", contentType: "application/json" },
12695              );
12696            },
12697          };
12698          ((0, u.a$)(S),
12699            (0, i.E)("oguryBidAdapter"),
12700            Object.assign(r.W1, {
12701              31: {
12702                purposes: [1, 2, 3, 4, 7, 9, 10],
12703                legIntPurposes: [],
12704                flexiblePurposes: [],
12705                specialFeatures: [],
12706              },
12707            }));
12708        },
12709      },
12710      (e) => {
12711        e.O(0, [802, 769, 590, 85, 498, 139, 511, 504], () => {
12712          return ((t = 9121), e((e.s = t)));
12713          var t;
12714        });
12715        e.O();
12716      },
12717    ]);
12718    (self.pbjsChunk = self.pbjsChunk || []).push([
12719      [711],
12720      {
12721        2069(e, t, r) {
12722          var i = r(1068),
12723            n = r(1129),
12724            o = r(6271),
12725            s = r(9400),
12726            a = r(2682),
12727            d = r(8384),
12728            c = r(7413),
12729            p = r(8928),
12730            u = r(3435),
12731            l = r(3350),
12732            m = r(9288),
12733            b = r(9446),
12734            x = r(8960);
12735          let f = d.$.getConfig("rubicon") || {};
12736          d.$.getConfig("rubicon", (e) => {
12737            (0, c.D9)(f, e.rubicon);
12738          });
12739          let y = {};
12740          var g = {
12741            1: "468x60",
12742            2: "728x90",
12743            5: "120x90",
12744            7: "125x125",
12745            8: "120x600",
12746            9: "160x600",
12747            10: "300x600",
12748            13: "200x200",
12749            14: "250x250",
12750            15: "300x250",
12751            16: "336x280",
12752            17: "240x400",
12753            19: "300x100",
12754            31: "980x120",
12755            32: "250x360",
12756            33: "180x500",
12757            35: "980x150",
12758            37: "468x400",
12759            38: "930x180",
12760            39: "750x100",
12761            40: "750x200",
12762            41: "750x300",
12763            42: "2x4",
12764            43: "320x50",
12765            44: "300x50",
12766            48: "300x300",
12767            53: "1024x768",
12768            54: "300x1050",
12769            55: "970x90",
12770            57: "970x250",
12771            58: "1000x90",
12772            59: "320x80",
12773            60: "320x150",
12774            61: "1000x1000",
12775            64: "580x500",
12776            65: "640x480",
12777            66: "930x600",
12778            67: "320x480",
12779            68: "1800x1000",
12780            72: "320x320",
12781            73: "320x160",
12782            78: "980x240",
12783            79: "980x300",
12784            80: "980x400",
12785            83: "480x300",
12786            85: "300x120",
12787            90: "548x150",
12788            94: "970x310",
12789            95: "970x100",
12790            96: "970x210",
12791            101: "480x320",
12792            102: "768x1024",
12793            103: "480x280",
12794            105: "250x800",
12795            108: "320x240",
12796            113: "1000x300",
12797            117: "320x100",
12798            125: "800x250",
12799            126: "200x600",
12800            144: "980x600",
12801            145: "980x150",
12802            152: "1000x250",
12803            156: "640x320",
12804            159: "320x250",
12805            179: "250x600",
12806            195: "600x300",
12807            198: "640x360",
12808            199: "640x200",
12809            210: "1080x1920",
12810            213: "1030x590",
12811            214: "980x360",
12812            219: "1920x1080",
12813            221: "1x1",
12814            229: "320x180",
12815            230: "2000x1400",
12816            232: "580x400",
12817            234: "6x6",
12818            251: "2x2",
12819            256: "480x820",
12820            257: "400x600",
12821            258: "500x200",
12822            259: "998x200",
12823            261: "480x480",
12824            264: "970x1000",
12825            274: "1800x200",
12826            278: "320x500",
12827            282: "320x400",
12828            288: "640x380",
12829            484: "720x1280",
12830            524: "1x2",
12831            548: "500x1000",
12832            550: "980x480",
12833            552: "300x200",
12834            558: "640x640",
12835            562: "300x431",
12836            564: "320x431",
12837            566: "320x300",
12838            568: "300x150",
12839            570: "300x125",
12840            572: "250x350",
12841            574: "620x891",
12842            576: "610x877",
12843            578: "980x552",
12844            580: "505x656",
12845            622: "192x160",
12846            632: "1200x450",
12847            634: "340x450",
12848            680: "970x570",
12849            682: "300x240",
12850            684: "970x550",
12851            686: "300x210",
12852            688: "300x220",
12853            690: "970x170",
12854            710: "600x250",
12855            712: "340x430",
12856          };
12857          (0, c.bu)(g, (e, t) => {
12858            g[e] = t;
12859          });
12860          const v = (0, o.A)({
12861              request(e, t, r, i) {
12862                const { bidRequests: o } = i,
12863                  s = e(t, r, i);
12864                var a;
12865                ((s.cur = ["USD"]),
12866                  (s.test = d.$.getConfig("debug") ? 1 : 0),
12867                  (0, u.J)(s, "ext.prebid.cache", {
12868                    vastxml: { returnCreative: !0 === f.returnVast },
12869                  }),
12870                  (0, u.J)(s, "ext.prebid.bidders", {
12871                    rubicon: { integration: f.int_type || "pbjs" },
12872                  }),
12873                  (0, u.J)(s, "ext.prebid.targeting.pricegranularity", {
12874                    ranges: {
12875                      low: [{ max: 5, increment: 0.5 }],
12876                      medium: [{ max: 20, increment: 0.1 }],
12877                      high: [{ max: 20, increment: 0.01 }],
12878                      auto: [
12879                        { max: 5, increment: 0.05 },
12880                        { min: 5, max: 10, increment: 0.1 },
12881                        { min: 10, max: 20, increment: 0.5 },
12882                      ],
12883                      dense: [
12884                        { max: 3, increment: 0.01 },
12885                        { min: 3, max: 8, increment: 0.05 },
12886                        { min: 8, max: 20, increment: 0.5 },
12887                      ],
12888                      custom:
12889                        (a = d.$).getConfig("customPriceBucket") &&
12890                        a.getConfig("customPriceBucket").buckets,
12891                    }[a.getConfig("priceGranularity")],
12892                  }));
12893                const p = (0, n.m)().installedModules;
12894                (!p ||
12895                  (p.length && -1 === p.indexOf("rubiconAnalyticsAdapter")) ||
12896                  (0, u.J)(s, "ext.prebid.analytics", {
12897                    rubicon: { "client-analytics": !0 },
12898                  }),
12899                  (function (e, t, r) {
12900                    let i = {};
12901                    const n = (0, m.D)(r, ...t.map((e) => e.params.keywords));
12902                    (t.forEach((t) => {
12903                      const r = {
12904                          user: { ext: { data: { ...t.params.visitor } } },
12905                          site: { ext: { data: { ...t.params.inventory } } },
12906                        },
12907                        n = e.imp.find(
12908                          (e) =>
12909                            e.ext?.prebid?.bidder?.rubicon?.video?.language,
12910                        );
12911                      (n &&
12912                        (r.site.content = {
12913                          language:
12914                            n.ext?.prebid?.bidder?.rubicon?.video?.language,
12915                        }),
12916                        (i = (0, c.D9)(i, t.ortb2 || {}, r)));
12917                      const o = d.$.getConfig("user.id");
12918                      i.user.id = i.user.id || o;
12919                    }),
12920                      (0, c.D9)(e, i),
12921                      n &&
12922                        n.length &&
12923                        (0, u.J)(e, "site.keywords", n.join(",")));
12924                    delete e?.ext?.prebid?.storedrequest;
12925                  })(s, o, r.ortb2),
12926                  delete s?.ext?.prebid?.storedrequest,
12927                  !0 === f.disableFloors && delete s.ext.prebid.floors);
12928                return (
12929                  o.filter((e) => "object" == typeof e.floorData).length > 0 &&
12930                    (s.ext.prebid.floors = { enabled: !1 }),
12931                  s
12932                );
12933              },
12934              imp(e, t, r) {
12935                const i = k(t);
12936                if (i.includes("banner") && 1 === i.length) return;
12937                const n = e(t, r);
12938                return (
12939                  (n.id = t.adUnitCode),
12940                  delete n.banner,
12941                  "atf" === t.params.position && n.video && (n.video.pos = 1),
12942                  "btf" === t.params.position && n.video && (n.video.pos = 3),
12943                  delete n.ext?.prebid?.storedrequest,
12944                  !0 === t.params.bidonmultiformat &&
12945                    i.length > 1 &&
12946                    (0, u.J)(n, "ext.prebid.bidder.rubicon.formats", i),
12947                  (function (e, t) {
12948                    "USD" !== t.bidfloorcur &&
12949                      (delete t.bidfloor, delete t.bidfloorcur);
12950                    if (!t.bidfloor) {
12951                      const r = parseFloat((0, p.A)(e, "params.floor"));
12952                      isNaN(r) || ((t.bidfloor = r), (t.bidfloorcur = "USD"));
12953                    }
12954                  })(t, n),
12955                  (n.id = y[n.id] ? n.id + y[n.id]++ : ((y[n.id] = 2), n.id)),
12956                  n
12957                );
12958              },
12959              bidResponse(e, t, r) {
12960                const i = e(t, r);
12961                i.meta.mediaType = (0, p.A)(t, "ext.prebid.type");
12962                const { bidRequest: n } = r,
12963                  [o, s] =
12964                    "outstream" === n.mediaTypes.video?.context
12965                      ? A(n, "video")
12966                      : [void 0, void 0];
12967                return (
12968                  (i.width = t.w || o || i.playerWidth || 0),
12969                  (i.height = t.h || s || i.playerHeight || 0),
12970                  "video" === i.mediaType &&
12971                    "outstream" === n.mediaTypes.video.context &&
12972                    (i.renderer = (0, x.S_)(
12973                      i,
12974                      f.rendererUrl,
12975                      f.rendererConfig,
12976                    )),
12977                  (0, p.A)(t, "ext.bidder.rp.advid") &&
12978                    (0, u.J)(i, "meta.advertiserId", t.ext.bidder.rp.advid),
12979                  i
12980                );
12981              },
12982              context: { netRevenue: !1 !== f.netRevenue, ttl: 360 },
12983              processors: s.m,
12984            }),
12985            h = {
12986              code: "rubicon",
12987              gvlid: 52,
12988              supportedMediaTypes: ["banner", "video", "native"],
12989              isBidRequestValid: function (e) {
12990                let t = !0;
12991                if ("object" != typeof e.params) return !1;
12992                for (
12993                  let t = 0, r = ["accountId", "siteId", "zoneId"];
12994                  t < r.length;
12995                  t++
12996                )
12997                  if (
12998                    ((e.params[r[t]] = parseInt(e.params[r[t]])),
12999                    isNaN(e.params[r[t]]))
13000                  )
13001                    return (
13002                      (0, c.vV)(
13003                        "Rubicon: wrong format of accountId or siteId or zoneId.",
13004                      ),
13005                      !1
13006                    );
13007                const r = k(e, !0);
13008                if (!r.length) return !1;
13009                r.includes("video") &&
13010                  (t = (function (e) {
13011                    let t = !0;
13012                    const r = Object.prototype.toString.call([]),
13013                      i = Object.prototype.toString.call(0);
13014                    var n = { mimes: r, protocols: r, linearity: i };
13015                    return (
13016                      Object.keys(n).forEach(function (r) {
13017                        Object.prototype.toString.call(
13018                          (0, p.A)(e, "mediaTypes.video." + r),
13019                        ) !== n[r] &&
13020                          ((t = !1),
13021                          (0, c.vV)(
13022                            "Rubicon: mediaTypes.video." +
13023                              r +
13024                              " is required and must be of type: " +
13025                              n[r],
13026                          ));
13027                      }),
13028                      t
13029                    );
13030                  })(e));
13031                const i =
13032                  ["banner", "native"].filter((e) => r.includes(e)).length > 0;
13033                return i ? t && i : t;
13034              },
13035              buildRequests: function (e, t) {
13036                let r;
13037                const i = [];
13038                let n;
13039                if (
13040                  ((n = e.filter((e) => {
13041                    const t = k(e),
13042                      { length: r } = t,
13043                      { bidonmultiformat: i, video: n } = e.params || {};
13044                    return (
13045                      (1 === r &&
13046                        (t.includes("video") || t.includes("native"))) ||
13047                      (2 === r && !t.includes("banner")) ||
13048                      (n && t.includes("video")) ||
13049                      (i && (t.includes("video") || t.includes("native")))
13050                    );
13051                  })),
13052                  n && n.length)
13053                ) {
13054                  const e = v.toORTB({ bidRequests: n, bidderRequest: t });
13055                  ($(),
13056                    i.push({
13057                      method: "POST",
13058                      url: `https://${f.videoHost || "prebid-server"}.rubiconproject.com/openrtb2/auction`,
13059                      data: e,
13060                      bidRequest: n,
13061                    }));
13062                }
13063                const o = e.filter((e) => {
13064                  const t = k(e),
13065                    { bidonmultiformat: r, video: i } = e.params || {};
13066                  return (
13067                    t.includes("banner") &&
13068                    (1 === t.length || r || !i || !t.includes("video"))
13069                  );
13070                });
13071                if (!0 !== f.singleRequest)
13072                  r = i.concat(
13073                    o.map((e) => {
13074                      const r = h.createSlotParams(e, t);
13075                      return {
13076                        method: "GET",
13077                        url: `https://${f.bannerHost || "fastlane"}.rubiconproject.com/a/api/fastlane.json`,
13078                        data:
13079                          h.getOrderedParams(r).reduce((e, t) => {
13080                            const i = r[t];
13081                            return ((0, l.O8)(i) && "" !== i) || (0, l.Et)(i)
13082                              ? `${e}${R(t, i)}&`
13083                              : e;
13084                          }, "") + `slots=1&rand=${Math.random()}`,
13085                        bidRequest: e,
13086                      };
13087                    }),
13088                  );
13089                else {
13090                  const e = o.reduce(
13091                      (e, t) => (
13092                        (e[t.params.siteId] = e[t.params.siteId] || []).push(t),
13093                        e
13094                      ),
13095                      {},
13096                    ),
13097                    n = 10;
13098                  r = i.concat(
13099                    Object.keys(e).reduce(
13100                      (r, i) => (
13101                        (function (e, t) {
13102                          const r = [];
13103                          for (let i = 0; i < e.length; i += t)
13104                            r.push(e.slice(i, i + t));
13105                          return r;
13106                        }
13106)(e[i], n).forEach((e) => {
13107                          const i = h.combineSlotUrlParams(
13108                            e.map((e) => h.createSlotParams(e, t)),
13109                          );
13110                          r.push({
13111                            method: "GET",
13112                            url: `https://${f.bannerHost || "fastlane"}.rubiconproject.com/a/api/fastlane.json`,
13113                            data:
13114                              h.getOrderedParams(i).reduce((e, t) => {
13115                                const r = i[t];
13116                                return ((0, l.O8)(r) && "" !== r) ||
13117                                  (0, l.Et)(r)
13118                                  ? `${e}${R(t, r)}&`
13119                                  : e;
13120                              }, "") +
13121                              `slots=${e.length}&rand=${Math.random()}`,
13122                            bidRequest: e,
13123                          });
13124                        }),
13125                        r
13126                      ),
13127                      [],
13128                    ),
13129                  );
13130                }
13131                return r;
13132              },
13133              getOrderedParams: function (e) {
13134                const t = /^tg_v/,
13135                  r = /^tg_i/,
13136                  i = /^eid_|^tpid_/,
13137                  n = [
13138                    "account_id",
13139                    "site_id",
13140                    "zone_id",
13141                    "size_id",
13142                    "alt_size_ids",
13143                    "p_pos",
13144                    "gdpr",
13145                    "gdpr_consent",
13146                    "us_privacy",
13147                    "gpp",
13148                    "gpp_sid",
13149                    "rp_schain",
13150                  ]
13151                    .concat(Object.keys(e).filter((e) => i.test(e)))
13152                    .concat([
13153                      "x_liverampidl",
13154                      "ppuid",
13155                      "rf",
13156                      "p_geo.latitude",
13157                      "p_geo.longitude",
13158                      "kw",
13159                    ])
13160                    .concat(Object.keys(e).filter((e) => t.test(e)))
13161                    .concat(Object.keys(e).filter((e) => r.test(e)))
13162                    .concat([
13163                      "tk_flint",
13164                      "x_source.tid",
13165                      "l_pb_bid_id",
13166                      "p_screen_res",
13167                      "rp_floor",
13168                      "rp_secure",
13169                      "tk_user_key",
13170                    ]);
13171                return n.concat(
13172                  Object.keys(e).filter((e) => -1 === n.indexOf(e)),
13173                );
13174              },
13175              combineSlotUrlParams: function (e) {
13176                if (1 === e.length) return e[0];
13177                const t = e.reduce(function (t, r, i) {
13178                    return (
13179                      Object.keys(r).forEach(function (n) {
13180                        (t.hasOwnProperty(n) || (t[n] = new Array(e.length)),
13181                          t[n].splice(i, 1, r[n]));
13182                      }),
13183                      t
13184                    );
13185                  }, {}),
13186                  r = new RegExp("^([^;]*)(;\\1)+$");
13187                return (
13188                  Object.keys(t).forEach(function (e) {
13189                    const i = t[e].join(";"),
13190                      n = i.match(r);
13191                    t[e] = n ? n[1] : i;
13192                  }),
13193                  t
13194                );
13195              },
13196              createSlotParams: function (e, t) {
13197                e.startTime = new Date().getTime();
13198                const r = e.params,
13199                  i = A(e, "banner"),
13200                  [n, o] = r.latLong || [],
13201                  s = {
13202                    account_id: r.accountId,
13203                    site_id: r.siteId,
13204                    zone_id: r.zoneId,
13205                    size_id: i[0],
13206                    alt_size_ids: i.slice(1).join(",") || void 0,
13207                    rp_floor:
13208                      (r.floor = parseFloat(r.floor)) >= 0.01
13209                        ? r.floor
13210                        : void 0,
13211                    rp_secure: "1",
13212                    tk_flint: `${f.int_type || "pbjs_lite"}_v11.26.0-pre`,
13213                    "x_source.tid": t.ortb2?.source?.tid,
13214                    "x_imp.ext.tid": e.ortb2Imp?.ext?.tid,
13215                    l_pb_bid_id: e.bidId,
13216                    ip: e.ortb2?.device?.ip,
13217                    ipv6: e.ortb2?.device?.ipv6,
13218                    p_screen_res: [
13219                      window.screen.width,
13220                      window.screen.height,
13221                    ].join("x"),
13222                    tk_user_key: r.userId,
13223                    "p_geo.latitude": isNaN(parseFloat(n))
13224                      ? void 0
13225                      : parseFloat(n).toFixed(4),
13226                    "p_geo.longitude": isNaN(parseFloat(o))
13227                      ? void 0
13228                      : parseFloat(o).toFixed(4),
13229                    "tg_fl.eid": e.code,
13230                    rf: _(e, t),
13231                  };
13232                if ("function" == typeof e.getFloor && !f.disableFloors) {
13233                  let t;
13234                  try {
13235                    t = e.getFloor({
13236                      currency: "USD",
13237                      mediaType: "banner",
13238                      size: "*",
13239                    });
13240                  } catch (e) {
13241                    (0, c.vV)("Rubicon: getFloor threw an error: ", e);
13242                  }
13243                  s.rp_hard_floor =
13244                    (0, l.Qd)(t) &&
13245                    "USD" === t.currency &&
13246                    !isNaN(parseInt(t.floor))
13247                      ? t.floor
13248                      : void 0;
13249                }
13250                !0 === r.bidonmultiformat &&
13251                  (0, p.A)(e, "mediaTypes") &&
13252                  Object.keys(e.mediaTypes).length > 1 &&
13253                  (s.p_formats = Object.keys(e.mediaTypes).join(","));
13254                const a =
13255                  { 1: "atf", 3: "btf" }[
13256                    (0, p.A)(e, "mediaTypes.banner.pos")
13257                  ] || "";
13258                s.p_pos =
13259                  "atf" === r.position || "btf" === r.position ? r.position : a;
13260                const u = d.$.getConfig("user.id");
13261                (u && (s.ppuid = u),
13262                  "number" == typeof e?.ortb2?.site?.mobile &&
13263                    (s["p_site.mobile"] = e.ortb2.site.mobile),
13264                  e?.ortb2?.user?.ext?.eids &&
13265                    e.ortb2.user.ext.eids.forEach(
13266                      ({
13267                        source: e,
13268                        uids: t = [],
13269                        inserter: r,
13270                        matcher: i,
13271                        mm: n,
13272                        ext: o = {},
13273                      }) => {
13274                        try {
13275                          const o = t[0];
13276                          if (!o) return;
13277                          const a = (e) =>
13278                              [
13279                                e.id,
13280                                e.atype || "",
13281                                "",
13282                                r || "",
13283                                i || "",
13284                                n || "",
13285                                e?.ext?.rtiPartner || e?.ext?.rtipartner || "",
13286                              ].join("^"),
13287                            d = a(o);
13288                          if (((s[`eid_${e}`] = d), !s.ppuid)) {
13289                            const e = t.find((e) => "ppuid" === e.ext?.stype);
13290                            e?.id && (s.ppuid = e.id);
13291                          }
13292                        } catch (r) {
13293                          (0, c.JE)(
13294                            "Rubicon: error reading eid:",
13295                            { source: e, uids: t },
13296                            r,
13297                          );
13298                        }
13299                      },
13300                    ),
13301                  t.gdprConsent &&
13302                    ("boolean" == typeof t.gdprConsent.gdprApplies &&
13303                      (s.gdpr = Number(t.gdprConsent.gdprApplies)),
13304                    (s.gdpr_consent = t.gdprConsent.consentString)),
13305                  t.uspConsent &&
13306                    (s.us_privacy = encodeURIComponent(t.uspConsent)),
13307                  t.gppConsent?.gppString &&
13308                    ((s.gpp = t.gppConsent.gppString),
13309                    (s.gpp_sid = t.gppConsent?.applicableSections?.toString())),
13310                  (s.rp_maxbids = t.bidLimit),
13311                  (function (e, t, r) {
13312                    const i = {
13313                      user: { ext: { data: { ...e.params.visitor } } },
13314                      site: { ext: { data: { ...e.params.inventory } } },
13315                    };
13316                    e.params.keywords &&
13317                      (i.site.keywords = (0, l.cy)(e.params.keywords)
13318                        ? e.params.keywords.join(",")
13319                        : e.params.keywords);
13320                    const n = (0, c.D9)({}, e.ortb2 || {}, i),
13321                      o = (0, p.A)(e.ortb2Imp, "ext") || {},
13322                      s = (0, p.A)(e.ortb2Imp, "ext.data") || {},
13323                      a = (0, p.A)(e, "ortb2Imp.ext.gpid"),
13324                      d = (0, p.A)(n, "regs.ext.dsa"),
13325                      u = { user: [4], site: [1, 2, 5, 6, 7] },
13326                      m = {
13327                        user: "tg_v.",
13328                        site: "tg_i.",
13329                        adserver: "tg_i.dfp_ad_unit_code",
13330                        pbadslot: "tg_i.pbadslot",
13331                        keywords: "kw",
13332                      },
13333                      b = function (e, t, r) {
13334                        return "data" === t && Array.isArray(e)
13335                          ? e
13336                              .filter(
13337                                (e) =>
13338                                  e.segment &&
13339                                  (0, p.A)(e, "ext.segtax") &&
13340                                  u[r] &&
13341                                  -1 !==
13342                                    u[r].indexOf((0, p.A)(e, "ext.segtax")),
13343                              )
13344                              .map((e) => {
13345                                const t = e.segment
13346                                  .filter((e) => e.id)
13347                                  .reduce((e, t) => (e.push(t.id), e), []);
13348                                return t.length > 0 ? t.toString() : "";
13349                              })
13350                              .toString()
13351                          : ("object" != typeof e || Array.isArray(e)) &&
13352                              void 0 !== e
13353                            ? Array.isArray(e)
13354                              ? e
13355                                  .filter(
13356                                    (e) =>
13357                                      ("object" != typeof e && void 0 !== e) ||
13358                                      ((0, c.JE)(
13359                                        "Rubicon: Filtered value: ",
13360                                        e,
13361                                        "for key",
13362                                        t,
13363                                        ": Expected value to be string, integer, or an array of str
13363ings/ints",
13364                                      ),
13365                                      !1),
13366                                  )
13367                                  .map((e) => e.toString())
13368                                  .toString()
13369                              : e.toString()
13370                            : void 0;
13371                      },
13372                      x = function (e, t, i, n = !0) {
13373                        const o = b(e, i, t),
13374                          s =
13375                            m[i] && n
13376                              ? `${m[i]}`
13377                              : "data" === i
13378                                ? `${m[t]}iab`
13379                                : `${m[t]}${i}`;
13380                        r[s] = r[s] ? r[s].concat(",", o) : o;
13381                      };
13382                    if ("banner" === t) {
13383                      (["site", "user"].forEach((e) => {
13384                        Object.keys(n[e]).forEach((t) => {
13385                          "site" === e && "content" === t && n[e][t].data
13386                            ? x(n[e][t].data, e, "data")
13387                            : "ext" !== t
13388                              ? x(n[e][t], e, t)
13389                              : n[e][t].data &&
13390                                Object.keys(n[e].ext.data).forEach((t) => {
13391                                  x(n[e].ext.data[t], e, t, !1);
13392                                });
13393                        });
13394                      }),
13395                        Object.keys(s).forEach((e) => {
13396                          "adserver" !== e
13397                            ? x(s[e], "site", e)
13398                            : "gam" === s[e].name && x(s[e].adslot, name, e);
13399                        }),
13400                        a && (r.p_gpid = a),
13401                        d &&
13402                          Object.keys(d).length &&
13403                          (0, c.Up)(d, [
13404                            "dsainfo",
13405                            (e) => {
13406                              r.dsainfo = e;
13407                            },
13408                            "dsarequired",
13409                            (e) => {
13410                              r.dsarequired = e;
13411                            },
13412                            "pubrender",
13413                            (e) => {
13414                              r.dsapubrender = e;
13415                            },
13416                            "datatopub",
13417                            (e) => {
13418                              r.dsadatatopubs = e;
13419                            },
13420                            "transparency",
13421                            (e) => {
13422                              Array.isArray(e) &&
13423                                e.length &&
13424                                (r.dsatransparency = e.reduce((e, t) => {
13425                                  const r = t.domain || "";
13426                                  if (!r) return e;
13427                                  const i = t.dsaparams || t.params;
13428                                  return Array.isArray(i) && 0 !== i.length
13429                                    ? (e && (e += "~~"),
13430                                      (e += `${r}~${i.join("_")}`))
13431                                    : e;
13432                                }, ""));
13433                            },
13434                          ]),
13435                        r["tg_i.pbadslot"] &&
13436                          delete r["tg_i.dfp_ad_unit_code"]);
13437                      const e = (0, p.A)(n, "device.sua");
13438                      e &&
13439                        !1 !== f.chEnabled &&
13440                        (0, c.Up)(e, [
13441                          "architecture",
13442                          (e) => {
13443                            r.m_ch_arch = e;
13444                          },
13445                          "bitness",
13446                          (e) => {
13447                            r.m_ch_bitness = e;
13448                          },
13449                          "browsers",
13450                          (e) => {
13451                            if (!Array.isArray(e)) return;
13452                            const [t, i] = e.reduce(
13453                              (e, t) => (
13454                                e[0].push(
13455                                  `"${t?.brand}"|v="${t?.version?.[0]}"`,
13456                                ),
13457                                t?.version?.length > 1 &&
13458                                  e[1].push(
13459                                    `"${t?.brand}"|v="${t?.version?.join?.(".")}"`,
13460                                  ),
13461                                e
13462                              ),
13463                              [[], []],
13464                            );
13465                            ((r.m_ch_ua = t?.join?.(",")),
13466                              (r.m_ch_full_ver = i?.join?.(",")));
13467                          },
13468                          "mobile",
13469                          (e) => {
13470                            r.m_ch_mobile = `?${e}`;
13471                          },
13472                          "model",
13473                          (e) => {
13474                            r.m_ch_model = e;
13475                          },
13476                          "platform",
13477                          (e) => {
13478                            ((r.m_ch_platform = e?.brand),
13479                              (r.m_ch_platform_ver = e?.version?.join?.(".")));
13480                          },
13481                        ]);
13482                    } else
13483                      (Object.keys(o).length && (0, c.D9)(r.imp[0].ext, o),
13484                        a && (r.imp[0].ext.gpid = a),
13485                        (0, c.D9)(r, n));
13486                  })(e, "banner", s),
13487                  !0 === d.$.getConfig("coppa") && (s.coppa = 1));
13488                const m = e?.ortb2?.source?.ext?.schain;
13489                return (
13490                  m && O(m) && (s.rp_schain = h.serializeSupplyChain(m)),
13491                  s
13492                );
13493              },
13494              serializeSupplyChain: function (e) {
13495                if (!O(e)) return "";
13496                const { ver: t, complete: r, nodes: i } = e;
13497                return `${t},${r}!${h.serializeSupplyChainNodes(i)}`;
13498              },
13499              serializeSupplyChainNodes: function (e) {
13500                const t = ["asi", "sid", "hp", "rid", "name", "domain"];
13501                return e
13502                  .map((e) =>
13503                    t.map((t) => encodeURIComponent(e[t] || "")).join(","),
13504                  )
13505                  .join("!");
13506              },
13507              interpretResponse: function (e, t) {
13508                e = e.body;
13509                const { data: r } = t;
13510                if (!e || "object" != typeof e) return [];
13511                if (e.seatbid) {
13512                  const t = (0, p.A)(e, "ext.errors.rubicon");
13513                  Array.isArray(t) &&
13514                    t.length > 0 &&
13515                    (0, c.JE)("Rubicon: Error in video response");
13516                  return v.fromORTB({ request: r, response: e }).bids;
13517                }
13518                let i,
13519                  n = e.ads,
13520                  o = 0;
13521                const { bidRequest: s } = t;
13522                if (
13523                  ("object" == typeof s &&
13524                    !Array.isArray(s) &&
13525                    k(s).includes("video") &&
13526                    "object" == typeof n &&
13527                    (n = n[s.adUnitCode]),
13528                  !Array.isArray(n) || n.length < 1)
13529                )
13530                  return [];
13531                return n
13532                  .reduce((t, r, n) => {
13533                    if (
13534                      (r.impression_id && i === r.impression_id
13535                        ? o++
13536                        : (i = r.impression_id),
13537                      "ok" !== r.status)
13538                    )
13539                      return t;
13540                    const a = Array.isArray(s) ? s[n - o] : s;
13541                    if (a && "object" == typeof a) {
13542                      const e = {
13543                        requestId: a.bidId,
13544                        currency: "USD",
13545                        creativeId:
13546                          r.creative_id ||
13547                          `${r.network || ""}-${r.advertiser || ""}`,
13548                        cpm: r.cpm || 0,
13549                        dealId: r.deal,
13550                        ttl: 360,
13551                        netRevenue: !1 !== f.netRevenue,
13552                        rubicon: {
13553                          advertiserId: r.advertiser,
13554                          networkId: r.network,
13555                        },
13556                        meta: {
13557                          advertiserId: r.advertiser,
13558                          networkId: r.network,
13559                          mediaType: "banner",
13560                        },
13561                      };
13562                      (r.creative_type && (e.mediaType = r.creative_type),
13563                        r.dsa &&
13564                          Object.keys(r.dsa).length &&
13565                          (e.meta.dsa = r.dsa),
13566                        r.adomain &&
13567                          (e.meta.advertiserDomains = Array.isArray(r.adomain)
13568                            ? r.adomain
13569                            : [r.adomain]),
13570                        r.emulated_format &&
13571                          (e.meta.mediaType = r.emulated_format),
13572                        "video" === r.creative_type
13573                          ? ((e.width = a.params.video.playerWidth),
13574                            (e.height = a.params.video.playerHeight),
13575                            (e.vastUrl = r.creative_depot_url),
13576                            (e.impression_id = r.impression_id),
13577                            (e.videoCacheKey = r.impression_id))
13578                          : ((e.ad =
13579                              ((d = r.script),
13580                              `<html>\n<head><script type='text/javascript'>inDapIF=true;<\/script></head>\n<body style='margin : 0; padding: 0;'>\n\x3c!-- Rubicon Project Ad Tag --\x3e\n<div data-rp-impression-id='${r.impression_id}'>\n<script type='text/javascript'>${d}<\/script>\n</div>\n</body>\n</html>`)),
13581                            ([e.width, e.height] = g[r.size_id]
13582                              .split("x")
13583                              .map((e) => Number(e)))),
13584                        r.bid_cat &&
13585                          r.bid_cat.length &&
13586                          ((e.meta.primaryCatId = r.bid_cat[0]),
13587                          r.bid_cat.length > 1 &&
13588                            (e.meta.secondaryCatIds = r.bid_cat.slice(1))),
13589                        (e.rubiconTargeting = (
13590                          Array.isArray(r.targeting) ? r.targeting : []
13591                        ).reduce((e, t) => ((e[t.key] = t.values[0]), e), {
13592                          rpfl_elemid: a.adUnitCode,
13593                        })),
13594                        t.push(e));
13595                    } else
13596                      (0, c.vV)(
13597                        `Rubicon: bidRequest undefined at index position:${n}`,
13598                        s,
13599                        e,
13600                      );
13601                    var d;
13602                    return t;
13603                  }, [])
13604                  .sort((e, t) => (t.cpm || 0) - (e.cpm || 0));
13605              },
13606              getUserSyncs: function (e, t, r, i, n) {
13607                if (e.iframeEnabled) {
13608                  let e = (0, b.d)(r, i, n);
13609                  return (
13610                    (e = Object.keys(e).length ? `?${(0, c.eP)(e)}` : ""),
13611                    {
13612                      type: "iframe",
13613                      url:
13614                        `https://${f.syncHost || "eus"}.rubiconproject.com/usync.html` +
13615                        e,
13616                    }
13617                  );
13618                }
13619              },
13620            };
13621          function _(e, t) {
13622            let r;
13623            return (
13624              (r = e.params.referrer ? e.params.referrer : t.refererInfo.page),
13625              e.params.secure ? r.replace(/^http:/i, "https:") : r
13626            );
13627          }
13628          function A(e, t) {
13629            const r = e.params;
13630            if ("video" === t) {
13631              let t = [];
13632              return (
13633                r.video && r.video.playerWidth && r.video.playerHe
13633ight
13634                  ? (t = [r.video.playerWidth, r.video.playerHeight])
13635                  : Array.isArray((0, p.A)(e, "mediaTypes.video.playerSize")) &&
13636                      1 === e.mediaTypes.video.playerSize.length
13637                    ? (t = e.mediaTypes.video.playerSize[0])
13638                    : Array.isArray(e.sizes) &&
13639                      e.sizes.length > 0 &&
13640                      Array.isArray(e.sizes[0]) &&
13641                      e.sizes[0].length > 1 &&
13642                      (t = e.sizes[0]),
13643                t
13644              );
13645            }
13646            let i = [];
13647            return (
13648              Array.isArray(r.sizes)
13649                ? (i = r.sizes)
13650                : void 0 !== (0, p.A)(e, "mediaTypes.banner.sizes")
13651                  ? (i = j(e.mediaTypes.banner.sizes))
13652                  : Array.isArray(e.sizes) && e.sizes.length > 0
13653                    ? (i = j(e.sizes))
13654                    : (0, c.JE)("Rubicon: no sizes are setup or found"),
13655              (function (e) {
13656                const t = [15, 2, 9];
13657                return e.sort((e, r) => {
13658                  const i = t.indexOf(e),
13659                    n = t.indexOf(r);
13660                  return i > -1 || n > -1
13661                    ? -1 === i
13662                      ? 1
13663                      : -1 === n
13664                        ? -1
13665                        : i - n
13666                    : e - r;
13667                });
13668              })(i)
13669            );
13670          }
13671          function j(e) {
13672            return (0, c.kK)(e).reduce((e, t) => {
13673              const r = parseInt(g[t], 10);
13674              return (r && e.push(r), e);
13675            }, []);
13676          }
13677          function k(e, t = !1) {
13678            const r = [];
13679            if (
13680              (function (e) {
13681                let t = void 0 !== (0, p.A)(e, "mediaTypes.video");
13682                const r = void 0 !== (0, p.A)(e, "mediaTypes.banner"),
13683                  i = void 0 !== (0, p.A)(e, "params.bidonmultiformat"),
13684                  n = "object" != typeof (0, p.A)(e, "params.video");
13685                return (
13686                  !(!t || !i) ||
13687                  (r && n && (t = !1),
13688                  t && n && (0, u.J)(e, "params.video", {}),
13689                  t)
13690                );
13691              })(e)
13692            ) {
13693              if (
13694                -1 ===
13695                ["outstream", "instream"].indexOf(
13696                  (0, p.A)(e, "mediaTypes.video.context"),
13697                )
13698              )
13699                return (
13700                  t &&
13701                    (0, c.vV)(
13702                      "Rubicon: mediaTypes.video.context must be outstream or instream",
13703                    ),
13704                  r
13705                );
13706              if (A(e, "video").length < 2)
13707                return (
13708                  t &&
13709                    (0, c.vV)(
13710                      "Rubicon: could not determine the playerSize of the video",
13711                    ),
13712                  r
13713                );
13714              (t &&
13715                (0, c.OG)(
13716                  "Rubicon: making video request for adUnit",
13717                  e.adUnitCode,
13718                ),
13719                r.push("video"));
13720            }
13721            if (
13722              (void 0 !== (0, p.A)(e, "mediaTypes.native") && r.push("native"),
13723              void 0 !== (0, p.A)(e, "mediaTypes.banner"))
13724            ) {
13725              if (0 === A(e, "banner").length)
13726                return (
13727                  t &&
13728                    (0, c.vV)(
13729                      "Rubicon: could not determine the sizes for banner request",
13730                    ),
13731                  r
13732                );
13733              (t &&
13734                (0, c.OG)(
13735                  "Rubicon: making banner request for adUnit",
13736                  e.adUnitCode,
13737                ),
13738                r.push("banner"));
13739            }
13740            return r;
13741          }
13742          const $ = () => {
13743            y = {};
13744          };
13745          function O(e) {
13746            let t = !1;
13747            const r = ["asi", "sid", "hp"];
13748            return e.nodes
13749              ? ((t = e.nodes.reduce(
13750                  (e, t) => (e ? r.every((e) => t.hasOwnProperty(e)) : e),
13751                  !0,
13752                )),
13753                t || (0, c.vV)("Rubicon: required schain params missing"),
13754                t)
13755              : t;
13756          }
13757          function R(e, t) {
13758            return "rp_schain" === e
13759              ? `rp_schain=${t}`
13760              : `${e}=${encodeURIComponent(t)}`;
13761          }
13762          ((0, a.a$)(h),
13763            (0, n.E)("rubiconBidAdapter"),
13764            Object.assign(i.W1, {
13765              52: {
13766                purposes: [1, 3, 4],
13767                legIntPurposes: [2, 7, 10],
13768                flexiblePurposes: [2, 7, 10],
13769                specialFeatures: [1, 2],
13770              },
13771            }));
13772        },
13773      },
13774      (e) => {
13775        e.O(0, [802, 769, 590, 85, 498, 618, 550, 965, 247], () => {
13776          return ((t = 2069), e((e.s = t)));
13777          var t;
13778        });
13779        e.O();
13780      },
13781    ]);
13782  })(),
13783    pbjs.processQueue());

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.