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