Skip to content

Instantly share code, notes, and snippets.

@lwwcas
Created March 25, 2022 12:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lwwcas/6a37655fa026f75917797626c0ff9daa to your computer and use it in GitHub Desktop.
Save lwwcas/6a37655fa026f75917797626c0ff9daa to your computer and use it in GitHub Desktop.
amp-ad-network-smartadserver-impl-01.js
;
(self.AMP = self.AMP || []).push({
m: 0,
v: "2203101844000",
n: "amp-ad",
ev: "0.1",
l: !0,
f: function(t, e) {
! function() {
function e(t, e) {
(null == e || e > t.length) && (e = t.length);
for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];
return n
}
function r(t, r) {
var n = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
if (n) return (n = n.call(t)).next.bind(n);
if (Array.isArray(t) || (n = function(t, r) {
if (t) {
if ("string" == typeof t) return e(t, r);
var n = Object.prototype.toString.call(t).slice(8, -1);
return "Object" === n && t.constructor && (n = t.constructor.name), "Map" === n || "Set" === n ? Array.from(t) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? e(t, r) : void 0
}
}(t)) || r && t && "number" == typeof t.length) {
n && (t = n);
var i = 0;
return function() {
return i >= t.length ? {
done: !0
} : {
done: !1,
value: t[i++]
}
}
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}
var n;
function i() {
return n || (n = Promise.resolve(void 0))
}
var a = function() {
var t = this;
this.promise = new Promise((function(e, r) {
t.resolve = e, t.reject = r
}))
};
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e, t
})(t, e)
}
function o(t, e) {
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
t.prototype = Object.create(e && e.prototype, {
constructor: {
value: t,
writable: !0,
configurable: !0
}
}), e && s(t, e)
}
function c(t) {
return (c = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
return t.__proto__ || Object.getPrototypeOf(t)
})(t)
}
function p(t) {
return (p = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
return typeof t
} : function(t) {
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
})(t)
}
function d(t, e) {
if (e && ("object" === p(e) || "function" == typeof e)) return e;
if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
return function(t) {
if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return t
}(t)
}
function u(t) {
var e = function() {
if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
if (Reflect.construct.sham) return !1;
if ("function" == typeof Proxy) return !0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), !0
} catch (t) {
return !1
}
}();
return function() {
var r, n = c(t);
if (e) {
var i = c(this).constructor;
r = Reflect.construct(n, arguments, i)
} else r = n.apply(this, arguments);
return d(this, r)
}
}
var m, h = Object.prototype,
l = h.hasOwnProperty;
function f(t) {
var e = Object.create(null);
return t && Object.assign(e, t), e
}
function v(t, e) {
return l.call(t, e)
}
h.toString;
var g = Array.isArray;
function b(t) {
return JSON.parse(t)
}
function j(t, e) {
try {
return b(t)
} catch (t) {
return null == e || e(t), null
}
}
var y, w = JSON.parse('{"_ping_":{"renderStartImplemented":true,"clientIdScope":"_PING_","consentHandlingOverride":true},"1wo":{},"24smi":{"prefetch":"https://jsn.24smi.net/smi.js","preconnect":"https://data.24smi.net"},"a8":{"prefetch":"https://statics.a8.net/amp/ad.js","renderStartImplemented":true},"a9":{"prefetch":"https://z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US"},"accesstrade":{"prefetch":"https://h.accesstrade.net/js/amp/amp.js"},"adagio":{"prefetch":"https://js-ssl.neodatagroup.com/adagio_amp.js","preconnect":["https://ad-aws-it.neodatagroup.com","https://tracker.neodatagroup.com"],"renderStartImplemented":true},"adblade":{"prefetch":"https://web.adblade.com/js/ads/async/show.js","preconnect":["https://staticd.cdn.adblade.com","https://static.adblade.com"],"renderStartImplemented":true},"adbutler":{"prefetch":"https://servedbyadbutler.com/app.js"},"adform":{},"adfox":{"prefetch":"https://yandex.ru/ads/system/context.js","preconnect":["https://yastatic.net/"],"renderStartImplemented":true},"adgeneration":{"prefetch":"https://i.socdm.com/sdk/js/adg-script-loader.js"},"adglare":{"renderStartImplemented":true},"adhese":{"renderStartImplemented":true},"adincube":{"renderStartImplemented":true},"adition":{},"adman":{},"admanmedia":{"renderStartImplemented":true},"admixer":{"renderStartImplemented":true,"preconnect":["https://inv-nets.admixer.net","https://cdn.admixer.net"]},"adnuntius":{"prefetch":"https://cdn.adnuntius.com/adn.js","renderStartImplemented":true},"adocean":{"consentHandlingOverride":true},"adop":{},"adpicker":{"renderStartImplemented":true},"adplugg":{"prefetch":"https://www.adplugg.com/serve/js/ad.js","renderStartImplemented":true},"adpon":{"prefetch":"https://ad.adpon.jp/amp.js","clientIdScope":"AMP_ECID_ADPON"},"adpushup":{"prefetch":"https://securepubads.g.doubleclick.net/tag/js/gpt.js","preconnect":"https://cdn.adpushup.com"},"adreactor":{},"ads2bid":{"renderStartImplemented":true},"adsensor":{"prefetch":"https://wfpscripts.webspectator.com/amp/adsensor-amp.js","clientIdScope":"amp_ecid_adensor","renderStartImplemented":true},"adservsolutions":{},"adskeeper":{"renderStartImplemented":true,"preconnect":["https://jsc.adskeeper.com","https://servicer.adskeeper.com","https://s-img.adskeeper.com"]},"adsloom":{"clientIdScope":"AMP_ECID_ADSLOOM"},"adsnative":{"prefetch":"https://static.adsnative.com/static/js/render.v1.js","preconnect":"https://api.adsnative.com"},"adspeed":{"preconnect":"https://g.adspeed.net","renderStartImplemented":true},"adspirit":{},"adstir":{"prefetch":"https://js.ad-stir.com/js/adstir_async.js","preconnect":"https://ad.ad-stir.com"},"adstyle":{"prefetch":"https://widgets.ad.style/amp.js","preconnect":["https://w.ad.style"]},"adtech":{"prefetch":"https://s.aolcdn.com/os/ads/adsWrapper3.js","preconnect":["https://mads.at.atwola.com","https://aka-cdn.adtechus.com"]},"adtelligent":{"preconnect":["https://s.adtelligent.com"],"renderStartImplemented":true},"adthrive":{"prefetch":["https://www.googletagservices.com/tag/js/gpt.js"],"preconnect":["https://partner.googleadservices.com","https://securepubads.g.doubleclick.net","https://tpc.googlesyndication.com"],"renderStartImplemented":true},"adunity":{"preconnect":["https://content.adunity.com"],"renderStartImplemented":true},"aduptech":{"prefetch":"https://s.d.adup-tech.com/jsapi","preconnect":["https://d.adup-tech.com","https://m.adup-tech.com","https://v.adup-tech.com"],"renderStartImplemented":true,"consentHandlingOverride":true},"adventive":{"preconnect":["https://ads.adventive.com","https://amp.adventivedev.com"],"renderStartImplemented":true},"adverline":{"prefetch":"https://ads.adverline.com/richmedias/amp.js","preconnect":["https://adnext.fr"],"renderStartImplemented":true},"adverticum":{},"advertserve":{"renderStartImplemented":true},"adyoulike":{"consentHandlingOverride":true,"prefetch":"https://fo-static.omnitagjs.com/amp.js","renderStartImplemented":true},"adzerk":{},"affiliateb":{"prefetch":"https://track.affiliate-b.com/amp/a.js","renderStartImplemented":true},"aja":{"prefetch":["https://cdn.as.amanad.adtdp.com/sdk/asot-amp.js","https://cdn.as.amanad.adtdp.com/sdk/asot-v2.js"],"preconnect":["https://ad.as.amanad.adtdp.com"]},"appvador":{"prefetch":["https://cdn.apvdr.com/js/VastAdUnit.min.js","https://cdn.apvdr.com/js/VideoAd.min.js","https://cdn.apvdr.com/js/VideoAd3PAS.min.js","https://cdn.apvdr.com/js/VideoAdAutoPlay.min.js","https://cdn.apvdr.com/js/VideoAdNative.min.js"],"renderStartImplemented":true},"amoad":{"prefetch":["https://j.amoad.com/js/a.js","https://j.amoad.com/js/n.js"],"preconnect":["https://d.amoad.com","https://i.amoad.com","https://m.amoad.com","https://v.amoad.com"]},"amplified":{"preconnect":"https://srv.clickfuse.com","renderStartImplemented":true},"andbeyond":{"prefetch":"https://securepubads.g.doubleclick.net/tag/js/gpt.js","preconnect":"https://cdn.andbeyond.media"},"aniview":{"renderStartImplemented":true},"anyclip":{"prefetch":"https://player.anyclip.com/anyclip-widget/lre-widget/prod/v1/src/lre.js","preconnect":["https://trafficmanager.anyclip.com","https://lreprx-server.anyclip.com"],"renderStartImplemented":true},"appnexus":{"prefetch":"https://acdn.adnxs.com/ast/ast.js","preconnect":"https://ib.adnxs.com","renderStartImplemented":true},"atomx":{"prefetch":"https://s.ato.mx/p.js"},"avantisvideo":{"renderStartImplemented":true},"beaverads":{"renderStartImplemented":true},"beopinion":{"prefetch":"https://widget.beop.io/sdk.js","preconnect":["https://t.beop.io","https://s.beop.io","https://data.beop.io"],"renderStartImplemented":true},"bidtellect":{},"blade":{"prefetch":"https://sdk.streamrail.com/blade/sr.blade.js","renderStartImplemented":true},"brainy":{},"bringhub":{"renderStartImplemented":true,"preconnect":["https://static.bh-cdn.com","https://core-api.bringhub.io"]},"broadbandy":{"renderStartImplemented":true},"broadstreetads":{"prefetch":"https://cdn.broadstreetads.com/init-2.min.js","renderStartImplemented":true},"byplay":{},"caajainfeed":{"prefetch":["https://cdn.amanad.adtdp.com/sdk/ajaamp.js"],"preconnect":["https://ad.amanad.adtdp.com"]},"capirs":{"renderStartImplemented":true},"caprofitx":{"prefetch":["https://cdn.caprofitx.com/pfx.min.js","https://cdn.caprofitx.com/tags/amp/profitx_amp.js"],"preconnect":"https://ad.caprofitx.adtdp.com"},"cedato":{"renderStartImplemented":true},"chargeads":{},"colombia":{"prefetch":"https://static.clmbtech.com/ad/commons/js/colombia-amp.js"},"colombiafeed":{"prefetch":"https://static.clmbtech.com/c1e/static/themes/js/colombiafeed-amp.js"},"conative":{"renderStartImplemented":true},"connatix":{"renderStartImplemented":true},"contentad":{},"criteo":{"prefetch":"https://static.criteo.net/js/ld/publishertag.js","preconnect":"https://cas.criteo.com"},"csa":{"prefetch":"https://www.google.com/adsense/search/ads.js"},"dable":{"preconnect":["https://static.dable.io","https://api.dable.io","https://images.dable.io"],"renderStartImplemented":true},"dex":{"renderStartImplemented":true},"digiteka":{"renderStartImplemented":true},"directadvert":{"renderStartImplemented":true},"distroscale":{"preconnect":["https://c.jsrdn.com","https://s.jsrdn.com","https://i.jsrdn.com"],"renderStartImplemented":true},"dotandads":{"prefetch":"https://amp.ad.dotandad.com/dotandadsAmp.js","preconnect":"https://bal.ad.dotandad.com"},"dynad":{"preconnect":["https://t.dynad.net","https://tm.jsuol.com.br"]},"eadv":{"renderStartImplemented":true,"clientIdScope":"AMP_ECID_EADV","prefetch":["https://www.eadv.it/track/esr.min.js","https://www.eadv.it/track/ead.min.js"]},"empower":{"prefetch":"https://cdn.empower.net/sdk/amp-ad.min.js","renderStartImplemented":true},"engageya":{},"epeex":{},"eplanning":{"prefetch":"https://us.img.e-planning.net/layers/epl-amp.js"},"exco":{"renderStartImplemented":true},"ezoic":{"prefetch":["https://www.googletagservices.com/tag/js/gpt.js","https://g.ezoic.net/ezoic/ampad.js"],"clientIdScope":"AMP_ECID_EZOIC","consentHandlingOverride":true,"renderStartImplemented":true},"f1e":{"prefetch":"https://img.ak.impact-ad.jp/util/f1e_amp.min.js"},"f1h":{"preconnect":"https://img.ak.impact-ad.jp","renderStartImplemented":true},"fake":{},"fake-delayed":{"renderStartImplemented":true},"feedad":{"clientIdScope":"__fa_amp","prefetch":"https://web.feedad.com/sdk/feedad-async.js","renderStartImplemented":true,"fullWidthHeightRatio":1.7777777777777777,"consentHandlingOverride":true},"felmat":{"prefetch":"https://t.felmat.net/js/fmamp.js","renderStartImplemented":true},"finative":{},"firstimpression":{"prefetch":"https://ecdn.firstimpression.io/static/js/fiamp.js","preconnect":"https://cdn.firstimpression.io","renderStartImplemented":true,"consentHandlingOverride":true},"flite":{},"fluct":{"prefetch":["https://pdn.adingo.jp/p.js"],"preconnect":["https://cdn-fluct.sh.adingo.jp","https://sh.adingo.jp","https://i.adingo.jp"]},"forkmedia":{"renderStartImplemented":true},"freewheel":{"prefetch":"https://cdn.stickyadstv.com/prime-time/fw-amp.min.js","renderStartImplemented":true},"fusion":{"prefetch":"https://assets.adtomafusion.net/fusion/latest/fusion-amp.min.js"},"gecko":{},"genieessp":{"prefetch":"https://js.gsspcln.jp/l/amp.js"},"giraff":{"renderStartImplemented":true},"glomex":{"prefetch":"https://player.glomex.com/integration/1/amp-embed.js"},"gmossp":{"prefetch":"https://cdn.gmossp-sp.jp/ads/amp.js"},"gumgum":{"prefetch":"https://js.gumgum.com/slot.js","renderStartImplemented":true},"holder":{"prefetch":"https://i.holder.com.ua/js2/holder/ajax/ampv1.js","preconnect":"https://h.holder.com.ua","renderStartImplemented":true},"ibillboard":{},"idealmedia":{"renderStartImplemented":true,"preconnect":["https://jsc.idealmedia.io","https://servicer.idealmedia.io","https://s-img.idealmedia.io/"]},"imedia":{"prefetch":"https://i.imedia.cz/js/im3.js","renderStartImplemented":true},"imobile":{"prefetch":"https://spamp.i-mobile.co.jp/script/amp.js","preconnect":"https://spad.i-mobile.co.jp"},"imonomy":{"renderStartImplemented":true},"improvedigital":{},"industrybrains":{"prefetch":"https://web.industrybrains.com/js/ads/async/show.js","preconnect":["https://staticd.cdn.industrybrains.com","https://static.industrybrains.com"],"renderStartImplemented":true},"inmobi":{"prefetch":"https://cf.cdn.inmobi.com/ad/inmobi.secure.js","renderStartImplemented":true},"innity":{"prefetch":"https://cdn.innity.net/admanager.js","preconnect":"https://as.innity.com","renderStartImplemented":true},"insticator":{"preconnect":"https://d3lcz8vpax4lo2.cloudfront.net","renderStartImplemented":true},"insurads":{"prefetch":"https://securepubads.g.doubleclick.net/tag/js/gpt.js","preconnect":["https://tpc.googlesyndication.com","https://adservice.google.com","https://cdn.insurads.com","https://services.insurads.com","https://messaging.insurads.com"],"renderStartImplemented":true,"consentHandlingOverride":true},"invibes":{"prefetch":"https://k.r66net.com/GetAmpLink","renderStartImplemented":true,"consentHandlingOverride":true},"iprom":{"prefetch":"https://cdn.ipromcloud.com/ipromNS.js"},"ix":{"prefetch":["https://js-sec.indexww.com/apl/amp.js"],"preconnect":"https://as-sec.casalemedia.com","renderStartImplemented":true},"jubna":{},"kargo":{},"ketshwa":{},"kiosked":{"renderStartImplemented":true},"jixie":{"prefetch":["https://scripts.jixie.media/jxamp.min.js"],"clientIdScope":"__jxamp","clientIdCookieName":"_jx","renderStartImplemented":true},"kixer":{"prefetch":"https://cdn.kixer.com/ad/load.js","renderStartImplemented":true},"kuadio":{},"lentainform":{"renderStartImplemented":true,"preconnect":["https://jsc.lentainform.com","https://servicer.lentainform.com","https://s-img.lentainform.com"]},"ligatus":{"prefetch":"https://ssl.ligatus.com/render/ligrend.js","renderStartImplemented":true},"lockerdome":{"prefetch":"https://cdn2.lockerdomecdn.com/_js/amp.js","renderStartImplemented":true},"logly":{"preconnect":["https://l.logly.co.jp","https://cdn.logly.co.jp"],"renderStartImplemented":true},"loka":{"prefetch":"https://loka-cdn.akamaized.net/scene/amp.js","preconnect":["https://scene-front.lokaplatform.com","https://loka-materials.akamaized.net"],"renderStartImplemented":true},"luckyads":{"renderStartImplemented":true},"macaw":{"renderStartImplemented":true},"mads":{"prefetch":"https://eu2.madsone.com/js/tags.js"},"mantis-display":{"prefetch":"https://assets.mantisadnetwork.com/mantodea.min.js","preconnect":["https://mantodea.mantisadnetwork.com","https://res.cloudinary.com","https://resize.mantisadnetwork.com"]},"marfeel":{"prefetch":"https://securepubads.g.doubleclick.net/tag/js/gpt.js","preconnect":["https://live.mrf.io","https://tpc.googlesyndication.com","https://fastlane.rubiconproject.com","https://htlb.casalemedia.com","https://prg.smartadserver.com","https://ib.adnxs.com","https://bidder.criteo.com","https://marfeel-d.openx.net","https://ice.360yield.com","https://mbid.marfeelrev.com","https://adservice.google.com"],"consentHandlingOverride":true},"mantis-recommend":{"prefetch":"https://assets.mantisadnetwork.com/recommend.min.js","preconnect":["https://mantodea.mantisadnetwork.com","https://resize.mantisadnetwork.com"]},"mediaad":{},"medianet":{"preconnect":"https://contextual.media.net","renderStartImplemented":true},"mediavine":{"prefetch":"https://amp.mediavine.com/wrapper.min.js","preconnect":["https://partner.googleadservices.com","https://securepubads.g.doubleclick.net","https://tpc.googlesyndication.com"],"renderStartImplemented":true,"consentHandlingOverride":true},"medyanet":{"renderStartImplemented":true},"meg":{"renderStartImplemented":true},"mgid":{"renderStartImplemented":true,"preconnect":["https://jsc.mgid.com","https://servicer.mgid.com","https://s-img.mgid.com"]},"microad":{"prefetch":"https://j.microad.net/js/camp.js","preconnect":["https://s-rtb.send.microad.jp","https://s-rtb.send.microadinc.com","https://cache.send.microad.jp","https://cache.send.microadinc.com","https://deb.send.microad.jp"]},"miximedia":{"renderStartImplemented":true},"mixpo":{"prefetch":"https://cdn.mixpo.com/js/loader.js","preconnect":["https://player1.mixpo.com","https://player2.mixpo.com"]},"monetizer101":{"renderStartImplemented":true},"mox":{"prefetch":["https://ad.mox.tv/js/amp.min.js","https://ad.mox.tv/mox/mwayss_invocation.min.js"],"renderStartImplemented":true},"my6sense":{"renderStartImplemented":true},"myfinance":{"preconnect":["https://a.myfidevs.io","https://static.myfinance.com","https://www.myfinance.com"],"renderStartImplemented":true,"clientIdScope":"AMP_ECID_GOOGLE"},"myoffrz":{"renderStartImplemented":true},"mytarget":{"prefetch":"https://ad.mail.ru/static/ads-async.js","renderStartImplemented":true},"myua":{"renderStartImplemented":true},"mywidget":{"preconnect":"https://likemore-fe.go.mail.ru","prefetch":"https://likemore-go.imgsmail.ru/widget_amp.js","renderStartImplemented":true},"nativeroll":{"prefetch":"https://cdn01.nativeroll.tv/js/seedr-player.min.js"},"nativery":{"preconnect":"https://cdn.nativery.com"},"nativo":{"prefetch":"https://s.ntv.io/serve/load.js"},"navegg":{"renderStartImplemented":true},"nend":{"prefetch":"https://js1.nend.net/js/amp.js","preconnect":["https://output.nend.net","https://img1.nend.net"]},"netletix":{"preconnect":["https://call.netzathleten-media.de"],"renderStartImplemented":true},"noddus":{"prefetch":"https://noddus.com/amp_loader.js","renderStartImplemented":true},"nokta":{"prefetch":"https://static.virgul.com/theme/mockups/noktaamp/ampjs.js","renderStartImplemented":true},"nws":{},"oblivki":{"renderStartImplemented":true},"onead":{"prefetch":"https://ad-specs.guoshipartners.com/static/js/onead-amp.min.js","renderStartImplemented":true},"onnetwork":{"renderStartImplemented":true},"openadstream":{},"openx":{"prefetch":"https://www.googletagservices.com/tag/js/gpt.js","preconnect":["https://partner.googleadservices.com","https://securepubads.g.doubleclick.net","https://tpc.googlesyndication.com"],"renderStartImplemented":true},"opinary":{"renderStartImplemented":true},"outbrain":{"renderStartImplemented":true,"prefetch":"https://widgets.outbrain.com/widgetAMP/outbrainAMP.min.js","preconnect":["https://odb.outbrain.com"],"consentHandlingOverride":true},"pixels":{"prefetch":"https://cdn.adsfactor.net/amp/pixels-amp.min.js","clientIdCookieName":"__AF","renderStartImplemented":true},"playstream":{"prefetch":"https://app.playstream.media/js/amp.js","renderStartImplemented":true},"plista":{},"polymorphicads":{"prefetch":"https://www.polymorphicads.jp/js/amp.js","preconnect":["https://img.polymorphicads.jp","https://ad.polymorphicads.jp"],"renderStartImplemented":true},"popin":{"renderStartImplemented":true},"postquare":{},"ppstudio":{"renderStartImplemented":true},"pressboard":{"renderStartImplemented":true},"promoteiq":{},"pubexchange":{},"pubguru":{"renderStartImplemented":true},"pubmatic":{"prefetch":"https://ads.pubmatic.com/AdServer/js/amp.js"},"pubmine":{"prefetch":["https://s.pubmine.com/head.js"],"preconnect":"https://delivery.g.switchadhub.com","renderStartImplemented":true},"puffnetwork":{"prefetch":"https://static.puffnetwork.com/amp_ad.js","renderStartImplemented":true},"pulse":{"prefetch":"https://static.pulse.mail.ru/pulse-widget-amp.js","renderStartImplemented":true},"pulsepoint":{"prefetch":"https://ads.contextweb.com/TagPublish/getjs.static.js","preconnect":"https://tag.contextweb.com"},"purch":{"prefetch":"https://ramp.purch.com/serve/creative_amp.js","renderStartImplemented":true},"quoraad":{"prefetch":"https://a.quora.com/amp_ad.js","preconnect":"https://ampad.quora.com","renderStartImplemented":true},"rakutenunifiedads":{"prefetch":"https://s-cdn.rmp.rakuten.co.jp/js/amp.js","renderStartImplemented":true},"rbinfox":{"renderStartImplemented":true},"rcmwidget":{"prefetch":"https://rcmjs.rambler.ru/static/rcmw/rcmw-amp.js","renderStartImplemented":true},"readmo":{"renderStartImplemented":true},"realclick":{"renderStartImplemented":true},"recomad":{"renderStartImplemented":true},"recreativ":{"prefetch":"https://go.rcvlink.com/static/amp.js","renderStartImplemented":true},"relap":{"renderStartImplemented":true},"relappro":{"prefetch":"https://cdn.relappro.com/adservices/amp/relappro.amp.min.js","preconnect":"https://tags.relappro.com","renderStartImplemented":true},"remixd":{"preconnect":"https://tags.remixd.com","renderStartImplemented":true},"revcontent":{"prefetch":"https://labs-cdn.revcontent.com/build/amphtml/revcontent.amp.min.js","preconnect":["https://trends.revcontent.com","https://cdn.revcontent.com","https://img.revcontent.com"],"renderStartImplemented":true},"revjet":{"prefetch":"https://cdn.revjet.com/~cdn/JS/03/amp.js","renderStartImplemented":true},"rfp":{"prefetch":"https://js.rfp.fout.jp/rfp-amp.js","preconnect":"https://ad.rfp.fout.jp","renderStartImplemented":true},"rnetplus":{},"rubicon":{},"runative":{"prefetch":"https://cdn.run-syndicate.com/sdk/v1/n.js","renderStartImplemented":true},"sabavision":{"renderStartImplemented":true},"sas":{"renderStartImplemented":true},"seedingalliance":{},"seedtag":{"prefetch":"https://config.seedtag.com/omid/bridge/bridge.js","preconnect":["https://s.seedtag.com"],"consentHandlingOverride":true,"renderStartImplemented":true},"sekindo":{"renderStartImplemented":true},"sharethrough":{"renderStartImplemented":true},"shemedia":{"prefetch":["https://securepubads.g.doubleclick.net/tag/js/gpt.js","https://ads.shemedia.com/static/amp.js"],"preconnect":["https://partner.googleadservices.com","https://tpc.googlesyndication.com","https://ads.blogherads.com"],"renderStartImplemented":true},"sklik":{"prefetch":"https://c.imedia.cz/js/amp.js"},"slimcutmedia":{"preconnect":["https://sb.freeskreen.com","https://static.freeskreen.com","https://video.freeskreen.com"],"renderStartImplemented":true},"smartads":{"prefetch":"https://smart-ads.biz/amp.js"},"smartadserver":{"prefetch":"https://ec-ns.sascdn.com/diff/js/amp.v0.js","preconnect":"https://static.sascdn.com","renderStartImplemented":true},"smartclip":{"prefetch":"https://cdn.smartclip.net/amp/amp.v0.js","preconnect":"https://des.smartclip.net","renderStartImplemented":true},"smi2":{"renderStartImplemented":true},"smilewanted":{"prefetch":"https://prebid.smilewanted.com/amp/amp.js","preconnect":"https://static.smilewanted.com","renderStartImplemented":true},"sogouad":{"prefetch":"https://theta.sogoucdn.com/wap/js/aw.js","renderStartImplemented":true},"sortable":{"prefetch":"https://www.googletagservices.com/tag/js/gpt.js","preconnect":["https://tags-cdn.deployads.com","https://partner.googleadservices.com","https://securepubads.g.doubleclick.net","https://tpc.googlesyndication.com"],"renderStartImplemented":true},"sona":{"renderStartImplemented":true},"sovrn":{"prefetch":"https://ap.lijit.com/www/sovrn_amp/sovrn_ads.js"},"speakol":{"renderStartImplemented":true},"spotx":{"preconnect":"https://js.spotx.tv","renderStartImplemented":true},"springAds":{"preconnect":["https://ib.adnxs.com"],"renderStartImplemented":true},"ssp":{"prefetch":"https://ssp.imedia.cz/static/js/ssp.js","renderStartImplemented":true,"consentHandlingOverride":true},"strossle":{"preconnect":["https://amp.spklw.com","https://widgets.sprinklecontent.com","https://images.sprinklecontent.com"]},"sunmedia":{"prefetch":"https://vod.addevweb.com/sunmedia/amp/ads/sunmedia.js","preconnect":"https://static.addevweb.com","renderStartImplemented":true},"svknative":{"renderStartImplemented":true,"prefetch":"https://widget.svk-native.ru/js/embed.js"},"swoop":{"prefetch":"https://www.swoop-amp.com/amp.js","preconnect":["https://www.swpsvc.com","https://client.swpcld.com"],"renderStartImplemented":true},"taboola":{},"tagon":{"prefetch":"https://js.tagon.co/tagon-amp.min.js"},"tail":{"renderStartImplemented":true},"tcsemotion":{"prefetch":"https://ads.tcsemotion.com/www/delivery/amphb.js","renderStartImplemented":true},"teads":{"prefetch":"https://a.teads.tv/media/format/v3/teads-format.min.js","preconnect":["https://cdn2.teads.tv","https://t.teads.tv","https://r.teads.tv"],"consentHandlingOverride":true},"temedya":{"prefetch":["https://widget.cdn.vidyome.com/builds/loader-amp.js","https://vidyome-com.cdn.vidyome.com/vidyome/builds/widgets.js"],"renderStartImplemented":true},"torimochi":{"renderStartImplemented":true},"tracdelight":{"prefetch":"https://scripts.tracdelight.io/amp.js","renderStartImplemented":true},"trafficstars":{"prefetch":"https://cdn.tsyndicate.com/sdk/v1/master.spot.js","renderStartImplemented":true},"triplelift":{},"trugaze":{"clientIdScope":"__tg_amp","renderStartImplemented":true},"uas":{"prefetch":"https://ads.pubmatic.com/AdServer/js/phoenix.js"},"ucfunnel":{"renderStartImplemented":true},"uzou":{"preconnect":["https://speee-ad.akamaized.net"],"renderStartImplemented":true},"unruly":{"prefetch":"https://video.unrulymedia.com/native/native-loader.js","renderStartImplemented":true},"valuecommerce":{"prefetch":"https://amp.valuecommerce.com/amp_bridge.js","preconnect":["https://ad.jp.ap.valuecommerce.com"],"renderStartImplemented":true},"vdoai":{"prefetch":"https://a.vdo.ai/core/dependencies_amp/vdo.min.js","renderStartImplemented":true},"videointelligence":{"preconnect":"https://s.vi-serve.com","renderStartImplemented":true},"videonow":{"renderStartImplemented":true},"viralize":{"renderStartImplemented":true},"vlyby":{"prefetch":"https://cdn.vlyby.com/amp/qad/qad-outer2.js"},"vmfive":{"prefetch":"https://man.vm5apis.com/dist/adn-web-sdk.js","preconnect":["https://vawpro.vm5apis.com","https://vahfront.vm5apis.com"],"renderStartImplemented":true},"webediads":{"prefetch":"https://eu1.wbdds.com/amp.min.js","preconnect":["https://goutee.top","https://mediaathay.org.uk"],"renderStartImplemented":true},"weborama-display":{"prefetch":["https://cstatic.weborama.fr/js/advertiserv2/adperf_launch_1.0.0_scrambled.js","https://cstatic.weborama.fr/js/advertiserv2/adperf_core_1.0.0_scrambled.js"]},"whopainfeed":{"prefetch":"https://widget.infeed.com.ar/widget/widget-amp.js"},"widespace":{},"wisteria":{"renderStartImplemented":true},"wpmedia":{"prefetch":"https://std.wpcdn.pl/wpjslib/wpjslib-amp.js","preconnect":["https://www.wp.pl","https://v.wpimg.pl"],"renderStartImplemented":true},"wunderkind":{"preconnect":["https://tag.wknd.ai","https://api.bounceexchange.com"],"renderStartImplemented":true,"fullWidthHeightRatio":1.3333333333333333},"xlift":{"prefetch":"https://cdn.x-lift.jp/resources/common/xlift_amp.js","renderStartImplemented":true},"yahoo":{"prefetch":"https://s.yimg.com/aaq/ampad/display.js","preconnect":"https://us.adserver.yahoo.com"},"yahoofedads":{"renderStartImplemented":true},"yahoojp":{"prefetch":["https://s.yimg.jp/images/listing/tool/yads/ydn/amp/amp.js","https://yads.c.yimg.jp/js/yads.js"],"preconnect":"https://yads.yahoo.co.jp"},"yahoonativeads":{"renderStartImplemented":true},"yandex":{"prefetch":"https://yandex.ru/ads/system/context.js","preconnect":["https://yastatic.net/"],"renderStartImplemented":true},"yektanet":{"preconnect":["https://cdn.yektanet.com","https://cg-sc.yektanet.com","https://native.yektanet.com","https://nfetch.yektanet.net","https://rfetch.yektanet.net","https://scrapper.yektanet.com","https://ua.yektanet.com","https://bfetch.yektanet.com","https://mostatil.cdn.yektanet.com"],"renderStartImplemented":true},"yengo":{"renderStartImplemented":true},"yieldbot":{"prefetch":["https://cdn.yldbt.com/js/yieldbot.intent.amp.js","https://msg.yldbt.com/js/ybmsg.html"],"preconnect":"https://i.yldbt.com"},"yieldmo":{"prefetch":"https://static.yieldmo.com/ym.1.js","preconnect":["https://s.yieldmo.com","https://ads.yieldmo.com"],"renderStartImplemented":true},"yieldone":{"prefetch":"https://img.ak.impact-ad.jp/ic/pone/commonjs/yone-amp.js"},"yieldpro":{"preconnect":"https://creatives.yieldpro.eu","renderStartImplemented":true},"zedo":{"prefetch":"https://ss3.zedo.com/gecko/tag/Gecko.amp.min.js","renderStartImplemented":true},"zen":{"prefetch":"https://zen.yandex.ru/widget-loader","preconnect":["https://yastatic.net/"],"renderStartImplemented":true},"zergnet":{},"zucks":{"preconnect":["https://j.zucks.net.zimg.jp","https://sh.zucks.net","https://k.zucks.net","https://static.zucks.net.zimg.jp"]},"baidu":{"prefetch":"https://dup.baidustatic.com/js/dm.js","renderStartImplemented":true},"sulvo":{}}');
function I(t) {
return 1 == (null == t ? void 0 : t.nodeType)
}
function S(t, e, r, n, i, a, s, o, c, p, d) {
return t
}
function k(t) {
return (t.ownerDocument || t).defaultView
}
function x(t, e) {
return t.replace(/^|,/g, "$&".concat(e, " "))
}
function _(t) {
S(/^[\w-]+$/.test(t))
}
function O(t) {
var e;
null === (e = t.parentElement) || void 0 === e || e.removeChild(t)
}
function A(t) {
return t.parent && t.parent != t
}
var P = self.AMP_CONFIG || {},
E = ("string" == typeof P.thirdPartyFrameRegex ? new RegExp(P.thirdPartyFrameRegex) : P.thirdPartyFrameRegex) || /^d-\d+\.ampproject\.net$/,
M = ("string" == typeof P.cdnProxyRegex ? new RegExp(P.cdnProxyRegex) : P.cdnProxyRegex) || /^https:\/\/([a-zA-Z0-9_-]+\.)?cdn\.ampproject\.org$/;
function z(t) {
if (!self.document || !self.document.head) return null;
if (self.location && M.test(self.location.origin)) return null;
var e = self.document.head.querySelector('meta[name="'.concat(t, '"]'));
return e && e.getAttribute("content") || null
}
var R = {
thirdParty: P.thirdPartyUrl || "https://3p.ampproject.net",
thirdPartyFrameHost: P.thirdPartyFrameHost || "ampproject.net",
thirdPartyFrameRegex: E,
cdn: P.cdnUrl || z("runtime-host") || "https://cdn.ampproject.org",
cdnProxyRegex: M,
localhostRegex: /^https?:\/\/localhost(:\d+)?$/,
errorReporting: P.errorReportingUrl || "https://us-central1-amp-error-reporting.cloudfunctions.net/r",
betaErrorReporting: P.betaErrorReportingUrl || "https://us-central1-amp-error-reporting.cloudfunctions.net/r-beta",
localDev: P.localDev || !1,
trustedViewerHosts: [/(^|\.)google\.(com?|[a-z]{2}|com?\.[a-z]{2}|cat)$/, /(^|\.)gmail\.(com|dev)$/],
geoApi: P.geoApiUrl || z("amp-geo-api")
},
N = /(?:^[#?]?|&)([^=&]+)(?:=([^&]*))?/g;
function T(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "";
try {
return decodeURIComponent(t)
} catch (t) {
return e
}
}
function C(t) {
var e, r = f();
if (!t) return r;
for (; e = N.exec(t);) {
var n = T(e[1], e[1]),
i = e[2] ? T(e[2].replace(/\+/g, " "), e[2]) : "";
r[n] = i
}
return r
}
function D(t) {
var e = (t || self).location;
return C(e.originalHash || e.hash)
}
var H = "";
function F(t) {
var e = t || self;
return e.__AMP_MODE ? e.__AMP_MODE : e.__AMP_MODE = function(t) {
return {
localDev: !1,
development: G(t, D(t)),
esm: !1,
test: !1,
rtvVersion: L(t)
}
}(e)
}
function L(t) {
var e;
return H || (H = (null === (e = t.AMP_CONFIG) || void 0 === e ? void 0 : e.v) || "01".concat("2203101844000")), H
}
function G(t, e) {
var r = e || D(t);
return ["1", "actions", "amp", "amp4ads", "amp4email"].includes(r.development) || !!t.AMP_DEV_MODE
}
function U(t, e, r) {
return e in t ? Object.defineProperty(t, e, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : t[e] = r, t
}
function V(t) {
var e = Object.getOwnPropertyDescriptor(t, "message");
if (null != e && e.writable) return t;
var r = t.message,
n = t.stack,
i = new Error(r);
for (var a in t) i[a] = t[a];
return i.stack = n, i
}
function W(t) {
for (var e, n = null, i = "", a = r(arguments, !0); !(e = a()).done;) {
var s = e.value;
s instanceof Error && !n ? n = V(s) : (i && (i += " "), i += s)
}
return n ? i && (n.message = i + ": " + n.message) : n = new Error(i), n
}
function q(t) {
var e, r;
null === (e = (r = self).__AMP_REPORT_ERROR) || void 0 === e || e.call(r, t)
}
self.__AMP_LOG = self.__AMP_LOG || {
user: null,
dev: null,
userForEmbed: null
};
var B = self.__AMP_LOG;
function Y(t, e) {
throw new Error("failed to call initLogConstructor")
}
function $(t) {
return B.user || (B.user = J()),
function(t, e) {
return e && e.ownerDocument.defaultView != t
}(B.user.win, t) ? B.userForEmbed || (B.userForEmbed = J()) : B.user
}
function J(t) {
return Y()
}
function X() {
return B.dev || (B.dev = Y())
}
function K(t, e, r, n, i, a, s, o, c, p, d) {
return t
}
function Z(t, e, r, n, i, a, s, o, c, p, d) {
return $().assert(t, e, r, n, i, a, s, o, c, p, d)
}
function Q(t, e) {
return at(t = function(t) {
return t.__AMP_TOP || (t.__AMP_TOP = t)
}(t), e)
}
function tt(t, e) {
return at(it(nt(t)), e)
}
function et(t, e) {
return function(t, e) {
var r = st(t, e);
if (r) return r;
var n, i, s, o, c = ot(t);
return c[e] = (i = (n = new a).promise, s = n.reject, o = n.resolve, i.catch((function() {})), {
obj: null,
promise: i,
resolve: o,
reject: s,
context: null,
ctor: null
}), c[e].promise
}(it(t), e)
}
function rt(t, e) {
return st(it(t), e)
}
function nt(t) {
return t.nodeType ? (e = k(t), Q(e, "ampdoc")).getAmpDoc(t) : t;
var e
}
function it(t) {
var e = nt(t);
return e.isSingleDoc() ? e.win : e
}
function at(t, e) {
K(ct(t, e));
var r = ot(t)[e];
return r.obj || (K(r.ctor), K(r.context), r.obj = new r.ctor(r.context), K(r.obj), r.context = null, r.resolve && r.resolve(r.obj)), r.obj
}
function st(t, e) {
var r = ot(t)[e];
return r ? r.promise ? r.promise : (at(t, e), r.promise = Promise.resolve(r.obj)) : null
}
function ot(t) {
var e = t.__AMP_SERVICES;
return e || (e = t.__AMP_SERVICES = {}), e
}
function ct(t, e) {
var r = t.__AMP_SERVICES && t.__AMP_SERVICES[e];
return !(!r || !r.ctor)
}
function pt(t, e, r, n) {
var i = rt(t, e);
if (i) return i;
var a = nt(t);
return a.whenExtensionsKnown().then((function() {
var t = a.getExtensionVersion(r);
return t ? Q(a.win, "extensions").waitForExtension(r, t) : null
})).then((function(r) {
return r ? n ? rt(t, e) : et(t, e) : null
}))
}
var dt, ut, mt, ht = function(t) {
return Q(t, "ampdoc")
},
lt = function(t) {
return pt(t, "amp-analytics-instrumentation", "amp-analytics")
},
ft = function(t) {
return tt(t, "documentInfo").get()
},
vt = function(t) {
return at(t, "timer")
},
gt = function(t) {
return pt(t, "consentPolicyManager", "amp-consent")
},
bt = function(t) {
return tt(t, "viewport")
},
jt = "image_stacked",
yt = "image_sidebyside",
wt = "mobile_banner_image_sidebyside",
It = "pub_control_image_stacked",
St = "pub_control_image_sidebyside",
kt = "pub_control_image_card_stacked",
xt = "pub_control_image_card_sidebyside",
_t = "pub_control_text",
Ot = "pub_control_text_card",
At = "data-matched-content-ui-type",
Pt = "data-matched-content-columns-num",
Et = "data-matched-content-rows-num",
Mt = (U(dt = {}, jt, 1 / 1.91), U(dt, yt, 1 / 3.82), U(dt, wt, 1 / 3.82), U(dt, It, 1 / 1.91), U(dt, St, 1 / 3.82), U(dt, kt, 1 / 1.91), U(dt, xt, 1 / 3.74), U(dt, _t, 0), U(dt, Ot, 0), dt),
zt = (U(ut = {}, jt, 80), U(ut, yt, 0), U(ut, wt, 0), U(ut, It, 80), U(ut, St, 0), U(ut, kt, 85), U(ut, xt, 0), U(ut, _t, 80), U(ut, Ot, 80), ut),
Rt = (U(mt = {}, It, 100), U(mt, St, 200), U(mt, kt, 150), U(mt, xt, 250), U(mt, _t, 100), U(mt, Ot, 150), mt),
Nt = "pub_control_",
Tt = '\n data-matched-content-rows-num="4,2"\ndata-matched-content-columns-num="1,6"\ndata-matched-content-ui-type="image_stacked,image_card_sidebyside"';
function Ct(t) {
return t >= 1200 ? {
width: 1200,
height: 600
} : t >= 850 ? {
width: t,
height: Math.floor(.5 * t)
} : t >= 550 ? {
width: t,
height: Math.floor(.6 * t)
} : t >= 468 ? {
width: t,
height: Math.floor(.7 * t)
} : {
width: t,
height: Math.floor(3.44 * t)
}
}
function Dt(t, e) {
return t * Mt[e] + zt[e]
}
function Ht(t, e) {
return (t - 8 * e - 8) / e
}
function Ft(t, e) {
return Math.floor(t * e + 8 * e + 8)
}
function Lt(t) {
return "fixed" == t || "fixed-height" == t || "responsive" == t || "fill" == t || "flex-item" == t || "fluid" == t || "intrinsic" == t
}
function Gt(t) {
var e, r = parseFloat(t);
return "number" == typeof(e = r) && isFinite(e) ? r : void 0
}
function Ut(t, e, r, n) {
return {
left: t,
top: e,
width: r,
height: n,
bottom: e + n,
right: t + r,
x: t,
y: e
}
}
function Vt(t, e, r) {
return 0 == e && 0 == r || 0 == t.width && 0 == t.height ? t : Ut(t.left + e, t.top + r, t.width, t.height)
}
function Wt(t, e) {
var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
n = r.needsRootBounds,
i = r.rootMargin,
a = r.threshold,
s = A(e) && (n || i) ? e.document : void 0;
return new e.IntersectionObserver(t, {
threshold: a,
root: s,
rootMargin: i
})
}
var qt, Bt = new WeakMap,
Yt = new WeakMap;
function $t(t) {
for (var e = new Set, r = t.length - 1; r >= 0; r--) {
var n = t[r],
i = n.target;
if (!e.has(i)) {
e.add(i);
var a = Yt.get(i);
if (a)
for (var s = 0; s < a.length; s++)(0, a[s])(n)
}
}
}
function Jt(t) {
return {
"time": t.time,
"rootBounds": Xt(t.rootBounds),
"boundingClientRect": Xt(t.boundingClientRect),
"intersectionRect": Xt(t.intersectionRect),
"intersectionRatio": t.intersectionRatio
}
}
function Xt(t) {
return null === t ? null : function(t) {
return Ut(Number(t.left), Number(t.top), Number(t.width), Number(t.height))
}(t)
}
var Kt, Zt = ["Webkit", "webkit", "Moz", "moz", "ms", "O", "o"],
Qt = {
"getPropertyPriority": function() {
return ""
},
"getPropertyValue": function() {
return ""
}
};
function te(t, e, r, n, i) {
var a = function(t, e, r) {
if (e.startsWith("--")) return e;
qt || (qt = f());
var n = qt[e];
if (!n || r) {
if (n = e, void 0 === t[e]) {
var i = function(t) {
return t.charAt(0).toUpperCase() + t.slice(1)
}(e),
a = function(t, e) {
for (var r = 0; r < Zt.length; r++) {
var n = Zt[r] + e;
if (void 0 !== t[n]) return n
}
return ""
}(t, i);
void 0 !== t[a] && (n = a)
}
r || (qt[e] = n)
}
return n
}(t.style, e, i);
if (a) {
var s, o = n ? r + n : r;
t.style.setProperty((s = a.replace(/[A-Z]/g, (function(t) {
return "-" + t.toLowerCase()
})), Zt.some((function(t) {
return s.startsWith(t + "-")
})) ? "-".concat(s) : s), o)
}
}
function ee(t, e) {
for (var r in e) te(t, r, e[r])
}
function re(t, e) {
return t.getComputedStyle(e) || Qt
}
function ne(t) {
return t.data
}
var ie = "__AMP__AD_CONTAINER",
ae = {
"AMP-FX-FLYING-CARPET": !0,
"AMP-LIGHTBOX": !0,
"AMP-STICKY-AD": !0,
"AMP-LIGHTBOX-GALLERY": !0
};
function se(t, e) {
var r = re(e, t).position;
return "fixed" == r || "sticky" == r
}
function oe(t) {
if (void 0 === t[ie]) {
for (var e = t.parentElement; e && "BODY" != e.tagName;) {
if (ae[e.tagName]) return t[ie] = e.tagName;
e = e.parentElement
}
t[ie] = null
}
return t[ie]
}
var ce = "amp-ad-ui",
pe = {
TOP: "top",
BOTTOM: "bottom",
LEFT: "left",
RIGHT: "right",
BOTTOM_RIGHT: "bottom-right"
},
de = "sticky",
ue = function() {
function t(t) {
if (this.FG = t, this.Gn = t.element, this.xd = t.win.document, this.idt = null, this.adt = null, this.Gn.hasAttribute(de) && (this.Gn.getAttribute(de) || $().error(ce, 'amp-ad sticky is deprecating empty attribute value, please use <amp-ad sticky="bottom" instead'), this.adt = this.Gn.getAttribute(de) || pe.BOTTOM_RIGHT, this.Gn.setAttribute(de, this.adt), Object.values(pe).includes(this.adt) || ($().error(ce, "Invalid sticky ad type: ".concat(this.adt)), this.adt = null)), this.sdt = !1, this.odt = void 0, this.Qw = [], this.Gn.hasAttribute("data-ad-container-id")) {
var e = this.Gn.getAttribute("data-ad-container-id"),
r = this.xd.getElementById(e);
r && "AMP-LAYOUT" == r.tagName && r.contains(this.Gn) && (this.idt = r)
}
if (!t.getFallback()) {
var n = this.cdt("fallback");
n && this.FG.element.appendChild(n)
}
}
var e = t.prototype;
return e.applyNoContentUI = function() {
var t, e, r, n, i = this;
"AMP-STICKY-AD" !== oe(this.Gn) ? "AMP-FX-FLYING-CARPET" !== oe(this.Gn) ? (this.idt ? (r = (n = this.Gn.getAmpDoc(), tt(n, "mutator")).attemptCollapse(this.idt)).then((function() {})) : r = this.FG.attemptCollapse(), r.catch((function() {
i.FG.mutateElement((function() {
i.FG.togglePlaceholder(!1), i.FG.toggleFallback(!0)
}))
}))) : (t = this.Gn, _(e = "amp-fx-flying-carpet"), e = e.toUpperCase(), function(t, r) {
for (var n = [], i = t.parentElement; i; i = i.parentElement) i.tagName == e && n.push(i);
return n
}(t))[0].getImpl().then((function(t) {
var e = t.getChildren();
1 === e.length && e[0] === i.Gn && i.FG.collapse()
})) : this.FG.collapse()
}, e.applyUnlayoutUI = function() {
var t = this;
this.FG.mutateElement((function() {
t.FG.toggleFallback(!1)
}))
}, e.cdt = function(t) {
if ("AMP-EMBED" == this.Gn.tagName) return null;
var e = this.xd.createElement("div");
e.setAttribute(t, "");
var r = this.xd.createElement("div");
return r.classList.add("i-amphtml-ad-default-holder"), r.setAttribute("data-ad-holder-text", "Ad"), e.appendChild(r), e
}, e.validateStickyAd = function() {
Z(this.xd.querySelectorAll("amp-sticky-ad.i-amphtml-built, amp-ad[sticky].i-amphtml-built").length <= 1, "At most one sticky ad can be loaded per page")
}, e.isStickyAd = function() {
return null !== this.adt
}, e.maybeInitStickyAd = function() {
var t = this;
if (this.isStickyAd()) {
var e = this.Gn.getAmpDoc();
te(this.Gn, "visibility", "visible"), this.adt == pe.TOP && (this.odt = bt(e).onScroll((function() {
var r = e.win.scrollY;
te(t.Gn, "visibility", r > 50 ? "visible" : "hidden")
})), this.Qw.push(this.odt)), bt(e).addToFixedLayer(this.Gn, !0), this.adjustPadding(), this.sdt || (this.cee(), this.sdt = !0)
}
}, e.getScrollPromiseForStickyAd = function() {
var t = this;
return this.isStickyAd() ? new Promise((function(e) {
var r = bt(t.Gn.getAmpDoc()).onScroll((function() {
e(), r()
}))
})) : Promise.resolve(null)
}, e.adjustPadding = function() {
if (this.adt == pe.BOTTOM || this.adt == pe.BOTTOM_RIGHT) {
var t = this.Gn.offsetHeight;
bt(this.Gn.getAmpDoc()).updatePaddingBottom(t)
}
}, e.pdt = function() {
var t, e = this;
(t = this.FG.win, Q(t, "vsync")).mutate((function() {
var t = bt(e.Gn.getAmpDoc());
t.removeFromFixedLayer(e.element), O(e.Gn), t.updatePaddingBottom(0)
})), this.odt && this.odt()
}, e.cee = function() {
var t, e, r, n, i, a, s, o, c, p, d = (t = this.Gn.ownerDocument, e = {
"aria-label": this.Gn.getAttribute("data-close-button-aria-label") || "Close this ad"
}, function(t, e) {
for (var r in e) t.setAttribute(r, e[r]);
return t
}(t.createElement("button"), e));
this.Qw.push((r = d, n = "click", i = this.pdt.bind(this), a = void 0, s = r, o = i, c = function(t) {
try {
return o(t)
} catch (t) {
var e, r;
throw null === (e = (r = self).__AMP_REPORT_ERROR) || void 0 === e || e.call(r, t), t
}
}, p = function() {
if (void 0 !== Kt) return Kt;
Kt = !1;
try {
var t = {
get capture() {
return Kt = !0, !1
}
};
self.addEventListener("test-options", null, t), self.removeEventListener("test-options", null, t)
} catch (t) {}
return Kt
}(), s.addEventListener(n, c, !!p && a), function() {
null == s || s.removeEventListener(n, c, !!p && a), o = null, s = null, c = null
})), d.classList.add("amp-ad-close-button"), this.Gn.appendChild(d)
}, e.updateSize = function(t, e, r, n, i) {
var a, s, o = this;
t = parseInt(t, 10), isNaN(t) || (a = Math.max(this.Gn.offsetHeight + t - r, t)), e = parseInt(e, 10), isNaN(e) || (s = Math.max(this.Gn.offsetWidth + e - n, e));
var c = {
success: !0,
newWidth: s,
newHeight: a
};
if (!a && !s) return Promise.reject(new Error("undefined width and height"));
if ("AMP-STICKY-AD" == oe(this.Gn)) return c.success = !1, Promise.resolve(c);
if (this.isStickyAd()) {
var p = this.FG.getViewport();
if (t * e > .2 * p.getHeight() * p.getWidth() || a > .5 * p.getHeight()) return c.success = !1, Promise.resolve(c)
}
return this.FG.attemptChangeSize(a, s, i).then((function() {
return o.Le(o.Gn.querySelector("iframe"), t, e), c
}), (function() {
return c.success = !1, c
}))
}, e.Le = function(t, e, r) {
ee(t, {
"height": "".concat(e, "px"),
"width": "".concat(r, "px")
})
}, e.cleanup = function() {
this.Qw.forEach((function(t) {
return t()
})), this.Qw.length = 0
}, t
}();
t.AmpAdUIHandler = ue;
var me = function() {
function t() {}
return t.generate = function(t) {
return function(t) {
for (var e = t.length, r = 5381, n = 0; n < e; n++) r = 33 * r ^ t.charCodeAt(n);
return String(r >>> 0)
}(function(t) {
for (var e = [], r = 0; I(t) && r < 25;) {
var n = "";
t.id && (n = "/".concat(t.id));
var i = t.nodeName.toLowerCase();
e.push("".concat(i).concat(n).concat(he(t))), r++, t = t.parentElement
}
return e.join()
}(t))
}, t
}();
function he(t) {
for (var e = t.nodeName, r = 0, n = 0, i = t.previousElementSibling; i && n < 25 && r < 100;) i.nodeName == e && n++, r++, i = i.previousElementSibling;
return n < 25 && r < 100 ? ".".concat(n) : ""
}
function le(t, e) {
var r = Object.keys(t);
if (Object.getOwnPropertySymbols) {
var n = Object.getOwnPropertySymbols(t);
e && (n = n.filter((function(e) {
return Object.getOwnPropertyDescriptor(t, e).enumerable
}))), r.push.apply(r, n)
}
return r
}
function fe(t) {
for (var e = 1; e < arguments.length; e++) {
var r = null != arguments[e] ? arguments[e] : {};
e % 2 ? le(Object(r), !0).forEach((function(e) {
U(t, e, r[e])
})) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(r)) : le(Object(r)).forEach((function(e) {
Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(r, e))
}))
}
return t
}
var ve = "__AMP__EXPERIMENT_TOGGLES";
function ge(t) {
var e, n, i, a, s;
if (t[ve]) return t[ve];
t[ve] = f();
var o = t[ve];
S(o);
var c = fe(fe({}, null !== (e = t.AMP_CONFIG) && void 0 !== e ? e : {}), null !== (n = t.AMP_EXP) && void 0 !== n ? n : b((null === (i = t.__AMP_EXP) || void 0 === i ? void 0 : i.textContent) || "{}"));
for (var p in c) {
var d = c[p];
"number" == typeof d && d >= 0 && d <= 1 && (o[p] = Math.random() < d)
}
var u = null === (a = t.AMP_CONFIG) || void 0 === a ? void 0 : a["allow-doc-opt-in"];
if (g(u) && u.length) {
var m = t.document.head.querySelector('meta[name="amp-experiments-opt-in"]');
if (m)
for (var h, l, v = r((null === (h = m.getAttribute("content")) || void 0 === h ? void 0 : h.split(",")) || [], !0); !(l = v()).done;) {
var j = l.value;
u.includes(j) && (o[j] = !0)
}
}
Object.assign(o, function(t) {
var e, n = "";
try {
var i;
"localStorage" in t && (n = null !== (i = t.localStorage.getItem("amp-experiment-toggles")) && void 0 !== i ? i : "")
} catch (t) {
X().warn("EXPERIMENTS", "Failed to retrieve experiments from localStorage.")
}
for (var a, s = (null === (e = n) || void 0 === e ? void 0 : e.split(/\s*,\s*/g)) || [], o = f(), c = r(s, !0); !(a = c()).done;) {
var p = a.value;
p && ("-" == p[0] ? o[p.substr(1)] = !1 : o[p] = !0)
}
return o
}(t));
var y = null === (s = t.AMP_CONFIG) || void 0 === s ? void 0 : s["allow-url-opt-in"];
if (g(y) && y.length)
for (var w, I = C(t.location.originalHash || t.location.hash), k = r(y, !0); !(w = k()).done;) {
var x = w.value,
_ = I["e-".concat(x)];
"1" == _ && (o[x] = !0), "0" == _ && (o[x] = !1)
}
return o
}
var be = /^https:\/\/([a-zA-Z0-9_-]+\.)?cdn\.ampproject\.org((\/.*)|($))+/,
je = "position";
function ye(t) {
return "string" == typeof t && t.startsWith("amp-") && -1 != t.indexOf("{")
}
var we = "ini-load",
Ie = ["script", "style"],
Se = ["amp-accordion", "amp-app-banner", "amp-carousel", "amp-fit-text", "amp-form", "amp-selector", "amp-sidebar"],
ke = ["action", "alt", "class", "disabled", "height", "href", "id", "name", "placeholder", "readonly", "src", "tabindex", "title", "type", "value", "width"];
function xe(t) {
var e = t.tagName.toLowerCase();
return e.startsWith("amp-") ? !(!Se.includes(e) || !t.textContent) : !(Ie.includes(e) || !t.textContent)
}
function _e(t, e, r) {
r.push("<".concat(t.tagName.toLowerCase())), e.forEach((function(e) {
t.hasAttribute(e) && r.push(" ".concat(e, '="').concat(t.getAttribute(e), '"'))
})), r.push(">")
}
var Oe, Ae, Pe = function() {
function t(t) {
this.Wt = t, this.Kt = 0, this.Qt = 0, this.Xt = f()
}
var e = t.prototype;
return e.has = function(t) {
return !!this.Xt[t]
}, e.get = function(t) {
var e = this.Xt[t];
if (e) return e.access = ++this.Qt, e.payload
}, e.put = function(t, e) {
this.has(t) || this.Kt++, this.Xt[t] = {
payload: e,
access: this.Qt
}, this.Yt()
}, e.Yt = function() {
if (!(this.Kt <= this.Wt)) {
var t, e = this.Xt,
r = this.Qt + 1;
for (var n in e) {
var i = e[n].access;
i < r && (r = i, t = n)
}
void 0 !== t && (delete e[t], this.Kt--)
}
}, t
}();
function Ee(t, e) {
return Oe || (Oe = self.document.createElement("a"), Ae = self.__AMP_URL_CACHE || (self.__AMP_URL_CACHE = new Pe(100))),
function(t, e, r) {
if (r && r.has(e)) return r.get(e);
t.href = e, t.protocol || (t.href = t.href);
var n, i = {
href: t.href,
protocol: t.protocol,
host: t.host,
hostname: t.hostname,
port: "0" == t.port ? "" : t.port,
pathname: t.pathname,
search: t.search,
hash: t.hash,
origin: null
};
"/" !== i.pathname[0] && (i.pathname = "/" + i.pathname), ("http:" == i.protocol && 80 == i.port || "https:" == i.protocol && 443 == i.port) && (i.port = "", i.host = i.hostname), n = t.origin && "null" != t.origin ? t.origin : "data:" != i.protocol && i.host ? i.protocol + "//" + i.host : i.href, i.origin = n;
var a = i;
return r && r.put(e, a), a
}(Oe, t, e ? null : Ae)
}
function Me(t, e, r, n) {
return function(t, e, r) {
if (!e) return t;
var n = t.split("#", 2),
i = n[0].split("?", 2);
return i[0] + (i[1] ? r ? "?".concat(e, "&").concat(i[1]) : "?".concat(i[1], "&").concat(e) : "?".concat(e)) + (n[1] ? "#".concat(n[1]) : "")
}(t, function(t, e) {
return "".concat(encodeURIComponent(t), "=").concat(encodeURIComponent(e))
}(e, r), n)
}
function ze(t) {
return "https:" == (t = function(t) {
return "string" == typeof t ? Ee(t) : t
}(t)).protocol || "localhost" == t.hostname || "127.0.0.1" == t.hostname || (r = ".localhost", (n = (e = t.hostname).length - r.length) >= 0 && e.indexOf(r, n) == n);
var e, r, n
}
new Set(["c", "v", "a", "ad"]);
var Re = "unlisten";
function Ne(t, e, r) {
var n = function(t, e) {
var r = t.listeningFors;
return !r && e && (r = t.listeningFors = Object.create(null)), r || null
}(t, r);
if (!n) return n;
var i = n[e];
return !i && r && (i = n[e] = []), i || null
}
function Te(t, e) {
for (var r = e; r && r != r.parent; r = r.parent)
if (r == t) return !0;
return !1
}
function Ce(t) {
for (var e = {
"sentinel": Re
}, r = t.length - 1; r >= 0; r--) {
var n = t[r];
if (!n.frame.contentWindow) {
t.splice(r, 1);
var i = n.events;
for (var a in i) i[a].splice(0, 1 / 0).forEach((function(t) {
t(e)
}))
}
}
}
function De(t, e, r, n, i, a) {
K(t.src), K(!t.parentNode), K(r);
var s = t.ownerDocument.defaultView;
! function(t) {
t.listeningFors || t.addEventListener("message", (function(e) {
if (ne(e)) {
var r = function(t) {
return "string" == typeof t && (t = "{" == t.charAt(0) ? j(t, (function(t) {
X().warn("IFRAME-HELPER", "Postmessage could not be parsed. Is it in a valid JSON format?", t)
})) || null : ye(t) ? function(t) {
if (!ye(t)) return null;
var e = t.indexOf("{");
return S(-1 != e), j(t.substr(e), (function(e) {
! function(t) {
var e = W.apply(null, arguments);
setTimeout((function() {
throw q(e), e
}))
}(new Error("MESSAGING: Failed to parse message: ".concat(t, "\n").concat(e.message)))
}))
}(t) : null), t
}(ne(e));
if (r && r.sentinel) {
var n = function(t, e, r, n) {
var i, a = Ne(t, e);
if (!a) return a;
for (var s = 0; s < a.length; s++) {
var o = a[s],
c = o.frame.contentWindow;
if (c) {
if (n == c || Te(c, n)) {
i = o;
break
}
} else setTimeout(Ce, 0, a)
}
return i ? i.events : null
}(t, r.sentinel, e.origin, e.source);
if (n) {
var i = n[r.type];
if (i) {
i = i.slice();
for (var a = 0; a < i.length; a++)(0, i[a])(r, e.source, e.origin, e)
}
}
}
}
}))
}(s);
var o, c = function(t, e, r) {
for (var n, i = Ne(t, Le(e, r), !0), a = 0; a < i.length; a++) {
var s = i[a];
if (s.frame === e) {
n = s;
break
}
}
return n || (n = {
frame: e,
events: Object.create(null)
}, i.push(n)), n.events
}(s, t, n),
p = Ee(t.src).origin,
d = c[e] || (c[e] = []),
u = function(e, n, s, c) {
if ("amp" == e.sentinel) {
if (n != t.contentWindow) return;
if (p != s && ("null" != s || !a)) return
}(i || n == t.contentWindow) && (e.sentinel != Re ? r(e, n, s, c) : o())
};
return d.push(u), o = function() {
if (u) {
var t = d.indexOf(u);
t > -1 && d.splice(t, 1), u = null, d = null, r = null
}
}
}
function He(t, e, r) {
var n = [];
return "string" == typeof e && (e = [e]), new Promise((function(i) {
for (var a = 0; a < e.length; a++) {
var s = e[a],
o = De(t, s, (function(t, e, r, a) {
for (var s = 0; s < n.length; s++) n[s]();
i({
data: t,
source: e,
origin: r,
event: a
})
}), r);
n.push(o)
}
}))
}
function Fe(t, e, r, n, i) {
if (t.contentWindow) {
n.type = r, n.sentinel = Le(t, i);
var a = n;
i && (a = "amp-" + JSON.stringify(n));
for (var s = 0; s < e.length; s++) {
var o = e[s];
o.win.postMessage(a, o.origin)
}
}
}
function Le(t, e) {
return e ? t.getAttribute("data-amp-3p-sentinel") : "amp"
}
var Ge = function() {
function t(t, e, r, n) {
var i = this;
this.lb = t, this.Pb = r, this.Ib = [], this.Mb = De(this.lb, e, (function(t, e, r) {
i.Ib.some((function(t) {
return t.win == e
})) || i.Ib.push({
win: e,
origin: r
}), n(t, e, r)
}), this.Pb, this.Pb)
}
var e = t.prototype;
return e.send = function(t, e) {
(function(t, e) {
for (var r = [], n = 0, i = 0; i < t.length; i++) {
var a = t[i];
a.win.parent ? (n < i && (t[n] = a), n++) : r.push(a)
}
n < t.length && (t.length = n)
})(this.Ib), Fe(this.lb, this.Ib, t, e, this.Pb)
}, e.destroy = function() {
this.Mb(), this.Ib.length = 0
}, t
}(),
Ue = function() {
function t(t, e) {
var r = this;
this.Rb = t, this.Po = vt(t.win), this.Ab = null, this.ddt = null, this.sh = !1, this.udt = [], this.mdt = 0, this.hdt = this.ldt.bind(this), this.fdt = new Ge(e, "send-intersections", !0, (function() {
return r.vdt()
})), this.gdt = null
}
var e = t.prototype;
return e.fire = function() {
this.ddt && (this.ddt.unobserve(this.Rb.element), this.ddt.observe(this.Rb.element))
}, e.bdt = function() {
this.gdt && (this.gdt(), this.gdt = null)
}, e.vdt = function() {
var t = this;
this.Ab || (this.Ab = new IntersectionObserver((function(e) {
var r = e[e.length - 1];
t.jdt(r)
})), this.Ab.observe(this.Rb.element)), this.ddt || (this.ddt = new IntersectionObserver((function(e) {
var r = e[e.length - 1];
t.ydt(r)
}))), this.fire()
}, e.jdt = function(t) {
var e = 0 != t.intersectionRatio;
if (this.sh != e)
if (this.sh = e, this.ydt(t), e) {
var r = this.fire.bind(this),
n = this.Rb.getViewport().onScroll(r),
i = this.Rb.getViewport().onChanged(r);
this.gdt = function() {
n(), i()
}
} else this.bdt()
}, e.ydt = function(t) {
var e = Jt(t);
null === e.rootBounds && (e.rootBounds = this.Rb.getViewport().getRect()), this.udt.length > 0 && this.udt[this.udt.length - 1].time == e.time || (this.udt.push(e), this.mdt || (this.ldt(), this.mdt = this.Po.delay(this.hdt, 100)))
}, e.ldt = function() {
this.mdt = 0, this.udt.length && (this.fdt.send("intersection", {
"changes": this.udt
}), this.udt.length = 0)
}, e.destroy = function() {
this.Ab && (this.Ab.disconnect(), this.Ab = null), this.ddt && (this.ddt.disconnect(), this.ddt = null), this.Po.cancel(this.mdt), this.bdt(), this.fdt.destroy()
}, t
}(),
Ve = !1,
We = self.__AMP_ERRORS || [];
self.__AMP_ERRORS = We;
var qe = function() {
function t(t) {
this.t = t.win, this.FG = t, this.Gn = t.element, this.wdt = t.uiHandler, this.iframe = null, this.Idt = 0, this.Sdt = null, this.kdt = null, this.xdt = null, this._dt = !1, this.Qw = [], this.bh = bt(this.FG.getAmpDoc()), this.sh = !1, this.Odt = !1
}
var e = t.prototype;
return e.init = function(t, e, r) {
var n = this;
K(!this.iframe), this.iframe = t, this.iframe.setAttribute("scrolling", "no"), this.wdt.isStickyAd() || this.iframe.classList.add("i-amphtml-fill-content");
var i, s = vt(this.FG.win);
this.Sdt = new Ue(this.FG, this.iframe), this.kdt = new Ge(this.iframe, "send-embed-state", !0, (function() {
return n.Adt(n.sh)
})), (ge(this.t)["inabox-position-api"] || /^adsense$/i.test(this.Gn.getAttribute("type")) && !(function(t) {
return t.crypto && (t.crypto.subtle || t.crypto.webkitSubtle)
}(i = this.t) && function(t) {
return be.test(t.location.origin)
}(i))) && (this.xdt = new Ge(this.iframe, "send-positions", !0, (function() {
n.Yr(), n.Pdt()
}))), He(this.iframe, "entity-id", !0).then((function(t) {
n.Gn.creativeId = t.data.id
})), this.Edt("get-html", (function(t) {
var e = t.selector,
r = t.attributes,
i = "";
return n.Gn.hasAttribute("data-html-access-allowed") && (i = function(t, e, r) {
var n = t.document.querySelector(e),
i = [];
return n && function(t, e, r) {
for (var n = [t], i = e.filter((function(t) {
return ke.includes(t)
})); n.length > 0;) {
var a = n.pop();
if ("string" == typeof a) r.push(a);
else if (a.nodeType === Node.TEXT_NODE) {
var s;
r.push(null !== (s = a.textContent) && void 0 !== s ? s : "")
} else if (I(a) && xe(a)) {
_e(a, i, r), n.push("</".concat(a.tagName.toLowerCase(), ">"));
for (var o = a.lastChild; o; o = o.previousSibling) n.push(o)
}
}
}(n, r, i), i.join("").replace(/\s{2,}/g, " ")
}(n.FG.win, e, r)), Promise.resolve(i)
})), this.Edt("get-consent-state", (function() {
return n.FG.getConsentState().then((function(t) {
return {
consentState: t
}
}))
})), this.Qw.push(De(this.iframe, "embed-size", (function(t, e, r, i) {
t.hasOverflow && (n.Gn.warnOnMissingOverflow = !1), Date.now() - n.Idt >= 500 ? n.y5(t.id, t.height, t.width, e, r, i) : n.Mdt(!1, t.id, t.width, t.height, e, r)
}), !0, !0)), this.Qw.push(this.FG.getAmpDoc().onVisibilityChanged((function() {
n.Adt(n.sh)
}))), this.Qw.push(De(this.iframe, "user-error-in-iframe", (function(t) {
n.zdt(t.message, 1 == t.expected)
}), !0, !0));
var o = this.FG.loadPromise(this.iframe).then((function() {
return n.iframe && (n.iframe.readyState = "complete"), s.promise(10)
})),
c = new a,
p = c.promise,
d = c.resolve,
u = new a,
m = u.promise,
h = u.resolve;
return this.FG.config && this.FG.config.renderStartImplemented ? He(this.iframe, ["render-start", "no-content"], !0).then((function(t) {
"render-start" == t.data.type ? (n.Rdt(t), d()) : (n.Ndt(), h())
})) : (He(this.iframe, "bootstrap-loaded", !0).then((function() {
d()
})), He(this.iframe, "no-content", !0).then((function() {
n.Ndt(), h()
}))), He(this.iframe, we, !0).then((function() {
n.FG.signals().signal(we)
})), this.Gn.appendChild(this.iframe), e && !r ? (this.FG.renderStarted(), d()) : te(this.iframe, "visibility", "hidden"), (e && r ? p : Promise.race([p, o, s.promise(1e4)])).then((function() {
n.FG.renderStarted(), n.iframe && te(n.iframe, "visibility", "")
})), Promise.race([o, m])
}, e.Edt = function(t, e) {
var r = this;
this.Qw.push(De(this.iframe, t, (function(n, i, a) {
if (r.iframe) {
var s = n.messageId,
o = n.payload;
e(o).then((function(e) {
var n = {};
n.messageId = s, n.content = e, Fe(r.iframe, [{
win: i,
origin: a
}], t + "-result", n, !0)
}))
}
}), !0, !1))
}, e.Rdt = function(t) {
var e = ne(t);
this.y5(void 0, e.height, e.width, t.source, t.origin, t.event)
}, e.freeXOriginIframe = function(t) {
this.Hn(), t || this.iframe && (O(this.iframe), this.iframe = null)
}, e.Ndt = function() {
this.iframe && (this.freeXOriginIframe(this.iframe.name.indexOf("_master") >= 0), this.wdt.applyNoContentUI())
}, e.Hn = function() {
this.Qw.forEach((function(t) {
return t()
})), this.Qw.length = 0, this.kdt && (this.kdt.destroy(), this.kdt = null), this.xdt && (this.xdt.destroy(), this.xdt = null), this.Sdt && (this.Sdt.destroy(), this.Sdt = null)
}, e.y5 = function(t, e, r, n, i, a) {
var s = this;
this.FG.getVsync().mutate((function() {
if (s.iframe) {
var o = s.iframe.offsetHeight,
c = s.iframe.offsetWidth;
s.wdt.updateSize(e, r, o, c, a).then((function(e) {
e.success ? s.Idt = 0 : s.Idt = Date.now(), s.wdt.adjustPadding(), s.Mdt(e.success, t, e.newWidth, e.newHeight, n, i)
}), (function() {}))
}
}))
}, e.Mdt = function(t, e, r, n, i, a) {
this.iframe && Fe(this.iframe, [{
win: i,
origin: a
}], t ? "embed-size-changed" : "embed-size-denied", {
"id": e,
"requestedWidth": r,
"requestedHeight": n
}, !0)
}, e.Adt = function(t) {
this.kdt && this.kdt.send("embed-state", {
"inViewport": t,
"pageHidden": !this.FG.getAmpDoc().isVisible()
})
}, e.Tdt = function() {
var t = this;
return this.bh.getClientRectAsync(this.iframe).then((function(e) {
return K(e), {
"targetRect": e,
"viewportRect": t.bh.getRect()
}
}))
}, e.Yr = function() {
var t = this;
this.Odt || (this.Odt = !0, this.Tdt().then((function(e) {
t.Odt = !1, t.xdt.send(je, e)
})))
}, e.Pdt = function() {
var t = this;
this._dt || (this._dt = !0, this.Qw.push(this.bh.onScroll(function(t, e, r) {
var n = 0,
i = null;
function a(r) {
i = null, n = t.setTimeout(s, 100), e.apply(null, r)
}
function s() {
n = 0, i && a(i)
}
return function() {
for (var t = arguments.length, e = new Array(t), r = 0; r < t; r++) e[r] = arguments[r];
n ? i = e : a(e)
}
}(this.t, (function() {
t.Tdt().then((function(e) {
t.xdt.send(je, e)
}))
})))), this.Qw.push(this.bh.onResize((function() {
t.Tdt().then((function(e) {
t.xdt.send(je, e)
}))
}))))
}, e.viewportCallback = function(t) {
this.sh = t, this.Adt(t)
}, e.onLayoutMeasure = function() {
this.Sdt && this.Sdt.fire()
}, e.zdt = function(t, e) {
if ("string" == typeof t)
if (e) X().expectedError("amp-ad-xorigin-iframe", t);
else {
var r = new Error(t);
r.name = "3pError",
function(t, e) {
if (ht(e).isSingleDoc()) {
var r = {
"errorName": t.name,
"errorMessage": t.message
};
! function(t, e) {
var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
n = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3];
lt(t).then((function(i) {
i && i.triggerEventForTarget(t, e, r, n)
}))
}(function(t) {
var e = ht(t).getSingleDoc().getRootNode();
return e.documentElement || e.body || e
}(e), "user-error", r, !1)
}
}(r, this.FG.win)
}
}, t
}();
t.AmpAdXOriginIframeHandler = qe;
var Be = null,
Ye = null;
function $e(t, e, r, n) {
var i = Date.now(),
a = e.getAttribute("width"),
s = e.getAttribute("height");
(n = n || {}).width = Gt(a), n.height = Gt(s), e.getAttribute("title") && (n.title = e.getAttribute("title"));
var o = t.location.href;
"about:srcdoc" == o && (o = t.parent.location.href);
var c, p, d, u, m = nt(e),
h = ft(e),
l = (u = e, tt(u, "viewer")).getUnconfirmedReferrerUrl(),
f = function(t) {
for (var e = t.ownerDocument.body, r = 0, n = 0, i = t; i && i != e; i = i.offsetParent) r += i.offsetLeft, n += i.offsetTop;
var a = t.offsetHeight;
return Ut(r, n, t.offsetWidth, a)
}(e);
n._context = {
"ampcontextVersion": "2203101844000",
"ampcontextFilepath": "".concat(R.thirdParty, "/").concat("2203101844000", "/ampcontext-v0.js"),
"sourceUrl": h.sourceUrl,
"referrer": l,
"canonicalUrl": h.canonicalUrl,
"pageViewId": h.pageViewId,
"location": {
"href": o
},
"startTime": i,
"tagName": e.tagName,
"mode": {
localDev: !1,
development: F(d).development,
esm: F(d).esm,
test: !1,
rtvVersion: F(d).rtvVersion
},
"canary": (c = t, !(null === (p = c.AMP_CONFIG) || void 0 === p || !p.canary)),
"hidden": !m.isVisible(),
"initialLayoutRect": f ? {
"left": f.left,
"top": f.top,
"width": f.width,
"height": f.height
} : null,
"domFingerprint": me.generate(e),
"experimentToggles": ge(t),
"sentinel": r
};
var v = e.getAttribute("src");
return v && (n.src = v), n
}
var Je = {};
function Xe(t, e, r, n) {
var i = r || e.getAttribute("type");
Z(i, "Attribute type required for <amp-ad>: %s", e);
var a = function(t) {
for (var e = 0, r = t; r && r != r.parent; r = r.parent) e++;
return String(e) + "-" + Qe(t)
}(t),
s = {};
return function(t, e) {
var r = t.dataset;
for (var n in r) n.startsWith("vars") || (e[n] = r[n]);
var i = t.getAttribute("json");
if (i) {
var a = j(i);
if (void 0 === a) throw $().createError("Error parsing JSON in json attribute in element %s", t);
for (var s in a) e[s] = a[s]
}
}(e, s), (s = $e(t, e, a, s)).type = i, Object.assign(s._context, n), s
}
function Ke(t) {
return "".concat(R.thirdParty, "/").concat("2203101844000", "/vendor/").concat(t).concat(".js")
}
function Ze(t, e, r) {
return function(t, e, r) {
var n = e.getMetaByName("amp-3p-iframe-src");
if (!n) return null;
var i = function(t, e) {
var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "source";
return Z(null != t, "%s %s must be available", e, r), Z(ze(t) || /^\/\//.test(t), '%s %s must start with "https://" or "//" or be relative and served from either https or from localhost. Invalid value: %s', e, r, t), t
}(n, 'meta[name="amp-3p-iframe-src"]');
Z(-1 == i.indexOf("?"), "3p iframe url must not include query string %s in element %s.", i, n);
var a = Ee(i);
return Z("localhost" == a.hostname && !r || a.origin != Ee(t.location.href).origin, "3p iframe url must not be on the same origin as the current document %s (%s) in element %s. See https://github.com/ampproject/amphtml/blob/main/docs/spec/amp-iframe-origin-policy.md for details.", i, a.origin, n), "".concat(i, "?").concat("2203101844000")
}(t, e, r) || function(t, e) {
return t.__AMP_DEFAULT_BOOTSTRAP_SUBDOMAIN = t.__AMP_DEFAULT_BOOTSTRAP_SUBDOMAIN || "d-" + Qe(t), "https://" + t.__AMP_DEFAULT_BOOTSTRAP_SUBDOMAIN + ".".concat(R.thirdPartyFrameHost, "/").concat("2203101844000", "/") + "".concat("frame", ".html")
}(t)
}
function Qe(t) {
var e;
if (t.crypto && t.crypto.getRandomValues) {
var r = new Uint32Array(2);
t.crypto.getRandomValues(r), e = String(r[0]) + r[1]
} else e = String(t.Math.random()).substr(2) + "0";
return e
}
function tr(t) {
if (t.sandbox && t.sandbox.supports) {
for (var e = ["allow-top-navigation-by-user-activation", "allow-popups-to-escape-sandbox"], r = 0; r < e.length; r++) {
var n = e[r];
if (!t.sandbox.supports(n)) return void X().info("3p-frame", "Iframe doesn't support %s", n)
}
t.sandbox = e.join(" ") + " " + ["allow-forms", "allow-modals", "allow-pointer-lock", "allow-popups", "allow-same-origin", "allow-scripts"].join(" ")
}
}
var er = function() {
function t() {
this.es = []
}
var e, r = t.prototype;
return r.peek = function() {
var t = this.length;
return t ? this.es[t - 1].item : null
}, r.enqueue = function(t, e) {
if (isNaN(e)) throw new Error("Priority must not be NaN.");
var r = this.ss(e);
this.es.splice(r, 0, {
item: t,
priority: e
})
}, r.ss = function(t) {
for (var e = -1, r = 0, n = this.length; r <= n && (e = Math.floor((r + n) / 2)) !== this.length;)
if (this.es[e].priority < t) r = e + 1;
else {
if (!(e > 0 && this.es[e - 1].priority >= t)) break;
n = e - 1
} return e
}, r.forEach = function(t) {
for (var e = this.length; e--;) t(this.es[e].item)
}, r.dequeue = function() {
var t = this.es.pop();
return t ? t.item : null
}, (e = [{
key: "length",
get: function() {
return this.es.length
}
}]) && function(t, e) {
for (var r = 0; r < e.length; r++) {
var n = e[r];
n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
}
}(t.prototype, e), t
}(),
rr = "CHUNK",
nr = /nochunking=1/.test(self.location.hash),
ir = i();
var ar = "not_run",
sr = function() {
function t(t) {
this.state = ar, this.us = t
}
var e = t.prototype;
return e.hs = function(t) {
if ("run" != this.state) {
this.state = "run";
try {
this.us(t)
} catch (t) {
throw this.cs(t), t
}
}
}, e.fs = function() {
return this.us.displayName || this.us.name
}, e.cs = function(t) {}, e.ls = function() {
return !1
}, e.vs = function() {
return !1
}, t
}(),
or = function(t) {
o(r, t);
var e = u(r);
function r(t, r, n) {
var i;
return (i = e.call(this, t)).ds = n, i
}
var n = r.prototype;
return n.cs = function(t) {
var e;
K((e = self.document).defaultView), Ve || (Ve = !0, function(t) {
ee(t.body, {
opacity: 1,
visibility: "visible",
"animation": "none"
})
}(e))
}, n.ls = function() {
return this.ps()
}, n.vs = function() {
return this.ds.bs
}, n.ps = function() {
return this.ds.ampdoc.isVisible()
}, r
}(sr),
cr = function() {
function t(t) {
var e, r = this;
this.ampdoc = t, this.t = t.win, this.gs = new er, this.ys = this.ws.bind(this), this.As = 0, this.Es = !(!this.t.navigator.scheduling || !this.t.navigator.scheduling.isInputPending), this.xs = !1, this.os = this.t.document.documentElement.hasAttribute("i-amphtml-no-boilerplate"), this.t.addEventListener("message", (function(t) {
"amp-macro-task" == ne(t) && r.ws(null)
})), this.bs = !1, (e = t, et(e, "viewer")).then((function() {
r.bs = !0
})), t.onVisibilityChanged((function() {
t.isVisible() && r.Os()
}))
}
var e = t.prototype;
return e.run = function(t, e) {
var r = new sr(t);
this.Ts(r, e)
}, e.runForStartup = function(t) {
var e = new or(t, this.t, this);
this.Ts(e, Number.POSITIVE_INFINITY)
}, e.Ts = function(t, e) {
this.gs.enqueue(t, e), this.Os()
}, e.Is = function(t) {
for (var e = this.gs.peek(); e && e.state !== ar;) this.gs.dequeue(), e = this.gs.peek();
return e && t && this.gs.dequeue(), e
}, e.ws = function(t) {
var e, r = this,
n = this.Is(!0);
if (!n) return this.xs = !1, this.As = 0, !1;
try {
e = Date.now(), n.hs(t)
} finally {
ir.then().then().then().then().then().then().then().then().then((function() {
r.xs = !1, r.As += Date.now() - e, X().fine(rr, n.fs(), "Chunk duration", Date.now() - e, r.As), r.Os()
}))
}
return !0
}, e.Ps = function(t) {
var e = this;
if (this.os && (this.Es ? this.t.navigator.scheduling.isInputPending() : this.As > 5)) return this.As = 0, void this.Ss();
ir.then((function() {
e.ys(t)
}))
}, e.Os = function() {
if (!this.xs) {
var t = this.Is();
if (t) return t.ls() ? (this.xs = !0, void this.Ps(null)) : void(t.vs() && this.t.requestIdleCallback ? (e = this.t, r = 2e3, n = this.ys, i = Date.now(), e.requestIdleCallback((function t(a) {
if (a.timeRemaining() < 15) {
var s = r - (Date.now() - i);
s <= 0 || a.didTimeout ? (X().fine(rr, "Timed out", r, a.didTimeout), n(a)) : (X().fine(rr, "Rescheduling with", s, a.timeRemaining()), e.requestIdleCallback(t, {
timeout: s
}))
} else X().fine(rr, "Running idle callback with ", 15), n(a)
}), {
timeout: r
})) : this.Ss())
}
var e, r, n, i
}, e.Ss = function() {
this.t.postMessage("amp-macro-task", "*")
}, t
}(),
pr = "amp-ad-3p-impl",
dr = function(t) {
o(r, t);
var e = u(r);
function r(t) {
var r;
return (r = e.call(this, t)).lb = null, r.config = null, r.uiHandler = null, r.H8 = null, r.kb = null, r.V4 = null, r.Cdt = !1, r.Ddt = null, r.gdt = null, r.Qw = [], r.Ab = null, r.ft = void 0, r.zi = null, r.wM = void 0, r.Hdt = !1, r.Fdt = !1, r.vg = null, r
}
var n = r.prototype;
return n.getLayoutPriority = function() {
return this.element.getAmpDoc().isSingleDoc() ? 2 : 1
}, n.renderOutsideViewport = function() {
if (this.win["3pla"]) return !1;
var e = function(t) {
var e = t.getAttribute("data-loading-strategy");
if (null == e) return null;
if ("prefer-viewability-over-views" == e || "" == e) return 1.25;
var r = "Value of data-loading-strategy should be a float number in range of [0, 3], but got " + e,
n = $().assertNumber(parseFloat(e), r);
return Z(n >= 0 && n <= 3, r), n
}(this.element);
return null !== e ? e : t.prototype.renderOutsideViewport.call(this)
}, n.isLayoutSupported = function(t) {
return Lt(t)
}, n.getResource = function() {
return this.element.getResources().getResourceForElement(this.element)
}, n.getConsentPolicy = function() {
var e = this.element.getAttribute("type"),
r = w[e];
return r && r.consentHandlingOverride ? null : t.prototype.getConsentPolicy.call(this)
}, n.buildCallback = function() {
var t = this;
this.wM = this.element.getAttribute("type");
var e = Math.round(this.getResource().getUpgradeDelayMs());
if (X().info(pr, "upgradeDelay ".concat(this.wM, ": ").concat(e)), this.kb = this.getPlaceholder(), this.V4 = this.getFallback(), this.config = w[this.wM], Z(this.config, 'Type "'.concat(this.wM, '" is not supported in amp-ad')), this.uiHandler = new ue(this), this.uiHandler.validateStickyAd(), this.uiHandler.getScrollPromiseForStickyAd().then((function() {
return t.uiHandler.maybeInitStickyAd()
})), this.uiHandler.isStickyAd() && function(t, e, r) {
if (nr) ir.then(e);
else {
var n = function(t) {
return e = "chunk", r = cr,
function(t, e, r, n, i, a) {
var s = ot(t),
o = s[r];
o || (o = s[r] = {
obj: null,
promise: null,
resolve: null,
reject: null,
context: null,
ctor: null,
sharedInstance: !1
}), o.ctor || (o.ctor = n, o.context = e, o.sharedInstance = !1, o.resolve && at(t, r))
}(it(n = nt(t)), n, e, r), tt(t, "chunk");
var e, r, n
}(t);
n.run(e, r)
}
}(this.element, (function() {
return t.layoutCallback()
}), 10), this.Fdt = this.Ldt(), this.Fdt) return this.Gdt()
}, n.Ldt = function() {
return !!this.element.hasAttribute("data-full-width") && (Z("100vw" == this.element.getAttribute("width"), 'Ad units with data-full-width must have width="100vw".'), Z(!!this.config.fullWidthHeightRatio, "Ad network does not support full width ads."), X().info(pr, "#${this.getResource().getId()} Full width requested"), !0)
}, n.preconnectCallback = function(t) {
var e = this,
r = Q(this.win, "preconnect");
! function(t, e, r, n) {
var i = Ze(t, r);
n.preload(r, i, "document"), n.preload(r, Ke(e), "script")
}(this.win, this.wM, this.getAmpDoc(), r), "string" == typeof this.config.prefetch ? r.preload(this.getAmpDoc(), this.config.prefetch, "script") : this.config.prefetch && this.config.prefetch.forEach((function(t) {
r.preload(e.getAmpDoc(), t, "script")
})), "string" == typeof this.config.preconnect ? r.url(this.getAmpDoc(), this.config.preconnect, t) : this.config.preconnect && this.config.preconnect.forEach((function(n) {
r.url(e.getAmpDoc(), n, t)
}));
var n = this.element.getAttribute("src");
n && r.url(this.getAmpDoc(), n)
}, n.onLayoutMeasure = function() {
var t = this;
if (this.Cdt = ! function(t, e) {
var r = !1,
n = 0,
i = t;
do {
ae[i.tagName] ? (n++, r = !1) : se(i, e) && (r = !0), i = i.parentElement
} while (i && "BODY" != i.tagName);
return !r && n <= 1
}(this.element, this.win), void 0 === this.ft && (this.ft = oe(this.element)), this.Udt(), this.H8 && this.H8.onLayoutMeasure(), this.Fdt && !this.Hdt) {
this.Hdt = !0;
var e = this.getLayoutBox();
this.getVsync().run({
measure: function(e) {
e.direction = re(t.win, t.element).direction
},
mutate: function(r) {
"rtl" == r.direction ? te(t.element, "marginRight", e.left, "px") : te(t.element, "marginLeft", -e.left, "px")
}
}, {
direction: ""
})
}
}, n.Udt = function() {
if (this.H8 && this.H8.iframe) {
var t = this.getViewport().getLayoutRect(this.H8.iframe),
e = this.getLayoutBox();
this.Ddt = Vt(t, -e.left, -e.top)
}
}, n.getIntersectionElementLayoutBox = function() {
if (!this.H8 || !this.H8.iframe) return t.prototype.getIntersectionElementLayoutBox.call(this);
var e = this.getLayoutBox();
return this.Ddt || this.Udt(), Vt(K(this.Ddt), e.left, e.top)
}, n.layoutCallback = function() {
var e = this;
if (this.zi) return this.zi;
Z(!this.Cdt || this.uiHandler.isStickyAd(), "<amp-ad> is not allowed to be placed in elements with position:fixed: %s unless it has sticky attribute", this.element);
var r, n, s, o, c, p, d, u, m, h = this.getConsentState(),
l = t.prototype.getConsentPolicy.call(this),
f = l ? function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "default";
return gt(t).then((function(t) {
return t ? t.getConsentStringInfo(e) : null
}))
}(this.element, l) : Promise.resolve(null),
v = l ? function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "default";
return gt(t).then((function(t) {
return t ? t.getConsentMetadataInfo(e) : null
}))
}(this.element, l) : Promise.resolve(null),
g = l ? (r = this.element, n = l, gt(r).then((function(t) {
return t ? t.getMergedSharedData(n) : null
}))) : Promise.resolve(null),
b = ft(this.element).pageViewId64;
return this.zi = Promise.all([(s = this, m = w[s.element.getAttribute("type")], m && m.clientIdScope ? (o = s.getAmpDoc(), c = m.clientIdScope, p = m.clientIdCookieName, isNaN(void 0), d = (u = o, et(u, "cid")).then((function(t) {
if (t) return t.get({
scope: c,
createCookieIfNotPresent: !0,
cookieName: p
}, Promise.resolve(void 0)).catch((function(t) {
X().error("AD-CID", t)
}))
})), vt(o.win).timeoutPromise(1e3, d, "cid timeout").catch((function(t) {
X().warn("AD-CID", t)
}))) : i()), h, g, f, v, b]).then((function(t) {
var r = {
"clientId": t[0] || null,
"container": e.ft,
"initialConsentState": t[1],
"consentSharedData": t[2],
"initialConsentValue": t[3],
"initialConsentMetadata": t[4],
"pageViewId64": t[5]
},
n = e.element.getIntersectionChangeEntry(),
i = function(t, e, r, n) {
var i = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : {},
a = i.allowFullscreen,
s = void 0 !== a && a,
o = i.initialIntersection;
K(void 0 === e.isConnected || !0 === e.isConnected);
var c = Xe(t, e, r, n);
o && (c._context.initialIntersection = o);
var p = t.document.createElement("iframe");
Je[c.type] || (Je[c.type] = 0), Je[c.type] += 1;
var d = e.getAmpDoc(),
u = Ze(t, d),
m = Ee(u).hostname,
h = JSON.stringify({
"host": m,
"bootstrap": Ke(c.type),
"type": c.type,
"count": Je[c.type],
"attributes": c
});
return p.src = u, p.ampLocation = Ee(u), p.name = h, c.width && (p.width = c.width), c.height && (p.height = c.height), c.title && (p.title = c.title), s && p.setAttribute("allowfullscreen", "true"), p.setAttribute("scrolling", "no"), te(p, "border", "none"), p.onload = function() {
this.readyState = "complete"
}, p.setAttribute("allow", "sync-xhr 'none';"), ["facebook"].includes(r) || tr(p), p.setAttribute("data-amp-3p-sentinel", c._context.sentinel), p
}(k(e.element), e.element, e.wM, r, {
initialIntersection: Jt(n)
});
return i.title = e.element.title || "Advertisement", e.H8 = new qe(e), e.H8.init(i)
})).then((function() {
e.vg = function(t, e, r) {
var n = k(t),
i = Bt.get(n);
i || Bt.set(n, i = Wt($t, n));
var a = Yt.get(t);
return a || (a = [], Yt.set(t, a)), a.push(e), i.observe(t),
function() {
! function(t, e) {
var r, n, i, a = Yt.get(t);
if (a && (n = e, -1 != (i = (r = a).indexOf(n)) && (r.splice(i, 1), 1) && !a.length)) {
var s = k(t),
o = Bt.get(s);
null == o || o.unobserve(t), Yt.delete(t)
}
}(t, e)
}
}(e.element, (function(t) {
var r = t.isIntersecting;
return e.pg(r)
}))
})),
function(t, e) {
if (void 0 === t["3pla"] && (t["3pla"] = 0), t["3pla"]++, !Be) {
var r = new a;
Be = r.promise, Ye = r.resolve
}
vt(t).timeoutPromise(1e3, e).catch((function() {})).then((function() {
--t["3pla"] || (Ye(), Be = null, Ye = null)
}))
}(this.win, this.zi), this.zi
}, n.pg = function(t) {
this.H8 && this.H8.viewportCallback(t)
}, n.unlayoutOnPause = function() {
return !0
}, n.unlayoutCallback = function() {
var t;
return this.Qw.forEach((function(t) {
return t()
})), this.Qw.length = 0, null === (t = this.vg) || void 0 === t || t.call(this), this.vg = null, this.zi = null, this.uiHandler.applyUnlayoutUI(), this.H8 && (this.H8.freeXOriginIframe(), this.H8 = null), this.uiHandler && this.uiHandler.cleanup(), !0
}, n.getConsentState = function() {
var e = t.prototype.getConsentPolicy.call(this);
return e ? function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "default";
return gt(t).then((function(t) {
return t ? t.whenPolicyResolved(e) : null
}))
}(this.element, e) : Promise.resolve(null)
}, n.Gdt = function() {
var t = this.getViewport().getSize(),
e = Math.min(500, t.height),
r = t.width,
n = this.Vdt(r, e);
return this.attemptChangeSize(n, r).then((function() {
X().info(pr, "Size change accepted: ".concat(r, "x").concat(n))
}), (function() {
X().info(pr, "Size change rejected: ".concat(r, "x").concat(n))
}))
}, n.Vdt = function(t, e) {
return "mcrspv" === this.element.getAttribute("data-auto-format") ? (r = t, (i = (a = {
numberOfRows: (n = this.element).getAttribute(Et),
numberOfColumns: n.getAttribute(Pt),
layoutType: n.getAttribute(At)
}).numberOfRows || a.numberOfColumns || a.layoutType ? function(t, e) {
var r, n = function(t) {
var e = 0;
if (t.layoutType && e++, t.numberOfColumns && e++, t.numberOfRows && e++, e < 3) return {
validationError: "Tags ".concat(At, ", ").concat(Pt, " and ").concat(Et, " should be set together.")
};
var r = t.layoutType.split(","),
n = t.numberOfRows.split(","),
i = t.numberOfColumns.split(",");
if (r.length !== n.length || r.length !== i.length) return {
validationError: "Lengths of parameters ".concat(At, ", ").concat(Pt, " and ").concat(Et, " must match. Example: ").concat(Tt)
};
if (r.length > 2) return {
validationError: "The parameter length of attribute ".concat(At, ", ").concat(Pt, " and ").concat(Et, " is too long. At most 2 parameters for each ") + "attribute are needed: one for mobile and one for desktop, while " + "you are providing ".concat(r.length, " parameters. Example: ").concat(Tt, ".")
};
for (var a = [], s = [], o = 0; o < r.length; o++) {
var c = Number(n[o]);
if (isNaN(c) || 0 === c) return {
validationError: "Wrong value '".concat(n[o], "' for ").concat(Et, ".")
};
a.push(c);
var p = Number(i[o]);
if (isNaN(p) || 0 === p) return {
validationError: "Wrong value '".concat(i[o], "' for ").concat(Pt, ".")
};
s.push(p)
}
return {
numberOfRows: a,
numberOfColumns: s,
layoutTypes: r
}
}(e);
if (n.validationError) return {
slotWidth: 0,
slotHeight: 0,
numberOfColumns: 0,
numberOfRows: 0,
layoutType: jt,
validationError: n.validationError
};
r = 2 === n.layoutTypes.length && t >= 468 ? 1 : 0;
var i = function(t) {
return 0 === t.indexOf(Nt) ? t : Nt + t
}(n.layoutTypes[r]),
a = function(t, e, r) {
for (var n = Rt[r], i = e; t / i < n && i > 1;) i--;
return i
}(t, n.numberOfColumns[r], i),
s = n.numberOfRows[r],
o = function(t, e, r, n) {
var i = Ft(Dt(Ht(t, e), n), r);
return t > 1500 ? {
width: 0,
height: 0,
sizeError: "Calculated slot width is too large: " + t
} : i > 1500 ? {
width: 0,
height: 0,
sizeError: "Calculated slot height is too large: " + i
} : {
width: t,
height: i
}
}(t, a, s, i);
return o.sizeError ? {
slotWidth: 0,
slotHeight: 0,
numberOfColumns: 0,
numberOfRows: 0,
layoutType: i,
validationError: o.sizeError
} : {
slotWidth: o.width,
slotHeight: o.height,
numberOfColumns: a,
numberOfRows: s,
layoutType: i
}
}(r, a) : function(t, e) {
if (t < 468) {
if (e) {
var r = function(t, e, r, n) {
var i = Ht(t, 1);
return {
width: t,
height: Math.floor(i / 1.91 + 70) + Ft(Dt(i, "mobile_banner_image_sidebyside"), 11)
}
}(t);
return {
slotWidth: r.width,
slotHeight: r.height,
numberOfColumns: 1,
numberOfRows: 12,
layoutType: "mobile_banner_image_sidebyside"
}
}
var n = Ct(t);
return {
slotWidth: n.width,
slotHeight: n.height,
numberOfColumns: 1,
numberOfRows: 13,
layoutType: yt
}
}
var i = Ct(t);
return {
slotWidth: i.width,
slotHeight: i.height,
numberOfColumns: 4,
numberOfRows: 2,
layoutType: jt
}
}(r, r <= 468)).validationError ? ($().error("AMP-AD", i.validationError), 0) : (n.setAttribute(Et, i.numberOfRows), n.setAttribute(Pt, i.numberOfColumns), n.setAttribute(At, i.layoutType), i.slotHeight)) : (s = Math.round(t / this.config.fullWidthHeightRatio), S(100 <= (o = e)), Math.min(Math.max(s, 100), o));
var r, n, i, a, s, o
}, r
}(t.BaseElement),
ur = {},
mr = null,
hr = function(t) {
o(r, t);
var e = u(r);
function r(t) {
var r;
return (r = e.call(this, t)).pi = null, r.Wdt = null, r.uiHandler = null, r
}
var n = r.prototype;
return n.getLayoutPriority = function() {
return 0
}, n.isLayoutSupported = function(t) {
return Lt(t)
}, n.buildCallback = function() {
this.pi = this.element.getAttribute("data-url"), this.Wdt = this.element.getAttribute("data-slot"), Z(null === this.Wdt || this.Wdt.match(/^[0-9a-z]+$/), "custom ad slot should be alphanumeric: " + this.Wdt);
var t, e, r = (t = this.element, ct(e = it(nt(t)), "url") ? at(e, "url") : null);
Z(this.pi && r.isSecure(this.pi), "custom ad url must be an HTTPS URL"), this.uiHandler = new ue(this)
}, n.layoutCallback = function() {
var t, e = this,
r = this.qdt(),
n = ur[r] || (t = this.win, Q(t, "xhr")).fetchJson(r).then((function(t) {
return t.json()
}));
return null !== this.Wdt && (ur[r] = n), n.then((function(t) {
var r, n = t;
if (null !== e.Wdt && (n = v(t, e.Wdt) ? t[e.Wdt] : null), n && "object" == p(n)) {
n = e.Bdt(n), e.renderStarted();
try {
(r = e.element, tt(r, "templates")).findAndRenderTemplate(e.element, n).then((function(t) {
! function(t) {
for (; t.firstChild;) t.removeChild(t.firstChild)
}(e.element), e.element.appendChild(t), e.signals().signal(we)
}))
} catch (t) {
e.uiHandler.applyNoContentUI()
}
} else e.uiHandler.applyNoContentUI()
}))
}, n.Bdt = function(t) {
if (e = this.element, _("template"), function(t, e) {
if (void 0 !== y ? y : y = function(t) {
try {
var e = t.ownerDocument,
r = e.createElement("div"),
n = e.createElement("div");
return r.appendChild(n), r.querySelector(":scope div") === n
} catch (t) {
return !1
}
}(t)) return t.querySelector(x(e, ":scope"));
var r = function(t, e) {
var r = t.classList,
n = "i-amphtml-scoped";
r.add(n);
var i = x(e, ".".concat(n)),
a = t.querySelectorAll(i);
return r.remove(n), a
}(t, e)[0];
return void 0 === r ? null : r
}(e, "> ".concat("template"))) return t;
var e;
if (Z(t.templateId, "TemplateId not specified"), Z(t.data && "object" == p(t.data), "Template data not specified"), this.element.setAttribute("template", t.templateId), t.vars && "object" == p(t.vars))
for (var r = t.vars, n = Object.keys(r), i = 0; i < n.length; i++) {
var a = "data-vars-" + n[i];
try {
this.element.setAttribute(a, r[n[i]])
} catch (t) {
this.user().error("amp-ad-custom", "Fail to set attribute: ", t)
}
}
return t.data
}, n.unlayoutCallback = function() {
return this.uiHandler.applyUnlayoutUI(), !0
}, n.qdt = function() {
if (null === this.Wdt) return Z(this.pi);
if (null === mr) {
mr = {};
for (var t = {}, e = (o = this.element, "BODY", o.closest ? o.closest("BODY") : function(t, e, r) {
var n;
for (n = t; n && void 0 !== n; n = n.parentElement)
if (e(n)) return n;
return null
}(o, (function(t) {
return function(t, e) {
var r = t.matches || t.webkitMatchesSelector || t.mozMatchesSelector || t.msMatchesSelector || t.oMatchesSelector;
return !!r && r.call(t, "BODY")
}(t)
}))).querySelectorAll("amp-ad[type=custom]"), r = 0; r < e.length; r++) {
var n = e[r],
i = n.getAttribute("data-url"),
a = n.getAttribute("data-slot");
null !== a && (i in t || (t[i] = []), t[i].push(encodeURIComponent(a)))
}
for (var s in t) mr[s] = Me(s, "ampslots", t[s].join(","))
}
var o;
return mr[this.pi]
}, r
}(t.BaseElement),
lr = function(t) {
o(r, t);
var e = u(r);
function r() {
return e.apply(this, arguments)
}
var n = r.prototype;
return n.isLayoutSupported = function(t) {
return !0
}, n.upgradeCallback = function() {
var t, e = this,
r = (m || (m = f({
"adsense": function() {
return !0
},
"adzerk": function() {
return !0
},
"dianomi": function() {
return !0
},
"doubleclick": function() {
return !0
},
"fake": function() {
return !0
},
"nws": function() {
return !0
},
"smartadserver": function() {
return !0
},
"valueimpression": function() {
return !0
}
})), m),
n = this.element.getAttribute("data-consent-notification-id"),
a = n ? (t = this.element, function(t, e, r, n) {
return pt(t, "userNotificationManager", r, void 0).then((function(t) {
return function(t, e, r) {
return Z(t, "Service %s was requested to be provided through %s, but %s is not loaded in the current page. To fix this problem load the JavaScript file for %s in this page.", "userNotificationManager", r, r, r)
}(t, 0, r)
}))
}(t, 0, "amp-user-notification")).then((function(t) {
return t.get(n)
})) : i(),
s = this.element.getAttribute("type");
return a.then((function() {
var t = "custom" === s;
if (Z(t || v(w, s) || v(r, s), 'Unknown ad type "'.concat(s, '"')), t) return new hr(e.element);
e.win.ampAdSlotIdCounter = e.win.ampAdSlotIdCounter || 0;
var n = e.win.ampAdSlotIdCounter++;
return new Promise((function(t) {
e.getVsync().mutate((function() {
e.element.setAttribute("data-amp-slot-index", n);
var i = e.element.getAmpDoc().getMetaByName("amp-3p-iframe-src");
if (!r[s] || !r[s](e.win, e.element, i)) return t(new dr(e.element));
var a, o = function(t) {
return "amp-ad-network-".concat(t, "-impl")
}(s);
e.element.setAttribute("data-a4a-upgrade-type", o), t((a = e.win, Q(a, "extensions")).loadElementClass(o).then((function(t) {
return new t(e.element)
})).catch((function(t) {
var r = e.element.tagName;
return e.user().error(r, "Unable to load ad implementation for type ", s, ", falling back to 3p, error: ", t), new dr(e.element)
})))
}))
}))
}))
}, r
}(t.BaseElement);
t.registerElement("amp-ad", lr, 'amp-ad iframe,amp-embed iframe{border:0!important;margin:0!important;padding:0!important;position:relative}.i-amphtml-ad-default-holder{position:absolute;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;background-color:hsla(0,0%,78%,0.05)}.i-amphtml-ad-default-holder:after{content:"Ad";content:attr(data-ad-holder-text);background-color:transparent;border-radius:2px;color:#696969;font-size:10px;line-height:1;font-family:Arial,sans-serif;padding:3px 4px 1px;border:1px solid #696969}amp-ad[sticky]{visibility:hidden;-ms-flex-align:center;align-items:center}amp-ad[type=adsense],amp-ad[type=doubleclick]{direction:ltr}amp-ad[data-a4a-upgrade-type=amp-ad-network-adsense-impl]>iframe,amp-ad[data-a4a-upgrade-type=amp-ad-network-doubleclick-impl]>iframe{min-height:0;min-width:0}amp-ad[data-a4a-upgrade-type=amp-ad-network-doubleclick-impl][height=fluid]>iframe{height:100%!important;width:100%!important;position:relative}amp-ad[data-a4a-upgrade-type=amp-ad-network-doubleclick-impl][height=fluid]{width:100%!important}amp-ad .amp-ad-close-button{position:absolute;width:28px;height:28px;right:0;background-image:url(\'data:image/svg+xml;charset=utf-8,<svg width="13" height="13" viewBox="341 8 13 13" xmlns="http://www.w3.org/2000/svg"><path fill="%234F4F4F" d="M354 9.31 352.69 8l-5.19 5.19L342.31 8 341 9.31l5.19 5.19-5.19 5.19 1.31 1.31 5.19-5.19 5.19 5.19 1.31-1.31-5.19-5.19z" fill-rule="evenodd"/></svg>\');background-size:13px 13px;background-position:9px;background-color:#fff;background-repeat:no-repeat;box-shadow:0 -1px 1px 0 rgba(0,0,0,0.2);border:none;border-radius:12px 0 0 0}amp-ad .amp-ad-close-button:before{position:absolute;content:"";top:-20px;right:0;left:-20px;bottom:0}amp-ad[sticky=bottom-right] .amp-ad-close-button,amp-ad[sticky=bottom] .amp-ad-close-button,amp-ad[sticky=left] .amp-ad-close-button,amp-ad[sticky=right] .amp-ad-close-button{top:-28px}amp-ad[sticky=top] .amp-ad-close-button{transform:rotate(270deg);bottom:-28px}amp-ad[sticky=left] .amp-ad-close-button{transform:rotate(90deg);left:0}[dir=rtl] amp-ad .amp-ad-close-button{right:auto;left:0;border-top-left-radius:0;border-top-right-radius:12px;background-position:6px}[dir=rtl] amp-ad .amp-ad-close-button:before{right:-20px;left:0}amp-ad[sticky]{z-index:2147483647;position:fixed;overflow:visible!important;box-shadow:0 0 5px 0 rgba(0,0,0,0.2)!important;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}amp-ad[sticky=top]{padding-bottom:5px;top:0}amp-ad[sticky=bottom],amp-ad[sticky=top]{width:100%!important;max-height:20%!important;background:#fff}amp-ad[sticky=bottom]{max-width:100%;padding-bottom:env(safe-area-inset-bottom,0px);bottom:0;padding-top:4px}amp-ad[sticky=bottom-right]{bottom:0;right:0}amp-ad[sticky=left],amp-ad[sticky=right]{background:#fff}amp-ad[sticky=left] iframe,amp-ad[sticky=right] iframe{max-width:120px!important}amp-ad[sticky=left]{left:0}amp-ad[sticky=right]{right:0}@media (max-width:1024px){amp-ad[sticky=left],amp-ad[sticky=right]{display:none!important}}\n/*# sourceURL=/extensions/amp-ad/0.1/amp-ad.css*/'), t.registerElement("amp-embed", lr)
}();
/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */
}
});
//# sourceMappingURL=amp-ad-0.1.js.map
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment