@vkontakte/videoplayer-statistics 1.0.87-dev.02be9553.0 → 1.0.87-dev.292eab83.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es2015.cjs.js +3 -3
- package/es2015.esm.js +3 -3
- package/es2018.cjs.js +3 -3
- package/es2018.esm.js +3 -3
- package/es2024.cjs.js +3 -3
- package/es2024.esm.js +3 -3
- package/esnext.cjs.js +3 -3
- package/esnext.esm.js +3 -3
- package/evergreen.esm.js +3 -3
- package/package.json +3 -3
- package/types/shared/useModeController.d.ts +10 -0
package/esnext.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vkontakte/videoplayer-statistics v1.0.87-dev.
|
|
3
|
-
*
|
|
2
|
+
* @vkontakte/videoplayer-statistics v1.0.87-dev.292eab83.0
|
|
3
|
+
* Mon, 29 Sep 2025 07:24:41 GMT
|
|
4
4
|
* https://st.mycdn.me/static/vkontakte-videoplayer/1-0-87/doc/
|
|
5
5
|
*/
|
|
6
|
-
var af=Object.create;var fr=Object.defineProperty;var sf=Object.getOwnPropertyDescriptor;var uf=Object.getOwnPropertyNames;var cf=Object.getPrototypeOf,lf=Object.prototype.hasOwnProperty;var a=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),df=(t,e)=>{for(var r in e)fr(t,r,{get:e[r],enumerable:!0})},ff=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of uf(e))!lf.call(t,o)&&o!==r&&fr(t,o,{get:()=>e[o],enumerable:!(i=sf(e,o))||i.enumerable});return t};var E=(t,e,r)=>(r=t!=null?af(cf(t)):{},ff(e||!t||!t.__esModule?fr(r,"default",{value:t,enumerable:!0}):r,t));var S=a((pr,Mo)=>{"use strict";var Ne=function(t){return t&&t.Math===Math&&t};Mo.exports=Ne(typeof globalThis=="object"&&globalThis)||Ne(typeof window=="object"&&window)||Ne(typeof self=="object"&&self)||Ne(typeof global=="object"&&global)||Ne(typeof pr=="object"&&pr)||function(){return this}()||Function("return this")()});var w=a((sS,Vo)=>{"use strict";Vo.exports=function(t){try{return!!t()}catch{return!0}}});var $e=a((uS,Fo)=>{"use strict";var pf=w();Fo.exports=!pf(function(){var t=function(){}.bind();return typeof t!="function"||t.hasOwnProperty("prototype")})});var hr=a((cS,Ho)=>{"use strict";var hf=$e(),jo=Function.prototype,Bo=jo.apply,Uo=jo.call;Ho.exports=typeof Reflect=="object"&&Reflect.apply||(hf?Uo.bind(Bo):function(){return Uo.apply(Bo,arguments)})});var A=a((lS,Go)=>{"use strict";var Wo=$e(),Ko=Function.prototype,vr=Ko.call,vf=Wo&&Ko.bind.bind(vr,vr);Go.exports=Wo?vf:function(t){return function(){return vr.apply(t,arguments)}}});var De=a((dS,zo)=>{"use strict";var Qo=A(),gf=Qo({}.toString),mf=Qo("".slice);zo.exports=function(t){return mf(gf(t),8,-1)}});var gr=a((fS,Yo)=>{"use strict";var bf=De(),yf=A();Yo.exports=function(t){if(bf(t)==="Function")return yf(t)}});var _=a((pS,Jo)=>{"use strict";var mr=typeof document=="object"&&document.all;Jo.exports=typeof mr>"u"&&mr!==void 0?function(t){return typeof t=="function"||t===mr}:function(t){return typeof t=="function"}});var x=a((hS,Xo)=>{"use strict";var If=w();Xo.exports=!If(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var N=a((vS,Zo)=>{"use strict";var Sf=$e(),dt=Function.prototype.call;Zo.exports=Sf?dt.bind(dt):function(){return dt.apply(dt,arguments)}});var br=a(rn=>{"use strict";var en={}.propertyIsEnumerable,tn=Object.getOwnPropertyDescriptor,_f=tn&&!en.call({1:2},1);rn.f=_f?function(e){var r=tn(this,e);return!!r&&r.enumerable}:en});var Me=a((mS,on)=>{"use strict";on.exports=function(t,e){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:e}}});var an=a((bS,nn)=>{"use strict";var Pf=A(),Ef=w(),Tf=De(),yr=Object,wf=Pf("".split);nn.exports=Ef(function(){return!yr("z").propertyIsEnumerable(0)})?function(t){return Tf(t)==="String"?wf(t,""):yr(t)}:yr});var Ve=a((yS,sn)=>{"use strict";sn.exports=function(t){return t==null}});var le=a((IS,un)=>{"use strict";var Af=Ve(),xf=TypeError;un.exports=function(t){if(Af(t))throw new xf("Can't call method on "+t);return t}});var X=a((SS,cn)=>{"use strict";var Of=an(),qf=le();cn.exports=function(t){return Of(qf(t))}});var $=a((_S,ln)=>{"use strict";var Rf=_();ln.exports=function(t){return typeof t=="object"?t!==null:Rf(t)}});var de=a((PS,dn)=>{"use strict";dn.exports={}});var H=a((ES,pn)=>{"use strict";var Ir=de(),Sr=S(),Cf=_(),fn=function(t){return Cf(t)?t:void 0};pn.exports=function(t,e){return arguments.length<2?fn(Ir[t])||fn(Sr[t]):Ir[t]&&Ir[t][e]||Sr[t]&&Sr[t][e]}});var ft=a((TS,hn)=>{"use strict";var kf=A();hn.exports=kf({}.isPrototypeOf)});var Z=a((wS,mn)=>{"use strict";var Lf=S(),vn=Lf.navigator,gn=vn&&vn.userAgent;mn.exports=gn?String(gn):""});var Pr=a((AS,Pn)=>{"use strict";var _n=S(),_r=Z(),bn=_n.process,yn=_n.Deno,In=bn&&bn.versions||yn&&yn.version,Sn=In&&In.v8,D,pt;Sn&&(D=Sn.split("."),pt=D[0]>0&&D[0]<4?1:+(D[0]+D[1]));!pt&&_r&&(D=_r.match(/Edge\/(\d+)/),(!D||D[1]>=74)&&(D=_r.match(/Chrome\/(\d+)/),D&&(pt=+D[1])));Pn.exports=pt});var Er=a((xS,Tn)=>{"use strict";var En=Pr(),Nf=w(),$f=S(),Df=$f.String;Tn.exports=!!Object.getOwnPropertySymbols&&!Nf(function(){var t=Symbol("symbol detection");return!Df(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&En&&En<41})});var Tr=a((OS,wn)=>{"use strict";var Mf=Er();wn.exports=Mf&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var wr=a((qS,An)=>{"use strict";var Vf=H(),Ff=_(),Bf=ft(),Uf=Tr(),jf=Object;An.exports=Uf?function(t){return typeof t=="symbol"}:function(t){var e=Vf("Symbol");return Ff(e)&&Bf(e.prototype,jf(t))}});var Fe=a((RS,xn)=>{"use strict";var Hf=String;xn.exports=function(t){try{return Hf(t)}catch{return"Object"}}});var W=a((CS,On)=>{"use strict";var Wf=_(),Kf=Fe(),Gf=TypeError;On.exports=function(t){if(Wf(t))return t;throw new Gf(Kf(t)+" is not a function")}});var ht=a((kS,qn)=>{"use strict";var Qf=W(),zf=Ve();qn.exports=function(t,e){var r=t[e];return zf(r)?void 0:Qf(r)}});var Cn=a((LS,Rn)=>{"use strict";var Ar=N(),xr=_(),Or=$(),Yf=TypeError;Rn.exports=function(t,e){var r,i;if(e==="string"&&xr(r=t.toString)&&!Or(i=Ar(r,t))||xr(r=t.valueOf)&&!Or(i=Ar(r,t))||e!=="string"&&xr(r=t.toString)&&!Or(i=Ar(r,t)))return i;throw new Yf("Can't convert object to primitive value")}});var B=a((NS,kn)=>{"use strict";kn.exports=!0});var $n=a(($S,Nn)=>{"use strict";var Ln=S(),Jf=Object.defineProperty;Nn.exports=function(t,e){try{Jf(Ln,t,{value:e,configurable:!0,writable:!0})}catch{Ln[t]=e}return e}});var Be=a((DS,Vn)=>{"use strict";var Xf=B(),Zf=S(),ep=$n(),Dn="__core-js_shared__",Mn=Vn.exports=Zf[Dn]||ep(Dn,{});(Mn.versions||(Mn.versions=[])).push({version:"3.43.0",mode:Xf?"pure":"global",copyright:"\xA9 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.43.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var qr=a((MS,Bn)=>{"use strict";var Fn=Be();Bn.exports=function(t,e){return Fn[t]||(Fn[t]=e||{})}});var Rr=a((VS,Un)=>{"use strict";var tp=le(),rp=Object;Un.exports=function(t){return rp(tp(t))}});var U=a((FS,jn)=>{"use strict";var ip=A(),op=Rr(),np=ip({}.hasOwnProperty);jn.exports=Object.hasOwn||function(e,r){return np(op(e),r)}});var Cr=a((BS,Hn)=>{"use strict";var ap=A(),sp=0,up=Math.random(),cp=ap(1.1.toString);Hn.exports=function(t){return"Symbol("+(t===void 0?"":t)+")_"+cp(++sp+up,36)}});var O=a((US,Kn)=>{"use strict";var lp=S(),dp=qr(),Wn=U(),fp=Cr(),pp=Er(),hp=Tr(),fe=lp.Symbol,kr=dp("wks"),vp=hp?fe.for||fe:fe&&fe.withoutSetter||fp;Kn.exports=function(t){return Wn(kr,t)||(kr[t]=pp&&Wn(fe,t)?fe[t]:vp("Symbol."+t)),kr[t]}});var Yn=a((jS,zn)=>{"use strict";var gp=N(),Gn=$(),Qn=wr(),mp=ht(),bp=Cn(),yp=O(),Ip=TypeError,Sp=yp("toPrimitive");zn.exports=function(t,e){if(!Gn(t)||Qn(t))return t;var r=mp(t,Sp),i;if(r){if(e===void 0&&(e="default"),i=gp(r,t,e),!Gn(i)||Qn(i))return i;throw new Ip("Can't convert object to primitive value")}return e===void 0&&(e="number"),bp(t,e)}});var Lr=a((HS,Jn)=>{"use strict";var _p=Yn(),Pp=wr();Jn.exports=function(t){var e=_p(t,"string");return Pp(e)?e:e+""}});var vt=a((WS,Zn)=>{"use strict";var Ep=S(),Xn=$(),Nr=Ep.document,Tp=Xn(Nr)&&Xn(Nr.createElement);Zn.exports=function(t){return Tp?Nr.createElement(t):{}}});var $r=a((KS,ea)=>{"use strict";var wp=x(),Ap=w(),xp=vt();ea.exports=!wp&&!Ap(function(){return Object.defineProperty(xp("div"),"a",{get:function(){return 7}}).a!==7})});var ia=a(ra=>{"use strict";var Op=x(),qp=N(),Rp=br(),Cp=Me(),kp=X(),Lp=Lr(),Np=U(),$p=$r(),ta=Object.getOwnPropertyDescriptor;ra.f=Op?ta:function(e,r){if(e=kp(e),r=Lp(r),$p)try{return ta(e,r)}catch{}if(Np(e,r))return Cp(!qp(Rp.f,e,r),e[r])}});var Dr=a((QS,oa)=>{"use strict";var Dp=w(),Mp=_(),Vp=/#|\.prototype\./,Ue=function(t,e){var r=Bp[Fp(t)];return r===jp?!0:r===Up?!1:Mp(e)?Dp(e):!!e},Fp=Ue.normalize=function(t){return String(t).replace(Vp,".").toLowerCase()},Bp=Ue.data={},Up=Ue.NATIVE="N",jp=Ue.POLYFILL="P";oa.exports=Ue});var je=a((zS,aa)=>{"use strict";var na=gr(),Hp=W(),Wp=$e(),Kp=na(na.bind);aa.exports=function(t,e){return Hp(t),e===void 0?t:Wp?Kp(t,e):function(){return t.apply(e,arguments)}}});var Mr=a((YS,sa)=>{"use strict";var Gp=x(),Qp=w();sa.exports=Gp&&Qp(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var K=a((JS,ua)=>{"use strict";var zp=$(),Yp=String,Jp=TypeError;ua.exports=function(t){if(zp(t))return t;throw new Jp(Yp(t)+" is not an object")}});var ee=a(la=>{"use strict";var Xp=x(),Zp=$r(),eh=Mr(),gt=K(),ca=Lr(),th=TypeError,Vr=Object.defineProperty,rh=Object.getOwnPropertyDescriptor,Fr="enumerable",Br="configurable",Ur="writable";la.f=Xp?eh?function(e,r,i){if(gt(e),r=ca(r),gt(i),typeof e=="function"&&r==="prototype"&&"value"in i&&Ur in i&&!i[Ur]){var o=rh(e,r);o&&o[Ur]&&(e[r]=i.value,i={configurable:Br in i?i[Br]:o[Br],enumerable:Fr in i?i[Fr]:o[Fr],writable:!1})}return Vr(e,r,i)}:Vr:function(e,r,i){if(gt(e),r=ca(r),gt(i),Zp)try{return Vr(e,r,i)}catch{}if("get"in i||"set"in i)throw new th("Accessors not supported");return"value"in i&&(e[r]=i.value),e}});var pe=a((ZS,da)=>{"use strict";var ih=x(),oh=ee(),nh=Me();da.exports=ih?function(t,e,r){return oh.f(t,e,nh(1,r))}:function(t,e,r){return t[e]=r,t}});var q=a((e_,pa)=>{"use strict";var He=S(),ah=hr(),sh=gr(),uh=_(),ch=ia().f,lh=Dr(),he=de(),dh=je(),ve=pe(),fa=U();Be();var fh=function(t){var e=function(r,i,o){if(this instanceof e){switch(arguments.length){case 0:return new t;case 1:return new t(r);case 2:return new t(r,i)}return new t(r,i,o)}return ah(t,this,arguments)};return e.prototype=t.prototype,e};pa.exports=function(t,e){var r=t.target,i=t.global,o=t.stat,n=t.proto,u=i?He:o?He[r]:He[r]&&He[r].prototype,c=i?he:he[r]||ve(he,r,{})[r],s=c.prototype,l,f,p,d,h,v,m,g,b;for(d in e)l=lh(i?d:r+(o?".":"#")+d,t.forced),f=!l&&u&&fa(u,d),v=c[d],f&&(t.dontCallGetSet?(b=ch(u,d),m=b&&b.value):m=u[d]),h=f&&m?m:e[d],!(!l&&!n&&typeof v==typeof h)&&(t.bind&&f?g=dh(h,He):t.wrap&&f?g=fh(h):n&&uh(h)?g=sh(h):g=h,(t.sham||h&&h.sham||v&&v.sham)&&ve(g,"sham",!0),ve(c,d,g),n&&(p=r+"Prototype",fa(he,p)||ve(he,p,{}),ve(he[p],d,h),t.real&&s&&(l||!s[d])&&ve(s,d,h)))}});var va=a((t_,ha)=>{"use strict";var ph=Math.ceil,hh=Math.floor;ha.exports=Math.trunc||function(e){var r=+e;return(r>0?hh:ph)(r)}});var mt=a((r_,ga)=>{"use strict";var vh=va();ga.exports=function(t){var e=+t;return e!==e||e===0?0:vh(e)}});var ba=a((i_,ma)=>{"use strict";var gh=mt(),mh=Math.max,bh=Math.min;ma.exports=function(t,e){var r=gh(t);return r<0?mh(r+e,0):bh(r,e)}});var jr=a((o_,ya)=>{"use strict";var yh=mt(),Ih=Math.min;ya.exports=function(t){var e=yh(t);return e>0?Ih(e,9007199254740991):0}});var Hr=a((n_,Ia)=>{"use strict";var Sh=jr();Ia.exports=function(t){return Sh(t.length)}});var Wr=a((a_,_a)=>{"use strict";var _h=X(),Ph=ba(),Eh=Hr(),Sa=function(t){return function(e,r,i){var o=_h(e),n=Eh(o);if(n===0)return!t&&-1;var u=Ph(i,n),c;if(t&&r!==r){for(;n>u;)if(c=o[u++],c!==c)return!0}else for(;n>u;u++)if((t||u in o)&&o[u]===r)return t||u||0;return!t&&-1}};_a.exports={includes:Sa(!0),indexOf:Sa(!1)}});var Kr=a((s_,Pa)=>{"use strict";Pa.exports=function(){}});var Ea=a(()=>{"use strict";var Th=q(),wh=Wr().includes,Ah=w(),xh=Kr(),Oh=Ah(function(){return!Array(1).includes()});Th({target:"Array",proto:!0,forced:Oh},{includes:function(e){return wh(this,e,arguments.length>1?arguments[1]:void 0)}});xh("includes")});var bt=a((l_,Ta)=>{"use strict";var qh=H();Ta.exports=qh});var Aa=a((d_,wa)=>{"use strict";Ea();var Rh=bt();wa.exports=Rh("Array","includes")});var Oa=a((f_,xa)=>{"use strict";var Ch=Aa();xa.exports=Ch});var ge=a((p_,qa)=>{"use strict";var kh=Oa();qa.exports=kh});var yt=a((T_,Fa)=>{"use strict";var Dh=O(),Mh=Dh("toStringTag"),Va={};Va[Mh]="z";Fa.exports=String(Va)==="[object z]"});var Ke=a((w_,Ba)=>{"use strict";var Vh=yt(),Fh=_(),It=De(),Bh=O(),Uh=Bh("toStringTag"),jh=Object,Hh=It(function(){return arguments}())==="Arguments",Wh=function(t,e){try{return t[e]}catch{}};Ba.exports=Vh?It:function(t){var e,r,i;return t===void 0?"Undefined":t===null?"Null":typeof(r=Wh(e=jh(t),Uh))=="string"?r:Hh?It(e):(i=It(e))==="Object"&&Fh(e.callee)?"Arguments":i}});var Zr=a((A_,Ua)=>{"use strict";var Kh=Ke(),Gh=String;Ua.exports=function(t){if(Kh(t)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return Gh(t)}});var Ha=a((x_,ja)=>{"use strict";var Qh=mt(),zh=Zr(),Yh=le(),Jh=RangeError;ja.exports=function(e){var r=zh(Yh(this)),i="",o=Qh(e);if(o<0||o===1/0)throw new Jh("Wrong number of repetitions");for(;o>0;(o>>>=1)&&(r+=r))o&1&&(i+=r);return i}});var za=a((O_,Qa)=>{"use strict";var Ga=A(),Xh=jr(),Wa=Zr(),Zh=Ha(),ev=le(),tv=Ga(Zh),rv=Ga("".slice),iv=Math.ceil,Ka=function(t){return function(e,r,i){var o=Wa(ev(e)),n=Xh(r),u=o.length,c=i===void 0?" ":Wa(i),s,l;return n<=u||c===""?o:(s=n-u,l=tv(c,iv(s/c.length)),l.length>s&&(l=rv(l,0,s)),t?o+l:l+o)}};Qa.exports={start:Ka(!1),end:Ka(!0)}});var Ja=a((q_,Ya)=>{"use strict";var ov=Z();Ya.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(ov)});var Xa=a(()=>{"use strict";var nv=q(),av=za().start,sv=Ja();nv({target:"String",proto:!0,forced:sv},{padStart:function(e){return av(this,e,arguments.length>1?arguments[1]:void 0)}})});var es=a((k_,Za)=>{"use strict";Xa();var uv=bt();Za.exports=uv("String","padStart")});var rs=a((L_,ts)=>{"use strict";var cv=es();ts.exports=cv});var St=a((N_,is)=>{"use strict";var lv=rs();is.exports=lv});var ns=a(()=>{"use strict"});var ei=a((V_,as)=>{"use strict";var Ge=S(),fv=Z(),pv=De(),_t=function(t){return fv.slice(0,t.length)===t};as.exports=function(){return _t("Bun/")?"BUN":_t("Cloudflare-Workers")?"CLOUDFLARE":_t("Deno/")?"DENO":_t("Node.js/")?"NODE":Ge.Bun&&typeof Bun.version=="string"?"BUN":Ge.Deno&&typeof Deno.version=="object"?"DENO":pv(Ge.process)==="process"?"NODE":Ge.window&&Ge.document?"BROWSER":"REST"}()});var Pt=a((F_,ss)=>{"use strict";var hv=ei();ss.exports=hv==="NODE"});var me=a((B_,us)=>{"use strict";var vv=pe();us.exports=function(t,e,r,i){return i&&i.enumerable?t[e]=r:vv(t,e,r),t}});var ls=a((U_,cs)=>{"use strict";var gv=A(),mv=W();cs.exports=function(t,e,r){try{return gv(mv(Object.getOwnPropertyDescriptor(t,e)[r]))}catch{}}});var fs=a((j_,ds)=>{"use strict";var bv=$();ds.exports=function(t){return bv(t)||t===null}});var hs=a((H_,ps)=>{"use strict";var yv=fs(),Iv=String,Sv=TypeError;ps.exports=function(t){if(yv(t))return t;throw new Sv("Can't set "+Iv(t)+" as a prototype")}});var ti=a((W_,vs)=>{"use strict";var _v=ls(),Pv=$(),Ev=le(),Tv=hs();vs.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t=!1,e={},r;try{r=_v(Object.prototype,"__proto__","set"),r(e,[]),t=e instanceof Array}catch{}return function(o,n){return Ev(o),Tv(n),Pv(o)&&(t?r(o,n):o.__proto__=n),o}}():void 0)});var ms=a((K_,gs)=>{"use strict";var wv=yt(),Av=Ke();gs.exports=wv?{}.toString:function(){return"[object "+Av(this)+"]"}});var Qe=a((G_,ys)=>{"use strict";var xv=yt(),Ov=ee().f,qv=pe(),Rv=U(),Cv=ms(),kv=O(),bs=kv("toStringTag");ys.exports=function(t,e,r,i){var o=r?t:t&&t.prototype;o&&(Rv(o,bs)||Ov(o,bs,{configurable:!0,value:e}),i&&!xv&&qv(o,"toString",Cv))}});var Ss=a((Q_,Is)=>{"use strict";var Lv=ee();Is.exports=function(t,e,r){return Lv.f(t,e,r)}});var Es=a((z_,Ps)=>{"use strict";var Nv=H(),$v=Ss(),Dv=O(),Mv=x(),_s=Dv("species");Ps.exports=function(t){var e=Nv(t);Mv&&e&&!e[_s]&&$v(e,_s,{configurable:!0,get:function(){return this}})}});var ws=a((Y_,Ts)=>{"use strict";var Vv=ft(),Fv=TypeError;Ts.exports=function(t,e){if(Vv(e,t))return t;throw new Fv("Incorrect invocation")}});var ii=a((J_,As)=>{"use strict";var Bv=A(),Uv=_(),ri=Be(),jv=Bv(Function.toString);Uv(ri.inspectSource)||(ri.inspectSource=function(t){return jv(t)});As.exports=ri.inspectSource});var ks=a((X_,Cs)=>{"use strict";var Hv=A(),Wv=w(),xs=_(),Kv=Ke(),Gv=H(),Qv=ii(),Os=function(){},qs=Gv("Reflect","construct"),oi=/^\s*(?:class|function)\b/,zv=Hv(oi.exec),Yv=!oi.test(Os),ze=function(e){if(!xs(e))return!1;try{return qs(Os,[],e),!0}catch{return!1}},Rs=function(e){if(!xs(e))return!1;switch(Kv(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Yv||!!zv(oi,Qv(e))}catch{return!0}};Rs.sham=!0;Cs.exports=!qs||Wv(function(){var t;return ze(ze.call)||!ze(Object)||!ze(function(){t=!0})||t})?Rs:ze});var Ns=a((Z_,Ls)=>{"use strict";var Jv=ks(),Xv=Fe(),Zv=TypeError;Ls.exports=function(t){if(Jv(t))return t;throw new Zv(Xv(t)+" is not a constructor")}});var ni=a((eP,Ds)=>{"use strict";var $s=K(),eg=Ns(),tg=Ve(),rg=O(),ig=rg("species");Ds.exports=function(t,e){var r=$s(t).constructor,i;return r===void 0||tg(i=$s(r)[ig])?e:eg(i)}});var ai=a((tP,Ms)=>{"use strict";var og=H();Ms.exports=og("document","documentElement")});var Fs=a((rP,Vs)=>{"use strict";var ng=A();Vs.exports=ng([].slice)});var Us=a((iP,Bs)=>{"use strict";var ag=TypeError;Bs.exports=function(t,e){if(t<e)throw new ag("Not enough arguments");return t}});var si=a((oP,js)=>{"use strict";var sg=Z();js.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(sg)});var gi=a((nP,Xs)=>{"use strict";var R=S(),ug=hr(),cg=je(),Hs=_(),lg=U(),Js=w(),Ws=ai(),dg=Fs(),Ks=vt(),fg=Us(),pg=si(),hg=Pt(),pi=R.setImmediate,hi=R.clearImmediate,vg=R.process,ui=R.Dispatch,gg=R.Function,Gs=R.MessageChannel,mg=R.String,ci=0,Ye={},Qs="onreadystatechange",Je,te,li,di;Js(function(){Je=R.location});var vi=function(t){if(lg(Ye,t)){var e=Ye[t];delete Ye[t],e()}},fi=function(t){return function(){vi(t)}},zs=function(t){vi(t.data)},Ys=function(t){R.postMessage(mg(t),Je.protocol+"//"+Je.host)};(!pi||!hi)&&(pi=function(e){fg(arguments.length,1);var r=Hs(e)?e:gg(e),i=dg(arguments,1);return Ye[++ci]=function(){ug(r,void 0,i)},te(ci),ci},hi=function(e){delete Ye[e]},hg?te=function(t){vg.nextTick(fi(t))}:ui&&ui.now?te=function(t){ui.now(fi(t))}:Gs&&!pg?(li=new Gs,di=li.port2,li.port1.onmessage=zs,te=cg(di.postMessage,di)):R.addEventListener&&Hs(R.postMessage)&&!R.importScripts&&Je&&Je.protocol!=="file:"&&!Js(Ys)?(te=Ys,R.addEventListener("message",zs,!1)):Qs in Ks("script")?te=function(t){Ws.appendChild(Ks("script"))[Qs]=function(){Ws.removeChild(this),vi(t)}}:te=function(t){setTimeout(fi(t),0)});Xs.exports={set:pi,clear:hi}});var tu=a((aP,eu)=>{"use strict";var Zs=S(),bg=x(),yg=Object.getOwnPropertyDescriptor;eu.exports=function(t){if(!bg)return Zs[t];var e=yg(Zs,t);return e&&e.value}});var mi=a((sP,iu)=>{"use strict";var ru=function(){this.head=null,this.tail=null};ru.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t){var e=this.head=t.next;return e===null&&(this.tail=null),t.item}}};iu.exports=ru});var nu=a((uP,ou)=>{"use strict";var Ig=Z();ou.exports=/ipad|iphone|ipod/i.test(Ig)&&typeof Pebble<"u"});var su=a((cP,au)=>{"use strict";var Sg=Z();au.exports=/web0s(?!.*chrome)/i.test(Sg)});var hu=a((lP,pu)=>{"use strict";var ye=S(),_g=tu(),uu=je(),bi=gi().set,Pg=mi(),Eg=si(),Tg=nu(),wg=su(),yi=Pt(),cu=ye.MutationObserver||ye.WebKitMutationObserver,lu=ye.document,du=ye.process,Et=ye.Promise,_i=_g("queueMicrotask"),be,Ii,Si,Tt,fu;_i||(Xe=new Pg,Ze=function(){var t,e;for(yi&&(t=du.domain)&&t.exit();e=Xe.get();)try{e()}catch(r){throw Xe.head&&be(),r}t&&t.enter()},!Eg&&!yi&&!wg&&cu&&lu?(Ii=!0,Si=lu.createTextNode(""),new cu(Ze).observe(Si,{characterData:!0}),be=function(){Si.data=Ii=!Ii}):!Tg&&Et&&Et.resolve?(Tt=Et.resolve(void 0),Tt.constructor=Et,fu=uu(Tt.then,Tt),be=function(){fu(Ze)}):yi?be=function(){du.nextTick(Ze)}:(bi=uu(bi,ye),be=function(){bi(Ze)}),_i=function(t){Xe.head||be(),Xe.add(t)});var Xe,Ze;pu.exports=_i});var gu=a((dP,vu)=>{"use strict";vu.exports=function(t,e){try{arguments.length===1?console.error(t):console.error(t,e)}catch{}}});var wt=a((fP,mu)=>{"use strict";mu.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}});var Iu=a((pP,yu)=>{"use strict";var Ag=S(),xg=_(),bu=Ag.WeakMap;yu.exports=xg(bu)&&/native code/.test(String(bu))});var At=a((hP,_u)=>{"use strict";var Og=qr(),qg=Cr(),Su=Og("keys");_u.exports=function(t){return Su[t]||(Su[t]=qg(t))}});var xt=a((vP,Pu)=>{"use strict";Pu.exports={}});var wi=a((gP,wu)=>{"use strict";var Rg=Iu(),Tu=S(),Cg=$(),kg=pe(),Pi=U(),Ei=Be(),Lg=At(),Ng=xt(),Eu="Object already initialized",Ti=Tu.TypeError,$g=Tu.WeakMap,Ot,et,qt,Dg=function(t){return qt(t)?et(t):Ot(t,{})},Mg=function(t){return function(e){var r;if(!Cg(e)||(r=et(e)).type!==t)throw new Ti("Incompatible receiver, "+t+" required");return r}};Rg||Ei.state?(M=Ei.state||(Ei.state=new $g),M.get=M.get,M.has=M.has,M.set=M.set,Ot=function(t,e){if(M.has(t))throw new Ti(Eu);return e.facade=t,M.set(t,e),e},et=function(t){return M.get(t)||{}},qt=function(t){return M.has(t)}):(re=Lg("state"),Ng[re]=!0,Ot=function(t,e){if(Pi(t,re))throw new Ti(Eu);return e.facade=t,kg(t,re,e),e},et=function(t){return Pi(t,re)?t[re]:{}},qt=function(t){return Pi(t,re)});var M,re;wu.exports={set:Ot,get:et,has:qt,enforce:Dg,getterFor:Mg}});var ie=a((mP,Au)=>{"use strict";var Vg=S();Au.exports=Vg.Promise});var Ie=a((bP,Ru)=>{"use strict";var Fg=S(),tt=ie(),Bg=_(),Ug=Dr(),jg=ii(),Hg=O(),xu=ei(),Wg=B(),Ai=Pr(),Ou=tt&&tt.prototype,Kg=Hg("species"),xi=!1,qu=Bg(Fg.PromiseRejectionEvent),Gg=Ug("Promise",function(){var t=jg(tt),e=t!==String(tt);if(!e&&Ai===66||Wg&&!(Ou.catch&&Ou.finally))return!0;if(!Ai||Ai<51||!/native code/.test(t)){var r=new tt(function(n){n(1)}),i=function(n){n(function(){},function(){})},o=r.constructor={};if(o[Kg]=i,xi=r.then(function(){})instanceof i,!xi)return!0}return!e&&(xu==="BROWSER"||xu==="DENO")&&!qu});Ru.exports={CONSTRUCTOR:Gg,REJECTION_EVENT:qu,SUBCLASSING:xi}});var Se=a((yP,ku)=>{"use strict";var Cu=W(),Qg=TypeError,zg=function(t){var e,r;this.promise=new t(function(i,o){if(e!==void 0||r!==void 0)throw new Qg("Bad Promise constructor");e=i,r=o}),this.resolve=Cu(e),this.reject=Cu(r)};ku.exports.f=function(t){return new zg(t)}});var Zu=a(()=>{"use strict";var Yg=q(),Jg=B(),Lt=Pt(),Y=S(),Xg=de(),Te=N(),Lu=me(),Nu=ti(),Zg=Qe(),em=Es(),tm=W(),kt=_(),rm=$(),im=ws(),om=ni(),Fu=gi().set,ki=hu(),nm=gu(),am=wt(),sm=mi(),Bu=wi(),Nt=ie(),Li=Ie(),Uu=Se(),$t="Promise",ju=Li.CONSTRUCTOR,um=Li.REJECTION_EVENT,cm=Li.SUBCLASSING,Oi=Bu.getterFor($t),lm=Bu.set,_e=Nt&&Nt.prototype,oe=Nt,Rt=_e,Hu=Y.TypeError,qi=Y.document,Ni=Y.process,Ri=Uu.f,dm=Ri,fm=!!(qi&&qi.createEvent&&Y.dispatchEvent),Wu="unhandledrejection",pm="rejectionhandled",$u=0,Ku=1,hm=2,$i=1,Gu=2,Ct,Du,Qu,Mu,zu=function(t){var e;return rm(t)&&kt(e=t.then)?e:!1},Yu=function(t,e){var r=e.value,i=e.state===Ku,o=i?t.ok:t.fail,n=t.resolve,u=t.reject,c=t.domain,s,l,f;try{o?(i||(e.rejection===Gu&&gm(e),e.rejection=$i),o===!0?s=r:(c&&c.enter(),s=o(r),c&&(c.exit(),f=!0)),s===t.promise?u(new Hu("Promise-chain cycle")):(l=zu(s))?Te(l,s,n,u):n(s)):u(r)}catch(p){c&&!f&&c.exit(),u(p)}},Ju=function(t,e){t.notified||(t.notified=!0,ki(function(){for(var r=t.reactions,i;i=r.get();)Yu(i,t);t.notified=!1,e&&!t.rejection&&vm(t)}))},Xu=function(t,e,r){var i,o;fm?(i=qi.createEvent("Event"),i.promise=e,i.reason=r,i.initEvent(t,!1,!0),Y.dispatchEvent(i)):i={promise:e,reason:r},!um&&(o=Y["on"+t])?o(i):t===Wu&&nm("Unhandled promise rejection",r)},vm=function(t){Te(Fu,Y,function(){var e=t.facade,r=t.value,i=Vu(t),o;if(i&&(o=am(function(){Lt?Ni.emit("unhandledRejection",r,e):Xu(Wu,e,r)}),t.rejection=Lt||Vu(t)?Gu:$i,o.error))throw o.value})},Vu=function(t){return t.rejection!==$i&&!t.parent},gm=function(t){Te(Fu,Y,function(){var e=t.facade;Lt?Ni.emit("rejectionHandled",e):Xu(pm,e,t.value)})},Pe=function(t,e,r){return function(i){t(e,i,r)}},Ee=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=hm,Ju(t,!0))},Ci=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new Hu("Promise can't be resolved itself");var i=zu(e);i?ki(function(){var o={done:!1};try{Te(i,e,Pe(Ci,o,t),Pe(Ee,o,t))}catch(n){Ee(o,n,t)}}):(t.value=e,t.state=Ku,Ju(t,!1))}catch(o){Ee({done:!1},o,t)}}};if(ju&&(oe=function(e){im(this,Rt),tm(e),Te(Ct,this);var r=Oi(this);try{e(Pe(Ci,r),Pe(Ee,r))}catch(i){Ee(r,i)}},Rt=oe.prototype,Ct=function(e){lm(this,{type:$t,done:!1,notified:!1,parent:!1,reactions:new sm,rejection:!1,state:$u,value:null})},Ct.prototype=Lu(Rt,"then",function(e,r){var i=Oi(this),o=Ri(om(this,oe));return i.parent=!0,o.ok=kt(e)?e:!0,o.fail=kt(r)&&r,o.domain=Lt?Ni.domain:void 0,i.state===$u?i.reactions.add(o):ki(function(){Yu(o,i)}),o.promise}),Du=function(){var t=new Ct,e=Oi(t);this.promise=t,this.resolve=Pe(Ci,e),this.reject=Pe(Ee,e)},Uu.f=Ri=function(t){return t===oe||t===Qu?new Du(t):dm(t)},!Jg&&kt(Nt)&&_e!==Object.prototype)){Mu=_e.then,cm||Lu(_e,"then",function(e,r){var i=this;return new oe(function(o,n){Te(Mu,i,o,n)}).then(e,r)},{unsafe:!0});try{delete _e.constructor}catch{}Nu&&Nu(_e,Rt)}Yg({global:!0,constructor:!0,wrap:!0,forced:ju},{Promise:oe});Qu=Xg.Promise;Zg(oe,$t,!1,!0);em($t)});var ne=a((_P,ec)=>{"use strict";ec.exports={}});var rc=a((PP,tc)=>{"use strict";var mm=O(),bm=ne(),ym=mm("iterator"),Im=Array.prototype;tc.exports=function(t){return t!==void 0&&(bm.Array===t||Im[ym]===t)}});var Di=a((EP,oc)=>{"use strict";var Sm=Ke(),ic=ht(),_m=Ve(),Pm=ne(),Em=O(),Tm=Em("iterator");oc.exports=function(t){if(!_m(t))return ic(t,Tm)||ic(t,"@@iterator")||Pm[Sm(t)]}});var ac=a((TP,nc)=>{"use strict";var wm=N(),Am=W(),xm=K(),Om=Fe(),qm=Di(),Rm=TypeError;nc.exports=function(t,e){var r=arguments.length<2?qm(t):e;if(Am(r))return xm(wm(r,t));throw new Rm(Om(t)+" is not iterable")}});var cc=a((wP,uc)=>{"use strict";var Cm=N(),sc=K(),km=ht();uc.exports=function(t,e,r){var i,o;sc(t);try{if(i=km(t,"return"),!i){if(e==="throw")throw r;return r}i=Cm(i,t)}catch(n){o=!0,i=n}if(e==="throw")throw r;if(o)throw i;return sc(i),r}});var Mt=a((AP,pc)=>{"use strict";var Lm=je(),Nm=N(),$m=K(),Dm=Fe(),Mm=rc(),Vm=Hr(),lc=ft(),Fm=ac(),Bm=Di(),dc=cc(),Um=TypeError,Dt=function(t,e){this.stopped=t,this.result=e},fc=Dt.prototype;pc.exports=function(t,e,r){var i=r&&r.that,o=!!(r&&r.AS_ENTRIES),n=!!(r&&r.IS_RECORD),u=!!(r&&r.IS_ITERATOR),c=!!(r&&r.INTERRUPTED),s=Lm(e,i),l,f,p,d,h,v,m,g=function(y){return l&&dc(l,"normal"),new Dt(!0,y)},b=function(y){return o?($m(y),c?s(y[0],y[1],g):s(y[0],y[1])):c?s(y,g):s(y)};if(n)l=t.iterator;else if(u)l=t;else{if(f=Bm(t),!f)throw new Um(Dm(t)+" is not iterable");if(Mm(f)){for(p=0,d=Vm(t);d>p;p++)if(h=b(t[p]),h&&lc(fc,h))return h;return new Dt(!1)}l=Fm(t,f)}for(v=n?t.next:l.next;!(m=Nm(v,l)).done;){try{h=b(m.value)}catch(y){dc(l,"throw",y)}if(typeof h=="object"&&h&&lc(fc,h))return h}return new Dt(!1)}});var bc=a((xP,mc)=>{"use strict";var jm=O(),vc=jm("iterator"),gc=!1;try{hc=0,Mi={next:function(){return{done:!!hc++}},return:function(){gc=!0}},Mi[vc]=function(){return this},Array.from(Mi,function(){throw 2})}catch{}var hc,Mi;mc.exports=function(t,e){try{if(!e&&!gc)return!1}catch{return!1}var r=!1;try{var i={};i[vc]=function(){return{next:function(){return{done:r=!0}}}},t(i)}catch{}return r}});var Vi=a((OP,yc)=>{"use strict";var Hm=ie(),Wm=bc(),Km=Ie().CONSTRUCTOR;yc.exports=Km||!Wm(function(t){Hm.all(t).then(void 0,function(){})})});var Ic=a(()=>{"use strict";var Gm=q(),Qm=N(),zm=W(),Ym=Se(),Jm=wt(),Xm=Mt(),Zm=Vi();Gm({target:"Promise",stat:!0,forced:Zm},{all:function(e){var r=this,i=Ym.f(r),o=i.resolve,n=i.reject,u=Jm(function(){var c=zm(r.resolve),s=[],l=0,f=1;Xm(e,function(p){var d=l++,h=!1;f++,Qm(c,r,p).then(function(v){h||(h=!0,s[d]=v,--f||o(s))},n)}),--f||o(s)});return u.error&&n(u.value),i.promise}})});var _c=a(()=>{"use strict";var eb=q(),tb=B(),rb=Ie().CONSTRUCTOR,Bi=ie(),ib=H(),ob=_(),nb=me(),Sc=Bi&&Bi.prototype;eb({target:"Promise",proto:!0,forced:rb,real:!0},{catch:function(t){return this.then(void 0,t)}});!tb&&ob(Bi)&&(Fi=ib("Promise").prototype.catch,Sc.catch!==Fi&&nb(Sc,"catch",Fi,{unsafe:!0}));var Fi});var Pc=a(()=>{"use strict";var ab=q(),sb=N(),ub=W(),cb=Se(),lb=wt(),db=Mt(),fb=Vi();ab({target:"Promise",stat:!0,forced:fb},{race:function(e){var r=this,i=cb.f(r),o=i.reject,n=lb(function(){var u=ub(r.resolve);db(e,function(c){sb(u,r,c).then(i.resolve,o)})});return n.error&&o(n.value),i.promise}})});var Ec=a(()=>{"use strict";var pb=q(),hb=Se(),vb=Ie().CONSTRUCTOR;pb({target:"Promise",stat:!0,forced:vb},{reject:function(e){var r=hb.f(this),i=r.reject;return i(e),r.promise}})});var Ui=a((MP,Tc)=>{"use strict";var gb=K(),mb=$(),bb=Se();Tc.exports=function(t,e){if(gb(t),mb(e)&&e.constructor===t)return e;var r=bb.f(t),i=r.resolve;return i(e),r.promise}});var xc=a(()=>{"use strict";var yb=q(),Ib=H(),wc=B(),Sb=ie(),Ac=Ie().CONSTRUCTOR,_b=Ui(),Pb=Ib("Promise"),Eb=wc&&!Ac;yb({target:"Promise",stat:!0,forced:wc||Ac},{resolve:function(e){return _b(Eb&&this===Pb?Sb:this,e)}})});var Oc=a(()=>{"use strict";Zu();Ic();_c();Pc();Ec();xc()});var kc=a(()=>{"use strict";var Tb=q(),wb=B(),Vt=ie(),Ab=w(),Rc=H(),Cc=_(),xb=ni(),qc=Ui(),Ob=me(),Hi=Vt&&Vt.prototype,qb=!!Vt&&Ab(function(){Hi.finally.call({then:function(){}},function(){})});Tb({target:"Promise",proto:!0,real:!0,forced:qb},{finally:function(t){var e=xb(this,Rc("Promise")),r=Cc(t);return this.then(r?function(i){return qc(e,t()).then(function(){return i})}:t,r?function(i){return qc(e,t()).then(function(){throw i})}:t)}});!wb&&Cc(Vt)&&(ji=Rc("Promise").prototype.finally,Hi.finally!==ji&&Ob(Hi,"finally",ji,{unsafe:!0}));var ji});var Nc=a((WP,Lc)=>{"use strict";ns();Oc();kc();var Rb=bt();Lc.exports=Rb("Promise","finally")});var Dc=a((KP,$c)=>{"use strict";var Cb=Nc();$c.exports=Cb});var Wi=a((GP,Mc)=>{"use strict";var kb=Dc();Mc.exports=kb});var Fc=a((QP,Vc)=>{"use strict";var Lb=w();Vc.exports=!Lb(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})});var Ft=a((zP,Uc)=>{"use strict";var Nb=U(),$b=_(),Db=Rr(),Mb=At(),Vb=Fc(),Bc=Mb("IE_PROTO"),Ki=Object,Fb=Ki.prototype;Uc.exports=Vb?Ki.getPrototypeOf:function(t){var e=Db(t);if(Nb(e,Bc))return e[Bc];var r=e.constructor;return $b(r)&&e instanceof r?r.prototype:e instanceof Ki?Fb:null}});var Wc=a((YP,Hc)=>{"use strict";var Bb=A(),Gi=U(),Ub=X(),jb=Wr().indexOf,Hb=xt(),jc=Bb([].push);Hc.exports=function(t,e){var r=Ub(t),i=0,o=[],n;for(n in r)!Gi(Hb,n)&&Gi(r,n)&&jc(o,n);for(;e.length>i;)Gi(r,n=e[i++])&&(~jb(o,n)||jc(o,n));return o}});var Qi=a((JP,Kc)=>{"use strict";Kc.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var zi=a((XP,Gc)=>{"use strict";var Wb=Wc(),Kb=Qi();Gc.exports=Object.keys||function(e){return Wb(e,Kb)}});var Zc=a((ZP,Xc)=>{"use strict";var zc=x(),Gb=w(),Yc=A(),Qb=Ft(),zb=zi(),Yb=X(),Jb=br().f,Jc=Yc(Jb),Xb=Yc([].push),Zb=zc&&Gb(function(){var t=Object.create(null);return t[2]=2,!Jc(t,2)}),Qc=function(t){return function(e){for(var r=Yb(e),i=zb(r),o=Zb&&Qb(r)===null,n=i.length,u=0,c=[],s;n>u;)s=i[u++],(!zc||(o?s in r:Jc(r,s)))&&Xb(c,t?[s,r[s]]:r[s]);return c}};Xc.exports={entries:Qc(!0),values:Qc(!1)}});var el=a(()=>{"use strict";var ey=q(),ty=Zc().entries;ey({target:"Object",stat:!0},{entries:function(e){return ty(e)}})});var rl=a((rE,tl)=>{"use strict";el();var ry=de();tl.exports=ry.Object.entries});var ol=a((iE,il)=>{"use strict";var iy=rl();il.exports=iy});var we=a((oE,nl)=>{"use strict";var oy=ol();nl.exports=oy});var ul=a((nE,sl)=>{"use strict";var Yi=x(),ny=U(),al=Function.prototype,ay=Yi&&Object.getOwnPropertyDescriptor,Ji=ny(al,"name"),sy=Ji&&function(){}.name==="something",uy=Ji&&(!Yi||Yi&&ay(al,"name").configurable);sl.exports={EXISTS:Ji,PROPER:sy,CONFIGURABLE:uy}});var ll=a(cl=>{"use strict";var cy=x(),ly=Mr(),dy=ee(),fy=K(),py=X(),hy=zi();cl.f=cy&&!ly?Object.defineProperties:function(e,r){fy(e);for(var i=py(r),o=hy(r),n=o.length,u=0,c;n>u;)dy.f(e,c=o[u++],i[c]);return e}});var to=a((sE,ml)=>{"use strict";var vy=K(),gy=ll(),dl=Qi(),my=xt(),by=ai(),yy=vt(),Iy=At(),fl=">",pl="<",Zi="prototype",eo="script",vl=Iy("IE_PROTO"),Xi=function(){},gl=function(t){return pl+eo+fl+t+pl+"/"+eo+fl},hl=function(t){t.write(gl("")),t.close();var e=t.parentWindow.Object;return t=null,e},Sy=function(){var t=yy("iframe"),e="java"+eo+":",r;return t.style.display="none",by.appendChild(t),t.src=String(e),r=t.contentWindow.document,r.open(),r.write(gl("document.F=Object")),r.close(),r.F},Bt,Ut=function(){try{Bt=new ActiveXObject("htmlfile")}catch{}Ut=typeof document<"u"?document.domain&&Bt?hl(Bt):Sy():hl(Bt);for(var t=dl.length;t--;)delete Ut[Zi][dl[t]];return Ut()};my[vl]=!0;ml.exports=Object.create||function(e,r){var i;return e!==null?(Xi[Zi]=vy(e),i=new Xi,Xi[Zi]=null,i[vl]=e):i=Ut(),r===void 0?i:gy.f(i,r)}});var no=a((uE,Il)=>{"use strict";var _y=w(),Py=_(),Ey=$(),Ty=to(),bl=Ft(),wy=me(),Ay=O(),xy=B(),oo=Ay("iterator"),yl=!1,G,ro,io;[].keys&&(io=[].keys(),"next"in io?(ro=bl(bl(io)),ro!==Object.prototype&&(G=ro)):yl=!0);var Oy=!Ey(G)||_y(function(){var t={};return G[oo].call(t)!==t});Oy?G={}:xy&&(G=Ty(G));Py(G[oo])||wy(G,oo,function(){return this});Il.exports={IteratorPrototype:G,BUGGY_SAFARI_ITERATORS:yl}});var _l=a((cE,Sl)=>{"use strict";var qy=no().IteratorPrototype,Ry=to(),Cy=Me(),ky=Qe(),Ly=ne(),Ny=function(){return this};Sl.exports=function(t,e,r,i){var o=e+" Iterator";return t.prototype=Ry(qy,{next:Cy(+!i,r)}),ky(t,o,!1,!0),Ly[o]=Ny,t}});var kl=a((lE,Cl)=>{"use strict";var $y=q(),Dy=N(),jt=B(),ql=ul(),My=_(),Vy=_l(),Pl=Ft(),El=ti(),Fy=Qe(),By=pe(),ao=me(),Uy=O(),Tl=ne(),Rl=no(),jy=ql.PROPER,Hy=ql.CONFIGURABLE,wl=Rl.IteratorPrototype,Ht=Rl.BUGGY_SAFARI_ITERATORS,rt=Uy("iterator"),Al="keys",it="values",xl="entries",Ol=function(){return this};Cl.exports=function(t,e,r,i,o,n,u){Vy(r,e,i);var c=function(b){if(b===o&&d)return d;if(!Ht&&b&&b in f)return f[b];switch(b){case Al:return function(){return new r(this,b)};case it:return function(){return new r(this,b)};case xl:return function(){return new r(this,b)}}return function(){return new r(this)}},s=e+" Iterator",l=!1,f=t.prototype,p=f[rt]||f["@@iterator"]||o&&f[o],d=!Ht&&p||c(o),h=e==="Array"&&f.entries||p,v,m,g;if(h&&(v=Pl(h.call(new t)),v!==Object.prototype&&v.next&&(!jt&&Pl(v)!==wl&&(El?El(v,wl):My(v[rt])||ao(v,rt,Ol)),Fy(v,s,!0,!0),jt&&(Tl[s]=Ol))),jy&&o===it&&p&&p.name!==it&&(!jt&&Hy?By(f,"name",it):(l=!0,d=function(){return Dy(p,this)})),o)if(m={values:c(it),keys:n?d:c(Al),entries:c(xl)},u)for(g in m)(Ht||l||!(g in f))&&ao(f,g,m[g]);else $y({target:e,proto:!0,forced:Ht||l},m);return(!jt||u)&&f[rt]!==d&&ao(f,rt,d,{name:o}),Tl[e]=d,m}});var Nl=a((dE,Ll)=>{"use strict";Ll.exports=function(t,e){return{value:t,done:e}}});var uo=a((fE,Fl)=>{"use strict";var Wy=X(),so=Kr(),$l=ne(),Ml=wi(),Ky=ee().f,Gy=kl(),Wt=Nl(),Qy=B(),zy=x(),Vl="Array Iterator",Yy=Ml.set,Jy=Ml.getterFor(Vl);Fl.exports=Gy(Array,"Array",function(t,e){Yy(this,{type:Vl,target:Wy(t),index:0,kind:e})},function(){var t=Jy(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Wt(void 0,!0);switch(t.kind){case"keys":return Wt(r,!1);case"values":return Wt(e[r],!1)}return Wt([r,e[r]],!1)},"values");var Dl=$l.Arguments=$l.Array;so("keys");so("values");so("entries");if(!Qy&&zy&&Dl.name!=="values")try{Ky(Dl,"name",{value:"values"})}catch{}});var Ul=a((pE,Bl)=>{"use strict";var Xy=x(),Zy=ee(),eI=Me();Bl.exports=function(t,e,r){Xy?Zy.f(t,e,eI(0,r)):t[e]=r}});var jl=a(()=>{"use strict";var tI=q(),rI=Mt(),iI=Ul();tI({target:"Object",stat:!0},{fromEntries:function(e){var r={};return rI(e,function(i,o){iI(r,i,o)},{AS_ENTRIES:!0}),r}})});var Wl=a((gE,Hl)=>{"use strict";uo();jl();var oI=de();Hl.exports=oI.Object.fromEntries});var Gl=a((mE,Kl)=>{"use strict";Kl.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}});var zl=a(()=>{"use strict";uo();var nI=Gl(),aI=S(),sI=Qe(),Ql=ne();for(Kt in nI)sI(aI[Kt],Kt),Ql[Kt]=Ql.Array;var Kt});var Jl=a((IE,Yl)=>{"use strict";var uI=Wl();zl();Yl.exports=uI});var Zl=a((SE,Xl)=>{"use strict";var cI=Jl();Xl.exports=cI});var yo=E(ge(),1);var Lh=(t,e,r)=>{if(typeof t.canParse=="function")return t.canParse(e,r);try{return new t(e,r),!0}catch{return!1}},Ra=Lh;var We=(u=>(u.PROD="prod",u.VK_ALIAS="vk_alias",u.VIDEOTEST="videotest",u.TEST="test",u.OKCDN="okcdn",u.AUTO="auto",u))(We||{}),Gr=(l=>(l.Q144P="mobile",l.Q240P="lowest",l.Q360P="low",l.Q480P="medium",l.Q720P="high",l.Q1080P="fullhd",l.Q1440P="quadhd",l.Q2160P="ultrahd",l.UNKNOWN="unknown",l))(Gr||{}),Qr=(v=>(v.MP4="mp4",v.DASH="dash",v.DASH_SEP="dash_sep",v.ONDEMAND_DASH="ondemand_dash",v.HLS="hls",v.HLS_FMP4="hls_fmp4",v.ONDEMAND_HLS="ondemand_hls",v.WEBM="webm",v.AV1="av1",v.ONDEMAND_DASH_LIVE="ondemand_dash_live",v.ONDEMAND_HLS_LIVE="ondemand_hls_live",v.WEBRTC="webrtc",v.UNKNOWN="unknown",v.RTMP="rtmp",v))(Qr||{});var zr=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.HTTP3="http3",i))(zr||{});var Yr=(c=>(c.SLIDER="slider",c.DOUBLE_TAP="double_tap",c.TIME_CODE="time_code",c.EPISODE="episode",c.REWIND="rewind",c.LIVE="live",c.UNKNOWN="unknown",c))(Yr||{}),Ca=(n=>(n.GRAPH_SHOW="iGraphShow",n.GRAPH_HIDE="iGraphHide",n.NEXT_AREA="iNextChapterArea",n.NEXT_BUTTON="iNextChapterBtn",n.WATCH_AGAIN="iWatchAgainBtn",n))(Ca||{}),ka={action_play:"ap",action_play_interactive:"api",first_bytes:"fb",player_ready:"pr",first_frame:"ff",seek:"sk",watch_coverage_record:"wr",watch_coverage_live:"wl",empty_buffer:"eb",action_stop:"as",close_at_empty_buffer:"cb",content_error:"er",player_interface_click:"pc",next_movie:"nm",track_switch:"ts",failover:"fo",quality:"qt"},La={vsid:"si",isid:"is",vid:"vi",place:"pl",quality:"qt",cdn_host:"ch",stat_type:"st",param:"pm",vk_app_id:"va",track_code:"tc",connection_type:"cnt",connection_reused:"cr",cached_data:"cd",live:"lv",muted:"mu",mode:"mo",subtitles:"sb",failover:"fo",download_speed:"ds",manual_quality:"mq",ref_domain:"rd",direct_url:"du"},Na={unknown:"un",mobile:"m",lowest:"ls",low:"l",medium:"md",high:"h",fullhd:"f",quadhd:"q",ultrahd:"u"},$a={pip:"pi",fullscreen:"fs",external:"ex",prefetch:"pr",airplay:"ap",chromecast:"cc",invisible:"iv",minimal:"minimal"};import{fillWithDefault as Nh}from"@vkontakte/videoplayer-shared";var Da="CIOPGQJGDIHBABABA",Jr={prod:"https://api.ok.ru",vk_alias:"https://api.mycdn.me",videotest:"https://videotestapi.ok.ru/api",test:"https://apitest.ok.ru",okcdn:"https://api.okcdn.ru",auto:""};var $h={apiEnv:"vk_alias",apiKey:Da,requestRetryCount:1,firstFlushTime:5e3,flushDebounceTime:1e4,flushMaxWait:6e4,storageExpiration:36*60*60*1e3,watchCoverageInterval:15e3,disabledOperations:["quality"],disabledCustomFields:[],shorten:!0,maxLoops:100,embedUrlParams:[],useBeacon:!0,synchronizeTime:!0,debugLog:!1,clearStorageAtUnload:!0,useVKComIsMobileLogic:!1,backoff:{start:1e3,factor:1.5,max:5*60*1e3,random:.1},useKeepalive:!1},Ma=t=>Nh(t,$h);function Xr(){let t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),r=0,i,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(r<=2&&(r=33554432+Math.random()*16777216|0),i=r&15,r=r>>4,e[o]=t[o===19?i&3|8:i]);return e.join("")}import{Surface as mo}from"@vkontakte/videoplayer-core";import{assertNonNullable as PI,combine as Sd,fromEvent as _d,isNonNullable as Re,isNullable as Pd,merge as EI,now as Q,observableFrom as TI,once as wI,safeStorage as Ed,Subject as AI,Subscription as Io,ValueSubject as er}from"@vkontakte/videoplayer-shared";import{Logger as xI,detectEmbed as OI}from"@vkontakte/videoplayer-shared";var os=E(St(),1),dv=()=>(0,os.default)(Math.floor(Math.random()*2**32).toString(36),13,"0"),z=class t{static getVSID(){return t.vsid}static generateVSID(){return t.vsid=dv(),t.vsid}};var Gt=E(Wi(),1);var ed=E(we(),1),td=E(Zl(),1);var rd=t=>{let{operation:e,custom:r}=t,i=(0,td.default)((0,ed.default)(r).map(([o,n])=>{let u=La[o]??o,c=n;return n&&(o==="mode"?c=$a[n]??n:o==="quality"&&(c=Na[n]??n)),[u,c]}));return{...t,operation:ka[e]??e,custom:i}};var C="1.0.87-dev.02be9553.0";import{ValueSubject as lI,getExponentialDelay as dI,ErrorCategory as Ae}from"@vkontakte/videoplayer-shared";var fI=/Mobile|mini|Fennec|Android|iP(ad|od|hone)|opera (mini|mobi)/i,ot=class{constructor(e){this.consequentAuthErrors=0;this.authorized$=new lI(!1);this.params=e}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this._authorizeWithBackoff()}logBeacon(e){let r="log.externalLog",i=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(r,i,o)||this.logRequest(e).catch(()=>{})}async logRequest(e){let r="log.externalLog",i=this.createLogParams(e),o=this.sessionKey??await this._authorizeWithBackoff();if(!o)return;let n=async(u,c=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(r,i,o)}catch(s){if(!s||!("error_code"in s)){this.params.error$.next({id:"logRequestUnknown",category:Ae.NETWORK,message:`Unknown ${r} error`,thrown:s});return}let l=s?.error_code;switch(l){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this._authorizeWithBackoff(),c>0?n(u,c-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this._authorizeWithBackoff(),c>0?n(u,c-1):void 0;default:{this.params.error$.next({id:`LogRequest#${l}`,category:Ae.EXTERNAL_API,message:`${r} error`,data:s});return}}}};return n(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=(0,Gt.default)(this.params.refreshAuthToken(),()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){let r="WEB",i=!1,o=`@vkontakte/videoplayer-statistics:${C}`;if(this.params.config.useVKComIsMobileLogic){let{appVersion:n}=window.navigator;i=fI.test(n)}else this.params.mobile&&(i=!0);return i&&(r="M_WEB"),this.params.vktvVersion&&(r="SMART_TV",o=this.params.vktvVersion),{collector:"ok.mobile.apps.video",data:JSON.stringify({application:o,platform:r,items:this.params.config.shorten?e.map(rd):e})}}_authorizeWithBackoff(){if(!this.consequentAuthErrors)return this._authorize();let e=dI(this.consequentAuthErrors,this.params.config.backoff);return new Promise(r=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(()=>{(0,Gt.default)(this._authorize().then(r).catch(i=>this.params.error$.next({id:"AuthorizeBackoff",category:Ae.NETWORK,message:"Otherwise unhandled error in authorization",thrown:i})),()=>this.backoffTimeoutId=0)},e))})}async _authorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",r={session_data:{version:2,device_id:this.params.deviceId,client_version:C.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(r.session_data.auth_token=this.authToken,r.session_data.version=3),this.authorizePromise=(0,Gt.default)(this.params.apiTransport.sendRequest(e,r).then(i=>((!i||!i.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:Ae.EXTERNAL_API,message:"No session key",data:i}),this.sessionKey=i?.session_key??void 0,this.sessionKey)).catch(async i=>{this.sessionKey=void 0;let o=i?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this._authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:Ae.EXTERNAL_API,message:"authorize error",data:i}):this.params.error$.next({id:"AuthorizeUnknown",category:Ae.NETWORK,message:"authorize error",thrown:i})}),()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};var{NativeAbortSignal:LE,NativeAbortController:NE}=function(t){return{NativeAbortSignal:t.AbortSignal,NativeAbortController:t.AbortController}}(typeof self<"u"?self:global);function id(t){let e;try{e=new Event("abort")}catch{typeof document<"u"?document.createEvent?(e=document.createEvent("Event"),e.initEvent("abort",!1,!1)):(e=document.createEventObject(),e.type="abort"):e={type:"abort",bubbles:!1,cancelable:!1}}return e.reason=t,e}function od(t){if(t===void 0)if(typeof document>"u")t=new Error("This operation was aborted"),t.name="AbortError";else try{t=new DOMException("signal is aborted without reason"),Object.defineProperty(t,"name",{value:"AbortError"})}catch{t=new Error("This operation was aborted"),t.name="AbortError"}return t}var Qt=class{constructor(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}addEventListener(e,r,i){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push({callback:r,options:i})}removeEventListener(e,r){if(!(e in this.listeners))return;let i=this.listeners[e];for(let o=0,n=i.length;o<n;o++)if(i[o].callback===r){i.splice(o,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return;let i=this.listeners[e.type].slice();for(let o=0,n=i.length;o<n;o++){let u=i[o];try{u.callback.call(this,e)}catch(c){Promise.resolve().then(()=>{throw c})}u.options&&u.options.once&&this.removeEventListener(e.type,u.callback)}return!e.defaultPrevented}},xe=class extends Qt{constructor(){super(),this.listeners||Qt.call(this),Object.defineProperty(this,"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(this,"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(this,"reason",{value:void 0,writable:!0,configurable:!0})}toString(){return"[object AbortSignal]"}dispatchEvent(e){e.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,e)),super.dispatchEvent(e)}throwIfAborted(){let{aborted:e,reason:r="Aborted"}=this;if(e)throw r}static timeout(e){let r=new ae;return setTimeout(()=>r.abort(new DOMException(`This signal is timeout in ${e}ms`,"TimeoutError")),e),r.signal}static any(e){let r=new ae;function i(){r.abort(this.reason),o()}function o(){for(let n of e)n.removeEventListener("abort",i)}for(let n of e)if(n.aborted){r.abort(n.reason);break}else n.addEventListener("abort",i);return r.signal}},ae=class{constructor(){Object.defineProperty(this,"signal",{value:new xe,writable:!0,configurable:!0})}abort(e){let r=od(e),i=id(r);this.signal.reason=r,this.signal.dispatchEvent(i)}toString(){return"[object AbortController]"}};typeof Symbol<"u"&&Symbol.toStringTag&&(ae.prototype[Symbol.toStringTag]="AbortController",xe.prototype[Symbol.toStringTag]="AbortSignal");function zt(t){return t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof t.Request=="function"&&!t.Request.prototype.hasOwnProperty("signal")||!t.AbortController}function co(t){typeof t=="function"&&(t={fetch:t});let{fetch:e,Request:r=e.Request,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o=!1}=t;if(!zt({fetch:e,Request:r,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o}))return{fetch:e,Request:n};let n=r;(n&&!n.prototype.hasOwnProperty("signal")||o)&&(n=function(l,f){let p;f&&f.signal&&(p=f.signal,delete f.signal);let d=new r(l,f);return p&&Object.defineProperty(d,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),d},n.prototype=r.prototype);let u=e;return{fetch:(s,l)=>{let f=n&&n.prototype.isPrototypeOf(s)?s.signal:l?l.signal:void 0;if(f){let p;try{p=new DOMException("Aborted","AbortError")}catch{p=new Error("Aborted"),p.name="AbortError"}if(f.aborted)return Promise.reject(p);let d=new Promise((h,v)=>{f.addEventListener("abort",()=>v(p),{once:!0})});return l&&l.signal&&delete l.signal,Promise.race([d,u(s,l)])}return u(s,l)},Request:n}}var pI=()=>"fetch"in window,nt=pI()&&zt({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}),nd=nt?co({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}):void 0,Oe=nt?nd.fetch:window.fetch,WE=nt?nd.Request:window.Request,KE=nt?ae:window.AbortController,GE=nt?xe:window.AbortSignal;var ad=E(ge(),1),sd=E(we(),1);import{ErrorCategory as Yt,now as lo}from"@vkontakte/videoplayer-shared";var at=class{constructor(e){this.params=e,this.apiKey=e.config.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=Jr[this.apiEnv],this.timeSynchronisation=e.timeSynchronisation,this.isApiBaseUrlFetched=!1}async resolveApiBaseUrl(){if(this.apiEnv!=="auto"||this.isApiBaseUrlFetched)return this.apiBaseUrl;try{let e=atob("aHR0cHM6Ly9kbnMuZ29vZ2xlL3Jlc29sdmU/bmFtZT12aWRlby5fZW5kcG9pbnQub2sucnUmdHlwZT1UWFQ="),o=(await(await Oe(e,{method:"GET",mode:"cors",cache:"no-cache"})).json())?.Answer[0]?.data;if(!o)throw new Error("Wrong DNS response");return o}catch(e){return this.params.error$.next({id:"OneStat:ApiTransport:resolveApiBaseUrl",category:Yt.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),Jr.vk_alias}finally{this.isApiBaseUrlFetched=!0}}sendBeacon(e,r,i){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this._prepareQueryParams({method:e,queryParams:r,sessionKey:i}),n=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,n)}catch(u){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:Yt.NETWORK,message:"Unhandled beacon error",thrown:u,data:{method:e,params:r}})}return!1}async sendRequest(e,r,i){let o=lo(),n=c=>{if(c instanceof TypeError&&(0,ad.default)(["Failed to fetch","NetworkError when attempting to fetch resource."],c.message)){this.params.error$.next({id:"Network",category:Yt.NETWORK,message:"Request failed",thrown:c});return}this.params.error$.next({id:"OneStat:ApiTransport:sendRequest",category:Yt.NETWORK,message:"Unhandled request error",thrown:c,data:{method:e,params:r,sessionKey:i,time:lo()-o}})};this.apiBaseUrl=await this.resolveApiBaseUrl();let u={method:"post",headers:{"Content-type":"application/x-www-form-urlencoded"},body:this._prepareQueryParams({method:e,queryParams:r,sessionKey:i})};return this.params.config.useKeepalive&&(u.keepalive=!0),Oe(`${this.apiBaseUrl}/fb.do`,u).then(c=>{let s=Number(c.headers.get("content-length"))===0,l=new Date(c.headers.get("date")??"").getTime(),f=lo()-o;if(isFinite(l)&&this.timeSynchronisation?.addServerTime(l,f),!s)return c.json().then(p=>Object.prototype.hasOwnProperty.call(p,"error_msg")?Promise.reject(p):p,n)},n)}_prepareQueryParams(e){let r=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&r.append("session_key",e.sessionKey),(0,sd.default)(e.queryParams).forEach(([i,o])=>r.append(i,typeof o=="string"?o:JSON.stringify(o))),r}};var cd=E(ge(),1),ld=E(we(),1);import{ErrorCategory as hI,now as vI,safeStorage as st,debounceFn as ud}from"@vkontakte/videoplayer-shared";var Jt="onestat_events",fo=t=>e=>e.timestamp+t>=vI(),Xt=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{operation:r}=e;return(0,cd.default)(["action_play","watch_coverage_record","watch_coverage_live"],r)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=ud(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let r=st.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=ud(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:r}),this.subscription=this.api.authorized$.subscribe(i=>{i&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:hI.WTF,message:e?String(e):"Unknown logger error",thrown:e})}}readFromStorage(){let e=st.get(Jt);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let r=this.readFromStorage(),o=(r[this.userSalt]??[]).filter(fo(this.params.config.storageExpiration));st.set(Jt,JSON.stringify({...r,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(fo(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],st.set(Jt,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[r,i]of(0,ld.default)(e)){let o=i.filter(fo(this.params.config.storageExpiration));o.length?e[r]=o:delete e[r],this.loggerDebugLog({message:`${i.length} retrieved from storage, ${o.length} of them actual`})}st.set(Jt,JSON.stringify(e))}log(e){this.addToStorage(e),!this.isPaused&&(this.isUrgent(e)?this.flush():this.lastVsid!==e.custom.vsid?this.firstFlush():this.debouncedFlush(),this.lastVsid=e.custom.vsid)}flush({wantBeacon:e,clearStorage:r}={wantBeacon:!1,clearStorage:!0}){let i=this.getFromStorage();i.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${i.length} events through beacon`}),this.api.logBeacon(i)):(this.loggerDebugLog({message:`Flushing ${i.length} events`}),this.api.logRequest(i)),r&&this.markStorageSent()):this.api.authorize(),this.firstFlush.cancel(),this.debouncedFlush.cancel())}pause(){this.isPaused=!0,this.debouncedFlush.cancel()}resume(){this.isPaused=!1,this.debouncedFlush()}destroy(){this.subscription.unsubscribe(),this.firstFlush.cancel(),this.debouncedFlush.cancel()}};import{HttpConnectionType as po,Surface as qe,VideoFormat as T,VideoQuality as V}from"@vkontakte/videoplayer-core";import{assertNever as dd}from"@vkontakte/videoplayer-shared";var fd=t=>t&&{[V.INVARIANT]:"unknown",[V.Q_144P]:"mobile",[V.Q_240P]:"lowest",[V.Q_360P]:"low",[V.Q_480P]:"medium",[V.Q_576P]:"unknown",[V.Q_720P]:"high",[V.Q_1080P]:"fullhd",[V.Q_1440P]:"quadhd",[V.Q_2160P]:"ultrahd",[V.Q_4320P]:"unknown"}[t],ho=t=>t&&{[po.HTTP1]:"http1",[po.HTTP2]:"http2",[po.QUIC]:"http3"}[t],pd=t=>{if(t!==void 0)switch(t){case T.MPEG:return"mp4";case T.DASH:case T.DASH_LIVE:case T.DASH_STREAMS:return"dash";case T.DASH_SEP:return"dash_sep";case T.DASH_ONDEMAND:return"ondemand_dash";case T.DASH_WEBM:case T.DASH_LIVE_WEBM:return"webm";case T.DASH_WEBM_AV1:return"av1";case T.DASH_LIVE_CMAF:return"ondemand_dash_live";case T.HLS:case T.HLS_LIVE:return"hls";case T.HLS_FMP4:return"hls_fmp4";case T.HLS_ONDEMAND:return"ondemand_hls";case T.HLS_LIVE_CMAF:return"ondemand_hls_live";case T.WEB_RTC_LIVE:return"webrtc";default:return dd(t)}},ut=(t,e)=>{if(e)return"minimal";switch(t){case void 0:case qe.NONE:case qe.INLINE:return;case qe.FULLSCREEN:return"fullscreen";case qe.SECOND_SCREEN:return"chromecast";case qe.PIP:return"pip";case qe.INVISIBLE:return"invisible";default:return dd(t)}},hd=t=>{switch(t){case"slow-2g":return"poor";case"2g":return"poor";case"3g":return"good";case"4g":return"excellent"}};var Zt=class{constructor(e){this.offset=void 0;this.offset=e}getOffset(){return this.offset??0}setOffset(e){this.offset=e}now(){return Date.now()+(this.offset??0)}date(e=new Date){return e.setTime(e.getTime()+(this.offset??0)),e}addServerTime(e,r){let i=Date.now(),o=e-i-r/2;if(Math.abs(o)<1e3){this.offset=0;return}this.offset===void 0?this.offset=Math.round(o):this.offset=Math.round(.2*o+(1-.2)*this.offset)}};var vd=E(St(),1);var gd=()=>(0,vd.default)(Math.floor(Math.random()*2**64).toString(36),13,"0");import{PlaybackState as md}from"@vkontakte/videoplayer-core";import{filter as bd,filterChanged as mI,fromEvent as bI,isNullable as yd,map as yI,merge as vo,Observable as II,Subject as go,Subscription as SI,ValueSubject as _I}from"@vkontakte/videoplayer-shared";var Id=(t,e)=>new II(r=>{let i=new SI,o=vo(bI(window,"beforeunload"),t.events.willDestruct$),n=new _I(void 0),u;i.add(t.info.isLive$.pipe(mI()).subscribe(I=>{u&&(u.unsubscribe(),n.next(void 0)),I?u=t.info.liveTime$.pipe(yI(ce=>ce&&ce/1e3)).subscribe(n):u=t.info.position$.subscribe(n),i.add(u)}));let{playing$:c,paused$:s}=t.events,l=t.events.willSeek$.pipe(bd(()=>t.info.playbackState$.getValue()===md.PLAYING)),f=t.events.seeked$.pipe(bd(()=>t.info.playbackState$.getValue()===md.PLAYING)),p=!1,d=new go;i.add(l.subscribe(()=>{p||d.next(),p=!0})),i.add(f.subscribe(()=>p=!1));let h=new go,v=new go,m=vo(c,f,h),g=vo(s,d,o,t.events.looped$,v),b,y=()=>b=n.getValue(),k=()=>{let I=n.getValue();yd(b)||b===I||yd(I)||(r.next({from:b,to:I}),b=void 0)},L=()=>{v.next(),h.next()};if(i.add(m.subscribe(y)),i.add(g.subscribe(k)),e.forceInterval&&isFinite(e.forceInterval)){let I=0;i.add(m.subscribe(()=>I=window.setTimeout(L,e.forceInterval))),i.add(g.subscribe(()=>window.clearTimeout(I)))}return i});var qI="_one-stat_",Td=`${qI}deviceId`,bo=()=>{let t=new Io;return{subscription:t,subscribe:(e,r)=>{e&&t.add(e.subscribe(r))}}},So=class{constructor(e,r){this.subscription=new Io;this.debugLogger=new xI;this.oneStatDebugLog=this.debugLogger.createComponentLog("onestat");this.loopCounter=0;this.disabled=!1;this.isid$=new er(void 0);this.zenUid$=new er(void 0);this.seekAction$=new er("unknown");this.statContext=e,this.config=Ma(r.config??{}),Re(r.apiEnv)&&(this.config.apiEnv=r.apiEnv),this.config.synchronizeTime&&(this.timeSynchronisation=new Zt);let i=new AI;this.experimental={error$:i};let o=Ed.get(Td);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:o?this.deviceId=o:(this.deviceId=Xr(),Ed.set(Td,this.deviceId)),this.resetViewSession(),r.useIsid&&this.isid$.next(r.isid??gd()),this.zenUid$.next(r.zenUid);let n=new at({config:this.config,error$:i,timeSynchronisation:this.timeSynchronisation});this.api=new ot({config:this.config,apiTransport:n,refreshAuthToken:r.refreshAuthToken,mobile:this.statContext.mobile??!1,deviceId:this.deviceId,error$:i,vktvVersion:r.vktvVersion}),this.logger=new Xt({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:i,userSalt:r.userSalt});let{isEmbed:u,topOrigin:c}=OI();this.isEmbed=u,this.embedParent=c?new URL(c).hostname:void 0,this.subscribe()}get vsid$(){return new er(z.getVSID())}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e){let r=new Io,i=(d,h)=>r.add(d.subscribe(h));i(e.events.willStart$,()=>{let d=e.info.position$.getValue();this.logActionPlay({position:d}),this.statContext.projectId&&this.logActionPlayInteractive()}),i(e.events.looped$,()=>{this.resetViewSession(),++this.loopCounter>this.config.maxLoops&&(this.disabled=!0),this.logActionPlay({position:e.info.position$.getValue()})}),i(e.events.seeked$,()=>{this.logSeek({action:this.seekAction$.getValue(),time:e.info.position$.getValue()}),this.seekAction$.next("unknown")}),i(e.events.paused$,()=>{this.logPause({position:e.info.position$.getValue()})}),i(e.events.willResume$,()=>{this.logPlay()}),i(e.events.started$,()=>{this.statContext.clip&&this.logWatchCoverageRecord({start:0,end:0})}),i(e.events.playing$,()=>{this.logPlaying()}),i(Id(e,{forceInterval:this.config.watchCoverageInterval}),d=>{let h=e.info.isLive$.getValue(),v=e.info.atLiveEdge$.getValue(),m={start:parseFloat(d.from.toFixed(3)),end:parseFloat(d.to.toFixed(3))};if(v){let g=e.info.liveLatency$.getValue()??0,b=e.info.currentBuffer$.getValue()?.end??0,y=e.info.liveBufferTime$.getValue()??0,k=Math.round((g-(b-y))*1e3),L=Math.round(g*1e3);k&&L&&(m.latency=k,m.bufferLatency=L)}h?this.logWatchCoverageLive(m):this.logWatchCoverageRecord(m)});let o;i(e.info.isStalled$,d=>{d?o=Q():(Re(o)&&this.logEmptyBuffer({duration:Q()-o}),o=void 0)});let n=!1;r.add(e.events.fatalError$.pipe(wI()).subscribe(()=>n=!0)),i(e.events.willStop$,()=>{if(e.info.isStalled$.getValue()){let h=Re(o)?Q()-o:void 0;this.logCloseAtEmptyBuffer({duration:h??0}),o=void 0}else n||this.logActionStop()}),i(e.events.managedError$,({id:d})=>{this.logError({fatal:!1,errorType:d})}),i(e.events.fatalError$,({id:d})=>{this.logError({fatal:!0,errorType:d})});let u,c,s=!1;i(e.events.firstBytes$,d=>{u=Q(),this.logFirstBytes({time:d})}),i(e.events.willStart$,()=>c=Q()),i(e.info.currentBuffer$,d=>{!s&&d&&d.end-d.start>0&&Re(u)&&(this.logPlayerReady({duration:Q()-u}),s=!0)}),i(e.events.firstFrame$,()=>{Re(u)&&!s&&(this.logPlayerReady({duration:Q()-u}),s=!0),Re(c)&&this.logFirstFrame({time:Q()-c})});let l;i(e.info.currentVideoStream$,d=>{d&&(l&&d.id!==l&&this.logTrackSwitch(d),l=d.id)});let f;i(e.info.currentAudioStream$,d=>{d&&(f&&d.id!==f&&this.logTrackSwitch(d),f=d.id)}),i(e.info.atLiveEdge$,d=>this.updateContext({liveEdge:d})),i(Sd({muted:e.info.muted$,volume:e.info.volume$}),({muted:d,volume:h})=>this.updateContext({audible:!d&&h>0})),i(e.info.currentQuality$,d=>{let h=fd(d);this.updateContext({quality:h}),h&&this.logQuality(h)}),i(e.info.isAutoQualityEnabled$,d=>this.updateContext({autoQuality:d})),i(e.info.currentFormat$,d=>this.updateContext({contentType:pd(d)})),i(e.info.currentPlaybackRate$,d=>this.updateContext({rate:d})),i(e.info.is3DVideo$,d=>this.updateContext({is3d:d}));let p;return i(e.info.hostname$,d=>{let h=p!==void 0&&p!==d;this.updateContext({cdnHostname:d,failover:h}),h&&this.logFailover(d),p=d}),i(e.info.throughputEstimation$,d=>this.updateContext({downloadSpeed:d})),i(e.info.httpConnectionType$,d=>{this.statContext.firstConnectionType||this.updateContext({firstConnectionType:ho(d)}),this.updateContext({connectionType:ho(d)})}),i(e.info.httpConnectionReused$,d=>{Pd(this.statContext.firstConnectionReused)&&this.updateContext({firstConnectionReused:d}),this.updateContext({connectionReused:d})}),i(e.info.surface$,d=>{this.uiEvents||this.updateContext({mode:ut(d,this.statContext.isPreviewPlayerView)})}),i(Sd({current:e.info.currentTextTrack$,available:e.info.availableTextTracks$}),({current:d,available:h})=>{let v=h.find(({id:g})=>g===d),m=v&&(v.isAuto?`${v.language}_auto`:v.language);this.updateContext({subtitles:m?.split(".")[0]})}),this.player=e,this.resubscribeBeforeunload(),this.subscription.add(r),r}attachToUi(e){this.uiEvents=e;let{subscription:r,subscribe:i}=bo();if(!this.player)return r;i(e.actionRewind$,()=>{this.player&&(this.resetViewSession(),this.logActionPlay({position:this.player.info.position$.getValue()}))}),i(e.actionSeek$,this.seekAction$);let o=!1;i(e.inPiP$,u=>{o=u;let c=u?"pip":ut(this.player?.info.surface$.getValue(),this.statContext.isPreviewPlayerView);this.updateContext({mode:c})});let n=!1;return i(e.inFullscreen$,u=>{n=u;let c=u?"fullscreen":ut(this.player?.info.surface$.getValue(),this.statContext.isPreviewPlayerView);this.updateContext({mode:c})}),this.player&&i(this.player.info.surface$,u=>{switch(u){case mo.SECOND_SCREEN:case mo.NONE:case mo.INLINE:{if(!n&&!o){let c=ut(u,this.statContext.isPreviewPlayerView);this.updateContext({mode:c})}break}}}),i(e.actionSetSubtitle$,u=>this.updateContext({subtitles:u?.split(".")[0]})),i(e.nextMovie$,u=>this.logNextMovie(u)),this.resubscribeBeforeunload(),this.subscription.add(r),r}attachToAds(e){let{subscription:r,subscribe:i}=bo();return i(e.slotRequested$,()=>this.logAdSlotRequest()),i(e.started$,o=>this.logAdStarted(o)),i(e.paused$,()=>this.logAdPaused()),i(e.resumed$,()=>this.logAdResumed()),i(e.ended$,()=>this.logAdEnded()),i(e.skipped$,()=>this.logAdSkipped()),i(e.clicked$,()=>this.logAdClicked()),i(e.error$,o=>this.logError({errorType:o,fatal:!1})),this.resubscribeBeforeunload(),this.subscription.add(r),r}attachToInteractive(e){let{subscription:r,subscribe:i}=bo();return i(e.click$,o=>this.logInterfaceClick(o)),i(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(r),r}authorize(e){return this.api.authorize(e)}pause(){this.logger.pause(),this.oneStatDebugLog({message:"paused"})}resume(){this.logger.resume(),this.oneStatDebugLog({message:"resumed"})}destroy(){this.logger.flush(),this.subscription.unsubscribe(),this.api.destroy(),this.logger.destroy()}resetViewSession(){this.oneStatDebugLog({message:"VSID reset"}),z.generateVSID()}getDeviceId(){return this.deviceId}setFieldBlacklist(){}logInited(){}logReady(e){this.log({operation:"player_ready",param:String(e.time)})}logStarted(...e){this.logActionPlay(...e)}logPlay(){this.log({operation:"play_toggle"})}logPlaying(){this.log({operation:"playing"})}logPause(e){this.log({operation:"pause",param:String(Math.round(e.position))})}logSeek(e){this.log({operation:"seek",param:e.action,time:e.time})}logFirstBytes(e){this.log({operation:"first_bytes",param:String(e.time)})}logFirstFrame(e){this.log({operation:"first_frame",param:String(e.time)})}logError(e){this.log({operation:"content_error",param:`${e.fatal?"fatal":"recoverable"}_${e.errorType}`})}logWatchCoverageRecord(e){this.log({operation:"watch_coverage_record",param:`${e.start}-${e.end}`},{in_history:this.statContext.inHistory?1:void 0})}logWatchCoverageLive(e){let r=this.timeSynchronisation?.getOffset()??0,i=e.start+r,o=e.end+r;this.log({operation:"watch_coverage_live",param:`${i}-${o}`},{in_history:this.statContext.inHistory?1:void 0,latency:e.latency,buffer_latency:e.bufferLatency})}logEmptyBuffer(e){this.log({operation:"empty_buffer",param:String(e.duration)})}logDownloadSpeed(){}logAdSlotRequest(){this.log({operation:"adv",param:"slot_request"})}logAdStarted(e){this.log({operation:"adv",param:e})}logAdPaused(){this.log({operation:"adv",param:"pause"})}logAdResumed(){this.log({operation:"adv",param:"resume"})}logAdEnded(){this.log({operation:"adv",param:"ended"})}logAdSkipped(){this.log({operation:"adv",param:"skip"})}logAdClicked(){this.log({operation:"adv",param:"click"})}logInterfaceClick(e){this.log({operation:"player_interface_click",param:e})}logNextMovie(e){this.log({operation:"next_movie",param:String(e)})}subscribe(){this.resubscribeBeforeunload();let e=window.navigator.connection;e&&"onchange"in e&&"effectiveType"in e&&this.subscription.add(EI(_d(e,"change"),TI(["init"])).subscribe(()=>this.updateContext({network:hd(e.effectiveType)}))),this.config.debugLog&&this.debugLogger.log$.subscribe(r=>{console.debug("%c stat ","background:#fa6470;",`component: ${r.component}.`,r.message)})}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=_d(window,"beforeunload").subscribe(()=>this.logger.flush({wantBeacon:!0,clearStorage:this.config.clearStorageAtUnload})),this.subscription.add(this.beforeunloadSubscription)}logPlayerReady(e){this.log({operation:"player_ready",param:String(Math.round(e.duration))})}logActionPlay(e){this.log({operation:"action_play",param:String(Math.round(e.position))})}logActionPlayInteractive(){this.statContext.projectId&&this.log({operation:"action_play_interactive",param:String(this.statContext.movieId)},{vid:this.statContext.projectId})}logFailover(e){this.log({operation:"failover",param:e})}logCloseAtEmptyBuffer(e){this.log({operation:"close_at_empty_buffer",param:String(Math.round(e.duration))})}logActionStop(){this.log({operation:"action_stop"})}logTrackSwitch(e){this.log({operation:"track_switch",param:e.id})}logQuality(e){this.log({operation:"quality",param:e})}log(e,r={}){if(this.disabled){this.oneStatDebugLog({message:`operation ${e.operation} but statistics is disabled`});return}if((0,yo.default)(this.config.disabledOperations,e.operation)){this.oneStatDebugLog({message:`operation ${e.operation} but it is disabled`});return}this.oneStatDebugLog({message:`operation ${e.operation} ${e.param}`});let i=this.createLogItem(e,r);this.logger.log(i)}createLogItem({operation:e,param:r,time:i},o={}){let n=this.timeSynchronisation?.now()??Q(),u=this.vsid$.getValue();PI(u);let c=this.isid$.getValue(),s=e==="empty_buffer"||e==="close_at_empty_buffer"?this.statContext.connectionType:this.statContext.firstConnectionType,l=this.statContext.firstConnectionReused,f,p;if(this.isEmbed||this.statContext.place==="embed"){f=this.embedParent;let h=[...new URLSearchParams(location.search).entries()].filter(([v,m])=>(0,yo.default)(this.config.embedUrlParams,v));p=new URLSearchParams(h).toString()}else if(this.statContext.place==="direct"){let h=this.statContext.refDomain||document.referrer;h&&Ra(URL,h)?f=new URL(h).hostname:f=h,p=location.href.substring(0,1024)}let d={vsid:u,isid:c,vid:this.statContext.movieId,uid:this.zenUid$.getValue(),ct:this.statContext.contentType,place:this.isEmbed?"embed":this.statContext.place,quality:this.statContext.quality,cdn_host:this.statContext.cdnHostname,stat_type:this.statContext.autoplay===!0?"auto":this.statContext.autoplay===!1?"":void 0,param:r,vk_app_id:this.statContext.vkAppId,track_code:this.statContext.trackCode,connection_type:s,connection_reused:l===!0?1:l===!1?0:void 0,cached_data:this.statContext.cached===!0?1:this.statContext.cached===!1?0:void 0,live:this.statContext.liveEdge?1:void 0,muted:this.statContext.audible===!1?1:void 0,mode:this.statContext.mode,subtitles:this.statContext.subtitles,download_speed:this.statContext.downloadSpeed,manual_quality:this.statContext.autoQuality?void 0:1,ref_domain:f,direct_url:p,rate:this.statContext.rate===1||Pd(this.statContext.rate)?void 0:this.statContext.rate.toFixed(2),view_360:this.statContext.is3d?1:void 0,aid:this.statContext.albumId,vk_playlist_id:this.statContext.vkPlaylistId,...o};for(let h of this.config.disabledCustomFields)delete d[h];return{operation:e,type:1,time:i,network:this.statContext.network,timestamp:n,custom:d}}};var Yd={};df(Yd,{SeekType:()=>tr,ThinOneStat:()=>cr,VERSION:()=>C});import{assertNonNullable as KI,detectEmbed as GI,fromEvent as QI,Logger as zI,merge as Ro,combine as YI,filter as JI,filterChanged as XI,safeStorage as Kd,Subject as ZI,Subscription as Lo,ValueSubject as Co}from"@vkontakte/videoplayer-shared";import{clientChecker as ue,PlaybackState as Gd,Surface as ko}from"@vkontakte/videoplayer-core";import{fillWithDefault as RI}from"@vkontakte/videoplayer-shared";var tr=(c=>(c.SLIDER="slider",c.DOUBLE_TAP="double_tap",c.TIME_CODE="time_code",c.EPISODE="episode",c.REWIND="rewind",c.LIVE="live",c.UNKNOWN="unknown",c))(tr||{});var Ad="CIOPGQJGDIHBABABA",_o={prod:"https://api.ok.ru",vk_alias:"https://api.mycdn.me",videotest:"https://videotestapi.ok.ru/api",test:"https://apitest.ok.ru",okcdn:"https://api.okcdn.ru",auto:""};var CI={apiKey:Ad,apiEnv:"okcdn",requestRetryCount:1,firstFlushTime:5e3,flushDebounceTime:1e4,flushMaxWait:6e4,storageExpiration:36*60*60*1e3,watchCoverageHeartbeatInterval:30,synchronizeTime:!0,useBeacon:!1,alwaysSendDesktop:!1},xd=t=>RI(t,CI);var Po=E(Wi(),1);import{getExponentialDelay as kI,ErrorCategory as Ce,ValueSubject as LI}from"@vkontakte/videoplayer-shared";var rr=class{constructor(e){this.params=e,this.authorized$=new LI(!1),this.consequentAuthErrors=0}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this.authorizeWithBackoff()}logBeacon(e){let r="log.logUvStat",i=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(r,i,o)||this.logRequest(e).catch(()=>{})}async logRequest(e){let r="log.logUvStat",i=this.createLogParams(e),o={},n=this.sessionKey??await this.authorizeWithBackoff();if(!n)return;let u=async(c,s=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(r,i,n,o)}catch(l){if(!l||!("error_code"in l)){this.params.error$.next({id:"logRequestUnknown",category:Ce.NETWORK,message:`Unknown ${r} error`,thrown:l});return}let f=l?.error_code;switch(f){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this.authorizeWithBackoff(),s>0?u(c,s-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this.authorizeWithBackoff(),s>0?u(c,s-1):void 0;default:{this.params.error$.next({id:`LogRequest#${f}`,category:Ce.EXTERNAL_API,message:`${r} error`,data:l});return}}}};return u(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=(0,Po.default)(this.params.refreshAuthToken(),()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){return{collector:"ok.mobile.apps.video",uv_stat_data:JSON.stringify({application:`@vkontakte/videoplayer-statistics:${C}`,platform:e[0].platform,product:e[0].product,events:e})}}authorizeWithBackoff(){if(!this.consequentAuthErrors)return this.doAuthorize();let e=kI(this.consequentAuthErrors);return new Promise(r=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(async()=>{try{let i=await this.doAuthorize();r(i)}catch(i){this.params.error$.next({id:"AuthorizeBackoff",category:Ce.NETWORK,message:"Otherwise unhandled error in authorization",thrown:i})}finally{this.backoffTimeoutId=0}},e))})}doAuthorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",r={session_data:{version:2,device_id:this.params.deviceId,client_version:C.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(r.session_data.auth_token=this.authToken,r.session_data.version=3),this.authorizePromise=(0,Po.default)(this.params.apiTransport.sendRequest(e,r).then(i=>((!i||!i.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:Ce.EXTERNAL_API,message:"No session key",data:i}),this.sessionKey=i?.session_key??void 0,this.sessionKey)).catch(async i=>{this.sessionKey=void 0;let o=i?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this.authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:Ce.EXTERNAL_API,message:"authorize error",data:i}):this.params.error$.next({id:"AuthorizeUnknown",category:Ce.NETWORK,message:"authorize error",thrown:i})}),()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};var Od=E(ge(),1);var qd=E(we(),1);import{now as Eo,ErrorCategory as ir}from"@vkontakte/videoplayer-shared";var or=class{constructor(e){this.params=e,this.apiKey=e.config.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=_o[this.apiEnv],this.timeSynchronisation=e.timeSynchronisation,this.isApiBaseUrlFetched=!1}sendBeacon(e,r,i){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this.prepareQueryParams({method:e,queryParams:r,sessionKey:i}),n=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,n)}catch(u){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:ir.NETWORK,message:"Unhandled beacon error",thrown:u,data:{method:e,params:r}})}return!1}async sendRequest(e,r,i,o){let n=Eo(),u=c=>{if(c instanceof TypeError&&(0,Od.default)(["Failed to fetch","NetworkError when attempting to fetch resource."],c.message)){this.params.error$.next({id:"Network",category:ir.NETWORK,message:"Request failed",thrown:c});return}this.params.error$.next({id:"ThinOneStat:ApiTransport:sendRequest",category:ir.NETWORK,message:"Unhandled request error",thrown:c,data:{method:e,params:r,sessionKey:i,time:Eo()-n}})};return this.apiBaseUrl=await this.resolveApiBaseUrl(),Oe(`${this.apiBaseUrl}/fb.do`,{method:"post",headers:{"Content-type":"application/x-www-form-urlencoded",...o},body:this.prepareQueryParams({method:e,queryParams:r,sessionKey:i})}).then(c=>{let s=Number(c.headers.get("content-length"))===0,l=new Date(c.headers.get("date")??"").getTime(),f=Eo()-n;if(isFinite(l)&&this.timeSynchronisation?.addServerTime(l,f),!s)return c.json().then(p=>Object.prototype.hasOwnProperty.call(p,"error_msg")?Promise.reject(p):p,u)},u)}async resolveApiBaseUrl(){if(this.apiEnv!=="auto"||this.isApiBaseUrlFetched)return this.apiBaseUrl;try{let e=atob("aHR0cHM6Ly9kbnMuZ29vZ2xlL3Jlc29sdmU/bmFtZT12aWRlby5fZW5kcG9pbnQub2sucnUmdHlwZT1UWFQ="),o=(await(await Oe(e,{method:"GET",mode:"cors",cache:"no-cache"})).json())?.Answer[0]?.data;if(!o)throw new Error("Wrong DNS response");return o}catch(e){return this.params.error$.next({id:"ThinOneStat:ApiTransport:resolveApiBaseUrl",category:ir.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),_o.vk_alias}finally{this.isApiBaseUrlFetched=!0}}prepareQueryParams(e){let r=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&r.append("session_key",e.sessionKey),(0,qd.default)(e.queryParams).forEach(([i,o])=>r.append(i,typeof o=="string"?o:JSON.stringify(o))),r}};var Cd=E(ge(),1),kd=E(we(),1);import{ErrorCategory as NI,now as $I,safeStorage as ct,debounceFn as Rd}from"@vkontakte/videoplayer-shared";var nr="thinonestat_events",To=t=>e=>e.client_time+t>=$I(),ar=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{event_name:r}=e;return(0,Cd.default)(["watch_coverage","watch_coverage_live","watched_n","playback_started"],r)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=Rd(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let r=ct.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=Rd(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:r}),this.subscription=this.api.authorized$.subscribe(i=>{i&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:NI.WTF,message:String(e)||"Unknown logger error",thrown:e})}}readFromStorage(){let e=ct.get(nr);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let r=this.readFromStorage(),o=(r[this.userSalt]??[]).filter(To(this.params.config.storageExpiration));ct.set(nr,JSON.stringify({...r,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(To(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],ct.set(nr,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[r,i]of(0,kd.default)(e)){let o=i.filter(To(this.params.config.storageExpiration));o.length?e[r]=o:delete e[r],this.loggerDebugLog({message:`${i.length} retrieved from storage, ${o.length} of them actual`})}ct.set(nr,JSON.stringify(e))}log(e){this.addToStorage(e),!this.isPaused&&(this.isUrgent(e)?this.flush():this.lastVsid!==e.vsid?this.firstFlush():this.debouncedFlush(),this.lastVsid=e.vsid)}flush({wantBeacon:e,clearStorage:r}={wantBeacon:!1,clearStorage:!0}){let i=this.getFromStorage();i.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${i.length} events through beacon`}),this.api.logBeacon(i)):(this.loggerDebugLog({message:`Flushing ${i.length} events`}),this.api.logRequest(i)),r&&this.markStorageSent()):this.api.authorize(),this.firstFlush.cancel(),this.debouncedFlush.cancel())}pause(){this.isPaused=!0,this.debouncedFlush.cancel()}resume(){this.isPaused=!1,this.debouncedFlush()}destroy(){this.subscription.unsubscribe(),this.firstFlush.cancel(),this.debouncedFlush.cancel()}};function wo(){let t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),r=0,i,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(r<=2&&(r=33554432+Math.random()*16777216|0),i=r&15,r=r>>4,e[o]=t[o===19?i&3|8:i]);return e.join("")}var sr=class{constructor(e){this.offset=void 0;this.offset=e}getOffset(){return this.offset??0}setOffset(e){this.offset=e}now(){return Date.now()+(this.offset??0)}date(e=new Date){return e.setTime(e.getTime()+(this.offset??0)),e}addServerTime(e,r){let i=Date.now(),o=e-i-r/2;if(Math.abs(o)<1e3){this.offset=0;return}this.offset===void 0?this.offset=Math.round(o):this.offset=Math.round(.2*o+(1-.2)*this.offset)}};import{PlaybackState as Ld}from"@vkontakte/videoplayer-core";import{Observable as DI,Subscription as MI,ValueSubject as VI,Subject as Ao,fromEvent as FI,isNullable as Nd,merge as lt,filter as $d,filterChanged as Dd}from"@vkontakte/videoplayer-shared";var Md=(t,e,r)=>new DI(i=>{let o=new MI,n=new VI(void 0),u;o.add(t.info.isLive$.pipe(Dd()).subscribe(j=>{u&&(u.unsubscribe(),n.next(void 0)),j?u=t.info.liveTime$.pipe(Dd()).subscribe(n):u=t.info.position$.subscribe(n),o.add(u)}));let{playing$:c,paused$:s,ended$:l,looped$:f}=t.events,p=t.events.willSeek$.pipe($d(()=>t.info.playbackState$.getValue()===Ld.PLAYING)),d=t.events.seeked$.pipe($d(()=>t.info.playbackState$.getValue()===Ld.PLAYING)),h=!1,v=new Ao;o.add(p.subscribe(()=>{h||v.next(),h=!0})).add(d.subscribe(()=>h=!1));let m=lt(FI(window,"beforeunload"),t.events.willDestruct$),g,b=()=>g=n.getValue(),y=()=>{let j=n.getValue();Nd(g)||Nd(j)||g===j||(i.next({from:g,to:j}),g=void 0)},k=new Ao,L=new Ao,I=lt(c,v,k),ce=lt(s,d,m,l,f,L),$o=e.started$&&e.ended$?lt(I,e.ended$):I,Do=e.started$&&e.ended$?lt(ce,e.started$):ce;if(o.add($o.subscribe(b)).add(Do.subscribe(y)),r.heartbeatInterval&&isFinite(r.heartbeatInterval)){let j=[],of=r.heartbeatInterval*1e3,nf=()=>{L.next(),k.next()};o.add($o.subscribe(()=>{let dr=window.setTimeout(nf,of);j.push(dr)})).add(Do.subscribe(()=>{j.forEach(dr=>{window.clearTimeout(dr)}),j=[]}))}return o});import{Subscription as BI}from"@vkontakte/videoplayer-core";import{Observable as UI}from"@vkontakte/videoplayer-shared";var Vd=(t,e)=>new UI(r=>{let i=new BI,o=0;return i.add(t.info.position$.subscribe(()=>{let n=e.getTotalViewTime()*1e3;n>o&&n%e.targetDuration===0&&(o=n,r.next({target_duration:e.targetDuration,current_tvt:n}))})),i});import{Observable as jI,Subscription as HI,merge as Fd}from"@vkontakte/videoplayer-shared";var Bd=t=>new jI(e=>{let r=new HI,i=0,o=1,n=0,u=!1,c=!1,s=()=>{if(!u)return;let I=Date.now();n+=(I-i)*o,i=I},l=()=>{(!u||c)&&(i=Date.now(),u=!0,c=!1)},f=()=>{u&&(s(),u=!1)},p=()=>{u&&(s(),u=!1,c=!0)},d=I=>{u&&s(),o=I,i=Date.now()},{started$:h,playing$:v,paused$:m,willSeek$:g,ended$:b,willDestruct$:y}=t.events,{currentPlaybackRate$:k}=t.info;r.add(g.subscribe(p)).add(Fd(h,v).subscribe(l)).add(Fd(m,b,y).subscribe(f)).add(k.subscribe(d));let L=()=>{let I=n;return u&&(I+=(Date.now()-i)*o),Math.floor(I/1e3)};return e.next(L),r});import{assertNever as Ud}from"@vkontakte/videoplayer-shared";import{HttpConnectionType as xo,Surface as ke,VideoFormat as P,VideoQuality as F}from"@vkontakte/videoplayer-core";var Oo=t=>t&&{[xo.HTTP1]:"http1",[xo.HTTP2]:"http2",[xo.QUIC]:"http3"}[t],qo=t=>{if(t!==void 0)switch(t){case P.MPEG:return"MP4";case P.DASH:case P.DASH_LIVE:return"DASH";case P.DASH_SEP:return"DASH_SEP";case P.DASH_ONDEMAND:return"ONDEMAND_DASH";case P.HLS_ONDEMAND:return"ONDEMAND_HLS";case P.HLS:case P.HLS_LIVE:return"HLS";case P.HLS_FMP4:return"HLS_FMP4";case P.DASH_WEBM:case P.DASH_LIVE_WEBM:return"WEBM";case P.DASH_LIVE_CMAF:return"ONDEMAND_DASH_LIVE";case P.HLS_LIVE_CMAF:return"ONDEMAND_HLS_LIVE";case P.WEB_RTC_LIVE:return"WEBRTC";case P.DASH_WEBM_AV1:return"AV1";case P.DASH_STREAMS:return"MULTI_DASH";default:return Ud(t)}},J=t=>{if(t!==void 0)switch(t){case F.Q_144P:return"144p";case F.Q_240P:return"240p";case F.Q_360P:return"360p";case F.Q_480P:return"480p";case F.Q_720P:return"720p";case F.Q_1080P:return"1080p";case F.Q_1440P:return"1440p";case F.Q_2160P:return"2160p";case F.INVARIANT:case F.Q_576P:case F.Q_4320P:return"UNKNOWN";default:return Ud(t)}},jd=t=>{if(t!==void 0)switch(t){case"MP4":case"ONDEMAND_DASH":case"ONDEMAND_DASH_LIVE":case"ONDEMAND_HLS":case"ONDEMAND_HLS_LIVE":case"MULTI_DASH":case"WEBM":case"AV1":return"vod";case"DASH":case"HLS":case"HLS_FMP4":case"WEBRTC":return"live";default:return}},se=(t,e,r)=>{if(t&&e)switch(t){case P.MPEG:return r&&e[t]&&e[t][r];default:return e[t]?.url}},Le=(t,e=!1)=>{if(e)return"minimal";switch(t){case void 0:case ke.NONE:return;case ke.INLINE:return"inline";case ke.FULLSCREEN:return"fullscreen";case ke.SECOND_SCREEN:return"chromecast";case ke.PIP:return"pip_external"}},ur=t=>{switch(t){case void 0:return;case ke.INVISIBLE:return"background";default:return"foreground"}};var Hd=E(St(),1);var Wd=()=>(0,Hd.default)(Math.floor(Math.random()*2**64).toString(36),13,"0");var eS="_thin-one-stat_",Qd=`${eS}deviceId`,zd=()=>{let t=new Lo;return{subscription:t,subscribe:(e,r)=>{e&&t.add(e.subscribe(r))}}},cr=class{constructor(e,r){this.debugLogger=new zI;this.thinOneStatDebugLog=this.debugLogger.createComponentLog("ThinOneStat");this.eventNumber=1;this.playerSize={width:0,height:0};this.seekAction$=new Co("unknown");this.isid$=new Co(void 0);this.statContext=e,this.config=xd(r.config??{}),this.subscription=new Lo,this.config.synchronizeTime&&(this.timeSynchronisation=new sr);let i=new ZI,o=Kd.get(Qd);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:o?this.deviceId=o:(this.deviceId=wo(),Kd.set(Qd,this.deviceId)),this.statContext.targetDuration?this.targetDuration=this.statContext.targetDuration:this.targetDuration=1e3,this.resetViewSession(),r.useIsid&&this.isid$.next(r.isid??Wd());let n=new or({error$:i,config:this.config,timeSynchronisation:this.timeSynchronisation});this.api=new rr({config:this.config,apiTransport:n,error$:i,deviceId:this.deviceId,refreshAuthToken:r.refreshAuthToken}),this.logger=new ar({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:i,userSalt:r.userSalt});let{isEmbed:u,topOrigin:c}=GI();this.isEmbed=u,this.embedHostname=c?new URL(c).hostname:void 0}get vsid$(){return new Co(z.getVSID())}authorize(e){return this.api.authorize(e)}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e,r){let i=new Lo,o=(s,l)=>i.add(s.subscribe(l));o(Bd(e),s=>{this.getTotalViewTime=s}),o(e.info.isLive$,s=>this.isLive=s),o(e.info.position$,s=>this.position=s);let n;o(e.info.hostname$,s=>{n!==void 0&&n!==s&&this.logFailover({cdn_host:s});let f={cdn_host:s,connection_type:Oo(e.info.httpConnectionType$.getValue()),connection_reused:e.info.httpConnectionReused$.getValue()};this.logCdnHostChanged(f),this.cdnHostname=n=s}),o(e.info.httpConnectionType$,s=>{this.connectionType=Oo(s)}),o(e.info.httpConnectionReused$,s=>{this.connectionReused=s}),o(Md(e,r,{heartbeatInterval:this.config.watchCoverageHeartbeatInterval}),s=>{let l=Math.round(s.from*1e3),f=Math.round(s.to*1e3),p={watch_interval:`${l}-${f}`,in_history:!!this.statContext.inHistory,content_type:qo(e.info.currentFormat$.getValue()),playback_quality:J(e.info.currentQuality$.getValue()),recom_info:this.statContext.recomInfo};if(!e.info.isLive$.getValue())this.logWatchCoverage(p);else{let h=e.info.atLiveEdge$.getValue();this.logWatchCoverageLive({...p,live:!!h})}}),o(Vd(e,{targetDuration:this.targetDuration,getTotalViewTime:this.getTotalViewTime}),s=>{this.logWatchedN(s)}),o(Ro(e.events.willStart$,e.events.looped$),s=>{s&&this.resetViewSession();let l={isid:this.isid$.getValue(),stream_profile:jd(qo(e.info.currentFormat$.getValue())),dpi:ue.display.pixelRatio,web_layout:ue.device.isMobile?"mobile":"desktop",preloaded:this.statContext.preload,navigation:this.statContext.navigation,recom_info:this.statContext.recomInfo};this.isEmbed&&(l.iframe_host=this.embedHostname??"unknown"),this.logStartSession(l)}),o(e.events.willReady$,()=>{if(this.statContext.preload){let s=e.info.currentFormat$.getValue(),l=e.info.availableSources$.getValue(),f=e.info.currentBuffer$.getValue(),p=e.info.currentQuality$.getValue(),d={target_buffer_time:f?f.end-f.start:void 0,playback_url:se(s,l,p),playback_quality:J(p)};this.logPreloadStarted(d)}}),o(e.events.ready$,()=>{let s=e.info.currentBuffer$.getValue();if(this.statContext.preload){let l={buffer_time:s?s.end-s.start:void 0};this.logPreloadEnded(l)}this.logReady({buffer_time:s?s.end-s.start:void 0})}),o(Ro(e.events.fetcherRecoverableError$,e.events.fatalError$),()=>{this.statContext.preload&&this.logPreloadError()}),o(e.events.playing$,()=>{this.logPlay()}),o(e.events.manifestRequested$,()=>{let s=e.info.currentFormat$.getValue(),l=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:se(s,l,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logManifestRequest(p)}),o(e.events.firstBytesRequested$,()=>{let s=e.info.currentFormat$.getValue(),l=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:se(s,l,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logFirstMediaRequest(p)}),o(e.events.firstBytesReceived$,()=>{let s=e.info.currentFormat$.getValue(),l=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:se(s,l,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logFirstByteMedia(p)}),o(e.events.manifestReceived$,()=>{let s=e.info.currentFormat$.getValue(),l=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:se(s,l,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logManifestReceived(p)}),o(YI({connectionType:e.info.httpConnectionType$,connectionReused:e.info.httpConnectionReused$}).pipe(JI(({connectionReused:s})=>s!==void 0),XI((s,l)=>s.connectionType===l.connectionType)),()=>{let s=e.info.currentFormat$.getValue(),l=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:se(s,l,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused,rtt:e.info.rttEstimation$.getValue()};this.logConnectionEstablished(p)}),o(e.events.firstFrame$,()=>{this.logFirstVideoFrameDecoded()}),o(e.info.playbackState$,s=>{if(s===Gd.PLAYING){let l=e.info.currentBuffer$.getValue(),f={buffer_time:l?l.end-l.start:void 0};if(this.logPlaying(f),this.isStarted)this.logResume();else{this.isStarted=!0;let p=e.info.currentQuality$.getValue(),d=e.info.isAutoQualityEnabled$.getValue(),h=e.info.muted$.getValue(),v=e.info.volume$.getValue(),m=e.info.surface$.getValue(),g=e.info.availableTextTracks$.getValue(),b=e.info.currentTextTrack$.getValue(),y=e.info.currentAudioStream$.getValue(),k=e.info.currentPlaybackRate$.getValue(),L={playback_quality:J(p),user_quality:d?"auto":J(p),player_width:this.playerSize.width,player_height:this.playerSize.height,muted:h,sound_volume:v,buffer_time:l?Math.round(l.end-l.start):void 0,mode:Le(m,this.statContext.isPreviewPlayerView),visibility:ur(m),subtitles_enabled:!!b,auto_subtitles:!!g.find(({id:I})=>I===b)?.isAuto,audio_track_lang:y?.language,playback_rate:k,recom_info:this.statContext.recomInfo};this.logPlaybackStarted(L)}}else s===Gd.PAUSED&&this.logPause()}),o(e.events.willSeek$,({to:s})=>{let l={target_position:s,seek_type:this.seekAction$.getValue()};this.logSeeking(l)}),o(e.events.seeked$,()=>{let l={target_position:e.info.position$.getValue(),seek_type:this.seekAction$.getValue()};this.logSeeked(l),this.seekAction$.next("unknown")}),o(Ro(e.info.isBuffering$,e.info.isStalled$),s=>{if(s){let l=e.info.currentBuffer$.getValue();this.logBufferStarvation({buffer_time:l?l.end-l.start:void 0}),this.logShowLoader()}}),o(e.info.currentQuality$,s=>{if(s){let l=e.info.isAutoQualityEnabled$.getValue(),f=e.info.currentVideoStream$.getValue()?.codec,p=e.info.currentAudioStream$.getValue()?.codec,d={user_quality:l?"auto":J(s),playback_quality:J(s),download_quality:J(s),codec_info:f&&p?`${f},${p}`:void 0,manual_switch:!l};this.logQualityChanged(d)}});let u,c;return o(e.info.surface$,s=>{if(!this.uiEvents){let l=Le(s,this.statContext.isPreviewPlayerView);this.logModeChanged({mode:l})}c=ur(s),u!==c&&(u=ur(s),this.logVisibilityChanged({visibility:c}))}),o(e.events.stopped$,()=>{this.logStop()}),this.player=e,this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToUi(e){this.uiEvents=e;let{subscribe:r,subscription:i}=zd();r(e.actionSeek$,this.seekAction$),r(e.playerSize$,({width:u,height:c})=>{this.playerSize={width:u,height:c},this.logViewPortChanged({player_width:u,player_height:c})});let o=!1;r(e.inPiP$,u=>{o=u;let c=u?"pip_external":Le(this.player?.info.surface$.getValue(),this.statContext.isPreviewPlayerView);this.logModeChanged({mode:c})});let n=!1;return r(e.inFullscreen$,u=>{n=u;let c=u?"fullscreen":Le(this.player?.info.surface$.getValue(),this.statContext.isPreviewPlayerView);this.logModeChanged({mode:c})}),this.player&&r(this.player.info.surface$,u=>{switch(u){case ko.SECOND_SCREEN:case ko.NONE:case ko.INLINE:{if(!n&&!o){let c=Le(u,this.statContext.isPreviewPlayerView);this.logModeChanged({mode:c})}break}}}),this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToAds(e){let{subscription:r,subscribe:i}=zd();return i(e.init$,o=>{let n={slot:o};this.logAdvConfiguration(n)}),i(e.slotRequested$,()=>{this.logAdvRequest()}),i(e.started$,o=>{let n={adv_section:o};this.logAdvBreakStarted(n)}),i(e.ended$,o=>{let n={adv_section:o};this.logAdvBreakEnded(n)}),i(e.error$,o=>{let n={error_message:o};this.logAdvError(n)}),this.resubscribeBeforeunload(),this.subscription.add(r),r}getDeviceId(){return this.deviceId}resetViewSession(){this.thinOneStatDebugLog({message:"VSID reset"}),z.generateVSID(),this.eventNumber=0}destroy(){this.api.destroy()}createRequiredParams(e){let r=this.vsid$.getValue();KI(r);let i=this.eventNumber++;return{vsid:r,uv_movie_id:this.statContext.movieId,event_name:e,client_time:Date.now(),application:`@vkontakte/videoplayer-statistics:${C}`,platform:`web:${ue.device.isMobile?"mobile":"desktop"}`,product:this.statContext.product,event_number:i,playback_position:this.isLive?void 0:Math.round(this.position),current_tvt:this.getTotalViewTime(),cdn_host:this.cdnHostname}}createRequiredFatParams(){return{stats_version:"2.1.1",browser:ue.browser.current,browser_version:String(ue.browser.currentVersion),os:ue.device.current,os_version:"",device_type:ue.device.isMobile?"mobile":"desktop",navigation:this.statContext.navigation}}log(e,r,i=!1){let o=this.createRequiredParams(e),n={};i&&(n=this.createRequiredFatParams()),this.logger.log({...o,...n,...r})}logWatchCoverage(e){this.log("watch_coverage",e,!0)}logWatchCoverageLive(e){this.log("watch_coverage_live",e,!0)}logWatchedN(e){this.log("watched_n",e,!0)}logStartSession(e){this.log("start_session",e,!0)}logPreloadStarted(e){this.log("preload_started",e)}logPreloadEnded(e){this.log("preload_ended",e)}logPreloadError(){this.log("preload_error")}logPlaybackStarted(e){this.log("playback_started",e,!0)}logPlay(){this.log("play")}logManifestRequest(e){this.log("manifest_request",e)}logFirstMediaRequest(e){this.log("first_media_request",e)}logFirstByteMedia(e){this.log("first_byte_media",e)}logManifestReceived(e){this.log("manifest_received",e)}logConnectionEstablished(e){this.log("connection_established",e)}logFirstVideoFrameDecoded(){this.log("first_video_frame_decoded")}logReady(e){this.log("ready",e)}logPlaying(e){this.log("playing",e)}logPause(){this.log("pause")}logResume(){this.log("resume")}logSeeking(e){this.log("seeking",e)}logSeeked(e){this.log("seeked",e)}logStop(){this.log("stop")}logBufferStarvation(e){this.log("buffer_starvation",e)}logShowLoader(){this.log("show_loader")}logQualityChanged(e){this.log("quality_changed",e)}logCdnHostChanged(e){this.log("cdn_host_changed",e)}logViewPortChanged(e){this.log("view_port_changed",e)}logModeChanged(e){this.log("mode_changed",e)}logVisibilityChanged(e){this.log("visibility_changed",e)}logFailover(e){this.log("failover",e)}logAdvConfiguration(e){this.log("adv_configuration",e)}logAdvRequest(){this.log("adv_request")}logAdvBreakStarted(e){this.log("adv_break_started",e)}logAdvBreakEnded(e){this.log("adv_break_ended",e)}logAdvError(e){this.log("adv_error",e)}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=QI(window,"beforeunload").subscribe(()=>{}),this.subscription.add(this.beforeunloadSubscription)}};var tS={};var rS=(t,e={})=>{let i=e.timeout||1,o=performance.now();return window.setTimeout(()=>{t({get didTimeout(){return e.timeout?!1:performance.now()-o-1>i},timeRemaining(){return Math.max(0,1+(performance.now()-o))}})},1)},iS=t=>window.clearTimeout(t),Jd=t=>typeof t=="function"&&t?.toString().endsWith("{ [native code] }"),Xd=!Jd(window.requestIdleCallback)||!Jd(window.cancelIdleCallback),Zd=Xd?rS:window.requestIdleCallback,ef=Xd?iS:window.cancelIdleCallback;import{PlaybackState as rf,Subscription as oS}from"@vkontakte/videoplayer-core";import{Logger as nS}from"@vkontakte/videoplayer-shared";var lr=class{constructor(){this.startTime=null;this.stopTime=null;this.accumulatedTime=0}get time(){return Math.floor(this.timeMs/1e3)}get timeMs(){return this.startTime===null?0:(this.stopTime??this.now())-this.startTime-this.accumulatedTime}get isRunning(){return this.startTime!==null&&this.stopTime===null}start(){this.isRunning||(this.stopTime!==null?(this.accumulatedTime+=this.now()-this.stopTime,this.stopTime=null):this.startTime=this.now())}stop(){this.isRunning&&(this.stopTime=this.now())}reset(){this.startTime=null,this.stopTime=null,this.accumulatedTime=0}now(){return Date.now()}};var tf=()=>window.Image?new Image:document.createElement("img");var No=class{constructor(e){this.position=0;this.started=!1;this.heartbeatPixels=[];this.heartbeatLastTimeSent={};this.idleCallbackIds=[];this.stopwatch=new lr;this.subscription=new oS;this.params=e;let r=new nS;this.log=r.createComponentLog("MediascopePixel")}attachTo(e){this.subscription.add(e.info.playbackState$.subscribe(r=>this.onPlaybackState(r))).add(e.info.position$.subscribe(r=>this.onPosition(r))).add(e.info.atLiveEdge$.subscribe(r=>this.isActiveLive=r)),this.subscription.add(e.events.willSeek$.subscribe(()=>this.onWillSeek())).add(e.events.seeked$.subscribe(()=>this.onSeeked())).add(e.events.ended$.subscribe(()=>this.onEnded()))}destroy(){this.stopwatch.reset(),this.subscription.unsubscribe(),window.clearTimeout(this.heartbeatFirstTimeoutId),this.idleCallbackIds.forEach(e=>ef(e)),this.send("stop")}onPlaybackState(e){e===rf.PLAYING?this.started?this.play():this.start():e===rf.PAUSED&&this.pause()}start(){this.started=!0,this.stopwatch.start(),this.send("start"),this.heartbeatPixels=this.prepareHeartbeatPixels(),this.heartbeatInterval=this.heartbeatPixels[0]?.interval;let e=this.heartbeatPixels[0]?.url,r=this.heartbeatPixels[0]?.delay;if(r!==void 0&&e)try{this.heartbeatFirstTimeoutId=window.setTimeout(()=>{this.sendHeartbeat(e)},r*1e3)}catch(i){this.log({message:i.message})}}play(){this.stopwatch.start(),this.send("resume")}pause(){this.stopwatch.stop(),this.send("pause")}onPosition(e){if(this.position=e,this.heartbeatInterval&&this.stopwatch.time!==0&&this.stopwatch.time%this.heartbeatInterval===0)for(let[r,{url:i}]of this.heartbeatPixels.entries())this.heartbeatLastTimeSent[r]!==this.stopwatch.time&&(this.heartbeatLastTimeSent[r]=this.stopwatch.time,this.sendHeartbeat(i))}onWillSeek(){this.started&&this.send("stop")}onSeeked(){this.started&&this.send("start")}onEnded(){this.stopwatch.stop(),this.send("stop")}validatePixels(e,r){return e?.filter(i=>i.event===r.event&&r.keys.every(o=>!!i[o]))}getFrameTimestamp(){let e;if(this.isActiveLive){let r=Math.floor(Math.random()*25)+5;e=Date.now()/1e3-r}else e=this.position||0;return Math.floor(e)}getUTC(){return Math.floor(Date.now()/1e3)}prepareUrl(e){let r=new URL(e);return r.pathname=r.pathname.replace("{@fts_fake_sec}",String(this.getFrameTimestamp())).replace("{@utc_sec}",String(this.getUTC())),r.search=[...new URLSearchParams(r.search)].filter(([i,o])=>!/={@[\w]+}/.test(`${i}=${o}`)).map(i=>i.join("=")).join("&"),r.toString()}preparePixels(e){return this.validatePixels(this.params.pixels,{event:e,keys:["url"]})}prepareHeartbeatPixels(){return this.validatePixels(this.params.pixels,{event:"heartbeat",keys:["url","interval"]})}call(e){try{this.idleCallbackIds.push(Zd(()=>tf().src=this.prepareUrl(e)))}catch(r){this.log({message:r.message})}}send(e){let r=this.preparePixels(e);for(let{url:i}of r)this.call(i)}sendHeartbeat(e){this.call(e)}};export{We as ApiEnv,zr as ConnectionType,Qr as ContentType,Ca as InteractiveInterfaceClick,No as MediascopePixel,tS as MediascopePixelTypes,So as OneStat,Gr as Quality,Yr as SeekAction,Yd as ThinOneStat,C as VERSION};
|
|
6
|
+
var af=Object.create;var pr=Object.defineProperty;var sf=Object.getOwnPropertyDescriptor;var uf=Object.getOwnPropertyNames;var cf=Object.getPrototypeOf,lf=Object.prototype.hasOwnProperty;var a=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),df=(t,e)=>{for(var r in e)pr(t,r,{get:e[r],enumerable:!0})},ff=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of uf(e))!lf.call(t,o)&&o!==r&&pr(t,o,{get:()=>e[o],enumerable:!(i=sf(e,o))||i.enumerable});return t};var E=(t,e,r)=>(r=t!=null?af(cf(t)):{},ff(e||!t||!t.__esModule?pr(r,"default",{value:t,enumerable:!0}):r,t));var S=a((hr,Mo)=>{"use strict";var Ne=function(t){return t&&t.Math===Math&&t};Mo.exports=Ne(typeof globalThis=="object"&&globalThis)||Ne(typeof window=="object"&&window)||Ne(typeof self=="object"&&self)||Ne(typeof global=="object"&&global)||Ne(typeof hr=="object"&&hr)||function(){return this}()||Function("return this")()});var w=a((aS,Vo)=>{"use strict";Vo.exports=function(t){try{return!!t()}catch{return!0}}});var De=a((sS,Fo)=>{"use strict";var pf=w();Fo.exports=!pf(function(){var t=function(){}.bind();return typeof t!="function"||t.hasOwnProperty("prototype")})});var vr=a((uS,Ho)=>{"use strict";var hf=De(),jo=Function.prototype,Bo=jo.apply,Uo=jo.call;Ho.exports=typeof Reflect=="object"&&Reflect.apply||(hf?Uo.bind(Bo):function(){return Uo.apply(Bo,arguments)})});var A=a((cS,Go)=>{"use strict";var Wo=De(),Ko=Function.prototype,gr=Ko.call,vf=Wo&&Ko.bind.bind(gr,gr);Go.exports=Wo?vf:function(t){return function(){return gr.apply(t,arguments)}}});var $e=a((lS,zo)=>{"use strict";var Qo=A(),gf=Qo({}.toString),mf=Qo("".slice);zo.exports=function(t){return mf(gf(t),8,-1)}});var mr=a((dS,Yo)=>{"use strict";var bf=$e(),yf=A();Yo.exports=function(t){if(bf(t)==="Function")return yf(t)}});var _=a((fS,Jo)=>{"use strict";var br=typeof document=="object"&&document.all;Jo.exports=typeof br>"u"&&br!==void 0?function(t){return typeof t=="function"||t===br}:function(t){return typeof t=="function"}});var x=a((pS,Xo)=>{"use strict";var If=w();Xo.exports=!If(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var N=a((hS,Zo)=>{"use strict";var Sf=De(),lt=Function.prototype.call;Zo.exports=Sf?lt.bind(lt):function(){return lt.apply(lt,arguments)}});var yr=a(rn=>{"use strict";var en={}.propertyIsEnumerable,tn=Object.getOwnPropertyDescriptor,_f=tn&&!en.call({1:2},1);rn.f=_f?function(e){var r=tn(this,e);return!!r&&r.enumerable}:en});var Me=a((gS,on)=>{"use strict";on.exports=function(t,e){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:e}}});var an=a((mS,nn)=>{"use strict";var Pf=A(),Ef=w(),Tf=$e(),Ir=Object,wf=Pf("".split);nn.exports=Ef(function(){return!Ir("z").propertyIsEnumerable(0)})?function(t){return Tf(t)==="String"?wf(t,""):Ir(t)}:Ir});var Ve=a((bS,sn)=>{"use strict";sn.exports=function(t){return t==null}});var de=a((yS,un)=>{"use strict";var Af=Ve(),xf=TypeError;un.exports=function(t){if(Af(t))throw new xf("Can't call method on "+t);return t}});var Z=a((IS,cn)=>{"use strict";var Of=an(),qf=de();cn.exports=function(t){return Of(qf(t))}});var D=a((SS,ln)=>{"use strict";var Rf=_();ln.exports=function(t){return typeof t=="object"?t!==null:Rf(t)}});var fe=a((_S,dn)=>{"use strict";dn.exports={}});var W=a((PS,pn)=>{"use strict";var Sr=fe(),_r=S(),Cf=_(),fn=function(t){return Cf(t)?t:void 0};pn.exports=function(t,e){return arguments.length<2?fn(Sr[t])||fn(_r[t]):Sr[t]&&Sr[t][e]||_r[t]&&_r[t][e]}});var dt=a((ES,hn)=>{"use strict";var Lf=A();hn.exports=Lf({}.isPrototypeOf)});var ee=a((TS,mn)=>{"use strict";var kf=S(),vn=kf.navigator,gn=vn&&vn.userAgent;mn.exports=gn?String(gn):""});var Er=a((wS,Pn)=>{"use strict";var _n=S(),Pr=ee(),bn=_n.process,yn=_n.Deno,In=bn&&bn.versions||yn&&yn.version,Sn=In&&In.v8,$,ft;Sn&&($=Sn.split("."),ft=$[0]>0&&$[0]<4?1:+($[0]+$[1]));!ft&&Pr&&($=Pr.match(/Edge\/(\d+)/),(!$||$[1]>=74)&&($=Pr.match(/Chrome\/(\d+)/),$&&(ft=+$[1])));Pn.exports=ft});var Tr=a((AS,Tn)=>{"use strict";var En=Er(),Nf=w(),Df=S(),$f=Df.String;Tn.exports=!!Object.getOwnPropertySymbols&&!Nf(function(){var t=Symbol("symbol detection");return!$f(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&En&&En<41})});var wr=a((xS,wn)=>{"use strict";var Mf=Tr();wn.exports=Mf&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Ar=a((OS,An)=>{"use strict";var Vf=W(),Ff=_(),Bf=dt(),Uf=wr(),jf=Object;An.exports=Uf?function(t){return typeof t=="symbol"}:function(t){var e=Vf("Symbol");return Ff(e)&&Bf(e.prototype,jf(t))}});var Fe=a((qS,xn)=>{"use strict";var Hf=String;xn.exports=function(t){try{return Hf(t)}catch{return"Object"}}});var K=a((RS,On)=>{"use strict";var Wf=_(),Kf=Fe(),Gf=TypeError;On.exports=function(t){if(Wf(t))return t;throw new Gf(Kf(t)+" is not a function")}});var pt=a((CS,qn)=>{"use strict";var Qf=K(),zf=Ve();qn.exports=function(t,e){var r=t[e];return zf(r)?void 0:Qf(r)}});var Cn=a((LS,Rn)=>{"use strict";var xr=N(),Or=_(),qr=D(),Yf=TypeError;Rn.exports=function(t,e){var r,i;if(e==="string"&&Or(r=t.toString)&&!qr(i=xr(r,t))||Or(r=t.valueOf)&&!qr(i=xr(r,t))||e!=="string"&&Or(r=t.toString)&&!qr(i=xr(r,t)))return i;throw new Yf("Can't convert object to primitive value")}});var B=a((kS,Ln)=>{"use strict";Ln.exports=!0});var Dn=a((NS,Nn)=>{"use strict";var kn=S(),Jf=Object.defineProperty;Nn.exports=function(t,e){try{Jf(kn,t,{value:e,configurable:!0,writable:!0})}catch{kn[t]=e}return e}});var Be=a((DS,Vn)=>{"use strict";var Xf=B(),Zf=S(),ep=Dn(),$n="__core-js_shared__",Mn=Vn.exports=Zf[$n]||ep($n,{});(Mn.versions||(Mn.versions=[])).push({version:"3.43.0",mode:Xf?"pure":"global",copyright:"\xA9 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.43.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var Rr=a(($S,Bn)=>{"use strict";var Fn=Be();Bn.exports=function(t,e){return Fn[t]||(Fn[t]=e||{})}});var Cr=a((MS,Un)=>{"use strict";var tp=de(),rp=Object;Un.exports=function(t){return rp(tp(t))}});var U=a((VS,jn)=>{"use strict";var ip=A(),op=Cr(),np=ip({}.hasOwnProperty);jn.exports=Object.hasOwn||function(e,r){return np(op(e),r)}});var Lr=a((FS,Hn)=>{"use strict";var ap=A(),sp=0,up=Math.random(),cp=ap(1.1.toString);Hn.exports=function(t){return"Symbol("+(t===void 0?"":t)+")_"+cp(++sp+up,36)}});var O=a((BS,Kn)=>{"use strict";var lp=S(),dp=Rr(),Wn=U(),fp=Lr(),pp=Tr(),hp=wr(),pe=lp.Symbol,kr=dp("wks"),vp=hp?pe.for||pe:pe&&pe.withoutSetter||fp;Kn.exports=function(t){return Wn(kr,t)||(kr[t]=pp&&Wn(pe,t)?pe[t]:vp("Symbol."+t)),kr[t]}});var Yn=a((US,zn)=>{"use strict";var gp=N(),Gn=D(),Qn=Ar(),mp=pt(),bp=Cn(),yp=O(),Ip=TypeError,Sp=yp("toPrimitive");zn.exports=function(t,e){if(!Gn(t)||Qn(t))return t;var r=mp(t,Sp),i;if(r){if(e===void 0&&(e="default"),i=gp(r,t,e),!Gn(i)||Qn(i))return i;throw new Ip("Can't convert object to primitive value")}return e===void 0&&(e="number"),bp(t,e)}});var Nr=a((jS,Jn)=>{"use strict";var _p=Yn(),Pp=Ar();Jn.exports=function(t){var e=_p(t,"string");return Pp(e)?e:e+""}});var ht=a((HS,Zn)=>{"use strict";var Ep=S(),Xn=D(),Dr=Ep.document,Tp=Xn(Dr)&&Xn(Dr.createElement);Zn.exports=function(t){return Tp?Dr.createElement(t):{}}});var $r=a((WS,ea)=>{"use strict";var wp=x(),Ap=w(),xp=ht();ea.exports=!wp&&!Ap(function(){return Object.defineProperty(xp("div"),"a",{get:function(){return 7}}).a!==7})});var ia=a(ra=>{"use strict";var Op=x(),qp=N(),Rp=yr(),Cp=Me(),Lp=Z(),kp=Nr(),Np=U(),Dp=$r(),ta=Object.getOwnPropertyDescriptor;ra.f=Op?ta:function(e,r){if(e=Lp(e),r=kp(r),Dp)try{return ta(e,r)}catch{}if(Np(e,r))return Cp(!qp(Rp.f,e,r),e[r])}});var Mr=a((GS,oa)=>{"use strict";var $p=w(),Mp=_(),Vp=/#|\.prototype\./,Ue=function(t,e){var r=Bp[Fp(t)];return r===jp?!0:r===Up?!1:Mp(e)?$p(e):!!e},Fp=Ue.normalize=function(t){return String(t).replace(Vp,".").toLowerCase()},Bp=Ue.data={},Up=Ue.NATIVE="N",jp=Ue.POLYFILL="P";oa.exports=Ue});var je=a((QS,aa)=>{"use strict";var na=mr(),Hp=K(),Wp=De(),Kp=na(na.bind);aa.exports=function(t,e){return Hp(t),e===void 0?t:Wp?Kp(t,e):function(){return t.apply(e,arguments)}}});var Vr=a((zS,sa)=>{"use strict";var Gp=x(),Qp=w();sa.exports=Gp&&Qp(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var G=a((YS,ua)=>{"use strict";var zp=D(),Yp=String,Jp=TypeError;ua.exports=function(t){if(zp(t))return t;throw new Jp(Yp(t)+" is not an object")}});var te=a(la=>{"use strict";var Xp=x(),Zp=$r(),eh=Vr(),vt=G(),ca=Nr(),th=TypeError,Fr=Object.defineProperty,rh=Object.getOwnPropertyDescriptor,Br="enumerable",Ur="configurable",jr="writable";la.f=Xp?eh?function(e,r,i){if(vt(e),r=ca(r),vt(i),typeof e=="function"&&r==="prototype"&&"value"in i&&jr in i&&!i[jr]){var o=rh(e,r);o&&o[jr]&&(e[r]=i.value,i={configurable:Ur in i?i[Ur]:o[Ur],enumerable:Br in i?i[Br]:o[Br],writable:!1})}return Fr(e,r,i)}:Fr:function(e,r,i){if(vt(e),r=ca(r),vt(i),Zp)try{return Fr(e,r,i)}catch{}if("get"in i||"set"in i)throw new th("Accessors not supported");return"value"in i&&(e[r]=i.value),e}});var he=a((XS,da)=>{"use strict";var ih=x(),oh=te(),nh=Me();da.exports=ih?function(t,e,r){return oh.f(t,e,nh(1,r))}:function(t,e,r){return t[e]=r,t}});var q=a((ZS,pa)=>{"use strict";var He=S(),ah=vr(),sh=mr(),uh=_(),ch=ia().f,lh=Mr(),ve=fe(),dh=je(),ge=he(),fa=U();Be();var fh=function(t){var e=function(r,i,o){if(this instanceof e){switch(arguments.length){case 0:return new t;case 1:return new t(r);case 2:return new t(r,i)}return new t(r,i,o)}return ah(t,this,arguments)};return e.prototype=t.prototype,e};pa.exports=function(t,e){var r=t.target,i=t.global,o=t.stat,n=t.proto,l=i?He:o?He[r]:He[r]&&He[r].prototype,c=i?ve:ve[r]||ge(ve,r,{})[r],s=c.prototype,u,f,p,d,h,v,m,g,b;for(d in e)u=lh(i?d:r+(o?".":"#")+d,t.forced),f=!u&&l&&fa(l,d),v=c[d],f&&(t.dontCallGetSet?(b=ch(l,d),m=b&&b.value):m=l[d]),h=f&&m?m:e[d],!(!u&&!n&&typeof v==typeof h)&&(t.bind&&f?g=dh(h,He):t.wrap&&f?g=fh(h):n&&uh(h)?g=sh(h):g=h,(t.sham||h&&h.sham||v&&v.sham)&&ge(g,"sham",!0),ge(c,d,g),n&&(p=r+"Prototype",fa(ve,p)||ge(ve,p,{}),ge(ve[p],d,h),t.real&&s&&(u||!s[d])&&ge(s,d,h)))}});var va=a((e_,ha)=>{"use strict";var ph=Math.ceil,hh=Math.floor;ha.exports=Math.trunc||function(e){var r=+e;return(r>0?hh:ph)(r)}});var gt=a((t_,ga)=>{"use strict";var vh=va();ga.exports=function(t){var e=+t;return e!==e||e===0?0:vh(e)}});var ba=a((r_,ma)=>{"use strict";var gh=gt(),mh=Math.max,bh=Math.min;ma.exports=function(t,e){var r=gh(t);return r<0?mh(r+e,0):bh(r,e)}});var Hr=a((i_,ya)=>{"use strict";var yh=gt(),Ih=Math.min;ya.exports=function(t){var e=yh(t);return e>0?Ih(e,9007199254740991):0}});var Wr=a((o_,Ia)=>{"use strict";var Sh=Hr();Ia.exports=function(t){return Sh(t.length)}});var Kr=a((n_,_a)=>{"use strict";var _h=Z(),Ph=ba(),Eh=Wr(),Sa=function(t){return function(e,r,i){var o=_h(e),n=Eh(o);if(n===0)return!t&&-1;var l=Ph(i,n),c;if(t&&r!==r){for(;n>l;)if(c=o[l++],c!==c)return!0}else for(;n>l;l++)if((t||l in o)&&o[l]===r)return t||l||0;return!t&&-1}};_a.exports={includes:Sa(!0),indexOf:Sa(!1)}});var Gr=a((a_,Pa)=>{"use strict";Pa.exports=function(){}});var Ea=a(()=>{"use strict";var Th=q(),wh=Kr().includes,Ah=w(),xh=Gr(),Oh=Ah(function(){return!Array(1).includes()});Th({target:"Array",proto:!0,forced:Oh},{includes:function(e){return wh(this,e,arguments.length>1?arguments[1]:void 0)}});xh("includes")});var mt=a((c_,Ta)=>{"use strict";var qh=W();Ta.exports=qh});var Aa=a((l_,wa)=>{"use strict";Ea();var Rh=mt();wa.exports=Rh("Array","includes")});var Oa=a((d_,xa)=>{"use strict";var Ch=Aa();xa.exports=Ch});var me=a((f_,qa)=>{"use strict";var Lh=Oa();qa.exports=Lh});var bt=a((E_,Fa)=>{"use strict";var $h=O(),Mh=$h("toStringTag"),Va={};Va[Mh]="z";Fa.exports=String(Va)==="[object z]"});var Ke=a((T_,Ba)=>{"use strict";var Vh=bt(),Fh=_(),yt=$e(),Bh=O(),Uh=Bh("toStringTag"),jh=Object,Hh=yt(function(){return arguments}())==="Arguments",Wh=function(t,e){try{return t[e]}catch{}};Ba.exports=Vh?yt:function(t){var e,r,i;return t===void 0?"Undefined":t===null?"Null":typeof(r=Wh(e=jh(t),Uh))=="string"?r:Hh?yt(e):(i=yt(e))==="Object"&&Fh(e.callee)?"Arguments":i}});var ei=a((w_,Ua)=>{"use strict";var Kh=Ke(),Gh=String;Ua.exports=function(t){if(Kh(t)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return Gh(t)}});var Ha=a((A_,ja)=>{"use strict";var Qh=gt(),zh=ei(),Yh=de(),Jh=RangeError;ja.exports=function(e){var r=zh(Yh(this)),i="",o=Qh(e);if(o<0||o===1/0)throw new Jh("Wrong number of repetitions");for(;o>0;(o>>>=1)&&(r+=r))o&1&&(i+=r);return i}});var za=a((x_,Qa)=>{"use strict";var Ga=A(),Xh=Hr(),Wa=ei(),Zh=Ha(),ev=de(),tv=Ga(Zh),rv=Ga("".slice),iv=Math.ceil,Ka=function(t){return function(e,r,i){var o=Wa(ev(e)),n=Xh(r),l=o.length,c=i===void 0?" ":Wa(i),s,u;return n<=l||c===""?o:(s=n-l,u=tv(c,iv(s/c.length)),u.length>s&&(u=rv(u,0,s)),t?o+u:u+o)}};Qa.exports={start:Ka(!1),end:Ka(!0)}});var Ja=a((O_,Ya)=>{"use strict";var ov=ee();Ya.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(ov)});var Xa=a(()=>{"use strict";var nv=q(),av=za().start,sv=Ja();nv({target:"String",proto:!0,forced:sv},{padStart:function(e){return av(this,e,arguments.length>1?arguments[1]:void 0)}})});var es=a((C_,Za)=>{"use strict";Xa();var uv=mt();Za.exports=uv("String","padStart")});var rs=a((L_,ts)=>{"use strict";var cv=es();ts.exports=cv});var It=a((k_,is)=>{"use strict";var lv=rs();is.exports=lv});var ns=a(()=>{"use strict"});var ti=a((M_,as)=>{"use strict";var Ge=S(),fv=ee(),pv=$e(),St=function(t){return fv.slice(0,t.length)===t};as.exports=function(){return St("Bun/")?"BUN":St("Cloudflare-Workers")?"CLOUDFLARE":St("Deno/")?"DENO":St("Node.js/")?"NODE":Ge.Bun&&typeof Bun.version=="string"?"BUN":Ge.Deno&&typeof Deno.version=="object"?"DENO":pv(Ge.process)==="process"?"NODE":Ge.window&&Ge.document?"BROWSER":"REST"}()});var _t=a((V_,ss)=>{"use strict";var hv=ti();ss.exports=hv==="NODE"});var be=a((F_,us)=>{"use strict";var vv=he();us.exports=function(t,e,r,i){return i&&i.enumerable?t[e]=r:vv(t,e,r),t}});var ls=a((B_,cs)=>{"use strict";var gv=A(),mv=K();cs.exports=function(t,e,r){try{return gv(mv(Object.getOwnPropertyDescriptor(t,e)[r]))}catch{}}});var fs=a((U_,ds)=>{"use strict";var bv=D();ds.exports=function(t){return bv(t)||t===null}});var hs=a((j_,ps)=>{"use strict";var yv=fs(),Iv=String,Sv=TypeError;ps.exports=function(t){if(yv(t))return t;throw new Sv("Can't set "+Iv(t)+" as a prototype")}});var ri=a((H_,vs)=>{"use strict";var _v=ls(),Pv=D(),Ev=de(),Tv=hs();vs.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t=!1,e={},r;try{r=_v(Object.prototype,"__proto__","set"),r(e,[]),t=e instanceof Array}catch{}return function(o,n){return Ev(o),Tv(n),Pv(o)&&(t?r(o,n):o.__proto__=n),o}}():void 0)});var ms=a((W_,gs)=>{"use strict";var wv=bt(),Av=Ke();gs.exports=wv?{}.toString:function(){return"[object "+Av(this)+"]"}});var Qe=a((K_,ys)=>{"use strict";var xv=bt(),Ov=te().f,qv=he(),Rv=U(),Cv=ms(),Lv=O(),bs=Lv("toStringTag");ys.exports=function(t,e,r,i){var o=r?t:t&&t.prototype;o&&(Rv(o,bs)||Ov(o,bs,{configurable:!0,value:e}),i&&!xv&&qv(o,"toString",Cv))}});var Ss=a((G_,Is)=>{"use strict";var kv=te();Is.exports=function(t,e,r){return kv.f(t,e,r)}});var Es=a((Q_,Ps)=>{"use strict";var Nv=W(),Dv=Ss(),$v=O(),Mv=x(),_s=$v("species");Ps.exports=function(t){var e=Nv(t);Mv&&e&&!e[_s]&&Dv(e,_s,{configurable:!0,get:function(){return this}})}});var ws=a((z_,Ts)=>{"use strict";var Vv=dt(),Fv=TypeError;Ts.exports=function(t,e){if(Vv(e,t))return t;throw new Fv("Incorrect invocation")}});var oi=a((Y_,As)=>{"use strict";var Bv=A(),Uv=_(),ii=Be(),jv=Bv(Function.toString);Uv(ii.inspectSource)||(ii.inspectSource=function(t){return jv(t)});As.exports=ii.inspectSource});var Ls=a((J_,Cs)=>{"use strict";var Hv=A(),Wv=w(),xs=_(),Kv=Ke(),Gv=W(),Qv=oi(),Os=function(){},qs=Gv("Reflect","construct"),ni=/^\s*(?:class|function)\b/,zv=Hv(ni.exec),Yv=!ni.test(Os),ze=function(e){if(!xs(e))return!1;try{return qs(Os,[],e),!0}catch{return!1}},Rs=function(e){if(!xs(e))return!1;switch(Kv(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Yv||!!zv(ni,Qv(e))}catch{return!0}};Rs.sham=!0;Cs.exports=!qs||Wv(function(){var t;return ze(ze.call)||!ze(Object)||!ze(function(){t=!0})||t})?Rs:ze});var Ns=a((X_,ks)=>{"use strict";var Jv=Ls(),Xv=Fe(),Zv=TypeError;ks.exports=function(t){if(Jv(t))return t;throw new Zv(Xv(t)+" is not a constructor")}});var ai=a((Z_,$s)=>{"use strict";var Ds=G(),eg=Ns(),tg=Ve(),rg=O(),ig=rg("species");$s.exports=function(t,e){var r=Ds(t).constructor,i;return r===void 0||tg(i=Ds(r)[ig])?e:eg(i)}});var si=a((eP,Ms)=>{"use strict";var og=W();Ms.exports=og("document","documentElement")});var Fs=a((tP,Vs)=>{"use strict";var ng=A();Vs.exports=ng([].slice)});var Us=a((rP,Bs)=>{"use strict";var ag=TypeError;Bs.exports=function(t,e){if(t<e)throw new ag("Not enough arguments");return t}});var ui=a((iP,js)=>{"use strict";var sg=ee();js.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(sg)});var mi=a((oP,Xs)=>{"use strict";var R=S(),ug=vr(),cg=je(),Hs=_(),lg=U(),Js=w(),Ws=si(),dg=Fs(),Ks=ht(),fg=Us(),pg=ui(),hg=_t(),hi=R.setImmediate,vi=R.clearImmediate,vg=R.process,ci=R.Dispatch,gg=R.Function,Gs=R.MessageChannel,mg=R.String,li=0,Ye={},Qs="onreadystatechange",Je,re,di,fi;Js(function(){Je=R.location});var gi=function(t){if(lg(Ye,t)){var e=Ye[t];delete Ye[t],e()}},pi=function(t){return function(){gi(t)}},zs=function(t){gi(t.data)},Ys=function(t){R.postMessage(mg(t),Je.protocol+"//"+Je.host)};(!hi||!vi)&&(hi=function(e){fg(arguments.length,1);var r=Hs(e)?e:gg(e),i=dg(arguments,1);return Ye[++li]=function(){ug(r,void 0,i)},re(li),li},vi=function(e){delete Ye[e]},hg?re=function(t){vg.nextTick(pi(t))}:ci&&ci.now?re=function(t){ci.now(pi(t))}:Gs&&!pg?(di=new Gs,fi=di.port2,di.port1.onmessage=zs,re=cg(fi.postMessage,fi)):R.addEventListener&&Hs(R.postMessage)&&!R.importScripts&&Je&&Je.protocol!=="file:"&&!Js(Ys)?(re=Ys,R.addEventListener("message",zs,!1)):Qs in Ks("script")?re=function(t){Ws.appendChild(Ks("script"))[Qs]=function(){Ws.removeChild(this),gi(t)}}:re=function(t){setTimeout(pi(t),0)});Xs.exports={set:hi,clear:vi}});var tu=a((nP,eu)=>{"use strict";var Zs=S(),bg=x(),yg=Object.getOwnPropertyDescriptor;eu.exports=function(t){if(!bg)return Zs[t];var e=yg(Zs,t);return e&&e.value}});var bi=a((aP,iu)=>{"use strict";var ru=function(){this.head=null,this.tail=null};ru.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t){var e=this.head=t.next;return e===null&&(this.tail=null),t.item}}};iu.exports=ru});var nu=a((sP,ou)=>{"use strict";var Ig=ee();ou.exports=/ipad|iphone|ipod/i.test(Ig)&&typeof Pebble<"u"});var su=a((uP,au)=>{"use strict";var Sg=ee();au.exports=/web0s(?!.*chrome)/i.test(Sg)});var hu=a((cP,pu)=>{"use strict";var Ie=S(),_g=tu(),uu=je(),yi=mi().set,Pg=bi(),Eg=ui(),Tg=nu(),wg=su(),Ii=_t(),cu=Ie.MutationObserver||Ie.WebKitMutationObserver,lu=Ie.document,du=Ie.process,Pt=Ie.Promise,Pi=_g("queueMicrotask"),ye,Si,_i,Et,fu;Pi||(Xe=new Pg,Ze=function(){var t,e;for(Ii&&(t=du.domain)&&t.exit();e=Xe.get();)try{e()}catch(r){throw Xe.head&&ye(),r}t&&t.enter()},!Eg&&!Ii&&!wg&&cu&&lu?(Si=!0,_i=lu.createTextNode(""),new cu(Ze).observe(_i,{characterData:!0}),ye=function(){_i.data=Si=!Si}):!Tg&&Pt&&Pt.resolve?(Et=Pt.resolve(void 0),Et.constructor=Pt,fu=uu(Et.then,Et),ye=function(){fu(Ze)}):Ii?ye=function(){du.nextTick(Ze)}:(yi=uu(yi,Ie),ye=function(){yi(Ze)}),Pi=function(t){Xe.head||ye(),Xe.add(t)});var Xe,Ze;pu.exports=Pi});var gu=a((lP,vu)=>{"use strict";vu.exports=function(t,e){try{arguments.length===1?console.error(t):console.error(t,e)}catch{}}});var Tt=a((dP,mu)=>{"use strict";mu.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}});var Iu=a((fP,yu)=>{"use strict";var Ag=S(),xg=_(),bu=Ag.WeakMap;yu.exports=xg(bu)&&/native code/.test(String(bu))});var wt=a((pP,_u)=>{"use strict";var Og=Rr(),qg=Lr(),Su=Og("keys");_u.exports=function(t){return Su[t]||(Su[t]=qg(t))}});var At=a((hP,Pu)=>{"use strict";Pu.exports={}});var Ai=a((vP,wu)=>{"use strict";var Rg=Iu(),Tu=S(),Cg=D(),Lg=he(),Ei=U(),Ti=Be(),kg=wt(),Ng=At(),Eu="Object already initialized",wi=Tu.TypeError,Dg=Tu.WeakMap,xt,et,Ot,$g=function(t){return Ot(t)?et(t):xt(t,{})},Mg=function(t){return function(e){var r;if(!Cg(e)||(r=et(e)).type!==t)throw new wi("Incompatible receiver, "+t+" required");return r}};Rg||Ti.state?(M=Ti.state||(Ti.state=new Dg),M.get=M.get,M.has=M.has,M.set=M.set,xt=function(t,e){if(M.has(t))throw new wi(Eu);return e.facade=t,M.set(t,e),e},et=function(t){return M.get(t)||{}},Ot=function(t){return M.has(t)}):(ie=kg("state"),Ng[ie]=!0,xt=function(t,e){if(Ei(t,ie))throw new wi(Eu);return e.facade=t,Lg(t,ie,e),e},et=function(t){return Ei(t,ie)?t[ie]:{}},Ot=function(t){return Ei(t,ie)});var M,ie;wu.exports={set:xt,get:et,has:Ot,enforce:$g,getterFor:Mg}});var oe=a((gP,Au)=>{"use strict";var Vg=S();Au.exports=Vg.Promise});var Se=a((mP,Ru)=>{"use strict";var Fg=S(),tt=oe(),Bg=_(),Ug=Mr(),jg=oi(),Hg=O(),xu=ti(),Wg=B(),xi=Er(),Ou=tt&&tt.prototype,Kg=Hg("species"),Oi=!1,qu=Bg(Fg.PromiseRejectionEvent),Gg=Ug("Promise",function(){var t=jg(tt),e=t!==String(tt);if(!e&&xi===66||Wg&&!(Ou.catch&&Ou.finally))return!0;if(!xi||xi<51||!/native code/.test(t)){var r=new tt(function(n){n(1)}),i=function(n){n(function(){},function(){})},o=r.constructor={};if(o[Kg]=i,Oi=r.then(function(){})instanceof i,!Oi)return!0}return!e&&(xu==="BROWSER"||xu==="DENO")&&!qu});Ru.exports={CONSTRUCTOR:Gg,REJECTION_EVENT:qu,SUBCLASSING:Oi}});var _e=a((bP,Lu)=>{"use strict";var Cu=K(),Qg=TypeError,zg=function(t){var e,r;this.promise=new t(function(i,o){if(e!==void 0||r!==void 0)throw new Qg("Bad Promise constructor");e=i,r=o}),this.resolve=Cu(e),this.reject=Cu(r)};Lu.exports.f=function(t){return new zg(t)}});var Zu=a(()=>{"use strict";var Yg=q(),Jg=B(),Lt=_t(),J=S(),Xg=fe(),we=N(),ku=be(),Nu=ri(),Zg=Qe(),em=Es(),tm=K(),Ct=_(),rm=D(),im=ws(),om=ai(),Fu=mi().set,ki=hu(),nm=gu(),am=Tt(),sm=bi(),Bu=Ai(),kt=oe(),Ni=Se(),Uu=_e(),Nt="Promise",ju=Ni.CONSTRUCTOR,um=Ni.REJECTION_EVENT,cm=Ni.SUBCLASSING,qi=Bu.getterFor(Nt),lm=Bu.set,Pe=kt&&kt.prototype,ne=kt,qt=Pe,Hu=J.TypeError,Ri=J.document,Di=J.process,Ci=Uu.f,dm=Ci,fm=!!(Ri&&Ri.createEvent&&J.dispatchEvent),Wu="unhandledrejection",pm="rejectionhandled",Du=0,Ku=1,hm=2,$i=1,Gu=2,Rt,$u,Qu,Mu,zu=function(t){var e;return rm(t)&&Ct(e=t.then)?e:!1},Yu=function(t,e){var r=e.value,i=e.state===Ku,o=i?t.ok:t.fail,n=t.resolve,l=t.reject,c=t.domain,s,u,f;try{o?(i||(e.rejection===Gu&&gm(e),e.rejection=$i),o===!0?s=r:(c&&c.enter(),s=o(r),c&&(c.exit(),f=!0)),s===t.promise?l(new Hu("Promise-chain cycle")):(u=zu(s))?we(u,s,n,l):n(s)):l(r)}catch(p){c&&!f&&c.exit(),l(p)}},Ju=function(t,e){t.notified||(t.notified=!0,ki(function(){for(var r=t.reactions,i;i=r.get();)Yu(i,t);t.notified=!1,e&&!t.rejection&&vm(t)}))},Xu=function(t,e,r){var i,o;fm?(i=Ri.createEvent("Event"),i.promise=e,i.reason=r,i.initEvent(t,!1,!0),J.dispatchEvent(i)):i={promise:e,reason:r},!um&&(o=J["on"+t])?o(i):t===Wu&&nm("Unhandled promise rejection",r)},vm=function(t){we(Fu,J,function(){var e=t.facade,r=t.value,i=Vu(t),o;if(i&&(o=am(function(){Lt?Di.emit("unhandledRejection",r,e):Xu(Wu,e,r)}),t.rejection=Lt||Vu(t)?Gu:$i,o.error))throw o.value})},Vu=function(t){return t.rejection!==$i&&!t.parent},gm=function(t){we(Fu,J,function(){var e=t.facade;Lt?Di.emit("rejectionHandled",e):Xu(pm,e,t.value)})},Ee=function(t,e,r){return function(i){t(e,i,r)}},Te=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=hm,Ju(t,!0))},Li=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new Hu("Promise can't be resolved itself");var i=zu(e);i?ki(function(){var o={done:!1};try{we(i,e,Ee(Li,o,t),Ee(Te,o,t))}catch(n){Te(o,n,t)}}):(t.value=e,t.state=Ku,Ju(t,!1))}catch(o){Te({done:!1},o,t)}}};if(ju&&(ne=function(e){im(this,qt),tm(e),we(Rt,this);var r=qi(this);try{e(Ee(Li,r),Ee(Te,r))}catch(i){Te(r,i)}},qt=ne.prototype,Rt=function(e){lm(this,{type:Nt,done:!1,notified:!1,parent:!1,reactions:new sm,rejection:!1,state:Du,value:null})},Rt.prototype=ku(qt,"then",function(e,r){var i=qi(this),o=Ci(om(this,ne));return i.parent=!0,o.ok=Ct(e)?e:!0,o.fail=Ct(r)&&r,o.domain=Lt?Di.domain:void 0,i.state===Du?i.reactions.add(o):ki(function(){Yu(o,i)}),o.promise}),$u=function(){var t=new Rt,e=qi(t);this.promise=t,this.resolve=Ee(Li,e),this.reject=Ee(Te,e)},Uu.f=Ci=function(t){return t===ne||t===Qu?new $u(t):dm(t)},!Jg&&Ct(kt)&&Pe!==Object.prototype)){Mu=Pe.then,cm||ku(Pe,"then",function(e,r){var i=this;return new ne(function(o,n){we(Mu,i,o,n)}).then(e,r)},{unsafe:!0});try{delete Pe.constructor}catch{}Nu&&Nu(Pe,qt)}Yg({global:!0,constructor:!0,wrap:!0,forced:ju},{Promise:ne});Qu=Xg.Promise;Zg(ne,Nt,!1,!0);em(Nt)});var ae=a((SP,ec)=>{"use strict";ec.exports={}});var rc=a((_P,tc)=>{"use strict";var mm=O(),bm=ae(),ym=mm("iterator"),Im=Array.prototype;tc.exports=function(t){return t!==void 0&&(bm.Array===t||Im[ym]===t)}});var Mi=a((PP,oc)=>{"use strict";var Sm=Ke(),ic=pt(),_m=Ve(),Pm=ae(),Em=O(),Tm=Em("iterator");oc.exports=function(t){if(!_m(t))return ic(t,Tm)||ic(t,"@@iterator")||Pm[Sm(t)]}});var ac=a((EP,nc)=>{"use strict";var wm=N(),Am=K(),xm=G(),Om=Fe(),qm=Mi(),Rm=TypeError;nc.exports=function(t,e){var r=arguments.length<2?qm(t):e;if(Am(r))return xm(wm(r,t));throw new Rm(Om(t)+" is not iterable")}});var cc=a((TP,uc)=>{"use strict";var Cm=N(),sc=G(),Lm=pt();uc.exports=function(t,e,r){var i,o;sc(t);try{if(i=Lm(t,"return"),!i){if(e==="throw")throw r;return r}i=Cm(i,t)}catch(n){o=!0,i=n}if(e==="throw")throw r;if(o)throw i;return sc(i),r}});var $t=a((wP,pc)=>{"use strict";var km=je(),Nm=N(),Dm=G(),$m=Fe(),Mm=rc(),Vm=Wr(),lc=dt(),Fm=ac(),Bm=Mi(),dc=cc(),Um=TypeError,Dt=function(t,e){this.stopped=t,this.result=e},fc=Dt.prototype;pc.exports=function(t,e,r){var i=r&&r.that,o=!!(r&&r.AS_ENTRIES),n=!!(r&&r.IS_RECORD),l=!!(r&&r.IS_ITERATOR),c=!!(r&&r.INTERRUPTED),s=km(e,i),u,f,p,d,h,v,m,g=function(y){return u&&dc(u,"normal"),new Dt(!0,y)},b=function(y){return o?(Dm(y),c?s(y[0],y[1],g):s(y[0],y[1])):c?s(y,g):s(y)};if(n)u=t.iterator;else if(l)u=t;else{if(f=Bm(t),!f)throw new Um($m(t)+" is not iterable");if(Mm(f)){for(p=0,d=Vm(t);d>p;p++)if(h=b(t[p]),h&&lc(fc,h))return h;return new Dt(!1)}u=Fm(t,f)}for(v=n?t.next:u.next;!(m=Nm(v,u)).done;){try{h=b(m.value)}catch(y){dc(u,"throw",y)}if(typeof h=="object"&&h&&lc(fc,h))return h}return new Dt(!1)}});var bc=a((AP,mc)=>{"use strict";var jm=O(),vc=jm("iterator"),gc=!1;try{hc=0,Vi={next:function(){return{done:!!hc++}},return:function(){gc=!0}},Vi[vc]=function(){return this},Array.from(Vi,function(){throw 2})}catch{}var hc,Vi;mc.exports=function(t,e){try{if(!e&&!gc)return!1}catch{return!1}var r=!1;try{var i={};i[vc]=function(){return{next:function(){return{done:r=!0}}}},t(i)}catch{}return r}});var Fi=a((xP,yc)=>{"use strict";var Hm=oe(),Wm=bc(),Km=Se().CONSTRUCTOR;yc.exports=Km||!Wm(function(t){Hm.all(t).then(void 0,function(){})})});var Ic=a(()=>{"use strict";var Gm=q(),Qm=N(),zm=K(),Ym=_e(),Jm=Tt(),Xm=$t(),Zm=Fi();Gm({target:"Promise",stat:!0,forced:Zm},{all:function(e){var r=this,i=Ym.f(r),o=i.resolve,n=i.reject,l=Jm(function(){var c=zm(r.resolve),s=[],u=0,f=1;Xm(e,function(p){var d=u++,h=!1;f++,Qm(c,r,p).then(function(v){h||(h=!0,s[d]=v,--f||o(s))},n)}),--f||o(s)});return l.error&&n(l.value),i.promise}})});var _c=a(()=>{"use strict";var eb=q(),tb=B(),rb=Se().CONSTRUCTOR,Ui=oe(),ib=W(),ob=_(),nb=be(),Sc=Ui&&Ui.prototype;eb({target:"Promise",proto:!0,forced:rb,real:!0},{catch:function(t){return this.then(void 0,t)}});!tb&&ob(Ui)&&(Bi=ib("Promise").prototype.catch,Sc.catch!==Bi&&nb(Sc,"catch",Bi,{unsafe:!0}));var Bi});var Pc=a(()=>{"use strict";var ab=q(),sb=N(),ub=K(),cb=_e(),lb=Tt(),db=$t(),fb=Fi();ab({target:"Promise",stat:!0,forced:fb},{race:function(e){var r=this,i=cb.f(r),o=i.reject,n=lb(function(){var l=ub(r.resolve);db(e,function(c){sb(l,r,c).then(i.resolve,o)})});return n.error&&o(n.value),i.promise}})});var Ec=a(()=>{"use strict";var pb=q(),hb=_e(),vb=Se().CONSTRUCTOR;pb({target:"Promise",stat:!0,forced:vb},{reject:function(e){var r=hb.f(this),i=r.reject;return i(e),r.promise}})});var ji=a(($P,Tc)=>{"use strict";var gb=G(),mb=D(),bb=_e();Tc.exports=function(t,e){if(gb(t),mb(e)&&e.constructor===t)return e;var r=bb.f(t),i=r.resolve;return i(e),r.promise}});var xc=a(()=>{"use strict";var yb=q(),Ib=W(),wc=B(),Sb=oe(),Ac=Se().CONSTRUCTOR,_b=ji(),Pb=Ib("Promise"),Eb=wc&&!Ac;yb({target:"Promise",stat:!0,forced:wc||Ac},{resolve:function(e){return _b(Eb&&this===Pb?Sb:this,e)}})});var Oc=a(()=>{"use strict";Zu();Ic();_c();Pc();Ec();xc()});var Lc=a(()=>{"use strict";var Tb=q(),wb=B(),Mt=oe(),Ab=w(),Rc=W(),Cc=_(),xb=ai(),qc=ji(),Ob=be(),Wi=Mt&&Mt.prototype,qb=!!Mt&&Ab(function(){Wi.finally.call({then:function(){}},function(){})});Tb({target:"Promise",proto:!0,real:!0,forced:qb},{finally:function(t){var e=xb(this,Rc("Promise")),r=Cc(t);return this.then(r?function(i){return qc(e,t()).then(function(){return i})}:t,r?function(i){return qc(e,t()).then(function(){throw i})}:t)}});!wb&&Cc(Mt)&&(Hi=Rc("Promise").prototype.finally,Wi.finally!==Hi&&Ob(Wi,"finally",Hi,{unsafe:!0}));var Hi});var Nc=a((HP,kc)=>{"use strict";ns();Oc();Lc();var Rb=mt();kc.exports=Rb("Promise","finally")});var $c=a((WP,Dc)=>{"use strict";var Cb=Nc();Dc.exports=Cb});var Ki=a((KP,Mc)=>{"use strict";var Lb=$c();Mc.exports=Lb});var Fc=a((GP,Vc)=>{"use strict";var kb=w();Vc.exports=!kb(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})});var Vt=a((QP,Uc)=>{"use strict";var Nb=U(),Db=_(),$b=Cr(),Mb=wt(),Vb=Fc(),Bc=Mb("IE_PROTO"),Gi=Object,Fb=Gi.prototype;Uc.exports=Vb?Gi.getPrototypeOf:function(t){var e=$b(t);if(Nb(e,Bc))return e[Bc];var r=e.constructor;return Db(r)&&e instanceof r?r.prototype:e instanceof Gi?Fb:null}});var Wc=a((zP,Hc)=>{"use strict";var Bb=A(),Qi=U(),Ub=Z(),jb=Kr().indexOf,Hb=At(),jc=Bb([].push);Hc.exports=function(t,e){var r=Ub(t),i=0,o=[],n;for(n in r)!Qi(Hb,n)&&Qi(r,n)&&jc(o,n);for(;e.length>i;)Qi(r,n=e[i++])&&(~jb(o,n)||jc(o,n));return o}});var zi=a((YP,Kc)=>{"use strict";Kc.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Yi=a((JP,Gc)=>{"use strict";var Wb=Wc(),Kb=zi();Gc.exports=Object.keys||function(e){return Wb(e,Kb)}});var Zc=a((XP,Xc)=>{"use strict";var zc=x(),Gb=w(),Yc=A(),Qb=Vt(),zb=Yi(),Yb=Z(),Jb=yr().f,Jc=Yc(Jb),Xb=Yc([].push),Zb=zc&&Gb(function(){var t=Object.create(null);return t[2]=2,!Jc(t,2)}),Qc=function(t){return function(e){for(var r=Yb(e),i=zb(r),o=Zb&&Qb(r)===null,n=i.length,l=0,c=[],s;n>l;)s=i[l++],(!zc||(o?s in r:Jc(r,s)))&&Xb(c,t?[s,r[s]]:r[s]);return c}};Xc.exports={entries:Qc(!0),values:Qc(!1)}});var el=a(()=>{"use strict";var ey=q(),ty=Zc().entries;ey({target:"Object",stat:!0},{entries:function(e){return ty(e)}})});var rl=a((tE,tl)=>{"use strict";el();var ry=fe();tl.exports=ry.Object.entries});var ol=a((rE,il)=>{"use strict";var iy=rl();il.exports=iy});var Ae=a((iE,nl)=>{"use strict";var oy=ol();nl.exports=oy});var ul=a((oE,sl)=>{"use strict";var Ji=x(),ny=U(),al=Function.prototype,ay=Ji&&Object.getOwnPropertyDescriptor,Xi=ny(al,"name"),sy=Xi&&function(){}.name==="something",uy=Xi&&(!Ji||Ji&&ay(al,"name").configurable);sl.exports={EXISTS:Xi,PROPER:sy,CONFIGURABLE:uy}});var ll=a(cl=>{"use strict";var cy=x(),ly=Vr(),dy=te(),fy=G(),py=Z(),hy=Yi();cl.f=cy&&!ly?Object.defineProperties:function(e,r){fy(e);for(var i=py(r),o=hy(r),n=o.length,l=0,c;n>l;)dy.f(e,c=o[l++],i[c]);return e}});var ro=a((aE,ml)=>{"use strict";var vy=G(),gy=ll(),dl=zi(),my=At(),by=si(),yy=ht(),Iy=wt(),fl=">",pl="<",eo="prototype",to="script",vl=Iy("IE_PROTO"),Zi=function(){},gl=function(t){return pl+to+fl+t+pl+"/"+to+fl},hl=function(t){t.write(gl("")),t.close();var e=t.parentWindow.Object;return t=null,e},Sy=function(){var t=yy("iframe"),e="java"+to+":",r;return t.style.display="none",by.appendChild(t),t.src=String(e),r=t.contentWindow.document,r.open(),r.write(gl("document.F=Object")),r.close(),r.F},Ft,Bt=function(){try{Ft=new ActiveXObject("htmlfile")}catch{}Bt=typeof document<"u"?document.domain&&Ft?hl(Ft):Sy():hl(Ft);for(var t=dl.length;t--;)delete Bt[eo][dl[t]];return Bt()};my[vl]=!0;ml.exports=Object.create||function(e,r){var i;return e!==null?(Zi[eo]=vy(e),i=new Zi,Zi[eo]=null,i[vl]=e):i=Bt(),r===void 0?i:gy.f(i,r)}});var ao=a((sE,Il)=>{"use strict";var _y=w(),Py=_(),Ey=D(),Ty=ro(),bl=Vt(),wy=be(),Ay=O(),xy=B(),no=Ay("iterator"),yl=!1,Q,io,oo;[].keys&&(oo=[].keys(),"next"in oo?(io=bl(bl(oo)),io!==Object.prototype&&(Q=io)):yl=!0);var Oy=!Ey(Q)||_y(function(){var t={};return Q[no].call(t)!==t});Oy?Q={}:xy&&(Q=Ty(Q));Py(Q[no])||wy(Q,no,function(){return this});Il.exports={IteratorPrototype:Q,BUGGY_SAFARI_ITERATORS:yl}});var _l=a((uE,Sl)=>{"use strict";var qy=ao().IteratorPrototype,Ry=ro(),Cy=Me(),Ly=Qe(),ky=ae(),Ny=function(){return this};Sl.exports=function(t,e,r,i){var o=e+" Iterator";return t.prototype=Ry(qy,{next:Cy(+!i,r)}),Ly(t,o,!1,!0),ky[o]=Ny,t}});var Ll=a((cE,Cl)=>{"use strict";var Dy=q(),$y=N(),Ut=B(),ql=ul(),My=_(),Vy=_l(),Pl=Vt(),El=ri(),Fy=Qe(),By=he(),so=be(),Uy=O(),Tl=ae(),Rl=ao(),jy=ql.PROPER,Hy=ql.CONFIGURABLE,wl=Rl.IteratorPrototype,jt=Rl.BUGGY_SAFARI_ITERATORS,rt=Uy("iterator"),Al="keys",it="values",xl="entries",Ol=function(){return this};Cl.exports=function(t,e,r,i,o,n,l){Vy(r,e,i);var c=function(b){if(b===o&&d)return d;if(!jt&&b&&b in f)return f[b];switch(b){case Al:return function(){return new r(this,b)};case it:return function(){return new r(this,b)};case xl:return function(){return new r(this,b)}}return function(){return new r(this)}},s=e+" Iterator",u=!1,f=t.prototype,p=f[rt]||f["@@iterator"]||o&&f[o],d=!jt&&p||c(o),h=e==="Array"&&f.entries||p,v,m,g;if(h&&(v=Pl(h.call(new t)),v!==Object.prototype&&v.next&&(!Ut&&Pl(v)!==wl&&(El?El(v,wl):My(v[rt])||so(v,rt,Ol)),Fy(v,s,!0,!0),Ut&&(Tl[s]=Ol))),jy&&o===it&&p&&p.name!==it&&(!Ut&&Hy?By(f,"name",it):(u=!0,d=function(){return $y(p,this)})),o)if(m={values:c(it),keys:n?d:c(Al),entries:c(xl)},l)for(g in m)(jt||u||!(g in f))&&so(f,g,m[g]);else Dy({target:e,proto:!0,forced:jt||u},m);return(!Ut||l)&&f[rt]!==d&&so(f,rt,d,{name:o}),Tl[e]=d,m}});var Nl=a((lE,kl)=>{"use strict";kl.exports=function(t,e){return{value:t,done:e}}});var co=a((dE,Fl)=>{"use strict";var Wy=Z(),uo=Gr(),Dl=ae(),Ml=Ai(),Ky=te().f,Gy=Ll(),Ht=Nl(),Qy=B(),zy=x(),Vl="Array Iterator",Yy=Ml.set,Jy=Ml.getterFor(Vl);Fl.exports=Gy(Array,"Array",function(t,e){Yy(this,{type:Vl,target:Wy(t),index:0,kind:e})},function(){var t=Jy(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Ht(void 0,!0);switch(t.kind){case"keys":return Ht(r,!1);case"values":return Ht(e[r],!1)}return Ht([r,e[r]],!1)},"values");var $l=Dl.Arguments=Dl.Array;uo("keys");uo("values");uo("entries");if(!Qy&&zy&&$l.name!=="values")try{Ky($l,"name",{value:"values"})}catch{}});var Ul=a((fE,Bl)=>{"use strict";var Xy=x(),Zy=te(),eI=Me();Bl.exports=function(t,e,r){Xy?Zy.f(t,e,eI(0,r)):t[e]=r}});var jl=a(()=>{"use strict";var tI=q(),rI=$t(),iI=Ul();tI({target:"Object",stat:!0},{fromEntries:function(e){var r={};return rI(e,function(i,o){iI(r,i,o)},{AS_ENTRIES:!0}),r}})});var Wl=a((vE,Hl)=>{"use strict";co();jl();var oI=fe();Hl.exports=oI.Object.fromEntries});var Gl=a((gE,Kl)=>{"use strict";Kl.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}});var zl=a(()=>{"use strict";co();var nI=Gl(),aI=S(),sI=Qe(),Ql=ae();for(Wt in nI)sI(aI[Wt],Wt),Ql[Wt]=Ql.Array;var Wt});var Jl=a((yE,Yl)=>{"use strict";var uI=Wl();zl();Yl.exports=uI});var Zl=a((IE,Xl)=>{"use strict";var cI=Jl();Xl.exports=cI});var Io=E(me(),1);var kh=(t,e,r)=>{if(typeof t.canParse=="function")return t.canParse(e,r);try{return new t(e,r),!0}catch{return!1}},Ra=kh;var We=(l=>(l.PROD="prod",l.VK_ALIAS="vk_alias",l.VIDEOTEST="videotest",l.TEST="test",l.OKCDN="okcdn",l.AUTO="auto",l))(We||{}),Qr=(u=>(u.Q144P="mobile",u.Q240P="lowest",u.Q360P="low",u.Q480P="medium",u.Q720P="high",u.Q1080P="fullhd",u.Q1440P="quadhd",u.Q2160P="ultrahd",u.UNKNOWN="unknown",u))(Qr||{}),zr=(v=>(v.MP4="mp4",v.DASH="dash",v.DASH_SEP="dash_sep",v.ONDEMAND_DASH="ondemand_dash",v.HLS="hls",v.HLS_FMP4="hls_fmp4",v.ONDEMAND_HLS="ondemand_hls",v.WEBM="webm",v.AV1="av1",v.ONDEMAND_DASH_LIVE="ondemand_dash_live",v.ONDEMAND_HLS_LIVE="ondemand_hls_live",v.WEBRTC="webrtc",v.UNKNOWN="unknown",v.RTMP="rtmp",v))(zr||{});var Yr=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.HTTP3="http3",i))(Yr||{});var Jr=(c=>(c.SLIDER="slider",c.DOUBLE_TAP="double_tap",c.TIME_CODE="time_code",c.EPISODE="episode",c.REWIND="rewind",c.LIVE="live",c.UNKNOWN="unknown",c))(Jr||{}),Ca=(n=>(n.GRAPH_SHOW="iGraphShow",n.GRAPH_HIDE="iGraphHide",n.NEXT_AREA="iNextChapterArea",n.NEXT_BUTTON="iNextChapterBtn",n.WATCH_AGAIN="iWatchAgainBtn",n))(Ca||{}),La={action_play:"ap",action_play_interactive:"api",first_bytes:"fb",player_ready:"pr",first_frame:"ff",seek:"sk",watch_coverage_record:"wr",watch_coverage_live:"wl",empty_buffer:"eb",action_stop:"as",close_at_empty_buffer:"cb",content_error:"er",player_interface_click:"pc",next_movie:"nm",track_switch:"ts",failover:"fo",quality:"qt"},ka={vsid:"si",isid:"is",vid:"vi",place:"pl",quality:"qt",cdn_host:"ch",stat_type:"st",param:"pm",vk_app_id:"va",track_code:"tc",connection_type:"cnt",connection_reused:"cr",cached_data:"cd",live:"lv",muted:"mu",mode:"mo",subtitles:"sb",failover:"fo",download_speed:"ds",manual_quality:"mq",ref_domain:"rd",direct_url:"du"},Na={unknown:"un",mobile:"m",lowest:"ls",low:"l",medium:"md",high:"h",fullhd:"f",quadhd:"q",ultrahd:"u"},Da={pip:"pi",fullscreen:"fs",external:"ex",prefetch:"pr",airplay:"ap",chromecast:"cc",invisible:"iv",minimal:"minimal"};import{fillWithDefault as Nh}from"@vkontakte/videoplayer-shared";var $a="CIOPGQJGDIHBABABA",Xr={prod:"https://api.ok.ru",vk_alias:"https://api.mycdn.me",videotest:"https://videotestapi.ok.ru/api",test:"https://apitest.ok.ru",okcdn:"https://api.okcdn.ru",auto:""};var Dh={apiEnv:"vk_alias",apiKey:$a,requestRetryCount:1,firstFlushTime:5e3,flushDebounceTime:1e4,flushMaxWait:6e4,storageExpiration:36*60*60*1e3,watchCoverageInterval:15e3,disabledOperations:["quality"],disabledCustomFields:[],shorten:!0,maxLoops:100,embedUrlParams:[],useBeacon:!0,synchronizeTime:!0,debugLog:!1,clearStorageAtUnload:!0,useVKComIsMobileLogic:!1,backoff:{start:1e3,factor:1.5,max:5*60*1e3,random:.1},useKeepalive:!1},Ma=t=>Nh(t,Dh);function Zr(){let t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),r=0,i,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(r<=2&&(r=33554432+Math.random()*16777216|0),i=r&15,r=r>>4,e[o]=t[o===19?i&3|8:i]);return e.join("")}import{assertNonNullable as PI,combine as Sd,fromEvent as _d,isNonNullable as Ce,isNullable as Pd,merge as EI,now as z,observableFrom as TI,once as wI,safeStorage as Ed,Subject as AI,Subscription as So,ValueSubject as er}from"@vkontakte/videoplayer-shared";import{Logger as xI,detectEmbed as OI}from"@vkontakte/videoplayer-shared";var os=E(It(),1),dv=()=>(0,os.default)(Math.floor(Math.random()*2**32).toString(36),13,"0"),Y=class t{static getVSID(){return t.vsid}static generateVSID(){return t.vsid=dv(),t.vsid}};var Kt=E(Ki(),1);var ed=E(Ae(),1),td=E(Zl(),1);var rd=t=>{let{operation:e,custom:r}=t,i=(0,td.default)((0,ed.default)(r).map(([o,n])=>{let l=ka[o]??o,c=n;return n&&(o==="mode"?c=Da[n]??n:o==="quality"&&(c=Na[n]??n)),[l,c]}));return{...t,operation:La[e]??e,custom:i}};var C="1.0.87-dev.292eab83.0";import{ValueSubject as lI,getExponentialDelay as dI,ErrorCategory as xe}from"@vkontakte/videoplayer-shared";var fI=/Mobile|mini|Fennec|Android|iP(ad|od|hone)|opera (mini|mobi)/i,ot=class{constructor(e){this.consequentAuthErrors=0;this.authorized$=new lI(!1);this.params=e}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this._authorizeWithBackoff()}logBeacon(e){let r="log.externalLog",i=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(r,i,o)||this.logRequest(e).catch(()=>{})}async logRequest(e){let r="log.externalLog",i=this.createLogParams(e),o=this.sessionKey??await this._authorizeWithBackoff();if(!o)return;let n=async(l,c=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(r,i,o)}catch(s){if(!s||!("error_code"in s)){this.params.error$.next({id:"logRequestUnknown",category:xe.NETWORK,message:`Unknown ${r} error`,thrown:s});return}let u=s?.error_code;switch(u){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this._authorizeWithBackoff(),c>0?n(l,c-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this._authorizeWithBackoff(),c>0?n(l,c-1):void 0;default:{this.params.error$.next({id:`LogRequest#${u}`,category:xe.EXTERNAL_API,message:`${r} error`,data:s});return}}}};return n(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=(0,Kt.default)(this.params.refreshAuthToken(),()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){let r="WEB",i=!1,o=`@vkontakte/videoplayer-statistics:${C}`;if(this.params.config.useVKComIsMobileLogic){let{appVersion:n}=window.navigator;i=fI.test(n)}else this.params.mobile&&(i=!0);return i&&(r="M_WEB"),this.params.vktvVersion&&(r="SMART_TV",o=this.params.vktvVersion),{collector:"ok.mobile.apps.video",data:JSON.stringify({application:o,platform:r,items:this.params.config.shorten?e.map(rd):e})}}_authorizeWithBackoff(){if(!this.consequentAuthErrors)return this._authorize();let e=dI(this.consequentAuthErrors,this.params.config.backoff);return new Promise(r=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(()=>{(0,Kt.default)(this._authorize().then(r).catch(i=>this.params.error$.next({id:"AuthorizeBackoff",category:xe.NETWORK,message:"Otherwise unhandled error in authorization",thrown:i})),()=>this.backoffTimeoutId=0)},e))})}async _authorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",r={session_data:{version:2,device_id:this.params.deviceId,client_version:C.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(r.session_data.auth_token=this.authToken,r.session_data.version=3),this.authorizePromise=(0,Kt.default)(this.params.apiTransport.sendRequest(e,r).then(i=>((!i||!i.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:xe.EXTERNAL_API,message:"No session key",data:i}),this.sessionKey=i?.session_key??void 0,this.sessionKey)).catch(async i=>{this.sessionKey=void 0;let o=i?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this._authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:xe.EXTERNAL_API,message:"authorize error",data:i}):this.params.error$.next({id:"AuthorizeUnknown",category:xe.NETWORK,message:"authorize error",thrown:i})}),()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};var{NativeAbortSignal:LE,NativeAbortController:kE}=function(t){return{NativeAbortSignal:t.AbortSignal,NativeAbortController:t.AbortController}}(typeof self<"u"?self:global);function id(t){let e;try{e=new Event("abort")}catch{typeof document<"u"?document.createEvent?(e=document.createEvent("Event"),e.initEvent("abort",!1,!1)):(e=document.createEventObject(),e.type="abort"):e={type:"abort",bubbles:!1,cancelable:!1}}return e.reason=t,e}function od(t){if(t===void 0)if(typeof document>"u")t=new Error("This operation was aborted"),t.name="AbortError";else try{t=new DOMException("signal is aborted without reason"),Object.defineProperty(t,"name",{value:"AbortError"})}catch{t=new Error("This operation was aborted"),t.name="AbortError"}return t}var Gt=class{constructor(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}addEventListener(e,r,i){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push({callback:r,options:i})}removeEventListener(e,r){if(!(e in this.listeners))return;let i=this.listeners[e];for(let o=0,n=i.length;o<n;o++)if(i[o].callback===r){i.splice(o,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return;let i=this.listeners[e.type].slice();for(let o=0,n=i.length;o<n;o++){let l=i[o];try{l.callback.call(this,e)}catch(c){Promise.resolve().then(()=>{throw c})}l.options&&l.options.once&&this.removeEventListener(e.type,l.callback)}return!e.defaultPrevented}},Oe=class extends Gt{constructor(){super(),this.listeners||Gt.call(this),Object.defineProperty(this,"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(this,"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(this,"reason",{value:void 0,writable:!0,configurable:!0})}toString(){return"[object AbortSignal]"}dispatchEvent(e){e.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,e)),super.dispatchEvent(e)}throwIfAborted(){let{aborted:e,reason:r="Aborted"}=this;if(e)throw r}static timeout(e){let r=new se;return setTimeout(()=>r.abort(new DOMException(`This signal is timeout in ${e}ms`,"TimeoutError")),e),r.signal}static any(e){let r=new se;function i(){r.abort(this.reason),o()}function o(){for(let n of e)n.removeEventListener("abort",i)}for(let n of e)if(n.aborted){r.abort(n.reason);break}else n.addEventListener("abort",i);return r.signal}},se=class{constructor(){Object.defineProperty(this,"signal",{value:new Oe,writable:!0,configurable:!0})}abort(e){let r=od(e),i=id(r);this.signal.reason=r,this.signal.dispatchEvent(i)}toString(){return"[object AbortController]"}};typeof Symbol<"u"&&Symbol.toStringTag&&(se.prototype[Symbol.toStringTag]="AbortController",Oe.prototype[Symbol.toStringTag]="AbortSignal");function Qt(t){return t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof t.Request=="function"&&!t.Request.prototype.hasOwnProperty("signal")||!t.AbortController}function lo(t){typeof t=="function"&&(t={fetch:t});let{fetch:e,Request:r=e.Request,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o=!1}=t;if(!Qt({fetch:e,Request:r,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o}))return{fetch:e,Request:n};let n=r;(n&&!n.prototype.hasOwnProperty("signal")||o)&&(n=function(u,f){let p;f&&f.signal&&(p=f.signal,delete f.signal);let d=new r(u,f);return p&&Object.defineProperty(d,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),d},n.prototype=r.prototype);let l=e;return{fetch:(s,u)=>{let f=n&&n.prototype.isPrototypeOf(s)?s.signal:u?u.signal:void 0;if(f){let p;try{p=new DOMException("Aborted","AbortError")}catch{p=new Error("Aborted"),p.name="AbortError"}if(f.aborted)return Promise.reject(p);let d=new Promise((h,v)=>{f.addEventListener("abort",()=>v(p),{once:!0})});return u&&u.signal&&delete u.signal,Promise.race([d,l(s,u)])}return l(s,u)},Request:n}}var pI=()=>"fetch"in window,nt=pI()&&Qt({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}),nd=nt?lo({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}):void 0,qe=nt?nd.fetch:window.fetch,HE=nt?nd.Request:window.Request,WE=nt?se:window.AbortController,KE=nt?Oe:window.AbortSignal;var ad=E(me(),1),sd=E(Ae(),1);import{ErrorCategory as zt,now as fo}from"@vkontakte/videoplayer-shared";var at=class{constructor(e){this.params=e,this.apiKey=e.config.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=Xr[this.apiEnv],this.timeSynchronisation=e.timeSynchronisation,this.isApiBaseUrlFetched=!1}async resolveApiBaseUrl(){if(this.apiEnv!=="auto"||this.isApiBaseUrlFetched)return this.apiBaseUrl;try{let e=atob("aHR0cHM6Ly9kbnMuZ29vZ2xlL3Jlc29sdmU/bmFtZT12aWRlby5fZW5kcG9pbnQub2sucnUmdHlwZT1UWFQ="),o=(await(await qe(e,{method:"GET",mode:"cors",cache:"no-cache"})).json())?.Answer[0]?.data;if(!o)throw new Error("Wrong DNS response");return o}catch(e){return this.params.error$.next({id:"OneStat:ApiTransport:resolveApiBaseUrl",category:zt.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),Xr.vk_alias}finally{this.isApiBaseUrlFetched=!0}}sendBeacon(e,r,i){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this._prepareQueryParams({method:e,queryParams:r,sessionKey:i}),n=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,n)}catch(l){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:zt.NETWORK,message:"Unhandled beacon error",thrown:l,data:{method:e,params:r}})}return!1}async sendRequest(e,r,i){let o=fo(),n=c=>{if(c instanceof TypeError&&(0,ad.default)(["Failed to fetch","NetworkError when attempting to fetch resource."],c.message)){this.params.error$.next({id:"Network",category:zt.NETWORK,message:"Request failed",thrown:c});return}this.params.error$.next({id:"OneStat:ApiTransport:sendRequest",category:zt.NETWORK,message:"Unhandled request error",thrown:c,data:{method:e,params:r,sessionKey:i,time:fo()-o}})};this.apiBaseUrl=await this.resolveApiBaseUrl();let l={method:"post",headers:{"Content-type":"application/x-www-form-urlencoded"},body:this._prepareQueryParams({method:e,queryParams:r,sessionKey:i})};return this.params.config.useKeepalive&&(l.keepalive=!0),qe(`${this.apiBaseUrl}/fb.do`,l).then(c=>{let s=Number(c.headers.get("content-length"))===0,u=new Date(c.headers.get("date")??"").getTime(),f=fo()-o;if(isFinite(u)&&this.timeSynchronisation?.addServerTime(u,f),!s)return c.json().then(p=>Object.prototype.hasOwnProperty.call(p,"error_msg")?Promise.reject(p):p,n)},n)}_prepareQueryParams(e){let r=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&r.append("session_key",e.sessionKey),(0,sd.default)(e.queryParams).forEach(([i,o])=>r.append(i,typeof o=="string"?o:JSON.stringify(o))),r}};var cd=E(me(),1),ld=E(Ae(),1);import{ErrorCategory as hI,now as vI,safeStorage as st,debounceFn as ud}from"@vkontakte/videoplayer-shared";var Yt="onestat_events",po=t=>e=>e.timestamp+t>=vI(),Jt=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{operation:r}=e;return(0,cd.default)(["action_play","watch_coverage_record","watch_coverage_live"],r)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=ud(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let r=st.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=ud(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:r}),this.subscription=this.api.authorized$.subscribe(i=>{i&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:hI.WTF,message:e?String(e):"Unknown logger error",thrown:e})}}readFromStorage(){let e=st.get(Yt);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let r=this.readFromStorage(),o=(r[this.userSalt]??[]).filter(po(this.params.config.storageExpiration));st.set(Yt,JSON.stringify({...r,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(po(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],st.set(Yt,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[r,i]of(0,ld.default)(e)){let o=i.filter(po(this.params.config.storageExpiration));o.length?e[r]=o:delete e[r],this.loggerDebugLog({message:`${i.length} retrieved from storage, ${o.length} of them actual`})}st.set(Yt,JSON.stringify(e))}log(e){this.addToStorage(e),!this.isPaused&&(this.isUrgent(e)?this.flush():this.lastVsid!==e.custom.vsid?this.firstFlush():this.debouncedFlush(),this.lastVsid=e.custom.vsid)}flush({wantBeacon:e,clearStorage:r}={wantBeacon:!1,clearStorage:!0}){let i=this.getFromStorage();i.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${i.length} events through beacon`}),this.api.logBeacon(i)):(this.loggerDebugLog({message:`Flushing ${i.length} events`}),this.api.logRequest(i)),r&&this.markStorageSent()):this.api.authorize(),this.firstFlush.cancel(),this.debouncedFlush.cancel())}pause(){this.isPaused=!0,this.debouncedFlush.cancel()}resume(){this.isPaused=!1,this.debouncedFlush()}destroy(){this.subscription.unsubscribe(),this.firstFlush.cancel(),this.debouncedFlush.cancel()}};import{HttpConnectionType as ho,Surface as Re,VideoFormat as T,VideoQuality as V}from"@vkontakte/videoplayer-core";import{assertNever as dd}from"@vkontakte/videoplayer-shared";var fd=t=>t&&{[V.INVARIANT]:"unknown",[V.Q_144P]:"mobile",[V.Q_240P]:"lowest",[V.Q_360P]:"low",[V.Q_480P]:"medium",[V.Q_576P]:"unknown",[V.Q_720P]:"high",[V.Q_1080P]:"fullhd",[V.Q_1440P]:"quadhd",[V.Q_2160P]:"ultrahd",[V.Q_4320P]:"unknown"}[t],vo=t=>t&&{[ho.HTTP1]:"http1",[ho.HTTP2]:"http2",[ho.QUIC]:"http3"}[t],pd=t=>{if(t!==void 0)switch(t){case T.MPEG:return"mp4";case T.DASH:case T.DASH_LIVE:case T.DASH_STREAMS:return"dash";case T.DASH_SEP:return"dash_sep";case T.DASH_ONDEMAND:return"ondemand_dash";case T.DASH_WEBM:case T.DASH_LIVE_WEBM:return"webm";case T.DASH_WEBM_AV1:return"av1";case T.DASH_LIVE_CMAF:return"ondemand_dash_live";case T.HLS:case T.HLS_LIVE:return"hls";case T.HLS_FMP4:return"hls_fmp4";case T.HLS_ONDEMAND:return"ondemand_hls";case T.HLS_LIVE_CMAF:return"ondemand_hls_live";case T.WEB_RTC_LIVE:return"webrtc";default:return dd(t)}},go=(t,e)=>{if(e)return"minimal";switch(t){case void 0:case Re.NONE:case Re.INLINE:return;case Re.FULLSCREEN:return"fullscreen";case Re.SECOND_SCREEN:return"chromecast";case Re.PIP:return"pip";case Re.INVISIBLE:return"invisible";default:return dd(t)}},hd=t=>{switch(t){case"slow-2g":return"poor";case"2g":return"poor";case"3g":return"good";case"4g":return"excellent"}};var Xt=class{constructor(e){this.offset=void 0;this.offset=e}getOffset(){return this.offset??0}setOffset(e){this.offset=e}now(){return Date.now()+(this.offset??0)}date(e=new Date){return e.setTime(e.getTime()+(this.offset??0)),e}addServerTime(e,r){let i=Date.now(),o=e-i-r/2;if(Math.abs(o)<1e3){this.offset=0;return}this.offset===void 0?this.offset=Math.round(o):this.offset=Math.round(.2*o+(1-.2)*this.offset)}};var vd=E(It(),1);var gd=()=>(0,vd.default)(Math.floor(Math.random()*2**64).toString(36),13,"0");import{PlaybackState as md}from"@vkontakte/videoplayer-core";import{filter as bd,filterChanged as gI,fromEvent as mI,isNullable as yd,map as bI,merge as mo,Observable as yI,Subject as bo,Subscription as II,ValueSubject as SI}from"@vkontakte/videoplayer-shared";var Id=(t,e)=>new yI(r=>{let i=new II,o=mo(mI(window,"beforeunload"),t.events.willDestruct$),n=new SI(void 0),l;i.add(t.info.isLive$.pipe(gI()).subscribe(I=>{l&&(l.unsubscribe(),n.next(void 0)),I?l=t.info.liveTime$.pipe(bI(le=>le&&le/1e3)).subscribe(n):l=t.info.position$.subscribe(n),i.add(l)}));let{playing$:c,paused$:s}=t.events,u=t.events.willSeek$.pipe(bd(()=>t.info.playbackState$.getValue()===md.PLAYING)),f=t.events.seeked$.pipe(bd(()=>t.info.playbackState$.getValue()===md.PLAYING)),p=!1,d=new bo;i.add(u.subscribe(()=>{p||d.next(),p=!0})),i.add(f.subscribe(()=>p=!1));let h=new bo,v=new bo,m=mo(c,f,h),g=mo(s,d,o,t.events.looped$,v),b,y=()=>b=n.getValue(),L=()=>{let I=n.getValue();yd(b)||b===I||yd(I)||(r.next({from:b,to:I}),b=void 0)},k=()=>{v.next(),h.next()};if(i.add(m.subscribe(y)),i.add(g.subscribe(L)),e.forceInterval&&isFinite(e.forceInterval)){let I=0;i.add(m.subscribe(()=>I=window.setTimeout(k,e.forceInterval))),i.add(g.subscribe(()=>window.clearTimeout(I)))}return i});import{Surface as j}from"@vkontakte/videoplayer-core";import{Subject as _I}from"@vkontakte/videoplayer-shared";var Zt=(t,e,r)=>{let i=new _I,o=!1,n=!1,l=!1;return e(t.inPiP$,c=>{o=c,i.next(c?j.PIP:n?j.FULLSCREEN:l?j.INLINE:void 0)}),e(t.inFullscreen$,c=>{n=c,i.next(c?j.FULLSCREEN:o?j.PIP:l?j.INLINE:void 0)}),r&&e(r.info.surface$,c=>{switch(c){case j.SECOND_SCREEN:case j.NONE:case j.INLINE:{!n&&!o&&(c===j.INLINE&&(l=!0),i.next(c));break}}}),{surface$:i}};var qI="_one-stat_",Td=`${qI}deviceId`,yo=()=>{let t=new So;return{subscription:t,subscribe:(e,r)=>{e&&t.add(e.subscribe(r))}}},_o=class{constructor(e,r){this.subscription=new So;this.debugLogger=new xI;this.oneStatDebugLog=this.debugLogger.createComponentLog("onestat");this.loopCounter=0;this.disabled=!1;this.isid$=new er(void 0);this.zenUid$=new er(void 0);this.seekAction$=new er("unknown");this.statContext=e,this.config=Ma(r.config??{}),Ce(r.apiEnv)&&(this.config.apiEnv=r.apiEnv),this.config.synchronizeTime&&(this.timeSynchronisation=new Xt);let i=new AI;this.experimental={error$:i};let o=Ed.get(Td);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:o?this.deviceId=o:(this.deviceId=Zr(),Ed.set(Td,this.deviceId)),this.resetViewSession(),r.useIsid&&this.isid$.next(r.isid??gd()),this.zenUid$.next(r.zenUid);let n=new at({config:this.config,error$:i,timeSynchronisation:this.timeSynchronisation});this.api=new ot({config:this.config,apiTransport:n,refreshAuthToken:r.refreshAuthToken,mobile:this.statContext.mobile??!1,deviceId:this.deviceId,error$:i,vktvVersion:r.vktvVersion}),this.logger=new Jt({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:i,userSalt:r.userSalt});let{isEmbed:l,topOrigin:c}=OI();this.isEmbed=l,this.embedParent=c?new URL(c).hostname:void 0,this.subscribe()}get vsid$(){return new er(Y.getVSID())}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e){let r=new So,i=(d,h)=>r.add(d.subscribe(h));i(e.events.willStart$,()=>{let d=e.info.position$.getValue();this.logActionPlay({position:d}),this.statContext.projectId&&this.logActionPlayInteractive()}),i(e.events.looped$,()=>{this.resetViewSession(),++this.loopCounter>this.config.maxLoops&&(this.disabled=!0),this.logActionPlay({position:e.info.position$.getValue()})}),i(e.events.seeked$,()=>{this.logSeek({action:this.seekAction$.getValue(),time:e.info.position$.getValue()}),this.seekAction$.next("unknown")}),i(e.events.paused$,()=>{this.logPause({position:e.info.position$.getValue()})}),i(e.events.willResume$,()=>{this.logPlay()}),i(e.events.started$,()=>{this.statContext.clip&&this.logWatchCoverageRecord({start:0,end:0})}),i(e.events.playing$,()=>{this.logPlaying()}),i(Id(e,{forceInterval:this.config.watchCoverageInterval}),d=>{let h=e.info.isLive$.getValue(),v=e.info.atLiveEdge$.getValue(),m={start:parseFloat(d.from.toFixed(3)),end:parseFloat(d.to.toFixed(3))};if(v){let g=e.info.liveLatency$.getValue()??0,b=e.info.currentBuffer$.getValue()?.end??0,y=e.info.liveBufferTime$.getValue()??0,L=Math.round((g-(b-y))*1e3),k=Math.round(g*1e3);L&&k&&(m.latency=L,m.bufferLatency=k)}h?this.logWatchCoverageLive(m):this.logWatchCoverageRecord(m)});let o;i(e.info.isStalled$,d=>{d?o=z():(Ce(o)&&this.logEmptyBuffer({duration:z()-o}),o=void 0)});let n=!1;r.add(e.events.fatalError$.pipe(wI()).subscribe(()=>n=!0)),i(e.events.willStop$,()=>{if(e.info.isStalled$.getValue()){let h=Ce(o)?z()-o:void 0;this.logCloseAtEmptyBuffer({duration:h??0}),o=void 0}else n||this.logActionStop()}),i(e.events.managedError$,({id:d})=>{this.logError({fatal:!1,errorType:d})}),i(e.events.fatalError$,({id:d})=>{this.logError({fatal:!0,errorType:d})});let l,c,s=!1;i(e.events.firstBytes$,d=>{l=z(),this.logFirstBytes({time:d})}),i(e.events.willStart$,()=>c=z()),i(e.info.currentBuffer$,d=>{!s&&d&&d.end-d.start>0&&Ce(l)&&(this.logPlayerReady({duration:z()-l}),s=!0)}),i(e.events.firstFrame$,()=>{Ce(l)&&!s&&(this.logPlayerReady({duration:z()-l}),s=!0),Ce(c)&&this.logFirstFrame({time:z()-c})});let u;i(e.info.currentVideoStream$,d=>{d&&(u&&d.id!==u&&this.logTrackSwitch(d),u=d.id)});let f;i(e.info.currentAudioStream$,d=>{d&&(f&&d.id!==f&&this.logTrackSwitch(d),f=d.id)}),i(e.info.atLiveEdge$,d=>this.updateContext({liveEdge:d})),i(Sd({muted:e.info.muted$,volume:e.info.volume$}),({muted:d,volume:h})=>this.updateContext({audible:!d&&h>0})),i(e.info.currentQuality$,d=>{let h=fd(d);this.updateContext({quality:h}),h&&this.logQuality(h)}),i(e.info.isAutoQualityEnabled$,d=>this.updateContext({autoQuality:d})),i(e.info.currentFormat$,d=>this.updateContext({contentType:pd(d)})),i(e.info.currentPlaybackRate$,d=>this.updateContext({rate:d})),i(e.info.is3DVideo$,d=>this.updateContext({is3d:d}));let p;return i(e.info.hostname$,d=>{let h=p!==void 0&&p!==d;this.updateContext({cdnHostname:d,failover:h}),h&&this.logFailover(d),p=d}),i(e.info.throughputEstimation$,d=>this.updateContext({downloadSpeed:d})),i(e.info.httpConnectionType$,d=>{this.statContext.firstConnectionType||this.updateContext({firstConnectionType:vo(d)}),this.updateContext({connectionType:vo(d)})}),i(e.info.httpConnectionReused$,d=>{Pd(this.statContext.firstConnectionReused)&&this.updateContext({firstConnectionReused:d}),this.updateContext({connectionReused:d})}),i(e.info.surface$,d=>{this.uiEvents||this.updateContext({mode:go(d,this.statContext.isPreviewPlayerView)})}),i(Sd({current:e.info.currentTextTrack$,available:e.info.availableTextTracks$}),({current:d,available:h})=>{let v=h.find(({id:g})=>g===d),m=v&&(v.isAuto?`${v.language}_auto`:v.language);this.updateContext({subtitles:m?.split(".")[0]})}),this.player=e,this.resubscribeBeforeunload(),this.subscription.add(r),r}attachToUi(e){this.uiEvents=e;let{subscription:r,subscribe:i}=yo();if(!this.player)return r;i(e.actionRewind$,()=>{this.player&&(this.resetViewSession(),this.logActionPlay({position:this.player.info.position$.getValue()}))}),i(e.actionSeek$,this.seekAction$);let{surface$:o}=Zt(this.uiEvents,i,this.player);return i(o,n=>this.updateContext({mode:go(n)})),i(e.actionSetSubtitle$,n=>this.updateContext({subtitles:n?.split(".")[0]})),i(e.nextMovie$,n=>this.logNextMovie(n)),this.resubscribeBeforeunload(),this.subscription.add(r),r}attachToAds(e){let{subscription:r,subscribe:i}=yo();return i(e.slotRequested$,()=>this.logAdSlotRequest()),i(e.started$,o=>this.logAdStarted(o)),i(e.paused$,()=>this.logAdPaused()),i(e.resumed$,()=>this.logAdResumed()),i(e.ended$,()=>this.logAdEnded()),i(e.skipped$,()=>this.logAdSkipped()),i(e.clicked$,()=>this.logAdClicked()),i(e.error$,o=>this.logError({errorType:o,fatal:!1})),this.resubscribeBeforeunload(),this.subscription.add(r),r}attachToInteractive(e){let{subscription:r,subscribe:i}=yo();return i(e.click$,o=>this.logInterfaceClick(o)),i(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(r),r}authorize(e){return this.api.authorize(e)}pause(){this.logger.pause(),this.oneStatDebugLog({message:"paused"})}resume(){this.logger.resume(),this.oneStatDebugLog({message:"resumed"})}destroy(){this.logger.flush(),this.subscription.unsubscribe(),this.api.destroy(),this.logger.destroy()}resetViewSession(){this.oneStatDebugLog({message:"VSID reset"}),Y.generateVSID()}getDeviceId(){return this.deviceId}setFieldBlacklist(){}logInited(){}logReady(e){this.log({operation:"player_ready",param:String(e.time)})}logStarted(...e){this.logActionPlay(...e)}logPlay(){this.log({operation:"play_toggle"})}logPlaying(){this.log({operation:"playing"})}logPause(e){this.log({operation:"pause",param:String(Math.round(e.position))})}logSeek(e){this.log({operation:"seek",param:e.action,time:e.time})}logFirstBytes(e){this.log({operation:"first_bytes",param:String(e.time)})}logFirstFrame(e){this.log({operation:"first_frame",param:String(e.time)})}logError(e){this.log({operation:"content_error",param:`${e.fatal?"fatal":"recoverable"}_${e.errorType}`})}logWatchCoverageRecord(e){this.log({operation:"watch_coverage_record",param:`${e.start}-${e.end}`},{in_history:this.statContext.inHistory?1:void 0})}logWatchCoverageLive(e){let r=this.timeSynchronisation?.getOffset()??0,i=e.start+r,o=e.end+r;this.log({operation:"watch_coverage_live",param:`${i}-${o}`},{in_history:this.statContext.inHistory?1:void 0,latency:e.latency,buffer_latency:e.bufferLatency})}logEmptyBuffer(e){this.log({operation:"empty_buffer",param:String(e.duration)})}logDownloadSpeed(){}logAdSlotRequest(){this.log({operation:"adv",param:"slot_request"})}logAdStarted(e){this.log({operation:"adv",param:e})}logAdPaused(){this.log({operation:"adv",param:"pause"})}logAdResumed(){this.log({operation:"adv",param:"resume"})}logAdEnded(){this.log({operation:"adv",param:"ended"})}logAdSkipped(){this.log({operation:"adv",param:"skip"})}logAdClicked(){this.log({operation:"adv",param:"click"})}logInterfaceClick(e){this.log({operation:"player_interface_click",param:e})}logNextMovie(e){this.log({operation:"next_movie",param:String(e)})}subscribe(){this.resubscribeBeforeunload();let e=window.navigator.connection;e&&"onchange"in e&&"effectiveType"in e&&this.subscription.add(EI(_d(e,"change"),TI(["init"])).subscribe(()=>this.updateContext({network:hd(e.effectiveType)}))),this.config.debugLog&&this.debugLogger.log$.subscribe(r=>{console.debug("%c stat ","background:#fa6470;",`component: ${r.component}.`,r.message)})}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=_d(window,"beforeunload").subscribe(()=>this.logger.flush({wantBeacon:!0,clearStorage:this.config.clearStorageAtUnload})),this.subscription.add(this.beforeunloadSubscription)}logPlayerReady(e){this.log({operation:"player_ready",param:String(Math.round(e.duration))})}logActionPlay(e){this.log({operation:"action_play",param:String(Math.round(e.position))})}logActionPlayInteractive(){this.statContext.projectId&&this.log({operation:"action_play_interactive",param:String(this.statContext.movieId)},{vid:this.statContext.projectId})}logFailover(e){this.log({operation:"failover",param:e})}logCloseAtEmptyBuffer(e){this.log({operation:"close_at_empty_buffer",param:String(Math.round(e.duration))})}logActionStop(){this.log({operation:"action_stop"})}logTrackSwitch(e){this.log({operation:"track_switch",param:e.id})}logQuality(e){this.log({operation:"quality",param:e})}log(e,r={}){if(this.disabled){this.oneStatDebugLog({message:`operation ${e.operation} but statistics is disabled`});return}if((0,Io.default)(this.config.disabledOperations,e.operation)){this.oneStatDebugLog({message:`operation ${e.operation} but it is disabled`});return}this.oneStatDebugLog({message:`operation ${e.operation} ${e.param}`});let i=this.createLogItem(e,r);this.logger.log(i)}createLogItem({operation:e,param:r,time:i},o={}){let n=this.timeSynchronisation?.now()??z(),l=this.vsid$.getValue();PI(l);let c=this.isid$.getValue(),s=e==="empty_buffer"||e==="close_at_empty_buffer"?this.statContext.connectionType:this.statContext.firstConnectionType,u=this.statContext.firstConnectionReused,f,p;if(this.isEmbed||this.statContext.place==="embed"){f=this.embedParent;let h=[...new URLSearchParams(location.search).entries()].filter(([v,m])=>(0,Io.default)(this.config.embedUrlParams,v));p=new URLSearchParams(h).toString()}else if(this.statContext.place==="direct"){let h=this.statContext.refDomain||document.referrer;h&&Ra(URL,h)?f=new URL(h).hostname:f=h,p=location.href.substring(0,1024)}let d={vsid:l,isid:c,vid:this.statContext.movieId,uid:this.zenUid$.getValue(),ct:this.statContext.contentType,place:this.isEmbed?"embed":this.statContext.place,quality:this.statContext.quality,cdn_host:this.statContext.cdnHostname,stat_type:this.statContext.autoplay===!0?"auto":this.statContext.autoplay===!1?"":void 0,param:r,vk_app_id:this.statContext.vkAppId,track_code:this.statContext.trackCode,connection_type:s,connection_reused:u===!0?1:u===!1?0:void 0,cached_data:this.statContext.cached===!0?1:this.statContext.cached===!1?0:void 0,live:this.statContext.liveEdge?1:void 0,muted:this.statContext.audible===!1?1:void 0,mode:this.statContext.mode,subtitles:this.statContext.subtitles,download_speed:this.statContext.downloadSpeed,manual_quality:this.statContext.autoQuality?void 0:1,ref_domain:f,direct_url:p,rate:this.statContext.rate===1||Pd(this.statContext.rate)?void 0:this.statContext.rate.toFixed(2),view_360:this.statContext.is3d?1:void 0,aid:this.statContext.albumId,vk_playlist_id:this.statContext.vkPlaylistId,...o};for(let h of this.config.disabledCustomFields)delete d[h];return{operation:e,type:1,time:i,network:this.statContext.network,timestamp:n,custom:d}}};var Yd={};df(Yd,{SeekType:()=>tr,ThinOneStat:()=>lr,VERSION:()=>C});import{assertNonNullable as WI,detectEmbed as KI,fromEvent as GI,Logger as QI,merge as Co,combine as zI,filter as YI,filterChanged as JI,safeStorage as Kd,Subject as XI,Subscription as ko,ValueSubject as Lo}from"@vkontakte/videoplayer-shared";import{clientChecker as ce,PlaybackState as Gd}from"@vkontakte/videoplayer-core";import{fillWithDefault as RI}from"@vkontakte/videoplayer-shared";var tr=(c=>(c.SLIDER="slider",c.DOUBLE_TAP="double_tap",c.TIME_CODE="time_code",c.EPISODE="episode",c.REWIND="rewind",c.LIVE="live",c.UNKNOWN="unknown",c))(tr||{});var Ad="CIOPGQJGDIHBABABA",Po={prod:"https://api.ok.ru",vk_alias:"https://api.mycdn.me",videotest:"https://videotestapi.ok.ru/api",test:"https://apitest.ok.ru",okcdn:"https://api.okcdn.ru",auto:""};var CI={apiKey:Ad,apiEnv:"okcdn",requestRetryCount:1,firstFlushTime:5e3,flushDebounceTime:1e4,flushMaxWait:6e4,storageExpiration:36*60*60*1e3,watchCoverageHeartbeatInterval:30,synchronizeTime:!0,useBeacon:!1,alwaysSendDesktop:!1},xd=t=>RI(t,CI);var Eo=E(Ki(),1);import{getExponentialDelay as LI,ErrorCategory as Le,ValueSubject as kI}from"@vkontakte/videoplayer-shared";var rr=class{constructor(e){this.params=e,this.authorized$=new kI(!1),this.consequentAuthErrors=0}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this.authorizeWithBackoff()}logBeacon(e){let r="log.logUvStat",i=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(r,i,o)||this.logRequest(e).catch(()=>{})}async logRequest(e){let r="log.logUvStat",i=this.createLogParams(e),o={},n=this.sessionKey??await this.authorizeWithBackoff();if(!n)return;let l=async(c,s=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(r,i,n,o)}catch(u){if(!u||!("error_code"in u)){this.params.error$.next({id:"logRequestUnknown",category:Le.NETWORK,message:`Unknown ${r} error`,thrown:u});return}let f=u?.error_code;switch(f){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this.authorizeWithBackoff(),s>0?l(c,s-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this.authorizeWithBackoff(),s>0?l(c,s-1):void 0;default:{this.params.error$.next({id:`LogRequest#${f}`,category:Le.EXTERNAL_API,message:`${r} error`,data:u});return}}}};return l(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=(0,Eo.default)(this.params.refreshAuthToken(),()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){return{collector:"ok.mobile.apps.video",uv_stat_data:JSON.stringify({application:`@vkontakte/videoplayer-statistics:${C}`,platform:e[0].platform,product:e[0].product,events:e})}}authorizeWithBackoff(){if(!this.consequentAuthErrors)return this.doAuthorize();let e=LI(this.consequentAuthErrors);return new Promise(r=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(async()=>{try{let i=await this.doAuthorize();r(i)}catch(i){this.params.error$.next({id:"AuthorizeBackoff",category:Le.NETWORK,message:"Otherwise unhandled error in authorization",thrown:i})}finally{this.backoffTimeoutId=0}},e))})}doAuthorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",r={session_data:{version:2,device_id:this.params.deviceId,client_version:C.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(r.session_data.auth_token=this.authToken,r.session_data.version=3),this.authorizePromise=(0,Eo.default)(this.params.apiTransport.sendRequest(e,r).then(i=>((!i||!i.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:Le.EXTERNAL_API,message:"No session key",data:i}),this.sessionKey=i?.session_key??void 0,this.sessionKey)).catch(async i=>{this.sessionKey=void 0;let o=i?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this.authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:Le.EXTERNAL_API,message:"authorize error",data:i}):this.params.error$.next({id:"AuthorizeUnknown",category:Le.NETWORK,message:"authorize error",thrown:i})}),()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};var Od=E(me(),1);var qd=E(Ae(),1);import{now as To,ErrorCategory as ir}from"@vkontakte/videoplayer-shared";var or=class{constructor(e){this.params=e,this.apiKey=e.config.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=Po[this.apiEnv],this.timeSynchronisation=e.timeSynchronisation,this.isApiBaseUrlFetched=!1}sendBeacon(e,r,i){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this.prepareQueryParams({method:e,queryParams:r,sessionKey:i}),n=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,n)}catch(l){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:ir.NETWORK,message:"Unhandled beacon error",thrown:l,data:{method:e,params:r}})}return!1}async sendRequest(e,r,i,o){let n=To(),l=c=>{if(c instanceof TypeError&&(0,Od.default)(["Failed to fetch","NetworkError when attempting to fetch resource."],c.message)){this.params.error$.next({id:"Network",category:ir.NETWORK,message:"Request failed",thrown:c});return}this.params.error$.next({id:"ThinOneStat:ApiTransport:sendRequest",category:ir.NETWORK,message:"Unhandled request error",thrown:c,data:{method:e,params:r,sessionKey:i,time:To()-n}})};return this.apiBaseUrl=await this.resolveApiBaseUrl(),qe(`${this.apiBaseUrl}/fb.do`,{method:"post",headers:{"Content-type":"application/x-www-form-urlencoded",...o},body:this.prepareQueryParams({method:e,queryParams:r,sessionKey:i})}).then(c=>{let s=Number(c.headers.get("content-length"))===0,u=new Date(c.headers.get("date")??"").getTime(),f=To()-n;if(isFinite(u)&&this.timeSynchronisation?.addServerTime(u,f),!s)return c.json().then(p=>Object.prototype.hasOwnProperty.call(p,"error_msg")?Promise.reject(p):p,l)},l)}async resolveApiBaseUrl(){if(this.apiEnv!=="auto"||this.isApiBaseUrlFetched)return this.apiBaseUrl;try{let e=atob("aHR0cHM6Ly9kbnMuZ29vZ2xlL3Jlc29sdmU/bmFtZT12aWRlby5fZW5kcG9pbnQub2sucnUmdHlwZT1UWFQ="),o=(await(await qe(e,{method:"GET",mode:"cors",cache:"no-cache"})).json())?.Answer[0]?.data;if(!o)throw new Error("Wrong DNS response");return o}catch(e){return this.params.error$.next({id:"ThinOneStat:ApiTransport:resolveApiBaseUrl",category:ir.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),Po.vk_alias}finally{this.isApiBaseUrlFetched=!0}}prepareQueryParams(e){let r=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&r.append("session_key",e.sessionKey),(0,qd.default)(e.queryParams).forEach(([i,o])=>r.append(i,typeof o=="string"?o:JSON.stringify(o))),r}};var Cd=E(me(),1),Ld=E(Ae(),1);import{ErrorCategory as NI,now as DI,safeStorage as ut,debounceFn as Rd}from"@vkontakte/videoplayer-shared";var nr="thinonestat_events",wo=t=>e=>e.client_time+t>=DI(),ar=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{event_name:r}=e;return(0,Cd.default)(["watch_coverage","watch_coverage_live","watched_n","playback_started"],r)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=Rd(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let r=ut.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=Rd(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:r}),this.subscription=this.api.authorized$.subscribe(i=>{i&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:NI.WTF,message:String(e)||"Unknown logger error",thrown:e})}}readFromStorage(){let e=ut.get(nr);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let r=this.readFromStorage(),o=(r[this.userSalt]??[]).filter(wo(this.params.config.storageExpiration));ut.set(nr,JSON.stringify({...r,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(wo(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],ut.set(nr,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[r,i]of(0,Ld.default)(e)){let o=i.filter(wo(this.params.config.storageExpiration));o.length?e[r]=o:delete e[r],this.loggerDebugLog({message:`${i.length} retrieved from storage, ${o.length} of them actual`})}ut.set(nr,JSON.stringify(e))}log(e){this.addToStorage(e),!this.isPaused&&(this.isUrgent(e)?this.flush():this.lastVsid!==e.vsid?this.firstFlush():this.debouncedFlush(),this.lastVsid=e.vsid)}flush({wantBeacon:e,clearStorage:r}={wantBeacon:!1,clearStorage:!0}){let i=this.getFromStorage();i.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${i.length} events through beacon`}),this.api.logBeacon(i)):(this.loggerDebugLog({message:`Flushing ${i.length} events`}),this.api.logRequest(i)),r&&this.markStorageSent()):this.api.authorize(),this.firstFlush.cancel(),this.debouncedFlush.cancel())}pause(){this.isPaused=!0,this.debouncedFlush.cancel()}resume(){this.isPaused=!1,this.debouncedFlush()}destroy(){this.subscription.unsubscribe(),this.firstFlush.cancel(),this.debouncedFlush.cancel()}};function Ao(){let t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),r=0,i,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(r<=2&&(r=33554432+Math.random()*16777216|0),i=r&15,r=r>>4,e[o]=t[o===19?i&3|8:i]);return e.join("")}var sr=class{constructor(e){this.offset=void 0;this.offset=e}getOffset(){return this.offset??0}setOffset(e){this.offset=e}now(){return Date.now()+(this.offset??0)}date(e=new Date){return e.setTime(e.getTime()+(this.offset??0)),e}addServerTime(e,r){let i=Date.now(),o=e-i-r/2;if(Math.abs(o)<1e3){this.offset=0;return}this.offset===void 0?this.offset=Math.round(o):this.offset=Math.round(.2*o+(1-.2)*this.offset)}};import{PlaybackState as kd}from"@vkontakte/videoplayer-core";import{Observable as $I,Subscription as MI,ValueSubject as VI,Subject as xo,fromEvent as FI,isNullable as Nd,merge as ct,filter as Dd,filterChanged as $d}from"@vkontakte/videoplayer-shared";var Md=(t,e,r)=>new $I(i=>{let o=new MI,n=new VI(void 0),l;o.add(t.info.isLive$.pipe($d()).subscribe(H=>{l&&(l.unsubscribe(),n.next(void 0)),H?l=t.info.liveTime$.pipe($d()).subscribe(n):l=t.info.position$.subscribe(n),o.add(l)}));let{playing$:c,paused$:s,ended$:u,looped$:f}=t.events,p=t.events.willSeek$.pipe(Dd(()=>t.info.playbackState$.getValue()===kd.PLAYING)),d=t.events.seeked$.pipe(Dd(()=>t.info.playbackState$.getValue()===kd.PLAYING)),h=!1,v=new xo;o.add(p.subscribe(()=>{h||v.next(),h=!0})).add(d.subscribe(()=>h=!1));let m=ct(FI(window,"beforeunload"),t.events.willDestruct$),g,b=()=>g=n.getValue(),y=()=>{let H=n.getValue();Nd(g)||Nd(H)||g===H||(i.next({from:g,to:H}),g=void 0)},L=new xo,k=new xo,I=ct(c,v,L),le=ct(s,d,m,u,f,k),Do=e.started$&&e.ended$?ct(I,e.ended$):I,$o=e.started$&&e.ended$?ct(le,e.started$):le;if(o.add(Do.subscribe(b)).add($o.subscribe(y)),r.heartbeatInterval&&isFinite(r.heartbeatInterval)){let H=[],of=r.heartbeatInterval*1e3,nf=()=>{k.next(),L.next()};o.add(Do.subscribe(()=>{let fr=window.setTimeout(nf,of);H.push(fr)})).add($o.subscribe(()=>{H.forEach(fr=>{window.clearTimeout(fr)}),H=[]}))}return o});import{Subscription as BI}from"@vkontakte/videoplayer-core";import{Observable as UI}from"@vkontakte/videoplayer-shared";var Vd=(t,e)=>new UI(r=>{let i=new BI,o=0;return i.add(t.info.position$.subscribe(()=>{let n=e.getTotalViewTime()*1e3;n>o&&n%e.targetDuration===0&&(o=n,r.next({target_duration:e.targetDuration,current_tvt:n}))})),i});import{Observable as jI,Subscription as HI,merge as Fd}from"@vkontakte/videoplayer-shared";var Bd=t=>new jI(e=>{let r=new HI,i=0,o=1,n=0,l=!1,c=!1,s=()=>{if(!l)return;let I=Date.now();n+=(I-i)*o,i=I},u=()=>{(!l||c)&&(i=Date.now(),l=!0,c=!1)},f=()=>{l&&(s(),l=!1)},p=()=>{l&&(s(),l=!1,c=!0)},d=I=>{l&&s(),o=I,i=Date.now()},{started$:h,playing$:v,paused$:m,willSeek$:g,ended$:b,willDestruct$:y}=t.events,{currentPlaybackRate$:L}=t.info;r.add(g.subscribe(p)).add(Fd(h,v).subscribe(u)).add(Fd(m,b,y).subscribe(f)).add(L.subscribe(d));let k=()=>{let I=n;return l&&(I+=(Date.now()-i)*o),Math.floor(I/1e3)};return e.next(k),r});import{assertNever as Ud}from"@vkontakte/videoplayer-shared";import{HttpConnectionType as Oo,Surface as ke,VideoFormat as P,VideoQuality as F}from"@vkontakte/videoplayer-core";var qo=t=>t&&{[Oo.HTTP1]:"http1",[Oo.HTTP2]:"http2",[Oo.QUIC]:"http3"}[t],Ro=t=>{if(t!==void 0)switch(t){case P.MPEG:return"MP4";case P.DASH:case P.DASH_LIVE:return"DASH";case P.DASH_SEP:return"DASH_SEP";case P.DASH_ONDEMAND:return"ONDEMAND_DASH";case P.HLS_ONDEMAND:return"ONDEMAND_HLS";case P.HLS:case P.HLS_LIVE:return"HLS";case P.HLS_FMP4:return"HLS_FMP4";case P.DASH_WEBM:case P.DASH_LIVE_WEBM:return"WEBM";case P.DASH_LIVE_CMAF:return"ONDEMAND_DASH_LIVE";case P.HLS_LIVE_CMAF:return"ONDEMAND_HLS_LIVE";case P.WEB_RTC_LIVE:return"WEBRTC";case P.DASH_WEBM_AV1:return"AV1";case P.DASH_STREAMS:return"MULTI_DASH";default:return Ud(t)}},X=t=>{if(t!==void 0)switch(t){case F.Q_144P:return"144p";case F.Q_240P:return"240p";case F.Q_360P:return"360p";case F.Q_480P:return"480p";case F.Q_720P:return"720p";case F.Q_1080P:return"1080p";case F.Q_1440P:return"1440p";case F.Q_2160P:return"2160p";case F.INVARIANT:case F.Q_576P:case F.Q_4320P:return"UNKNOWN";default:return Ud(t)}},jd=t=>{if(t!==void 0)switch(t){case"MP4":case"ONDEMAND_DASH":case"ONDEMAND_DASH_LIVE":case"ONDEMAND_HLS":case"ONDEMAND_HLS_LIVE":case"MULTI_DASH":case"WEBM":case"AV1":return"vod";case"DASH":case"HLS":case"HLS_FMP4":case"WEBRTC":return"live";default:return}},ue=(t,e,r)=>{if(t&&e)switch(t){case P.MPEG:return r&&e[t]&&e[t][r];default:return e[t]?.url}},ur=(t,e=!1)=>{if(e)return"minimal";switch(t){case void 0:case ke.NONE:return;case ke.INLINE:return"inline";case ke.FULLSCREEN:return"fullscreen";case ke.SECOND_SCREEN:return"chromecast";case ke.PIP:return"pip_external"}},cr=t=>{switch(t){case void 0:return;case ke.INVISIBLE:return"background";default:return"foreground"}};var Hd=E(It(),1);var Wd=()=>(0,Hd.default)(Math.floor(Math.random()*2**64).toString(36),13,"0");var ZI="_thin-one-stat_",Qd=`${ZI}deviceId`,zd=()=>{let t=new ko;return{subscription:t,subscribe:(e,r)=>{e&&t.add(e.subscribe(r))}}},lr=class{constructor(e,r){this.debugLogger=new QI;this.thinOneStatDebugLog=this.debugLogger.createComponentLog("ThinOneStat");this.eventNumber=1;this.playerSize={width:0,height:0};this.seekAction$=new Lo("unknown");this.isid$=new Lo(void 0);this.statContext=e,this.config=xd(r.config??{}),this.subscription=new ko,this.config.synchronizeTime&&(this.timeSynchronisation=new sr);let i=new XI,o=Kd.get(Qd);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:o?this.deviceId=o:(this.deviceId=Ao(),Kd.set(Qd,this.deviceId)),this.statContext.targetDuration?this.targetDuration=this.statContext.targetDuration:this.targetDuration=1e3,this.resetViewSession(),r.useIsid&&this.isid$.next(r.isid??Wd());let n=new or({error$:i,config:this.config,timeSynchronisation:this.timeSynchronisation});this.api=new rr({config:this.config,apiTransport:n,error$:i,deviceId:this.deviceId,refreshAuthToken:r.refreshAuthToken}),this.logger=new ar({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:i,userSalt:r.userSalt});let{isEmbed:l,topOrigin:c}=KI();this.isEmbed=l,this.embedHostname=c?new URL(c).hostname:void 0}get vsid$(){return new Lo(Y.getVSID())}authorize(e){return this.api.authorize(e)}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e,r){let i=new ko,o=(s,u)=>i.add(s.subscribe(u));o(Bd(e),s=>{this.getTotalViewTime=s}),o(e.info.isLive$,s=>this.isLive=s),o(e.info.position$,s=>this.position=s);let n;o(e.info.hostname$,s=>{n!==void 0&&n!==s&&this.logFailover({cdn_host:s});let f={cdn_host:s,connection_type:qo(e.info.httpConnectionType$.getValue()),connection_reused:e.info.httpConnectionReused$.getValue()};this.logCdnHostChanged(f),this.cdnHostname=n=s}),o(e.info.httpConnectionType$,s=>{this.connectionType=qo(s)}),o(e.info.httpConnectionReused$,s=>{this.connectionReused=s}),o(Md(e,r,{heartbeatInterval:this.config.watchCoverageHeartbeatInterval}),s=>{let u=Math.round(s.from*1e3),f=Math.round(s.to*1e3),p={watch_interval:`${u}-${f}`,in_history:!!this.statContext.inHistory,content_type:Ro(e.info.currentFormat$.getValue()),playback_quality:X(e.info.currentQuality$.getValue()),recom_info:this.statContext.recomInfo};if(!e.info.isLive$.getValue())this.logWatchCoverage(p);else{let h=e.info.atLiveEdge$.getValue();this.logWatchCoverageLive({...p,live:!!h})}}),o(Vd(e,{targetDuration:this.targetDuration,getTotalViewTime:this.getTotalViewTime}),s=>{this.logWatchedN(s)}),o(Co(e.events.willStart$,e.events.looped$),s=>{s&&this.resetViewSession();let u={isid:this.isid$.getValue(),stream_profile:jd(Ro(e.info.currentFormat$.getValue())),dpi:ce.display.pixelRatio,web_layout:ce.device.isMobile?"mobile":"desktop",preloaded:this.statContext.preload,navigation:this.statContext.navigation,recom_info:this.statContext.recomInfo};this.isEmbed&&(u.iframe_host=this.embedHostname??"unknown"),this.logStartSession(u)}),o(e.events.willReady$,()=>{if(this.statContext.preload){let s=e.info.currentFormat$.getValue(),u=e.info.availableSources$.getValue(),f=e.info.currentBuffer$.getValue(),p=e.info.currentQuality$.getValue(),d={target_buffer_time:f?f.end-f.start:void 0,playback_url:ue(s,u,p),playback_quality:X(p)};this.logPreloadStarted(d)}}),o(e.events.ready$,()=>{let s=e.info.currentBuffer$.getValue();if(this.statContext.preload){let u={buffer_time:s?s.end-s.start:void 0};this.logPreloadEnded(u)}this.logReady({buffer_time:s?s.end-s.start:void 0})}),o(Co(e.events.fetcherRecoverableError$,e.events.fatalError$),()=>{this.statContext.preload&&this.logPreloadError()}),o(e.events.playing$,()=>{this.logPlay()}),o(e.events.manifestRequested$,()=>{let s=e.info.currentFormat$.getValue(),u=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:ue(s,u,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logManifestRequest(p)}),o(e.events.firstBytesRequested$,()=>{let s=e.info.currentFormat$.getValue(),u=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:ue(s,u,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logFirstMediaRequest(p)}),o(e.events.firstBytesReceived$,()=>{let s=e.info.currentFormat$.getValue(),u=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:ue(s,u,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logFirstByteMedia(p)}),o(e.events.manifestReceived$,()=>{let s=e.info.currentFormat$.getValue(),u=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:ue(s,u,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logManifestReceived(p)}),o(zI({connectionType:e.info.httpConnectionType$,connectionReused:e.info.httpConnectionReused$}).pipe(YI(({connectionReused:s})=>s!==void 0),JI((s,u)=>s.connectionType===u.connectionType)),()=>{let s=e.info.currentFormat$.getValue(),u=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:ue(s,u,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused,rtt:e.info.rttEstimation$.getValue()};this.logConnectionEstablished(p)}),o(e.events.firstFrame$,()=>{this.logFirstVideoFrameDecoded()}),o(e.info.playbackState$,s=>{if(s===Gd.PLAYING){let u=e.info.currentBuffer$.getValue(),f={buffer_time:u?u.end-u.start:void 0};if(this.logPlaying(f),this.isStarted)this.logResume();else{this.isStarted=!0;let p=e.info.currentQuality$.getValue(),d=e.info.isAutoQualityEnabled$.getValue(),h=e.info.muted$.getValue(),v=e.info.volume$.getValue(),m=e.info.surface$.getValue(),g=e.info.availableTextTracks$.getValue(),b=e.info.currentTextTrack$.getValue(),y=e.info.currentAudioStream$.getValue(),L=e.info.currentPlaybackRate$.getValue(),k={playback_quality:X(p),user_quality:d?"auto":X(p),player_width:this.playerSize.width,player_height:this.playerSize.height,muted:h,sound_volume:v,buffer_time:u?Math.round(u.end-u.start):void 0,mode:ur(m,this.statContext.isPreviewPlayerView),visibility:cr(m),subtitles_enabled:!!b,auto_subtitles:!!g.find(({id:I})=>I===b)?.isAuto,audio_track_lang:y?.language,playback_rate:L,recom_info:this.statContext.recomInfo};this.logPlaybackStarted(k)}}else s===Gd.PAUSED&&this.logPause()}),o(e.events.willSeek$,({to:s})=>{let u={target_position:s,seek_type:this.seekAction$.getValue()};this.logSeeking(u)}),o(e.events.seeked$,()=>{let u={target_position:e.info.position$.getValue(),seek_type:this.seekAction$.getValue()};this.logSeeked(u),this.seekAction$.next("unknown")}),o(Co(e.info.isBuffering$,e.info.isStalled$),s=>{if(s){let u=e.info.currentBuffer$.getValue();this.logBufferStarvation({buffer_time:u?u.end-u.start:void 0}),this.logShowLoader()}}),o(e.info.currentQuality$,s=>{if(s){let u=e.info.isAutoQualityEnabled$.getValue(),f=e.info.currentVideoStream$.getValue()?.codec,p=e.info.currentAudioStream$.getValue()?.codec,d={user_quality:u?"auto":X(s),playback_quality:X(s),download_quality:X(s),codec_info:f&&p?`${f},${p}`:void 0,manual_switch:!u};this.logQualityChanged(d)}});let l,c;return o(e.info.surface$,s=>{if(!this.uiEvents){let u=ur(s,this.statContext.isPreviewPlayerView);this.logModeChanged({mode:u})}c=cr(s),l!==c&&(l=cr(s),this.logVisibilityChanged({visibility:c}))}),o(e.events.stopped$,()=>{this.logStop()}),this.player=e,this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToUi(e){this.uiEvents=e;let{subscribe:r,subscription:i}=zd();r(e.actionSeek$,this.seekAction$),r(e.playerSize$,({width:n,height:l})=>{this.playerSize={width:n,height:l},this.logViewPortChanged({player_width:n,player_height:l})});let{surface$:o}=Zt(this.uiEvents,r,this.player);return r(o,n=>this.logModeChanged({mode:ur(n)})),this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToAds(e){let{subscription:r,subscribe:i}=zd();return i(e.init$,o=>{let n={slot:o};this.logAdvConfiguration(n)}),i(e.slotRequested$,()=>{this.logAdvRequest()}),i(e.started$,o=>{let n={adv_section:o};this.logAdvBreakStarted(n)}),i(e.ended$,o=>{let n={adv_section:o};this.logAdvBreakEnded(n)}),i(e.error$,o=>{let n={error_message:o};this.logAdvError(n)}),this.resubscribeBeforeunload(),this.subscription.add(r),r}getDeviceId(){return this.deviceId}resetViewSession(){this.thinOneStatDebugLog({message:"VSID reset"}),Y.generateVSID(),this.eventNumber=0}destroy(){this.api.destroy()}createRequiredParams(e){let r=this.vsid$.getValue();WI(r);let i=this.eventNumber++;return{vsid:r,uv_movie_id:this.statContext.movieId,event_name:e,client_time:Date.now(),application:`@vkontakte/videoplayer-statistics:${C}`,platform:`web:${ce.device.isMobile?"mobile":"desktop"}`,product:this.statContext.product,event_number:i,playback_position:this.isLive?void 0:Math.round(this.position),current_tvt:this.getTotalViewTime(),cdn_host:this.cdnHostname}}createRequiredFatParams(){return{stats_version:"2.1.1",browser:ce.browser.current,browser_version:String(ce.browser.currentVersion),os:ce.device.current,os_version:"",device_type:ce.device.isMobile?"mobile":"desktop",navigation:this.statContext.navigation}}log(e,r,i=!1){let o=this.createRequiredParams(e),n={};i&&(n=this.createRequiredFatParams()),this.logger.log({...o,...n,...r})}logWatchCoverage(e){this.log("watch_coverage",e,!0)}logWatchCoverageLive(e){this.log("watch_coverage_live",e,!0)}logWatchedN(e){this.log("watched_n",e,!0)}logStartSession(e){this.log("start_session",e,!0)}logPreloadStarted(e){this.log("preload_started",e)}logPreloadEnded(e){this.log("preload_ended",e)}logPreloadError(){this.log("preload_error")}logPlaybackStarted(e){this.log("playback_started",e,!0)}logPlay(){this.log("play")}logManifestRequest(e){this.log("manifest_request",e)}logFirstMediaRequest(e){this.log("first_media_request",e)}logFirstByteMedia(e){this.log("first_byte_media",e)}logManifestReceived(e){this.log("manifest_received",e)}logConnectionEstablished(e){this.log("connection_established",e)}logFirstVideoFrameDecoded(){this.log("first_video_frame_decoded")}logReady(e){this.log("ready",e)}logPlaying(e){this.log("playing",e)}logPause(){this.log("pause")}logResume(){this.log("resume")}logSeeking(e){this.log("seeking",e)}logSeeked(e){this.log("seeked",e)}logStop(){this.log("stop")}logBufferStarvation(e){this.log("buffer_starvation",e)}logShowLoader(){this.log("show_loader")}logQualityChanged(e){this.log("quality_changed",e)}logCdnHostChanged(e){this.log("cdn_host_changed",e)}logViewPortChanged(e){this.log("view_port_changed",e)}logModeChanged(e){this.log("mode_changed",e)}logVisibilityChanged(e){this.log("visibility_changed",e)}logFailover(e){this.log("failover",e)}logAdvConfiguration(e){this.log("adv_configuration",e)}logAdvRequest(){this.log("adv_request")}logAdvBreakStarted(e){this.log("adv_break_started",e)}logAdvBreakEnded(e){this.log("adv_break_ended",e)}logAdvError(e){this.log("adv_error",e)}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=GI(window,"beforeunload").subscribe(()=>{}),this.subscription.add(this.beforeunloadSubscription)}};var eS={};var tS=(t,e={})=>{let i=e.timeout||1,o=performance.now();return window.setTimeout(()=>{t({get didTimeout(){return e.timeout?!1:performance.now()-o-1>i},timeRemaining(){return Math.max(0,1+(performance.now()-o))}})},1)},rS=t=>window.clearTimeout(t),Jd=t=>typeof t=="function"&&t?.toString().endsWith("{ [native code] }"),Xd=!Jd(window.requestIdleCallback)||!Jd(window.cancelIdleCallback),Zd=Xd?tS:window.requestIdleCallback,ef=Xd?rS:window.cancelIdleCallback;import{PlaybackState as rf,Subscription as iS}from"@vkontakte/videoplayer-core";import{Logger as oS}from"@vkontakte/videoplayer-shared";var dr=class{constructor(){this.startTime=null;this.stopTime=null;this.accumulatedTime=0}get time(){return Math.floor(this.timeMs/1e3)}get timeMs(){return this.startTime===null?0:(this.stopTime??this.now())-this.startTime-this.accumulatedTime}get isRunning(){return this.startTime!==null&&this.stopTime===null}start(){this.isRunning||(this.stopTime!==null?(this.accumulatedTime+=this.now()-this.stopTime,this.stopTime=null):this.startTime=this.now())}stop(){this.isRunning&&(this.stopTime=this.now())}reset(){this.startTime=null,this.stopTime=null,this.accumulatedTime=0}now(){return Date.now()}};var tf=()=>window.Image?new Image:document.createElement("img");var No=class{constructor(e){this.position=0;this.started=!1;this.heartbeatPixels=[];this.heartbeatLastTimeSent={};this.idleCallbackIds=[];this.stopwatch=new dr;this.subscription=new iS;this.params=e;let r=new oS;this.log=r.createComponentLog("MediascopePixel")}attachTo(e){this.subscription.add(e.info.playbackState$.subscribe(r=>this.onPlaybackState(r))).add(e.info.position$.subscribe(r=>this.onPosition(r))).add(e.info.atLiveEdge$.subscribe(r=>this.isActiveLive=r)),this.subscription.add(e.events.willSeek$.subscribe(()=>this.onWillSeek())).add(e.events.seeked$.subscribe(()=>this.onSeeked())).add(e.events.ended$.subscribe(()=>this.onEnded()))}destroy(){this.stopwatch.reset(),this.subscription.unsubscribe(),window.clearTimeout(this.heartbeatFirstTimeoutId),this.idleCallbackIds.forEach(e=>ef(e)),this.send("stop")}onPlaybackState(e){e===rf.PLAYING?this.started?this.play():this.start():e===rf.PAUSED&&this.pause()}start(){this.started=!0,this.stopwatch.start(),this.send("start"),this.heartbeatPixels=this.prepareHeartbeatPixels(),this.heartbeatInterval=this.heartbeatPixels[0]?.interval;let e=this.heartbeatPixels[0]?.url,r=this.heartbeatPixels[0]?.delay;if(r!==void 0&&e)try{this.heartbeatFirstTimeoutId=window.setTimeout(()=>{this.sendHeartbeat(e)},r*1e3)}catch(i){this.log({message:i.message})}}play(){this.stopwatch.start(),this.send("resume")}pause(){this.stopwatch.stop(),this.send("pause")}onPosition(e){if(this.position=e,this.heartbeatInterval&&this.stopwatch.time!==0&&this.stopwatch.time%this.heartbeatInterval===0)for(let[r,{url:i}]of this.heartbeatPixels.entries())this.heartbeatLastTimeSent[r]!==this.stopwatch.time&&(this.heartbeatLastTimeSent[r]=this.stopwatch.time,this.sendHeartbeat(i))}onWillSeek(){this.started&&this.send("stop")}onSeeked(){this.started&&this.send("start")}onEnded(){this.stopwatch.stop(),this.send("stop")}validatePixels(e,r){return e?.filter(i=>i.event===r.event&&r.keys.every(o=>!!i[o]))}getFrameTimestamp(){let e;if(this.isActiveLive){let r=Math.floor(Math.random()*25)+5;e=Date.now()/1e3-r}else e=this.position||0;return Math.floor(e)}getUTC(){return Math.floor(Date.now()/1e3)}prepareUrl(e){let r=new URL(e);return r.pathname=r.pathname.replace("{@fts_fake_sec}",String(this.getFrameTimestamp())).replace("{@utc_sec}",String(this.getUTC())),r.search=[...new URLSearchParams(r.search)].filter(([i,o])=>!/={@[\w]+}/.test(`${i}=${o}`)).map(i=>i.join("=")).join("&"),r.toString()}preparePixels(e){return this.validatePixels(this.params.pixels,{event:e,keys:["url"]})}prepareHeartbeatPixels(){return this.validatePixels(this.params.pixels,{event:"heartbeat",keys:["url","interval"]})}call(e){try{this.idleCallbackIds.push(Zd(()=>tf().src=this.prepareUrl(e)))}catch(r){this.log({message:r.message})}}send(e){let r=this.preparePixels(e);for(let{url:i}of r)this.call(i)}sendHeartbeat(e){this.call(e)}};export{We as ApiEnv,Yr as ConnectionType,zr as ContentType,Ca as InteractiveInterfaceClick,No as MediascopePixel,eS as MediascopePixelTypes,_o as OneStat,Qr as Quality,Jr as SeekAction,Yd as ThinOneStat,C as VERSION};
|