@vkontakte/videoplayer-statistics 1.0.71-dev.ffbc0545.0 → 1.0.71

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.71-dev.ffbc0545.0
3
- * Fri, 14 Feb 2025 09:15:41 GMT
2
+ * @vkontakte/videoplayer-statistics v1.0.71
3
+ * Wed, 12 Feb 2025 12:37:46 GMT
4
4
  * https://st.mycdn.me/static/vkontakte-videoplayer/1-0-71/doc/
5
5
  */
6
- var Ml=Object.create;var Yi=Object.defineProperty;var Fl=Object.getOwnPropertyDescriptor;var Bl=Object.getOwnPropertyNames;var Ul=Object.getPrototypeOf,Vl=Object.prototype.hasOwnProperty;var n=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Gl=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Bl(e))!Vl.call(r,o)&&o!==t&&Yi(r,o,{get:()=>e[o],enumerable:!(i=Fl(e,o))||i.enumerable});return r};var D=(r,e,t)=>(t=r!=null?Ml(Ul(r)):{},Gl(e||!r||!r.__esModule?Yi(t,"default",{value:r,enumerable:!0}):t,r));var I=n((Br,Ji)=>{"use strict";var ge=function(r){return r&&r.Math===Math&&r};Ji.exports=ge(typeof globalThis=="object"&&globalThis)||ge(typeof window=="object"&&window)||ge(typeof self=="object"&&self)||ge(typeof global=="object"&&global)||ge(typeof Br=="object"&&Br)||function(){return this}()||Function("return this")()});var E=n((ay,Xi)=>{"use strict";Xi.exports=function(r){try{return!!r()}catch{return!0}}});var me=n((sy,Zi)=>{"use strict";var Kl=E();Zi.exports=!Kl(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var Ur=n((uy,io)=>{"use strict";var Wl=me(),to=Function.prototype,eo=to.apply,ro=to.call;io.exports=typeof Reflect=="object"&&Reflect.apply||(Wl?ro.bind(eo):function(){return ro.apply(eo,arguments)})});var P=n((cy,ao)=>{"use strict";var oo=me(),no=Function.prototype,Vr=no.call,Hl=oo&&no.bind.bind(Vr,Vr);ao.exports=oo?Hl:function(r){return function(){return Vr.apply(r,arguments)}}});var be=n((ly,uo)=>{"use strict";var so=P(),zl=so({}.toString),Ql=so("".slice);uo.exports=function(r){return Ql(zl(r),8,-1)}});var Gr=n((fy,co)=>{"use strict";var Yl=be(),Jl=P();co.exports=function(r){if(Yl(r)==="Function")return Jl(r)}});var S=n((dy,lo)=>{"use strict";var Kr=typeof document=="object"&&document.all;lo.exports=typeof Kr>"u"&&Kr!==void 0?function(r){return typeof r=="function"||r===Kr}:function(r){return typeof r=="function"}});var T=n((py,fo)=>{"use strict";var Xl=E();fo.exports=!Xl(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var w=n((vy,po)=>{"use strict";var Zl=me(),Ke=Function.prototype.call;po.exports=Zl?Ke.bind(Ke):function(){return Ke.apply(Ke,arguments)}});var Wr=n(go=>{"use strict";var vo={}.propertyIsEnumerable,ho=Object.getOwnPropertyDescriptor,ef=ho&&!vo.call({1:2},1);go.f=ef?function(e){var t=ho(this,e);return!!t&&t.enumerable}:vo});var ye=n((gy,mo)=>{"use strict";mo.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var yo=n((my,bo)=>{"use strict";var rf=P(),tf=E(),of=be(),Hr=Object,nf=rf("".split);bo.exports=tf(function(){return!Hr("z").propertyIsEnumerable(0)})?function(r){return of(r)==="String"?nf(r,""):Hr(r)}:Hr});var Ie=n((by,Io)=>{"use strict";Io.exports=function(r){return r==null}});var X=n((yy,So)=>{"use strict";var af=Ie(),sf=TypeError;So.exports=function(r){if(af(r))throw new sf("Can't call method on "+r);return r}});var G=n((Iy,Eo)=>{"use strict";var uf=yo(),cf=X();Eo.exports=function(r){return uf(cf(r))}});var R=n((Sy,qo)=>{"use strict";var lf=S();qo.exports=function(r){return typeof r=="object"?r!==null:lf(r)}});var Se=n((Ey,Po)=>{"use strict";Po.exports={}});var $=n((qy,Oo)=>{"use strict";var zr=Se(),Qr=I(),ff=S(),To=function(r){return ff(r)?r:void 0};Oo.exports=function(r,e){return arguments.length<2?To(zr[r])||To(Qr[r]):zr[r]&&zr[r][e]||Qr[r]&&Qr[r][e]}});var We=n((Py,_o)=>{"use strict";var df=P();_o.exports=df({}.isPrototypeOf)});var K=n((Ty,Ro)=>{"use strict";var pf=I(),xo=pf.navigator,wo=xo&&xo.userAgent;Ro.exports=wo?String(wo):""});var Jr=n((Oy,Do)=>{"use strict";var ko=I(),Yr=K(),Co=ko.process,Ao=ko.Deno,No=Co&&Co.versions||Ao&&Ao.version,Lo=No&&No.v8,C,He;Lo&&(C=Lo.split("."),He=C[0]>0&&C[0]<4?1:+(C[0]+C[1]));!He&&Yr&&(C=Yr.match(/Edge\/(\d+)/),(!C||C[1]>=74)&&(C=Yr.match(/Chrome\/(\d+)/),C&&(He=+C[1])));Do.exports=He});var Xr=n((_y,jo)=>{"use strict";var $o=Jr(),vf=E(),hf=I(),gf=hf.String;jo.exports=!!Object.getOwnPropertySymbols&&!vf(function(){var r=Symbol("symbol detection");return!gf(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&$o&&$o<41})});var Zr=n((xy,Mo)=>{"use strict";var mf=Xr();Mo.exports=mf&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var et=n((wy,Fo)=>{"use strict";var bf=$(),yf=S(),If=We(),Sf=Zr(),Ef=Object;Fo.exports=Sf?function(r){return typeof r=="symbol"}:function(r){var e=bf("Symbol");return yf(e)&&If(e.prototype,Ef(r))}});var Ee=n((Ry,Bo)=>{"use strict";var qf=String;Bo.exports=function(r){try{return qf(r)}catch{return"Object"}}});var j=n((Cy,Uo)=>{"use strict";var Pf=S(),Tf=Ee(),Of=TypeError;Uo.exports=function(r){if(Pf(r))return r;throw new Of(Tf(r)+" is not a function")}});var ze=n((Ay,Vo)=>{"use strict";var _f=j(),xf=Ie();Vo.exports=function(r,e){var t=r[e];return xf(t)?void 0:_f(t)}});var Ko=n((Ny,Go)=>{"use strict";var rt=w(),tt=S(),it=R(),wf=TypeError;Go.exports=function(r,e){var t,i;if(e==="string"&&tt(t=r.toString)&&!it(i=rt(t,r))||tt(t=r.valueOf)&&!it(i=rt(t,r))||e!=="string"&&tt(t=r.toString)&&!it(i=rt(t,r)))return i;throw new wf("Can't convert object to primitive value")}});var L=n((Ly,Wo)=>{"use strict";Wo.exports=!0});var Qo=n((ky,zo)=>{"use strict";var Ho=I(),Rf=Object.defineProperty;zo.exports=function(r,e){try{Rf(Ho,r,{value:e,configurable:!0,writable:!0})}catch{Ho[r]=e}return e}});var qe=n((Dy,Xo)=>{"use strict";var Cf=L(),Af=I(),Nf=Qo(),Yo="__core-js_shared__",Jo=Xo.exports=Af[Yo]||Nf(Yo,{});(Jo.versions||(Jo.versions=[])).push({version:"3.38.0",mode:Cf?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var ot=n(($y,en)=>{"use strict";var Zo=qe();en.exports=function(r,e){return Zo[r]||(Zo[r]=e||{})}});var nt=n((jy,rn)=>{"use strict";var Lf=X(),kf=Object;rn.exports=function(r){return kf(Lf(r))}});var k=n((My,tn)=>{"use strict";var Df=P(),$f=nt(),jf=Df({}.hasOwnProperty);tn.exports=Object.hasOwn||function(e,t){return jf($f(e),t)}});var at=n((Fy,on)=>{"use strict";var Mf=P(),Ff=0,Bf=Math.random(),Uf=Mf(1 .toString);on.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+Uf(++Ff+Bf,36)}});var O=n((By,an)=>{"use strict";var Vf=I(),Gf=ot(),nn=k(),Kf=at(),Wf=Xr(),Hf=Zr(),Z=Vf.Symbol,st=Gf("wks"),zf=Hf?Z.for||Z:Z&&Z.withoutSetter||Kf;an.exports=function(r){return nn(st,r)||(st[r]=Wf&&nn(Z,r)?Z[r]:zf("Symbol."+r)),st[r]}});var ln=n((Uy,cn)=>{"use strict";var Qf=w(),sn=R(),un=et(),Yf=ze(),Jf=Ko(),Xf=O(),Zf=TypeError,ed=Xf("toPrimitive");cn.exports=function(r,e){if(!sn(r)||un(r))return r;var t=Yf(r,ed),i;if(t){if(e===void 0&&(e="default"),i=Qf(t,r,e),!sn(i)||un(i))return i;throw new Zf("Can't convert object to primitive value")}return e===void 0&&(e="number"),Jf(r,e)}});var ut=n((Vy,fn)=>{"use strict";var rd=ln(),td=et();fn.exports=function(r){var e=rd(r,"string");return td(e)?e:e+""}});var Qe=n((Gy,pn)=>{"use strict";var id=I(),dn=R(),ct=id.document,od=dn(ct)&&dn(ct.createElement);pn.exports=function(r){return od?ct.createElement(r):{}}});var lt=n((Ky,vn)=>{"use strict";var nd=T(),ad=E(),sd=Qe();vn.exports=!nd&&!ad(function(){return Object.defineProperty(sd("div"),"a",{get:function(){return 7}}).a!==7})});var mn=n(gn=>{"use strict";var ud=T(),cd=w(),ld=Wr(),fd=ye(),dd=G(),pd=ut(),vd=k(),hd=lt(),hn=Object.getOwnPropertyDescriptor;gn.f=ud?hn:function(e,t){if(e=dd(e),t=pd(t),hd)try{return hn(e,t)}catch{}if(vd(e,t))return fd(!cd(ld.f,e,t),e[t])}});var ft=n((Hy,bn)=>{"use strict";var gd=E(),md=S(),bd=/#|\.prototype\./,Pe=function(r,e){var t=Id[yd(r)];return t===Ed?!0:t===Sd?!1:md(e)?gd(e):!!e},yd=Pe.normalize=function(r){return String(r).replace(bd,".").toLowerCase()},Id=Pe.data={},Sd=Pe.NATIVE="N",Ed=Pe.POLYFILL="P";bn.exports=Pe});var Te=n((zy,In)=>{"use strict";var yn=Gr(),qd=j(),Pd=me(),Td=yn(yn.bind);In.exports=function(r,e){return qd(r),e===void 0?r:Pd?Td(r,e):function(){return r.apply(e,arguments)}}});var dt=n((Qy,Sn)=>{"use strict";var Od=T(),_d=E();Sn.exports=Od&&_d(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var M=n((Yy,En)=>{"use strict";var xd=R(),wd=String,Rd=TypeError;En.exports=function(r){if(xd(r))return r;throw new Rd(wd(r)+" is not an object")}});var W=n(Pn=>{"use strict";var Cd=T(),Ad=lt(),Nd=dt(),Ye=M(),qn=ut(),Ld=TypeError,pt=Object.defineProperty,kd=Object.getOwnPropertyDescriptor,vt="enumerable",ht="configurable",gt="writable";Pn.f=Cd?Nd?function(e,t,i){if(Ye(e),t=qn(t),Ye(i),typeof e=="function"&&t==="prototype"&&"value"in i&&gt in i&&!i[gt]){var o=kd(e,t);o&&o[gt]&&(e[t]=i.value,i={configurable:ht in i?i[ht]:o[ht],enumerable:vt in i?i[vt]:o[vt],writable:!1})}return pt(e,t,i)}:pt:function(e,t,i){if(Ye(e),t=qn(t),Ye(i),Ad)try{return pt(e,t,i)}catch{}if("get"in i||"set"in i)throw new Ld("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var ee=n((Xy,Tn)=>{"use strict";var Dd=T(),$d=W(),jd=ye();Tn.exports=Dd?function(r,e,t){return $d.f(r,e,jd(1,t))}:function(r,e,t){return r[e]=t,r}});var _=n((Zy,_n)=>{"use strict";var Oe=I(),Md=Ur(),Fd=Gr(),Bd=S(),Ud=mn().f,Vd=ft(),re=Se(),Gd=Te(),te=ee(),On=k();qe();var Kd=function(r){var e=function(t,i,o){if(this instanceof e){switch(arguments.length){case 0:return new r;case 1:return new r(t);case 2:return new r(t,i)}return new r(t,i,o)}return Md(r,this,arguments)};return e.prototype=r.prototype,e};_n.exports=function(r,e){var t=r.target,i=r.global,o=r.stat,a=r.proto,u=i?Oe:o?Oe[t]:Oe[t]&&Oe[t].prototype,c=i?re:re[t]||te(re,t,{})[t],d=c.prototype,f,p,v,s,l,h,m,b,g;for(s in e)f=Vd(i?s:t+(o?".":"#")+s,r.forced),p=!f&&u&&On(u,s),h=c[s],p&&(r.dontCallGetSet?(g=Ud(u,s),m=g&&g.value):m=u[s]),l=p&&m?m:e[s],!(!f&&!a&&typeof h==typeof l)&&(r.bind&&p?b=Gd(l,Oe):r.wrap&&p?b=Kd(l):a&&Bd(l)?b=Fd(l):b=l,(r.sham||l&&l.sham||h&&h.sham)&&te(b,"sham",!0),te(c,s,b),a&&(v=t+"Prototype",On(re,v)||te(re,v,{}),te(re[v],s,l),r.real&&d&&(f||!d[s])&&te(d,s,l)))}});var wn=n((eI,xn)=>{"use strict";var Wd=Math.ceil,Hd=Math.floor;xn.exports=Math.trunc||function(e){var t=+e;return(t>0?Hd:Wd)(t)}});var Je=n((rI,Rn)=>{"use strict";var zd=wn();Rn.exports=function(r){var e=+r;return e!==e||e===0?0:zd(e)}});var An=n((tI,Cn)=>{"use strict";var Qd=Je(),Yd=Math.max,Jd=Math.min;Cn.exports=function(r,e){var t=Qd(r);return t<0?Yd(t+e,0):Jd(t,e)}});var mt=n((iI,Nn)=>{"use strict";var Xd=Je(),Zd=Math.min;Nn.exports=function(r){var e=Xd(r);return e>0?Zd(e,9007199254740991):0}});var bt=n((oI,Ln)=>{"use strict";var ep=mt();Ln.exports=function(r){return ep(r.length)}});var yt=n((nI,Dn)=>{"use strict";var rp=G(),tp=An(),ip=bt(),kn=function(r){return function(e,t,i){var o=rp(e),a=ip(o);if(a===0)return!r&&-1;var u=tp(i,a),c;if(r&&t!==t){for(;a>u;)if(c=o[u++],c!==c)return!0}else for(;a>u;u++)if((r||u in o)&&o[u]===t)return r||u||0;return!r&&-1}};Dn.exports={includes:kn(!0),indexOf:kn(!1)}});var It=n((aI,$n)=>{"use strict";$n.exports=function(){}});var jn=n(()=>{"use strict";var op=_(),np=yt().includes,ap=E(),sp=It(),up=ap(function(){return!Array(1).includes()});op({target:"Array",proto:!0,forced:up},{includes:function(e){return np(this,e,arguments.length>1?arguments[1]:void 0)}});sp("includes")});var Xe=n((cI,Mn)=>{"use strict";var cp=$();Mn.exports=cp});var Bn=n((lI,Fn)=>{"use strict";jn();var lp=Xe();Fn.exports=lp("Array","includes")});var Vn=n((fI,Un)=>{"use strict";var fp=Bn();Un.exports=fp});var Ze=n((dI,Gn)=>{"use strict";var dp=Vn();Gn.exports=dp});var Xn=n(()=>{"use strict"});var _t=n((TI,Zn)=>{"use strict";var xe=I(),hp=K(),gp=be(),rr=function(r){return hp.slice(0,r.length)===r};Zn.exports=function(){return rr("Bun/")?"BUN":rr("Cloudflare-Workers")?"CLOUDFLARE":rr("Deno/")?"DENO":rr("Node.js/")?"NODE":xe.Bun&&typeof Bun.version=="string"?"BUN":xe.Deno&&typeof Deno.version=="object"?"DENO":gp(xe.process)==="process"?"NODE":xe.window&&xe.document?"BROWSER":"REST"}()});var tr=n((OI,ea)=>{"use strict";var mp=_t();ea.exports=mp==="NODE"});var ie=n((_I,ra)=>{"use strict";var bp=ee();ra.exports=function(r,e,t,i){return i&&i.enumerable?r[e]=t:bp(r,e,t),r}});var ia=n((xI,ta)=>{"use strict";var yp=P(),Ip=j();ta.exports=function(r,e,t){try{return yp(Ip(Object.getOwnPropertyDescriptor(r,e)[t]))}catch{}}});var na=n((wI,oa)=>{"use strict";var Sp=R();oa.exports=function(r){return Sp(r)||r===null}});var sa=n((RI,aa)=>{"use strict";var Ep=na(),qp=String,Pp=TypeError;aa.exports=function(r){if(Ep(r))return r;throw new Pp("Can't set "+qp(r)+" as a prototype")}});var xt=n((CI,ua)=>{"use strict";var Tp=ia(),Op=R(),_p=X(),xp=sa();ua.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=Tp(Object.prototype,"__proto__","set"),t(e,[]),r=e instanceof Array}catch{}return function(o,a){return _p(o),xp(a),Op(o)&&(r?t(o,a):o.__proto__=a),o}}():void 0)});var ir=n((AI,la)=>{"use strict";var wp=O(),Rp=wp("toStringTag"),ca={};ca[Rp]="z";la.exports=String(ca)==="[object z]"});var we=n((NI,fa)=>{"use strict";var Cp=ir(),Ap=S(),or=be(),Np=O(),Lp=Np("toStringTag"),kp=Object,Dp=or(function(){return arguments}())==="Arguments",$p=function(r,e){try{return r[e]}catch{}};fa.exports=Cp?or:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=$p(e=kp(r),Lp))=="string"?t:Dp?or(e):(i=or(e))==="Object"&&Ap(e.callee)?"Arguments":i}});var pa=n((LI,da)=>{"use strict";var jp=ir(),Mp=we();da.exports=jp?{}.toString:function(){return"[object "+Mp(this)+"]"}});var Re=n((kI,ha)=>{"use strict";var Fp=ir(),Bp=W().f,Up=ee(),Vp=k(),Gp=pa(),Kp=O(),va=Kp("toStringTag");ha.exports=function(r,e,t,i){var o=t?r:r&&r.prototype;o&&(Vp(o,va)||Bp(o,va,{configurable:!0,value:e}),i&&!Fp&&Up(o,"toString",Gp))}});var ma=n((DI,ga)=>{"use strict";var Wp=W();ga.exports=function(r,e,t){return Wp.f(r,e,t)}});var Ia=n(($I,ya)=>{"use strict";var Hp=$(),zp=ma(),Qp=O(),Yp=T(),ba=Qp("species");ya.exports=function(r){var e=Hp(r);Yp&&e&&!e[ba]&&zp(e,ba,{configurable:!0,get:function(){return this}})}});var Ea=n((jI,Sa)=>{"use strict";var Jp=We(),Xp=TypeError;Sa.exports=function(r,e){if(Jp(e,r))return r;throw new Xp("Incorrect invocation")}});var Rt=n((MI,qa)=>{"use strict";var Zp=P(),ev=S(),wt=qe(),rv=Zp(Function.toString);ev(wt.inspectSource)||(wt.inspectSource=function(r){return rv(r)});qa.exports=wt.inspectSource});var wa=n((FI,xa)=>{"use strict";var tv=P(),iv=E(),Pa=S(),ov=we(),nv=$(),av=Rt(),Ta=function(){},Oa=nv("Reflect","construct"),Ct=/^\s*(?:class|function)\b/,sv=tv(Ct.exec),uv=!Ct.test(Ta),Ce=function(e){if(!Pa(e))return!1;try{return Oa(Ta,[],e),!0}catch{return!1}},_a=function(e){if(!Pa(e))return!1;switch(ov(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return uv||!!sv(Ct,av(e))}catch{return!0}};_a.sham=!0;xa.exports=!Oa||iv(function(){var r;return Ce(Ce.call)||!Ce(Object)||!Ce(function(){r=!0})||r})?_a:Ce});var Ca=n((BI,Ra)=>{"use strict";var cv=wa(),lv=Ee(),fv=TypeError;Ra.exports=function(r){if(cv(r))return r;throw new fv(lv(r)+" is not a constructor")}});var At=n((UI,Na)=>{"use strict";var Aa=M(),dv=Ca(),pv=Ie(),vv=O(),hv=vv("species");Na.exports=function(r,e){var t=Aa(r).constructor,i;return t===void 0||pv(i=Aa(t)[hv])?e:dv(i)}});var Nt=n((VI,La)=>{"use strict";var gv=$();La.exports=gv("document","documentElement")});var Da=n((GI,ka)=>{"use strict";var mv=P();ka.exports=mv([].slice)});var ja=n((KI,$a)=>{"use strict";var bv=TypeError;$a.exports=function(r,e){if(r<e)throw new bv("Not enough arguments");return r}});var Lt=n((WI,Ma)=>{"use strict";var yv=K();Ma.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(yv)});var Vt=n((HI,za)=>{"use strict";var x=I(),Iv=Ur(),Sv=Te(),Fa=S(),Ev=k(),Ha=E(),Ba=Nt(),qv=Da(),Ua=Qe(),Pv=ja(),Tv=Lt(),Ov=tr(),Ft=x.setImmediate,Bt=x.clearImmediate,_v=x.process,kt=x.Dispatch,xv=x.Function,Va=x.MessageChannel,wv=x.String,Dt=0,Ae={},Ga="onreadystatechange",Ne,H,$t,jt;Ha(function(){Ne=x.location});var Ut=function(r){if(Ev(Ae,r)){var e=Ae[r];delete Ae[r],e()}},Mt=function(r){return function(){Ut(r)}},Ka=function(r){Ut(r.data)},Wa=function(r){x.postMessage(wv(r),Ne.protocol+"//"+Ne.host)};(!Ft||!Bt)&&(Ft=function(e){Pv(arguments.length,1);var t=Fa(e)?e:xv(e),i=qv(arguments,1);return Ae[++Dt]=function(){Iv(t,void 0,i)},H(Dt),Dt},Bt=function(e){delete Ae[e]},Ov?H=function(r){_v.nextTick(Mt(r))}:kt&&kt.now?H=function(r){kt.now(Mt(r))}:Va&&!Tv?($t=new Va,jt=$t.port2,$t.port1.onmessage=Ka,H=Sv(jt.postMessage,jt)):x.addEventListener&&Fa(x.postMessage)&&!x.importScripts&&Ne&&Ne.protocol!=="file:"&&!Ha(Wa)?(H=Wa,x.addEventListener("message",Ka,!1)):Ga in Ua("script")?H=function(r){Ba.appendChild(Ua("script"))[Ga]=function(){Ba.removeChild(this),Ut(r)}}:H=function(r){setTimeout(Mt(r),0)});za.exports={set:Ft,clear:Bt}});var Ja=n((zI,Ya)=>{"use strict";var Qa=I(),Rv=T(),Cv=Object.getOwnPropertyDescriptor;Ya.exports=function(r){if(!Rv)return Qa[r];var e=Cv(Qa,r);return e&&e.value}});var Gt=n((QI,Za)=>{"use strict";var Xa=function(){this.head=null,this.tail=null};Xa.prototype={add:function(r){var e={item:r,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var r=this.head;if(r){var e=this.head=r.next;return e===null&&(this.tail=null),r.item}}};Za.exports=Xa});var rs=n((YI,es)=>{"use strict";var Av=K();es.exports=/ipad|iphone|ipod/i.test(Av)&&typeof Pebble<"u"});var is=n((JI,ts)=>{"use strict";var Nv=K();ts.exports=/web0s(?!.*chrome)/i.test(Nv)});var ls=n((XI,cs)=>{"use strict";var ne=I(),Lv=Ja(),os=Te(),Kt=Vt().set,kv=Gt(),Dv=Lt(),$v=rs(),jv=is(),Wt=tr(),ns=ne.MutationObserver||ne.WebKitMutationObserver,as=ne.document,ss=ne.process,nr=ne.Promise,Qt=Lv("queueMicrotask"),oe,Ht,zt,ar,us;Qt||(Le=new kv,ke=function(){var r,e;for(Wt&&(r=ss.domain)&&r.exit();e=Le.get();)try{e()}catch(t){throw Le.head&&oe(),t}r&&r.enter()},!Dv&&!Wt&&!jv&&ns&&as?(Ht=!0,zt=as.createTextNode(""),new ns(ke).observe(zt,{characterData:!0}),oe=function(){zt.data=Ht=!Ht}):!$v&&nr&&nr.resolve?(ar=nr.resolve(void 0),ar.constructor=nr,us=os(ar.then,ar),oe=function(){us(ke)}):Wt?oe=function(){ss.nextTick(ke)}:(Kt=os(Kt,ne),oe=function(){Kt(ke)}),Qt=function(r){Le.head||oe(),Le.add(r)});var Le,ke;cs.exports=Qt});var ds=n((ZI,fs)=>{"use strict";fs.exports=function(r,e){try{arguments.length===1?console.error(r):console.error(r,e)}catch{}}});var sr=n((eS,ps)=>{"use strict";ps.exports=function(r){try{return{error:!1,value:r()}}catch(e){return{error:!0,value:e}}}});var gs=n((rS,hs)=>{"use strict";var Mv=I(),Fv=S(),vs=Mv.WeakMap;hs.exports=Fv(vs)&&/native code/.test(String(vs))});var ur=n((tS,bs)=>{"use strict";var Bv=ot(),Uv=at(),ms=Bv("keys");bs.exports=function(r){return ms[r]||(ms[r]=Uv(r))}});var cr=n((iS,ys)=>{"use strict";ys.exports={}});var Zt=n((oS,Es)=>{"use strict";var Vv=gs(),Ss=I(),Gv=R(),Kv=ee(),Yt=k(),Jt=qe(),Wv=ur(),Hv=cr(),Is="Object already initialized",Xt=Ss.TypeError,zv=Ss.WeakMap,lr,De,fr,Qv=function(r){return fr(r)?De(r):lr(r,{})},Yv=function(r){return function(e){var t;if(!Gv(e)||(t=De(e)).type!==r)throw new Xt("Incompatible receiver, "+r+" required");return t}};Vv||Jt.state?(A=Jt.state||(Jt.state=new zv),A.get=A.get,A.has=A.has,A.set=A.set,lr=function(r,e){if(A.has(r))throw new Xt(Is);return e.facade=r,A.set(r,e),e},De=function(r){return A.get(r)||{}},fr=function(r){return A.has(r)}):(z=Wv("state"),Hv[z]=!0,lr=function(r,e){if(Yt(r,z))throw new Xt(Is);return e.facade=r,Kv(r,z,e),e},De=function(r){return Yt(r,z)?r[z]:{}},fr=function(r){return Yt(r,z)});var A,z;Es.exports={set:lr,get:De,has:fr,enforce:Qv,getterFor:Yv}});var Q=n((nS,qs)=>{"use strict";var Jv=I();qs.exports=Jv.Promise});var ae=n((aS,_s)=>{"use strict";var Xv=I(),$e=Q(),Zv=S(),eh=ft(),rh=Rt(),th=O(),Ps=_t(),ih=L(),ei=Jr(),Ts=$e&&$e.prototype,oh=th("species"),ri=!1,Os=Zv(Xv.PromiseRejectionEvent),nh=eh("Promise",function(){var r=rh($e),e=r!==String($e);if(!e&&ei===66||ih&&!(Ts.catch&&Ts.finally))return!0;if(!ei||ei<51||!/native code/.test(r)){var t=new $e(function(a){a(1)}),i=function(a){a(function(){},function(){})},o=t.constructor={};if(o[oh]=i,ri=t.then(function(){})instanceof i,!ri)return!0}return!e&&(Ps==="BROWSER"||Ps==="DENO")&&!Os});_s.exports={CONSTRUCTOR:nh,REJECTION_EVENT:Os,SUBCLASSING:ri}});var se=n((sS,ws)=>{"use strict";var xs=j(),ah=TypeError,sh=function(r){var e,t;this.promise=new r(function(i,o){if(e!==void 0||t!==void 0)throw new ah("Bad Promise constructor");e=i,t=o}),this.resolve=xs(e),this.reject=xs(t)};ws.exports.f=function(r){return new sh(r)}});var zs=n(()=>{"use strict";var uh=_(),ch=L(),hr=tr(),V=I(),fe=w(),Rs=ie(),Cs=xt(),lh=Re(),fh=Ia(),dh=j(),vr=S(),ph=R(),vh=Ea(),hh=At(),Ds=Vt().set,ai=ls(),gh=ds(),mh=sr(),bh=Gt(),$s=Zt(),gr=Q(),si=ae(),js=se(),mr="Promise",Ms=si.CONSTRUCTOR,yh=si.REJECTION_EVENT,Ih=si.SUBCLASSING,ti=$s.getterFor(mr),Sh=$s.set,ue=gr&&gr.prototype,Y=gr,dr=ue,Fs=V.TypeError,ii=V.document,ui=V.process,oi=js.f,Eh=oi,qh=!!(ii&&ii.createEvent&&V.dispatchEvent),Bs="unhandledrejection",Ph="rejectionhandled",As=0,Us=1,Th=2,ci=1,Vs=2,pr,Ns,Oh,Ls,Gs=function(r){var e;return ph(r)&&vr(e=r.then)?e:!1},Ks=function(r,e){var t=e.value,i=e.state===Us,o=i?r.ok:r.fail,a=r.resolve,u=r.reject,c=r.domain,d,f,p;try{o?(i||(e.rejection===Vs&&xh(e),e.rejection=ci),o===!0?d=t:(c&&c.enter(),d=o(t),c&&(c.exit(),p=!0)),d===r.promise?u(new Fs("Promise-chain cycle")):(f=Gs(d))?fe(f,d,a,u):a(d)):u(t)}catch(v){c&&!p&&c.exit(),u(v)}},Ws=function(r,e){r.notified||(r.notified=!0,ai(function(){for(var t=r.reactions,i;i=t.get();)Ks(i,r);r.notified=!1,e&&!r.rejection&&_h(r)}))},Hs=function(r,e,t){var i,o;qh?(i=ii.createEvent("Event"),i.promise=e,i.reason=t,i.initEvent(r,!1,!0),V.dispatchEvent(i)):i={promise:e,reason:t},!yh&&(o=V["on"+r])?o(i):r===Bs&&gh("Unhandled promise rejection",t)},_h=function(r){fe(Ds,V,function(){var e=r.facade,t=r.value,i=ks(r),o;if(i&&(o=mh(function(){hr?ui.emit("unhandledRejection",t,e):Hs(Bs,e,t)}),r.rejection=hr||ks(r)?Vs:ci,o.error))throw o.value})},ks=function(r){return r.rejection!==ci&&!r.parent},xh=function(r){fe(Ds,V,function(){var e=r.facade;hr?ui.emit("rejectionHandled",e):Hs(Ph,e,r.value)})},ce=function(r,e,t){return function(i){r(e,i,t)}},le=function(r,e,t){r.done||(r.done=!0,t&&(r=t),r.value=e,r.state=Th,Ws(r,!0))},ni=function(r,e,t){if(!r.done){r.done=!0,t&&(r=t);try{if(r.facade===e)throw new Fs("Promise can't be resolved itself");var i=Gs(e);i?ai(function(){var o={done:!1};try{fe(i,e,ce(ni,o,r),ce(le,o,r))}catch(a){le(o,a,r)}}):(r.value=e,r.state=Us,Ws(r,!1))}catch(o){le({done:!1},o,r)}}};if(Ms&&(Y=function(e){vh(this,dr),dh(e),fe(pr,this);var t=ti(this);try{e(ce(ni,t),ce(le,t))}catch(i){le(t,i)}},dr=Y.prototype,pr=function(e){Sh(this,{type:mr,done:!1,notified:!1,parent:!1,reactions:new bh,rejection:!1,state:As,value:void 0})},pr.prototype=Rs(dr,"then",function(e,t){var i=ti(this),o=oi(hh(this,Y));return i.parent=!0,o.ok=vr(e)?e:!0,o.fail=vr(t)&&t,o.domain=hr?ui.domain:void 0,i.state===As?i.reactions.add(o):ai(function(){Ks(o,i)}),o.promise}),Ns=function(){var r=new pr,e=ti(r);this.promise=r,this.resolve=ce(ni,e),this.reject=ce(le,e)},js.f=oi=function(r){return r===Y||r===Oh?new Ns(r):Eh(r)},!ch&&vr(gr)&&ue!==Object.prototype)){Ls=ue.then,Ih||Rs(ue,"then",function(e,t){var i=this;return new Y(function(o,a){fe(Ls,i,o,a)}).then(e,t)},{unsafe:!0});try{delete ue.constructor}catch{}Cs&&Cs(ue,dr)}uh({global:!0,constructor:!0,wrap:!0,forced:Ms},{Promise:Y});lh(Y,mr,!1,!0);fh(mr)});var J=n((lS,Qs)=>{"use strict";Qs.exports={}});var Js=n((fS,Ys)=>{"use strict";var wh=O(),Rh=J(),Ch=wh("iterator"),Ah=Array.prototype;Ys.exports=function(r){return r!==void 0&&(Rh.Array===r||Ah[Ch]===r)}});var li=n((dS,Zs)=>{"use strict";var Nh=we(),Xs=ze(),Lh=Ie(),kh=J(),Dh=O(),$h=Dh("iterator");Zs.exports=function(r){if(!Lh(r))return Xs(r,$h)||Xs(r,"@@iterator")||kh[Nh(r)]}});var ru=n((pS,eu)=>{"use strict";var jh=w(),Mh=j(),Fh=M(),Bh=Ee(),Uh=li(),Vh=TypeError;eu.exports=function(r,e){var t=arguments.length<2?Uh(r):e;if(Mh(t))return Fh(jh(t,r));throw new Vh(Bh(r)+" is not iterable")}});var ou=n((vS,iu)=>{"use strict";var Gh=w(),tu=M(),Kh=ze();iu.exports=function(r,e,t){var i,o;tu(r);try{if(i=Kh(r,"return"),!i){if(e==="throw")throw t;return t}i=Gh(i,r)}catch(a){o=!0,i=a}if(e==="throw")throw t;if(o)throw i;return tu(i),t}});var yr=n((hS,uu)=>{"use strict";var Wh=Te(),Hh=w(),zh=M(),Qh=Ee(),Yh=Js(),Jh=bt(),nu=We(),Xh=ru(),Zh=li(),au=ou(),eg=TypeError,br=function(r,e){this.stopped=r,this.result=e},su=br.prototype;uu.exports=function(r,e,t){var i=t&&t.that,o=!!(t&&t.AS_ENTRIES),a=!!(t&&t.IS_RECORD),u=!!(t&&t.IS_ITERATOR),c=!!(t&&t.INTERRUPTED),d=Wh(e,i),f,p,v,s,l,h,m,b=function(y){return f&&au(f,"normal",y),new br(!0,y)},g=function(y){return o?(zh(y),c?d(y[0],y[1],b):d(y[0],y[1])):c?d(y,b):d(y)};if(a)f=r.iterator;else if(u)f=r;else{if(p=Zh(r),!p)throw new eg(Qh(r)+" is not iterable");if(Yh(p)){for(v=0,s=Jh(r);s>v;v++)if(l=g(r[v]),l&&nu(su,l))return l;return new br(!1)}f=Xh(r,p)}for(h=a?r.next:f.next;!(m=Hh(h,f)).done;){try{l=g(m.value)}catch(y){au(f,"throw",y)}if(typeof l=="object"&&l&&nu(su,l))return l}return new br(!1)}});var pu=n((gS,du)=>{"use strict";var rg=O(),lu=rg("iterator"),fu=!1;try{cu=0,fi={next:function(){return{done:!!cu++}},return:function(){fu=!0}},fi[lu]=function(){return this},Array.from(fi,function(){throw 2})}catch{}var cu,fi;du.exports=function(r,e){try{if(!e&&!fu)return!1}catch{return!1}var t=!1;try{var i={};i[lu]=function(){return{next:function(){return{done:t=!0}}}},r(i)}catch{}return t}});var di=n((mS,vu)=>{"use strict";var tg=Q(),ig=pu(),og=ae().CONSTRUCTOR;vu.exports=og||!ig(function(r){tg.all(r).then(void 0,function(){})})});var hu=n(()=>{"use strict";var ng=_(),ag=w(),sg=j(),ug=se(),cg=sr(),lg=yr(),fg=di();ng({target:"Promise",stat:!0,forced:fg},{all:function(e){var t=this,i=ug.f(t),o=i.resolve,a=i.reject,u=cg(function(){var c=sg(t.resolve),d=[],f=0,p=1;lg(e,function(v){var s=f++,l=!1;p++,ag(c,t,v).then(function(h){l||(l=!0,d[s]=h,--p||o(d))},a)}),--p||o(d)});return u.error&&a(u.value),i.promise}})});var mu=n(()=>{"use strict";var dg=_(),pg=L(),vg=ae().CONSTRUCTOR,vi=Q(),hg=$(),gg=S(),mg=ie(),gu=vi&&vi.prototype;dg({target:"Promise",proto:!0,forced:vg,real:!0},{catch:function(r){return this.then(void 0,r)}});!pg&&gg(vi)&&(pi=hg("Promise").prototype.catch,gu.catch!==pi&&mg(gu,"catch",pi,{unsafe:!0}));var pi});var bu=n(()=>{"use strict";var bg=_(),yg=w(),Ig=j(),Sg=se(),Eg=sr(),qg=yr(),Pg=di();bg({target:"Promise",stat:!0,forced:Pg},{race:function(e){var t=this,i=Sg.f(t),o=i.reject,a=Eg(function(){var u=Ig(t.resolve);qg(e,function(c){yg(u,t,c).then(i.resolve,o)})});return a.error&&o(a.value),i.promise}})});var yu=n(()=>{"use strict";var Tg=_(),Og=se(),_g=ae().CONSTRUCTOR;Tg({target:"Promise",stat:!0,forced:_g},{reject:function(e){var t=Og.f(this),i=t.reject;return i(e),t.promise}})});var hi=n((OS,Iu)=>{"use strict";var xg=M(),wg=R(),Rg=se();Iu.exports=function(r,e){if(xg(r),wg(e)&&e.constructor===r)return e;var t=Rg.f(r),i=t.resolve;return i(e),t.promise}});var qu=n(()=>{"use strict";var Cg=_(),Ag=$(),Su=L(),Ng=Q(),Eu=ae().CONSTRUCTOR,Lg=hi(),kg=Ag("Promise"),Dg=Su&&!Eu;Cg({target:"Promise",stat:!0,forced:Su||Eu},{resolve:function(e){return Lg(Dg&&this===kg?Ng:this,e)}})});var Pu=n(()=>{"use strict";zs();hu();mu();bu();yu();qu()});var xu=n(()=>{"use strict";var $g=_(),jg=L(),Ir=Q(),Mg=E(),Ou=$(),_u=S(),Fg=At(),Tu=hi(),Bg=ie(),mi=Ir&&Ir.prototype,Ug=!!Ir&&Mg(function(){mi.finally.call({then:function(){}},function(){})});$g({target:"Promise",proto:!0,real:!0,forced:Ug},{finally:function(r){var e=Fg(this,Ou("Promise")),t=_u(r);return this.then(t?function(i){return Tu(e,r()).then(function(){return i})}:r,t?function(i){return Tu(e,r()).then(function(){throw i})}:r)}});!jg&&_u(Ir)&&(gi=Ou("Promise").prototype.finally,mi.finally!==gi&&Bg(mi,"finally",gi,{unsafe:!0}));var gi});var Ru=n((NS,wu)=>{"use strict";Xn();Pu();xu();var Vg=Xe();wu.exports=Vg("Promise","finally")});var Au=n((LS,Cu)=>{"use strict";var Gg=Ru();Cu.exports=Gg});var Lu=n((kS,Nu)=>{"use strict";var Kg=Au();Nu.exports=Kg});var Du=n((DS,ku)=>{"use strict";var Wg=E();ku.exports=!Wg(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var Sr=n(($S,ju)=>{"use strict";var Hg=k(),zg=S(),Qg=nt(),Yg=ur(),Jg=Du(),$u=Yg("IE_PROTO"),bi=Object,Xg=bi.prototype;ju.exports=Jg?bi.getPrototypeOf:function(r){var e=Qg(r);if(Hg(e,$u))return e[$u];var t=e.constructor;return zg(t)&&e instanceof t?t.prototype:e instanceof bi?Xg:null}});var Bu=n((jS,Fu)=>{"use strict";var Zg=P(),yi=k(),em=G(),rm=yt().indexOf,tm=cr(),Mu=Zg([].push);Fu.exports=function(r,e){var t=em(r),i=0,o=[],a;for(a in t)!yi(tm,a)&&yi(t,a)&&Mu(o,a);for(;e.length>i;)yi(t,a=e[i++])&&(~rm(o,a)||Mu(o,a));return o}});var Ii=n((MS,Uu)=>{"use strict";Uu.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Si=n((FS,Vu)=>{"use strict";var im=Bu(),om=Ii();Vu.exports=Object.keys||function(e){return im(e,om)}});var Qu=n((BS,zu)=>{"use strict";var Ku=T(),nm=E(),Wu=P(),am=Sr(),sm=Si(),um=G(),cm=Wr().f,Hu=Wu(cm),lm=Wu([].push),fm=Ku&&nm(function(){var r=Object.create(null);return r[2]=2,!Hu(r,2)}),Gu=function(r){return function(e){for(var t=um(e),i=sm(t),o=fm&&am(t)===null,a=i.length,u=0,c=[],d;a>u;)d=i[u++],(!Ku||(o?d in t:Hu(t,d)))&&lm(c,r?[d,t[d]]:t[d]);return c}};zu.exports={entries:Gu(!0),values:Gu(!1)}});var Yu=n(()=>{"use strict";var dm=_(),pm=Qu().entries;dm({target:"Object",stat:!0},{entries:function(e){return pm(e)}})});var Xu=n((GS,Ju)=>{"use strict";Yu();var vm=Se();Ju.exports=vm.Object.entries});var ec=n((KS,Zu)=>{"use strict";var hm=Xu();Zu.exports=hm});var Er=n((WS,rc)=>{"use strict";var gm=ec();rc.exports=gm});var oc=n((HS,ic)=>{"use strict";var Ei=T(),mm=k(),tc=Function.prototype,bm=Ei&&Object.getOwnPropertyDescriptor,qi=mm(tc,"name"),ym=qi&&function(){}.name==="something",Im=qi&&(!Ei||Ei&&bm(tc,"name").configurable);ic.exports={EXISTS:qi,PROPER:ym,CONFIGURABLE:Im}});var ac=n(nc=>{"use strict";var Sm=T(),Em=dt(),qm=W(),Pm=M(),Tm=G(),Om=Si();nc.f=Sm&&!Em?Object.defineProperties:function(e,t){Pm(e);for(var i=Tm(t),o=Om(t),a=o.length,u=0,c;a>u;)qm.f(e,c=o[u++],i[c]);return e}});var _i=n((QS,pc)=>{"use strict";var _m=M(),xm=ac(),sc=Ii(),wm=cr(),Rm=Nt(),Cm=Qe(),Am=ur(),uc=">",cc="<",Ti="prototype",Oi="script",fc=Am("IE_PROTO"),Pi=function(){},dc=function(r){return cc+Oi+uc+r+cc+"/"+Oi+uc},lc=function(r){r.write(dc("")),r.close();var e=r.parentWindow.Object;return r=null,e},Nm=function(){var r=Cm("iframe"),e="java"+Oi+":",t;return r.style.display="none",Rm.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(dc("document.F=Object")),t.close(),t.F},qr,Pr=function(){try{qr=new ActiveXObject("htmlfile")}catch{}Pr=typeof document<"u"?document.domain&&qr?lc(qr):Nm():lc(qr);for(var r=sc.length;r--;)delete Pr[Ti][sc[r]];return Pr()};wm[fc]=!0;pc.exports=Object.create||function(e,t){var i;return e!==null?(Pi[Ti]=_m(e),i=new Pi,Pi[Ti]=null,i[fc]=e):i=Pr(),t===void 0?i:xm.f(i,t)}});var Ci=n((YS,gc)=>{"use strict";var Lm=E(),km=S(),Dm=R(),$m=_i(),vc=Sr(),jm=ie(),Mm=O(),Fm=L(),Ri=Mm("iterator"),hc=!1,F,xi,wi;[].keys&&(wi=[].keys(),"next"in wi?(xi=vc(vc(wi)),xi!==Object.prototype&&(F=xi)):hc=!0);var Bm=!Dm(F)||Lm(function(){var r={};return F[Ri].call(r)!==r});Bm?F={}:Fm&&(F=$m(F));km(F[Ri])||jm(F,Ri,function(){return this});gc.exports={IteratorPrototype:F,BUGGY_SAFARI_ITERATORS:hc}});var bc=n((JS,mc)=>{"use strict";var Um=Ci().IteratorPrototype,Vm=_i(),Gm=ye(),Km=Re(),Wm=J(),Hm=function(){return this};mc.exports=function(r,e,t,i){var o=e+" Iterator";return r.prototype=Vm(Um,{next:Gm(+!i,t)}),Km(r,o,!1,!0),Wm[o]=Hm,r}});var wc=n((XS,xc)=>{"use strict";var zm=_(),Qm=w(),Tr=L(),Oc=oc(),Ym=S(),Jm=bc(),yc=Sr(),Ic=xt(),Xm=Re(),Zm=ee(),Ai=ie(),eb=O(),Sc=J(),_c=Ci(),rb=Oc.PROPER,tb=Oc.CONFIGURABLE,Ec=_c.IteratorPrototype,Or=_c.BUGGY_SAFARI_ITERATORS,je=eb("iterator"),qc="keys",Me="values",Pc="entries",Tc=function(){return this};xc.exports=function(r,e,t,i,o,a,u){Jm(t,e,i);var c=function(g){if(g===o&&s)return s;if(!Or&&g&&g in p)return p[g];switch(g){case qc:return function(){return new t(this,g)};case Me:return function(){return new t(this,g)};case Pc:return function(){return new t(this,g)}}return function(){return new t(this)}},d=e+" Iterator",f=!1,p=r.prototype,v=p[je]||p["@@iterator"]||o&&p[o],s=!Or&&v||c(o),l=e==="Array"&&p.entries||v,h,m,b;if(l&&(h=yc(l.call(new r)),h!==Object.prototype&&h.next&&(!Tr&&yc(h)!==Ec&&(Ic?Ic(h,Ec):Ym(h[je])||Ai(h,je,Tc)),Xm(h,d,!0,!0),Tr&&(Sc[d]=Tc))),rb&&o===Me&&v&&v.name!==Me&&(!Tr&&tb?Zm(p,"name",Me):(f=!0,s=function(){return Qm(v,this)})),o)if(m={values:c(Me),keys:a?s:c(qc),entries:c(Pc)},u)for(b in m)(Or||f||!(b in p))&&Ai(p,b,m[b]);else zm({target:e,proto:!0,forced:Or||f},m);return(!Tr||u)&&p[je]!==s&&Ai(p,je,s,{name:o}),Sc[e]=s,m}});var Cc=n((ZS,Rc)=>{"use strict";Rc.exports=function(r,e){return{value:r,done:e}}});var Li=n((eE,Dc)=>{"use strict";var ib=G(),Ni=It(),Ac=J(),Lc=Zt(),ob=W().f,nb=wc(),_r=Cc(),ab=L(),sb=T(),kc="Array Iterator",ub=Lc.set,cb=Lc.getterFor(kc);Dc.exports=nb(Array,"Array",function(r,e){ub(this,{type:kc,target:ib(r),index:0,kind:e})},function(){var r=cb(this),e=r.target,t=r.index++;if(!e||t>=e.length)return r.target=void 0,_r(void 0,!0);switch(r.kind){case"keys":return _r(t,!1);case"values":return _r(e[t],!1)}return _r([t,e[t]],!1)},"values");var Nc=Ac.Arguments=Ac.Array;Ni("keys");Ni("values");Ni("entries");if(!ab&&sb&&Nc.name!=="values")try{ob(Nc,"name",{value:"values"})}catch{}});var jc=n((rE,$c)=>{"use strict";var lb=T(),fb=W(),db=ye();$c.exports=function(r,e,t){lb?fb.f(r,e,db(0,t)):r[e]=t}});var Mc=n(()=>{"use strict";var pb=_(),vb=yr(),hb=jc();pb({target:"Object",stat:!0},{fromEntries:function(e){var t={};return vb(e,function(i,o){hb(t,i,o)},{AS_ENTRIES:!0}),t}})});var Bc=n((oE,Fc)=>{"use strict";Li();Mc();var gb=Se();Fc.exports=gb.Object.fromEntries});var Vc=n((nE,Uc)=>{"use strict";Uc.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 Kc=n(()=>{"use strict";Li();var mb=Vc(),bb=I(),yb=Re(),Gc=J();for(xr in mb)yb(bb[xr],xr),Gc[xr]=Gc.Array;var xr});var Hc=n((uE,Wc)=>{"use strict";var Ib=Bc();Kc();Wc.exports=Ib});var Qc=n((cE,zc)=>{"use strict";var Sb=Hc();zc.exports=Sb});var Bi=n((ZE,cl)=>{"use strict";var _b=we(),xb=String;cl.exports=function(r){if(_b(r)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return xb(r)}});var fl=n((eq,ll)=>{"use strict";var wb=Je(),Rb=Bi(),Cb=X(),Ab=RangeError;ll.exports=function(e){var t=Rb(Cb(this)),i="",o=wb(e);if(o<0||o===1/0)throw new Ab("Wrong number of repetitions");for(;o>0;(o>>>=1)&&(t+=t))o&1&&(i+=t);return i}});var gl=n((rq,hl)=>{"use strict";var vl=P(),Nb=mt(),dl=Bi(),Lb=fl(),kb=X(),Db=vl(Lb),$b=vl("".slice),jb=Math.ceil,pl=function(r){return function(e,t,i){var o=dl(kb(e)),a=Nb(t),u=o.length,c=i===void 0?" ":dl(i),d,f;return a<=u||c===""?o:(d=a-u,f=Db(c,jb(d/c.length)),f.length>d&&(f=$b(f,0,d)),r?o+f:f+o)}};hl.exports={start:pl(!1),end:pl(!0)}});var bl=n((tq,ml)=>{"use strict";var Mb=K();ml.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(Mb)});var yl=n(()=>{"use strict";var Fb=_(),Bb=gl().start,Ub=bl();Fb({target:"String",proto:!0,forced:Ub},{padStart:function(e){return Bb(this,e,arguments.length>1?arguments[1]:void 0)}})});var Sl=n((nq,Il)=>{"use strict";yl();var Vb=Xe();Il.exports=Vb("String","padStart")});var ql=n((aq,El)=>{"use strict";var Gb=Sl();El.exports=Gb});var Tl=n((sq,Pl)=>{"use strict";var Kb=ql();Pl.exports=Kb});var Hi=D(Ze(),1);var _e=(u=>(u.PROD="prod",u.VK_ALIAS="vk_alias",u.VIDEOTEST="videotest",u.TEST="test",u.OKCDN="okcdn",u.AUTO="auto",u))(_e||{}),St=(f=>(f.Q144P="mobile",f.Q240P="lowest",f.Q360P="low",f.Q480P="medium",f.Q720P="high",f.Q1080P="fullhd",f.Q1440P="quadhd",f.Q2160P="ultrahd",f.UNKNOWN="unknown",f))(St||{}),Et=(l=>(l.MP4="mp4",l.DASH="dash",l.DASH_SEP="dash_sep",l.ONDEMAND_DASH="ondemand_dash",l.HLS="hls",l.ONDEMAND_HLS="ondemand_hls",l.WEBM="webm",l.AV1="av1",l.ONDEMAND_DASH_LIVE="ondemand_dash_live",l.ONDEMAND_HLS_LIVE="ondemand_hls_live",l.WEBRTC="webrtc",l.UNKNOWN="unknown",l.RTMP="rtmp",l))(Et||{});var qt=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.HTTP3="http3",i))(qt||{});var Pt=(c=>(c.SLIDER="slider",c.DOUBLE_TAP="double_tap",c.TIME_CODE="time_code",c.EPISODE="episode",c.REWIND="rewind",c.LIVE="live",c.UNKNOWN="unknown",c))(Pt||{}),Kn=(a=>(a.GRAPH_SHOW="iGraphShow",a.GRAPH_HIDE="iGraphHide",a.NEXT_AREA="iNextChapterArea",a.NEXT_BUTTON="iNextChapterBtn",a.WATCH_AGAIN="iWatchAgainBtn",a))(Kn||{}),Wn={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"},Hn={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"},zn={unknown:"un",mobile:"m",lowest:"ls",low:"l",medium:"md",high:"h",fullhd:"f",quadhd:"q",ultrahd:"u"},Qn={pip:"pi",fullscreen:"fs",external:"ex",prefetch:"pr",airplay:"ap",chromecast:"cc",invisible:"iv"};import{fillWithDefault as pp}from"@vkontakte/videoplayer-shared";var er="1.0.71-dev.ffbc0545.0",Yn="CIOPGQJGDIHBABABA",Tt={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 vp={apiEnv:"vk_alias",apiKey:Yn,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,backoff:{start:1e3,factor:1.5,max:5*60*1e3,random:.1}},Jn=r=>pp(r,vp);function Ot(){let r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),t=0,i,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(t<=2&&(t=33554432+Math.random()*16777216|0),i=t&15,t=t>>4,e[o]=r[o===19?i&3|8:i]);return e.join("")}import{assertNonNullable as Xb,combine as Al,fromEvent as Nl,isNonNullable as he,isNullable as Ll,merge as Zb,now as B,observableFrom as ey,once as ry,safeStorage as $r,Subject as ty,Subscription as zi,ValueSubject as Ki,createURL as kl}from"@vkontakte/videoplayer-shared";import{Logger as iy,detectEmbed as oy}from"@vkontakte/videoplayer-shared";var wr=D(Lu(),1);var Yc=D(Er(),1),Jc=D(Qc(),1);var Xc=r=>{let{operation:e,custom:t}=r,i=(0,Jc.default)((0,Yc.default)(t).map(([o,a])=>{let u=Hn[o]??o,c=a;return a&&(o==="mode"?c=Qn[a]??a:o==="quality"&&(c=zn[a]??a)),[u,c]}));return{...r,operation:Wn[e]??e,custom:i}};import{ValueSubject as Eb,getExponentialDelay as qb,ErrorCategory as de}from"@vkontakte/videoplayer-shared";var Fe=class{constructor(e){this.consequentAuthErrors=0;this.authorized$=new Eb(!1);this.params=e}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this._authorizeWithBackoff()}logBeacon(e){let t="log.externalLog",i=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(t,i,o)||this.logRequest(e).catch(()=>{})}async logRequest(e){let t="log.externalLog",i=this.createLogParams(e),o=this.sessionKey??await this._authorizeWithBackoff();if(!o)return;let a=async(u,c=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(t,i,o)}catch(d){if(!d||!("error_code"in d)){this.params.error$.next({id:"logRequestUnknown",category:de.NETWORK,message:`Unknown ${t} error`,thrown:d});return}let f=d?.error_code;switch(f){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this._authorizeWithBackoff(),c>0?a(u,c-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this._authorizeWithBackoff(),c>0?a(u,c-1):void 0;default:{this.params.error$.next({id:`LogRequest#${f}`,category:de.EXTERNAL_API,message:`${t} error`,data:d});return}}}};return a(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=(0,wr.default)(this.params.refreshAuthToken(),()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){return{collector:"ok.mobile.apps.video",data:JSON.stringify({application:`@vkontakte/videoplayer-statistics:${er}`,platform:this.params.mobile?"M_WEB":"WEB",items:this.params.config.shorten?e.map(Xc):e})}}_authorizeWithBackoff(){if(!this.consequentAuthErrors)return this._authorize();let e=qb(this.consequentAuthErrors,this.params.config.backoff);return new Promise(t=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(()=>{(0,wr.default)(this._authorize().then(t).catch(i=>this.params.error$.next({id:"AuthorizeBackoff",category:de.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",t={session_data:{version:2,device_id:this.params.deviceId,client_version:er.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(t.session_data.auth_token=this.authToken,t.session_data.version=3),this.authorizePromise=(0,wr.default)(this.params.apiTransport.sendRequest(e,t).then(i=>((!i||!i.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:de.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:de.EXTERNAL_API,message:"authorize error",data:i}):this.params.error$.next({id:"AuthorizeUnknown",category:de.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 Rr=class{constructor(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}addEventListener(e,t,i){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push({callback:t,options:i})}removeEventListener(e,t){if(!(e in this.listeners))return;let i=this.listeners[e];for(let o=0,a=i.length;o<a;o++)if(i[o].callback===t){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,a=i.length;o<a;o++){let u=i[o];try{u.callback.call(this,e)}catch(c){Promise.resolve().then(()=>{throw c})}u.options&&u.options.once&&this.removeEventListener(e.type,u.callback)}return!e.defaultPrevented}},pe=class extends Rr{constructor(){super(),this.listeners||Rr.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)}},Be=class{constructor(){Object.defineProperty(this,"signal",{value:new pe,writable:!0,configurable:!0})}abort(e){let t;try{t=new Event("abort")}catch{typeof document<"u"?document.createEvent?(t=document.createEvent("Event"),t.initEvent("abort",!1,!1)):(t=document.createEventObject(),t.type="abort"):t={type:"abort",bubbles:!1,cancelable:!1}}let i=e;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(t)}toString(){return"[object AbortController]"}};typeof Symbol<"u"&&Symbol.toStringTag&&(Be.prototype[Symbol.toStringTag]="AbortController",pe.prototype[Symbol.toStringTag]="AbortSignal");function Cr(r){return r.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof r.Request=="function"&&!r.Request.prototype.hasOwnProperty("signal")||!r.AbortController}function ki(r){typeof r=="function"&&(r={fetch:r});let{fetch:e,Request:t=e.Request,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o=!1}=r;if(!Cr({fetch:e,Request:t,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o}))return{fetch:e,Request:a};let a=t;(a&&!a.prototype.hasOwnProperty("signal")||o)&&(a=function(f,p){let v;p&&p.signal&&(v=p.signal,delete p.signal);let s=new t(f,p);return v&&Object.defineProperty(s,"signal",{writable:!1,enumerable:!1,configurable:!0,value:v}),s},a.prototype=t.prototype);let u=e;return{fetch:(d,f)=>{let p=a&&a.prototype.isPrototypeOf(d)?d.signal:f?f.signal:void 0;if(p){let v;try{v=new DOMException("Aborted","AbortError")}catch{v=new Error("Aborted"),v.name="AbortError"}if(p.aborted)return Promise.reject(v);let s=new Promise((l,h)=>{p.addEventListener("abort",()=>h(v),{once:!0})});return f&&f.signal&&delete f.signal,Promise.race([s,u(d,f)])}return u(d,f)},Request:a}}var Ue=Cr({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}),Zc=Ue?ki({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}):void 0,Di=Ue?Zc.fetch:window.fetch,xE=Ue?Zc.Request:window.Request,wE=Ue?Be:window.AbortController,RE=Ue?pe:window.AbortSignal;var el=D(Ze(),1),rl=D(Er(),1);import{ErrorCategory as Ar,now as $i}from"@vkontakte/videoplayer-shared";var Ve=class{constructor(e){this.params=e,this.apiKey=e.config.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=Tt[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 Di(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:Ar.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),Tt.vk_alias}finally{this.isApiBaseUrlFetched=!0}}sendBeacon(e,t,i){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this._prepareQueryParams({method:e,queryParams:t,sessionKey:i}),a=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,a)}catch(u){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:Ar.NETWORK,message:"Unhandled beacon error",thrown:u,data:{method:e,params:t}})}return!1}async sendRequest(e,t,i){let o=$i(),a=u=>{if(u instanceof TypeError&&(0,el.default)(["Failed to fetch","NetworkError when attempting to fetch resource."],u.message)){this.params.error$.next({id:"Network",category:Ar.NETWORK,message:"Request failed",thrown:u});return}this.params.error$.next({id:"OneStat:ApiTransport:sendRequest",category:Ar.NETWORK,message:"Unhandled request error",thrown:u,data:{method:e,params:t,sessionKey:i,time:$i()-o}})};return this.apiBaseUrl=await this.resolveApiBaseUrl(),Di(`${this.apiBaseUrl}/fb.do`,{method:"post",headers:{"Content-type":"application/x-www-form-urlencoded"},body:this._prepareQueryParams({method:e,queryParams:t,sessionKey:i})}).then(u=>{let c=Number(u.headers.get("content-length"))===0,d=new Date(u.headers.get("date")??"").getTime(),f=$i()-o;if(isFinite(d)&&this.timeSynchronisation?.addServerTime(d,f),!c)return u.json().then(p=>Object.prototype.hasOwnProperty.call(p,"error_msg")?Promise.reject(p):p,a)},a)}_prepareQueryParams(e){let t=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&t.append("session_key",e.sessionKey),(0,rl.default)(e.queryParams).forEach(([i,o])=>t.append(i,typeof o=="string"?o:JSON.stringify(o))),t}};var il=D(Ze(),1),ol=D(Er(),1);import{ErrorCategory as Pb,now as Tb,safeStorage as Ge,debounceFn as tl}from"@vkontakte/videoplayer-shared";var Nr="onestat_events",ji=r=>e=>e.timestamp+r>=Tb(),Lr=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{operation:t}=e;return(0,il.default)(["action_play","watch_coverage_record","watch_coverage_live"],t)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=tl(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let t=Ge.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=tl(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:t}),this.subscription=this.api.authorized$.subscribe(i=>{i&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:Pb.WTF,message:String(e)??"Unknown logger error",thrown:e})}}readFromStorage(){let e=Ge.get(Nr);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let t=this.readFromStorage(),o=(t[this.userSalt]??[]).filter(ji(this.params.config.storageExpiration));Ge.set(Nr,JSON.stringify({...t,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(ji(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],Ge.set(Nr,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[t,i]of(0,ol.default)(e)){let o=i.filter(ji(this.params.config.storageExpiration));o.length?e[t]=o:delete e[t],this.loggerDebugLog({message:`${i.length} retrieved from storage, ${o.length} of them actual`})}Ge.set(Nr,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:t}={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)),t&&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 Mi,Surface as ve,VideoFormat as q,VideoQuality as N}from"@vkontakte/videoplayer-core";import{assertNever as nl}from"@vkontakte/videoplayer-shared";var al=r=>r&&{[N.INVARIANT]:"unknown",[N.Q_144P]:"mobile",[N.Q_240P]:"lowest",[N.Q_360P]:"low",[N.Q_480P]:"medium",[N.Q_576P]:"unknown",[N.Q_720P]:"high",[N.Q_1080P]:"fullhd",[N.Q_1440P]:"quadhd",[N.Q_2160P]:"ultrahd",[N.Q_4320P]:"unknown"}[r],Fi=r=>r&&{[Mi.HTTP1]:"http1",[Mi.HTTP2]:"http2",[Mi.QUIC]:"http3"}[r],sl=r=>{if(r!==void 0)switch(r){case q.MPEG:return"mp4";case q.DASH:case q.DASH_LIVE:case q.DASH_STREAMS:return"dash";case q.DASH_SEP:return"dash_sep";case q.DASH_ONDEMAND:return"ondemand_dash";case q.DASH_WEBM:case q.DASH_LIVE_WEBM:return"webm";case q.DASH_WEBM_AV1:return"av1";case q.DASH_LIVE_CMAF:return"ondemand_dash_live";case q.HLS:case q.HLS_LIVE:return"hls";case q.HLS_ONDEMAND:return"ondemand_hls";case q.HLS_LIVE_CMAF:return"ondemand_hls_live";case q.WEB_RTC_LIVE:return"webrtc";default:return nl(r)}},kr=r=>{if(r!==void 0)switch(r){case ve.NONE:case ve.INLINE:return;case ve.FULLSCREEN:return"fullscreen";case ve.SECOND_SCREEN:return"chromecast";case ve.PIP:return"pip";case ve.INVISIBLE:return"invisible";default:return nl(r)}},ul=r=>{switch(r){case"slow-2g":return"poor";case"2g":return"poor";case"3g":return"good";case"4g":return"excellent"}};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,t){let i=Date.now(),o=e-i-t/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 Ui=D(Tl(),1),Ol=()=>(0,Ui.default)(Math.floor(Math.random()*2**32).toString(36),7,"0"),_l=()=>(0,Ui.default)(Math.floor(Math.random()*2**64).toString(36),13,"0");import{PlaybackState as xl}from"@vkontakte/videoplayer-core";import{filter as wl,filterChanged as Wb,fromEvent as Hb,isNullable as Rl,map as zb,merge as Vi,Observable as Qb,Subject as Gi,Subscription as Yb,ValueSubject as Jb}from"@vkontakte/videoplayer-shared";var Cl=(r,e)=>new Qb(t=>{let i=new Yb,o=Vi(Hb(window,"beforeunload"),r.events.willDestruct$),a=new Jb(void 0),u;i.add(r.info.isLive$.pipe(Wb()).subscribe(U=>{u&&(u.unsubscribe(),a.next(void 0)),U?u=r.info.liveTime$.pipe(zb(Fr=>Fr&&Fr/1e3)).subscribe(a):u=r.info.position$.subscribe(a),i.add(u)}));let{playing$:c,paused$:d}=r.events,f=r.events.willSeek$.pipe(wl(()=>r.info.playbackState$.getValue()===xl.PLAYING)),p=r.events.seeked$.pipe(wl(()=>r.info.playbackState$.getValue()===xl.PLAYING)),v=!1,s=new Gi;i.add(f.subscribe(()=>{v||s.next(),v=!0})),i.add(p.subscribe(()=>v=!1));let l=new Gi,h=new Gi,m=Vi(c,p,l),b=Vi(d,s,o,r.events.looped$,h),g,y=()=>g=a.getValue(),jr=()=>{let U=a.getValue();Rl(g)||g===U||Rl(U)||(t.next({from:g,to:U}),g=void 0)},Mr=()=>{h.next(),l.next()};if(i.add(m.subscribe(y)),i.add(b.subscribe(jr)),e.forceInterval&&isFinite(e.forceInterval)){let U=0;i.add(m.subscribe(()=>U=window.setTimeout(Mr,e.forceInterval))),i.add(b.subscribe(()=>window.clearTimeout(U)))}return i});var jl="_one-stat_",Dl=`${jl}uuid`,$l=`${jl}deviceId`,Wi=()=>{let r=new zi;return{subscription:r,subscribe:(e,t)=>{e&&r.add(e.subscribe(t))}}},Qi=class{constructor(e,t){this.subscription=new zi;this.debugLogger=new iy;this.oneStatDebugLog=this.debugLogger.createComponentLog("onestat");this.loopCounter=0;this.disabled=!1;this.vsid$=new Ki(void 0);this.isid$=new Ki(void 0);this.seekAction$=new Ki("unknown");this.statContext=e,this.config=Jn(t.config??{}),he(t.apiEnv)&&(this.config.apiEnv=t.apiEnv),this.config.synchronizeTime&&(this.timeSynchronisation=new Dr);let i=new ty;this.experimental={error$:i},$r.get(Dl)&&$r.remove(Dl);let a=$r.get($l);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:a?this.deviceId=a:(this.deviceId=Ot(),$r.set($l,this.deviceId)),this.resetViewSession(),t.useIsid&&this.isid$.next(t.isid??_l());let u=new Ve({config:this.config,error$:i,timeSynchronisation:this.timeSynchronisation});this.api=new Fe({config:this.config,apiTransport:u,refreshAuthToken:t.refreshAuthToken,mobile:this.statContext.mobile??!1,deviceId:this.deviceId,error$:i}),this.logger=new Lr({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:i,userSalt:t.userSalt});let{isEmbed:c,topOrigin:d}=oy();this.isEmbed=c,this.embedParent=d?new URL(d).hostname:void 0,this.subscribe()}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e){let t=new zi,i=(s,l)=>t.add(s.subscribe(l));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(Cl(e,{forceInterval:this.config.watchCoverageInterval}),s=>{let l=e.info.isLive$.getValue(),h=e.info.atLiveEdge$.getValue(),m={start:parseFloat(s.from.toFixed(3)),end:parseFloat(s.to.toFixed(3))},b,g;if(l&&h){let y=e.info.liveLatency$.getValue()??0,jr=e.info.currentBuffer$.getValue()?.end??0,Mr=e.info.liveBufferTime$.getValue()??0;b=y*1e3,g=(y-(jr-Mr))*1e3,b&&g&&(m={...m,latency:b,bufferLatency:g})}l?this.logWatchCoverageLive(m):this.logWatchCoverageRecord(m)});let o;i(e.info.isStalled$,s=>{s?o=B():(he(o)&&this.logEmptyBuffer({duration:B()-o}),o=void 0)});let a=!1;t.add(e.events.fatalError$.pipe(ry()).subscribe(()=>a=!0)),i(e.events.willStop$,()=>{if(e.info.isStalled$.getValue()){let l=he(o)?B()-o:void 0;this.logCloseAtEmptyBuffer({duration:l??0}),o=void 0}else a||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 u,c,d=!1;i(e.events.firstBytes$,s=>{u=B(),this.logFirstBytes({time:s})}),i(e.events.willStart$,()=>c=B()),i(e.info.currentBuffer$,s=>{!d&&s&&s.end-s.start>0&&he(u)&&(this.logPlayerReady({duration:B()-u}),d=!0)}),i(e.events.firstFrame$,()=>{he(u)&&!d&&(this.logPlayerReady({duration:B()-u}),d=!0),he(c)&&this.logFirstFrame({time:B()-c})});let f;i(e.info.currentVideoStream$,s=>{s&&(f&&s.id!==f&&this.logTrackSwitch(s),f=s.id)});let p;i(e.info.currentAudioStream$,s=>{s&&(p&&s.id!==p&&this.logTrackSwitch(s),p=s.id)}),i(e.info.atLiveEdge$,s=>this.updateContext({liveEdge:s})),i(Al({muted:e.info.muted$,volume:e.info.volume$}),({muted:s,volume:l})=>this.updateContext({audible:!s&&l>0})),i(e.info.currentQuality$,s=>{let l=al(s);this.updateContext({quality:l}),l&&this.logQuality(l)}),i(e.info.isAutoQualityEnabled$,s=>this.updateContext({autoQuality:s})),i(e.info.currentFormat$,s=>this.updateContext({contentType:sl(s)})),i(e.info.currentPlaybackRate$,s=>this.updateContext({rate:s})),i(e.info.is3DVideo$,s=>this.updateContext({is3d:s}));let v;return i(e.info.hostname$,s=>{let l=v!==void 0&&v!==s;this.updateContext({cdnHostname:s,failover:l}),l&&this.logFailover(s),v=s}),i(e.info.throughputEstimation$,s=>this.updateContext({downloadSpeed:s})),i(e.info.httpConnectionType$,s=>{this.statContext.firstConnectionType||this.updateContext({firstConnectionType:Fi(s)}),this.updateContext({connectionType:Fi(s)})}),i(e.info.httpConnectionReused$,s=>{Ll(this.statContext.firstConnectionReused)&&this.updateContext({firstConnectionReused:s}),this.updateContext({connectionReused:s})}),i(e.info.surface$,s=>this.updateContext({mode:kr(s)})),i(Al({current:e.info.currentTextTrack$,available:e.info.availableTextTracks$}),({current:s,available:l})=>{let h=l.find(({id:b})=>b===s),m=h&&(h.isAuto?`${h.language}_auto`:h.language);this.updateContext({subtitles:m?.split(".")[0]})}),this.player=e,this.uiEvents&&this.attachToUi(this.uiEvents),this.resubscribeBeforeunload(),this.subscription.add(t),t}attachToUi(e){this.uiEvents=e;let{subscription:t,subscribe:i}=Wi();return this.player&&(i(e.actionRewind$,()=>{this.player&&(this.resetViewSession(),this.logActionPlay({position:this.player.info.position$.getValue()}))}),i(e.actionSeek$,this.seekAction$),i(e.inPiP$,o=>{let a=o?"pip":kr(this.player?.info.surface$.getValue());this.updateContext({mode:a})}),i(e.inFullscreen$,o=>{let a=o?"fullscreen":kr(this.player?.info.surface$.getValue());this.updateContext({mode:a})}),i(e.actionSetSubtitle$,o=>this.updateContext({subtitles:o.split(".")[0]})),i(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(t)),t}attachToAds(e){let{subscription:t,subscribe:i}=Wi();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(t),t}attachToInteractive(e){let{subscription:t,subscribe:i}=Wi();return i(e.click$,o=>this.logInterfaceClick(o)),i(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(t),t}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"}),this.vsid$.next(Ol())}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 t=this.timeSynchronisation?.getOffset()??0,i=e.start+t,o=e.end+t;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(Zb(Nl(e,"change"),ey(["init"])).subscribe(()=>this.updateContext({network:ul(e.effectiveType)}))),this.config.debugLog&&this.debugLogger.log$.subscribe(t=>{console.debug("%c stat ","background:#fa6470;",`component: ${t.component}.`,t.message)})}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=Nl(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,t={}){if(this.disabled){this.oneStatDebugLog({message:`operation ${e.operation} but statistics is disabled`});return}if((0,Hi.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,t);this.logger.log(i)}createLogItem({operation:e,param:t,time:i},o={}){let a=this.timeSynchronisation?.now()??B(),u=this.vsid$.getValue();Xb(u);let c=this.isid$.getValue(),d=e==="empty_buffer"||e==="close_at_empty_buffer"?this.statContext.connectionType:this.statContext.firstConnectionType,f=this.statContext.firstConnectionReused,p,v;if(this.isEmbed||this.statContext.place==="embed"){p=this.embedParent;let l=[...new URLSearchParams(location.search).entries()].filter(([h,m])=>(0,Hi.default)(this.config.embedUrlParams,h));v=new URLSearchParams(l).toString()}else this.statContext.place==="direct"&&(this.statContext.refDomain?p=kl(this.statContext.refDomain)?.hostname??this.statContext.refDomain:document.referrer&&(p=kl(document.referrer)?.hostname??document.referrer),v=location.href.substring(0,1024));let s={vsid:u,isid:c,vid:this.statContext.movieId,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:t,vk_app_id:this.statContext.vkAppId,track_code:this.statContext.trackCode,connection_type:d,connection_reused:f===!0?1:f===!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:p,direct_url:v,rate:this.statContext.rate===1||Ll(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 l of this.config.disabledCustomFields)delete s[l];return{operation:e,type:1,time:i,network:this.statContext.network,timestamp:a,custom:s}}};export{_e as ApiEnv,qt as ConnectionType,Et as ContentType,Kn as InteractiveInterfaceClick,Qi as OneStat,St as Quality,Pt as SeekAction,er as VERSION};
6
+ var Ml=Object.create;var zi=Object.defineProperty;var Fl=Object.getOwnPropertyDescriptor;var Bl=Object.getOwnPropertyNames;var Ul=Object.getPrototypeOf,Vl=Object.prototype.hasOwnProperty;var n=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Gl=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Bl(e))!Vl.call(r,o)&&o!==t&&zi(r,o,{get:()=>e[o],enumerable:!(i=Fl(e,o))||i.enumerable});return r};var D=(r,e,t)=>(t=r!=null?Ml(Ul(r)):{},Gl(e||!r||!r.__esModule?zi(t,"default",{value:r,enumerable:!0}):t,r));var m=n((Mr,Qi)=>{"use strict";var ge=function(r){return r&&r.Math===Math&&r};Qi.exports=ge(typeof globalThis=="object"&&globalThis)||ge(typeof window=="object"&&window)||ge(typeof self=="object"&&self)||ge(typeof global=="object"&&global)||ge(typeof Mr=="object"&&Mr)||function(){return this}()||Function("return this")()});var E=n((ay,Yi)=>{"use strict";Yi.exports=function(r){try{return!!r()}catch{return!0}}});var me=n((sy,Ji)=>{"use strict";var Kl=E();Ji.exports=!Kl(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var Fr=n((uy,ro)=>{"use strict";var Wl=me(),eo=Function.prototype,Xi=eo.apply,Zi=eo.call;ro.exports=typeof Reflect=="object"&&Reflect.apply||(Wl?Zi.bind(Xi):function(){return Zi.apply(Xi,arguments)})});var P=n((cy,oo)=>{"use strict";var to=me(),io=Function.prototype,Br=io.call,Hl=to&&io.bind.bind(Br,Br);oo.exports=to?Hl:function(r){return function(){return Br.apply(r,arguments)}}});var be=n((ly,ao)=>{"use strict";var no=P(),zl=no({}.toString),Ql=no("".slice);ao.exports=function(r){return Ql(zl(r),8,-1)}});var Ur=n((fy,so)=>{"use strict";var Yl=be(),Jl=P();so.exports=function(r){if(Yl(r)==="Function")return Jl(r)}});var b=n((dy,uo)=>{"use strict";var Vr=typeof document=="object"&&document.all;uo.exports=typeof Vr>"u"&&Vr!==void 0?function(r){return typeof r=="function"||r===Vr}:function(r){return typeof r=="function"}});var T=n((py,co)=>{"use strict";var Xl=E();co.exports=!Xl(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var w=n((vy,lo)=>{"use strict";var Zl=me(),Ke=Function.prototype.call;lo.exports=Zl?Ke.bind(Ke):function(){return Ke.apply(Ke,arguments)}});var Gr=n(vo=>{"use strict";var fo={}.propertyIsEnumerable,po=Object.getOwnPropertyDescriptor,ef=po&&!fo.call({1:2},1);vo.f=ef?function(e){var t=po(this,e);return!!t&&t.enumerable}:fo});var ye=n((gy,ho)=>{"use strict";ho.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var mo=n((my,go)=>{"use strict";var rf=P(),tf=E(),of=be(),Kr=Object,nf=rf("".split);go.exports=tf(function(){return!Kr("z").propertyIsEnumerable(0)})?function(r){return of(r)==="String"?nf(r,""):Kr(r)}:Kr});var Ie=n((by,bo)=>{"use strict";bo.exports=function(r){return r==null}});var X=n((yy,yo)=>{"use strict";var af=Ie(),sf=TypeError;yo.exports=function(r){if(af(r))throw new sf("Can't call method on "+r);return r}});var G=n((Iy,Io)=>{"use strict";var uf=mo(),cf=X();Io.exports=function(r){return uf(cf(r))}});var R=n((Sy,So)=>{"use strict";var lf=b();So.exports=function(r){return typeof r=="object"?r!==null:lf(r)}});var Se=n((Ey,Eo)=>{"use strict";Eo.exports={}});var $=n((qy,Po)=>{"use strict";var Wr=Se(),Hr=m(),ff=b(),qo=function(r){return ff(r)?r:void 0};Po.exports=function(r,e){return arguments.length<2?qo(Wr[r])||qo(Hr[r]):Wr[r]&&Wr[r][e]||Hr[r]&&Hr[r][e]}});var We=n((Py,To)=>{"use strict";var df=P();To.exports=df({}.isPrototypeOf)});var K=n((Ty,xo)=>{"use strict";var pf=m(),Oo=pf.navigator,_o=Oo&&Oo.userAgent;xo.exports=_o?String(_o):""});var Qr=n((Oy,Lo)=>{"use strict";var No=m(),zr=K(),wo=No.process,Ro=No.Deno,Co=wo&&wo.versions||Ro&&Ro.version,Ao=Co&&Co.v8,C,He;Ao&&(C=Ao.split("."),He=C[0]>0&&C[0]<4?1:+(C[0]+C[1]));!He&&zr&&(C=zr.match(/Edge\/(\d+)/),(!C||C[1]>=74)&&(C=zr.match(/Chrome\/(\d+)/),C&&(He=+C[1])));Lo.exports=He});var Yr=n((_y,Do)=>{"use strict";var ko=Qr(),vf=E(),hf=m(),gf=hf.String;Do.exports=!!Object.getOwnPropertySymbols&&!vf(function(){var r=Symbol("symbol detection");return!gf(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&ko&&ko<41})});var Jr=n((xy,$o)=>{"use strict";var mf=Yr();$o.exports=mf&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Xr=n((wy,jo)=>{"use strict";var bf=$(),yf=b(),If=We(),Sf=Jr(),Ef=Object;jo.exports=Sf?function(r){return typeof r=="symbol"}:function(r){var e=bf("Symbol");return yf(e)&&If(e.prototype,Ef(r))}});var Ee=n((Ry,Mo)=>{"use strict";var qf=String;Mo.exports=function(r){try{return qf(r)}catch{return"Object"}}});var j=n((Cy,Fo)=>{"use strict";var Pf=b(),Tf=Ee(),Of=TypeError;Fo.exports=function(r){if(Pf(r))return r;throw new Of(Tf(r)+" is not a function")}});var ze=n((Ay,Bo)=>{"use strict";var _f=j(),xf=Ie();Bo.exports=function(r,e){var t=r[e];return xf(t)?void 0:_f(t)}});var Vo=n((Ny,Uo)=>{"use strict";var Zr=w(),et=b(),rt=R(),wf=TypeError;Uo.exports=function(r,e){var t,i;if(e==="string"&&et(t=r.toString)&&!rt(i=Zr(t,r))||et(t=r.valueOf)&&!rt(i=Zr(t,r))||e!=="string"&&et(t=r.toString)&&!rt(i=Zr(t,r)))return i;throw new wf("Can't convert object to primitive value")}});var L=n((Ly,Go)=>{"use strict";Go.exports=!0});var Ho=n((ky,Wo)=>{"use strict";var Ko=m(),Rf=Object.defineProperty;Wo.exports=function(r,e){try{Rf(Ko,r,{value:e,configurable:!0,writable:!0})}catch{Ko[r]=e}return e}});var qe=n((Dy,Yo)=>{"use strict";var Cf=L(),Af=m(),Nf=Ho(),zo="__core-js_shared__",Qo=Yo.exports=Af[zo]||Nf(zo,{});(Qo.versions||(Qo.versions=[])).push({version:"3.38.0",mode:Cf?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var tt=n(($y,Xo)=>{"use strict";var Jo=qe();Xo.exports=function(r,e){return Jo[r]||(Jo[r]=e||{})}});var it=n((jy,Zo)=>{"use strict";var Lf=X(),kf=Object;Zo.exports=function(r){return kf(Lf(r))}});var k=n((My,en)=>{"use strict";var Df=P(),$f=it(),jf=Df({}.hasOwnProperty);en.exports=Object.hasOwn||function(e,t){return jf($f(e),t)}});var ot=n((Fy,rn)=>{"use strict";var Mf=P(),Ff=0,Bf=Math.random(),Uf=Mf(1 .toString);rn.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+Uf(++Ff+Bf,36)}});var O=n((By,on)=>{"use strict";var Vf=m(),Gf=tt(),tn=k(),Kf=ot(),Wf=Yr(),Hf=Jr(),Z=Vf.Symbol,nt=Gf("wks"),zf=Hf?Z.for||Z:Z&&Z.withoutSetter||Kf;on.exports=function(r){return tn(nt,r)||(nt[r]=Wf&&tn(Z,r)?Z[r]:zf("Symbol."+r)),nt[r]}});var un=n((Uy,sn)=>{"use strict";var Qf=w(),nn=R(),an=Xr(),Yf=ze(),Jf=Vo(),Xf=O(),Zf=TypeError,ed=Xf("toPrimitive");sn.exports=function(r,e){if(!nn(r)||an(r))return r;var t=Yf(r,ed),i;if(t){if(e===void 0&&(e="default"),i=Qf(t,r,e),!nn(i)||an(i))return i;throw new Zf("Can't convert object to primitive value")}return e===void 0&&(e="number"),Jf(r,e)}});var at=n((Vy,cn)=>{"use strict";var rd=un(),td=Xr();cn.exports=function(r){var e=rd(r,"string");return td(e)?e:e+""}});var Qe=n((Gy,fn)=>{"use strict";var id=m(),ln=R(),st=id.document,od=ln(st)&&ln(st.createElement);fn.exports=function(r){return od?st.createElement(r):{}}});var ut=n((Ky,dn)=>{"use strict";var nd=T(),ad=E(),sd=Qe();dn.exports=!nd&&!ad(function(){return Object.defineProperty(sd("div"),"a",{get:function(){return 7}}).a!==7})});var hn=n(vn=>{"use strict";var ud=T(),cd=w(),ld=Gr(),fd=ye(),dd=G(),pd=at(),vd=k(),hd=ut(),pn=Object.getOwnPropertyDescriptor;vn.f=ud?pn:function(e,t){if(e=dd(e),t=pd(t),hd)try{return pn(e,t)}catch{}if(vd(e,t))return fd(!cd(ld.f,e,t),e[t])}});var ct=n((Hy,gn)=>{"use strict";var gd=E(),md=b(),bd=/#|\.prototype\./,Pe=function(r,e){var t=Id[yd(r)];return t===Ed?!0:t===Sd?!1:md(e)?gd(e):!!e},yd=Pe.normalize=function(r){return String(r).replace(bd,".").toLowerCase()},Id=Pe.data={},Sd=Pe.NATIVE="N",Ed=Pe.POLYFILL="P";gn.exports=Pe});var Te=n((zy,bn)=>{"use strict";var mn=Ur(),qd=j(),Pd=me(),Td=mn(mn.bind);bn.exports=function(r,e){return qd(r),e===void 0?r:Pd?Td(r,e):function(){return r.apply(e,arguments)}}});var lt=n((Qy,yn)=>{"use strict";var Od=T(),_d=E();yn.exports=Od&&_d(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var M=n((Yy,In)=>{"use strict";var xd=R(),wd=String,Rd=TypeError;In.exports=function(r){if(xd(r))return r;throw new Rd(wd(r)+" is not an object")}});var W=n(En=>{"use strict";var Cd=T(),Ad=ut(),Nd=lt(),Ye=M(),Sn=at(),Ld=TypeError,ft=Object.defineProperty,kd=Object.getOwnPropertyDescriptor,dt="enumerable",pt="configurable",vt="writable";En.f=Cd?Nd?function(e,t,i){if(Ye(e),t=Sn(t),Ye(i),typeof e=="function"&&t==="prototype"&&"value"in i&&vt in i&&!i[vt]){var o=kd(e,t);o&&o[vt]&&(e[t]=i.value,i={configurable:pt in i?i[pt]:o[pt],enumerable:dt in i?i[dt]:o[dt],writable:!1})}return ft(e,t,i)}:ft:function(e,t,i){if(Ye(e),t=Sn(t),Ye(i),Ad)try{return ft(e,t,i)}catch{}if("get"in i||"set"in i)throw new Ld("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var ee=n((Xy,qn)=>{"use strict";var Dd=T(),$d=W(),jd=ye();qn.exports=Dd?function(r,e,t){return $d.f(r,e,jd(1,t))}:function(r,e,t){return r[e]=t,r}});var _=n((Zy,Tn)=>{"use strict";var Oe=m(),Md=Fr(),Fd=Ur(),Bd=b(),Ud=hn().f,Vd=ct(),re=Se(),Gd=Te(),te=ee(),Pn=k();qe();var Kd=function(r){var e=function(t,i,o){if(this instanceof e){switch(arguments.length){case 0:return new r;case 1:return new r(t);case 2:return new r(t,i)}return new r(t,i,o)}return Md(r,this,arguments)};return e.prototype=r.prototype,e};Tn.exports=function(r,e){var t=r.target,i=r.global,o=r.stat,a=r.proto,u=i?Oe:o?Oe[t]:Oe[t]&&Oe[t].prototype,c=i?re:re[t]||te(re,t,{})[t],d=c.prototype,f,p,v,s,l,h,y,I,g;for(s in e)f=Vd(i?s:t+(o?".":"#")+s,r.forced),p=!f&&u&&Pn(u,s),h=c[s],p&&(r.dontCallGetSet?(g=Ud(u,s),y=g&&g.value):y=u[s]),l=p&&y?y:e[s],!(!f&&!a&&typeof h==typeof l)&&(r.bind&&p?I=Gd(l,Oe):r.wrap&&p?I=Kd(l):a&&Bd(l)?I=Fd(l):I=l,(r.sham||l&&l.sham||h&&h.sham)&&te(I,"sham",!0),te(c,s,I),a&&(v=t+"Prototype",Pn(re,v)||te(re,v,{}),te(re[v],s,l),r.real&&d&&(f||!d[s])&&te(d,s,l)))}});var _n=n((eI,On)=>{"use strict";var Wd=Math.ceil,Hd=Math.floor;On.exports=Math.trunc||function(e){var t=+e;return(t>0?Hd:Wd)(t)}});var Je=n((rI,xn)=>{"use strict";var zd=_n();xn.exports=function(r){var e=+r;return e!==e||e===0?0:zd(e)}});var Rn=n((tI,wn)=>{"use strict";var Qd=Je(),Yd=Math.max,Jd=Math.min;wn.exports=function(r,e){var t=Qd(r);return t<0?Yd(t+e,0):Jd(t,e)}});var ht=n((iI,Cn)=>{"use strict";var Xd=Je(),Zd=Math.min;Cn.exports=function(r){var e=Xd(r);return e>0?Zd(e,9007199254740991):0}});var gt=n((oI,An)=>{"use strict";var ep=ht();An.exports=function(r){return ep(r.length)}});var mt=n((nI,Ln)=>{"use strict";var rp=G(),tp=Rn(),ip=gt(),Nn=function(r){return function(e,t,i){var o=rp(e),a=ip(o);if(a===0)return!r&&-1;var u=tp(i,a),c;if(r&&t!==t){for(;a>u;)if(c=o[u++],c!==c)return!0}else for(;a>u;u++)if((r||u in o)&&o[u]===t)return r||u||0;return!r&&-1}};Ln.exports={includes:Nn(!0),indexOf:Nn(!1)}});var bt=n((aI,kn)=>{"use strict";kn.exports=function(){}});var Dn=n(()=>{"use strict";var op=_(),np=mt().includes,ap=E(),sp=bt(),up=ap(function(){return!Array(1).includes()});op({target:"Array",proto:!0,forced:up},{includes:function(e){return np(this,e,arguments.length>1?arguments[1]:void 0)}});sp("includes")});var Xe=n((cI,$n)=>{"use strict";var cp=$();$n.exports=cp});var Mn=n((lI,jn)=>{"use strict";Dn();var lp=Xe();jn.exports=lp("Array","includes")});var Bn=n((fI,Fn)=>{"use strict";var fp=Mn();Fn.exports=fp});var Ze=n((dI,Un)=>{"use strict";var dp=Bn();Un.exports=dp});var Yn=n(()=>{"use strict"});var Tt=n((TI,Jn)=>{"use strict";var xe=m(),hp=K(),gp=be(),rr=function(r){return hp.slice(0,r.length)===r};Jn.exports=function(){return rr("Bun/")?"BUN":rr("Cloudflare-Workers")?"CLOUDFLARE":rr("Deno/")?"DENO":rr("Node.js/")?"NODE":xe.Bun&&typeof Bun.version=="string"?"BUN":xe.Deno&&typeof Deno.version=="object"?"DENO":gp(xe.process)==="process"?"NODE":xe.window&&xe.document?"BROWSER":"REST"}()});var tr=n((OI,Xn)=>{"use strict";var mp=Tt();Xn.exports=mp==="NODE"});var ie=n((_I,Zn)=>{"use strict";var bp=ee();Zn.exports=function(r,e,t,i){return i&&i.enumerable?r[e]=t:bp(r,e,t),r}});var ra=n((xI,ea)=>{"use strict";var yp=P(),Ip=j();ea.exports=function(r,e,t){try{return yp(Ip(Object.getOwnPropertyDescriptor(r,e)[t]))}catch{}}});var ia=n((wI,ta)=>{"use strict";var Sp=R();ta.exports=function(r){return Sp(r)||r===null}});var na=n((RI,oa)=>{"use strict";var Ep=ia(),qp=String,Pp=TypeError;oa.exports=function(r){if(Ep(r))return r;throw new Pp("Can't set "+qp(r)+" as a prototype")}});var Ot=n((CI,aa)=>{"use strict";var Tp=ra(),Op=R(),_p=X(),xp=na();aa.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=Tp(Object.prototype,"__proto__","set"),t(e,[]),r=e instanceof Array}catch{}return function(o,a){return _p(o),xp(a),Op(o)&&(r?t(o,a):o.__proto__=a),o}}():void 0)});var ir=n((AI,ua)=>{"use strict";var wp=O(),Rp=wp("toStringTag"),sa={};sa[Rp]="z";ua.exports=String(sa)==="[object z]"});var we=n((NI,ca)=>{"use strict";var Cp=ir(),Ap=b(),or=be(),Np=O(),Lp=Np("toStringTag"),kp=Object,Dp=or(function(){return arguments}())==="Arguments",$p=function(r,e){try{return r[e]}catch{}};ca.exports=Cp?or:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=$p(e=kp(r),Lp))=="string"?t:Dp?or(e):(i=or(e))==="Object"&&Ap(e.callee)?"Arguments":i}});var fa=n((LI,la)=>{"use strict";var jp=ir(),Mp=we();la.exports=jp?{}.toString:function(){return"[object "+Mp(this)+"]"}});var Re=n((kI,pa)=>{"use strict";var Fp=ir(),Bp=W().f,Up=ee(),Vp=k(),Gp=fa(),Kp=O(),da=Kp("toStringTag");pa.exports=function(r,e,t,i){var o=t?r:r&&r.prototype;o&&(Vp(o,da)||Bp(o,da,{configurable:!0,value:e}),i&&!Fp&&Up(o,"toString",Gp))}});var ha=n((DI,va)=>{"use strict";var Wp=W();va.exports=function(r,e,t){return Wp.f(r,e,t)}});var ba=n(($I,ma)=>{"use strict";var Hp=$(),zp=ha(),Qp=O(),Yp=T(),ga=Qp("species");ma.exports=function(r){var e=Hp(r);Yp&&e&&!e[ga]&&zp(e,ga,{configurable:!0,get:function(){return this}})}});var Ia=n((jI,ya)=>{"use strict";var Jp=We(),Xp=TypeError;ya.exports=function(r,e){if(Jp(e,r))return r;throw new Xp("Incorrect invocation")}});var xt=n((MI,Sa)=>{"use strict";var Zp=P(),ev=b(),_t=qe(),rv=Zp(Function.toString);ev(_t.inspectSource)||(_t.inspectSource=function(r){return rv(r)});Sa.exports=_t.inspectSource});var _a=n((FI,Oa)=>{"use strict";var tv=P(),iv=E(),Ea=b(),ov=we(),nv=$(),av=xt(),qa=function(){},Pa=nv("Reflect","construct"),wt=/^\s*(?:class|function)\b/,sv=tv(wt.exec),uv=!wt.test(qa),Ce=function(e){if(!Ea(e))return!1;try{return Pa(qa,[],e),!0}catch{return!1}},Ta=function(e){if(!Ea(e))return!1;switch(ov(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return uv||!!sv(wt,av(e))}catch{return!0}};Ta.sham=!0;Oa.exports=!Pa||iv(function(){var r;return Ce(Ce.call)||!Ce(Object)||!Ce(function(){r=!0})||r})?Ta:Ce});var wa=n((BI,xa)=>{"use strict";var cv=_a(),lv=Ee(),fv=TypeError;xa.exports=function(r){if(cv(r))return r;throw new fv(lv(r)+" is not a constructor")}});var Rt=n((UI,Ca)=>{"use strict";var Ra=M(),dv=wa(),pv=Ie(),vv=O(),hv=vv("species");Ca.exports=function(r,e){var t=Ra(r).constructor,i;return t===void 0||pv(i=Ra(t)[hv])?e:dv(i)}});var Ct=n((VI,Aa)=>{"use strict";var gv=$();Aa.exports=gv("document","documentElement")});var La=n((GI,Na)=>{"use strict";var mv=P();Na.exports=mv([].slice)});var Da=n((KI,ka)=>{"use strict";var bv=TypeError;ka.exports=function(r,e){if(r<e)throw new bv("Not enough arguments");return r}});var At=n((WI,$a)=>{"use strict";var yv=K();$a.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(yv)});var Bt=n((HI,Wa)=>{"use strict";var x=m(),Iv=Fr(),Sv=Te(),ja=b(),Ev=k(),Ka=E(),Ma=Ct(),qv=La(),Fa=Qe(),Pv=Da(),Tv=At(),Ov=tr(),jt=x.setImmediate,Mt=x.clearImmediate,_v=x.process,Nt=x.Dispatch,xv=x.Function,Ba=x.MessageChannel,wv=x.String,Lt=0,Ae={},Ua="onreadystatechange",Ne,H,kt,Dt;Ka(function(){Ne=x.location});var Ft=function(r){if(Ev(Ae,r)){var e=Ae[r];delete Ae[r],e()}},$t=function(r){return function(){Ft(r)}},Va=function(r){Ft(r.data)},Ga=function(r){x.postMessage(wv(r),Ne.protocol+"//"+Ne.host)};(!jt||!Mt)&&(jt=function(e){Pv(arguments.length,1);var t=ja(e)?e:xv(e),i=qv(arguments,1);return Ae[++Lt]=function(){Iv(t,void 0,i)},H(Lt),Lt},Mt=function(e){delete Ae[e]},Ov?H=function(r){_v.nextTick($t(r))}:Nt&&Nt.now?H=function(r){Nt.now($t(r))}:Ba&&!Tv?(kt=new Ba,Dt=kt.port2,kt.port1.onmessage=Va,H=Sv(Dt.postMessage,Dt)):x.addEventListener&&ja(x.postMessage)&&!x.importScripts&&Ne&&Ne.protocol!=="file:"&&!Ka(Ga)?(H=Ga,x.addEventListener("message",Va,!1)):Ua in Fa("script")?H=function(r){Ma.appendChild(Fa("script"))[Ua]=function(){Ma.removeChild(this),Ft(r)}}:H=function(r){setTimeout($t(r),0)});Wa.exports={set:jt,clear:Mt}});var Qa=n((zI,za)=>{"use strict";var Ha=m(),Rv=T(),Cv=Object.getOwnPropertyDescriptor;za.exports=function(r){if(!Rv)return Ha[r];var e=Cv(Ha,r);return e&&e.value}});var Ut=n((QI,Ja)=>{"use strict";var Ya=function(){this.head=null,this.tail=null};Ya.prototype={add:function(r){var e={item:r,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var r=this.head;if(r){var e=this.head=r.next;return e===null&&(this.tail=null),r.item}}};Ja.exports=Ya});var Za=n((YI,Xa)=>{"use strict";var Av=K();Xa.exports=/ipad|iphone|ipod/i.test(Av)&&typeof Pebble<"u"});var rs=n((JI,es)=>{"use strict";var Nv=K();es.exports=/web0s(?!.*chrome)/i.test(Nv)});var us=n((XI,ss)=>{"use strict";var ne=m(),Lv=Qa(),ts=Te(),Vt=Bt().set,kv=Ut(),Dv=At(),$v=Za(),jv=rs(),Gt=tr(),is=ne.MutationObserver||ne.WebKitMutationObserver,os=ne.document,ns=ne.process,nr=ne.Promise,Ht=Lv("queueMicrotask"),oe,Kt,Wt,ar,as;Ht||(Le=new kv,ke=function(){var r,e;for(Gt&&(r=ns.domain)&&r.exit();e=Le.get();)try{e()}catch(t){throw Le.head&&oe(),t}r&&r.enter()},!Dv&&!Gt&&!jv&&is&&os?(Kt=!0,Wt=os.createTextNode(""),new is(ke).observe(Wt,{characterData:!0}),oe=function(){Wt.data=Kt=!Kt}):!$v&&nr&&nr.resolve?(ar=nr.resolve(void 0),ar.constructor=nr,as=ts(ar.then,ar),oe=function(){as(ke)}):Gt?oe=function(){ns.nextTick(ke)}:(Vt=ts(Vt,ne),oe=function(){Vt(ke)}),Ht=function(r){Le.head||oe(),Le.add(r)});var Le,ke;ss.exports=Ht});var ls=n((ZI,cs)=>{"use strict";cs.exports=function(r,e){try{arguments.length===1?console.error(r):console.error(r,e)}catch{}}});var sr=n((eS,fs)=>{"use strict";fs.exports=function(r){try{return{error:!1,value:r()}}catch(e){return{error:!0,value:e}}}});var vs=n((rS,ps)=>{"use strict";var Mv=m(),Fv=b(),ds=Mv.WeakMap;ps.exports=Fv(ds)&&/native code/.test(String(ds))});var ur=n((tS,gs)=>{"use strict";var Bv=tt(),Uv=ot(),hs=Bv("keys");gs.exports=function(r){return hs[r]||(hs[r]=Uv(r))}});var cr=n((iS,ms)=>{"use strict";ms.exports={}});var Jt=n((oS,Is)=>{"use strict";var Vv=vs(),ys=m(),Gv=R(),Kv=ee(),zt=k(),Qt=qe(),Wv=ur(),Hv=cr(),bs="Object already initialized",Yt=ys.TypeError,zv=ys.WeakMap,lr,De,fr,Qv=function(r){return fr(r)?De(r):lr(r,{})},Yv=function(r){return function(e){var t;if(!Gv(e)||(t=De(e)).type!==r)throw new Yt("Incompatible receiver, "+r+" required");return t}};Vv||Qt.state?(A=Qt.state||(Qt.state=new zv),A.get=A.get,A.has=A.has,A.set=A.set,lr=function(r,e){if(A.has(r))throw new Yt(bs);return e.facade=r,A.set(r,e),e},De=function(r){return A.get(r)||{}},fr=function(r){return A.has(r)}):(z=Wv("state"),Hv[z]=!0,lr=function(r,e){if(zt(r,z))throw new Yt(bs);return e.facade=r,Kv(r,z,e),e},De=function(r){return zt(r,z)?r[z]:{}},fr=function(r){return zt(r,z)});var A,z;Is.exports={set:lr,get:De,has:fr,enforce:Qv,getterFor:Yv}});var Q=n((nS,Ss)=>{"use strict";var Jv=m();Ss.exports=Jv.Promise});var ae=n((aS,Ts)=>{"use strict";var Xv=m(),$e=Q(),Zv=b(),eh=ct(),rh=xt(),th=O(),Es=Tt(),ih=L(),Xt=Qr(),qs=$e&&$e.prototype,oh=th("species"),Zt=!1,Ps=Zv(Xv.PromiseRejectionEvent),nh=eh("Promise",function(){var r=rh($e),e=r!==String($e);if(!e&&Xt===66||ih&&!(qs.catch&&qs.finally))return!0;if(!Xt||Xt<51||!/native code/.test(r)){var t=new $e(function(a){a(1)}),i=function(a){a(function(){},function(){})},o=t.constructor={};if(o[oh]=i,Zt=t.then(function(){})instanceof i,!Zt)return!0}return!e&&(Es==="BROWSER"||Es==="DENO")&&!Ps});Ts.exports={CONSTRUCTOR:nh,REJECTION_EVENT:Ps,SUBCLASSING:Zt}});var se=n((sS,_s)=>{"use strict";var Os=j(),ah=TypeError,sh=function(r){var e,t;this.promise=new r(function(i,o){if(e!==void 0||t!==void 0)throw new ah("Bad Promise constructor");e=i,t=o}),this.resolve=Os(e),this.reject=Os(t)};_s.exports.f=function(r){return new sh(r)}});var Ws=n(()=>{"use strict";var uh=_(),ch=L(),hr=tr(),V=m(),fe=w(),xs=ie(),ws=Ot(),lh=Re(),fh=ba(),dh=j(),vr=b(),ph=R(),vh=Ia(),hh=Rt(),Ls=Bt().set,oi=us(),gh=ls(),mh=sr(),bh=Ut(),ks=Jt(),gr=Q(),ni=ae(),Ds=se(),mr="Promise",$s=ni.CONSTRUCTOR,yh=ni.REJECTION_EVENT,Ih=ni.SUBCLASSING,ei=ks.getterFor(mr),Sh=ks.set,ue=gr&&gr.prototype,Y=gr,dr=ue,js=V.TypeError,ri=V.document,ai=V.process,ti=Ds.f,Eh=ti,qh=!!(ri&&ri.createEvent&&V.dispatchEvent),Ms="unhandledrejection",Ph="rejectionhandled",Rs=0,Fs=1,Th=2,si=1,Bs=2,pr,Cs,Oh,As,Us=function(r){var e;return ph(r)&&vr(e=r.then)?e:!1},Vs=function(r,e){var t=e.value,i=e.state===Fs,o=i?r.ok:r.fail,a=r.resolve,u=r.reject,c=r.domain,d,f,p;try{o?(i||(e.rejection===Bs&&xh(e),e.rejection=si),o===!0?d=t:(c&&c.enter(),d=o(t),c&&(c.exit(),p=!0)),d===r.promise?u(new js("Promise-chain cycle")):(f=Us(d))?fe(f,d,a,u):a(d)):u(t)}catch(v){c&&!p&&c.exit(),u(v)}},Gs=function(r,e){r.notified||(r.notified=!0,oi(function(){for(var t=r.reactions,i;i=t.get();)Vs(i,r);r.notified=!1,e&&!r.rejection&&_h(r)}))},Ks=function(r,e,t){var i,o;qh?(i=ri.createEvent("Event"),i.promise=e,i.reason=t,i.initEvent(r,!1,!0),V.dispatchEvent(i)):i={promise:e,reason:t},!yh&&(o=V["on"+r])?o(i):r===Ms&&gh("Unhandled promise rejection",t)},_h=function(r){fe(Ls,V,function(){var e=r.facade,t=r.value,i=Ns(r),o;if(i&&(o=mh(function(){hr?ai.emit("unhandledRejection",t,e):Ks(Ms,e,t)}),r.rejection=hr||Ns(r)?Bs:si,o.error))throw o.value})},Ns=function(r){return r.rejection!==si&&!r.parent},xh=function(r){fe(Ls,V,function(){var e=r.facade;hr?ai.emit("rejectionHandled",e):Ks(Ph,e,r.value)})},ce=function(r,e,t){return function(i){r(e,i,t)}},le=function(r,e,t){r.done||(r.done=!0,t&&(r=t),r.value=e,r.state=Th,Gs(r,!0))},ii=function(r,e,t){if(!r.done){r.done=!0,t&&(r=t);try{if(r.facade===e)throw new js("Promise can't be resolved itself");var i=Us(e);i?oi(function(){var o={done:!1};try{fe(i,e,ce(ii,o,r),ce(le,o,r))}catch(a){le(o,a,r)}}):(r.value=e,r.state=Fs,Gs(r,!1))}catch(o){le({done:!1},o,r)}}};if($s&&(Y=function(e){vh(this,dr),dh(e),fe(pr,this);var t=ei(this);try{e(ce(ii,t),ce(le,t))}catch(i){le(t,i)}},dr=Y.prototype,pr=function(e){Sh(this,{type:mr,done:!1,notified:!1,parent:!1,reactions:new bh,rejection:!1,state:Rs,value:void 0})},pr.prototype=xs(dr,"then",function(e,t){var i=ei(this),o=ti(hh(this,Y));return i.parent=!0,o.ok=vr(e)?e:!0,o.fail=vr(t)&&t,o.domain=hr?ai.domain:void 0,i.state===Rs?i.reactions.add(o):oi(function(){Vs(o,i)}),o.promise}),Cs=function(){var r=new pr,e=ei(r);this.promise=r,this.resolve=ce(ii,e),this.reject=ce(le,e)},Ds.f=ti=function(r){return r===Y||r===Oh?new Cs(r):Eh(r)},!ch&&vr(gr)&&ue!==Object.prototype)){As=ue.then,Ih||xs(ue,"then",function(e,t){var i=this;return new Y(function(o,a){fe(As,i,o,a)}).then(e,t)},{unsafe:!0});try{delete ue.constructor}catch{}ws&&ws(ue,dr)}uh({global:!0,constructor:!0,wrap:!0,forced:$s},{Promise:Y});lh(Y,mr,!1,!0);fh(mr)});var J=n((lS,Hs)=>{"use strict";Hs.exports={}});var Qs=n((fS,zs)=>{"use strict";var wh=O(),Rh=J(),Ch=wh("iterator"),Ah=Array.prototype;zs.exports=function(r){return r!==void 0&&(Rh.Array===r||Ah[Ch]===r)}});var ui=n((dS,Js)=>{"use strict";var Nh=we(),Ys=ze(),Lh=Ie(),kh=J(),Dh=O(),$h=Dh("iterator");Js.exports=function(r){if(!Lh(r))return Ys(r,$h)||Ys(r,"@@iterator")||kh[Nh(r)]}});var Zs=n((pS,Xs)=>{"use strict";var jh=w(),Mh=j(),Fh=M(),Bh=Ee(),Uh=ui(),Vh=TypeError;Xs.exports=function(r,e){var t=arguments.length<2?Uh(r):e;if(Mh(t))return Fh(jh(t,r));throw new Vh(Bh(r)+" is not iterable")}});var tu=n((vS,ru)=>{"use strict";var Gh=w(),eu=M(),Kh=ze();ru.exports=function(r,e,t){var i,o;eu(r);try{if(i=Kh(r,"return"),!i){if(e==="throw")throw t;return t}i=Gh(i,r)}catch(a){o=!0,i=a}if(e==="throw")throw t;if(o)throw i;return eu(i),t}});var yr=n((hS,au)=>{"use strict";var Wh=Te(),Hh=w(),zh=M(),Qh=Ee(),Yh=Qs(),Jh=gt(),iu=We(),Xh=Zs(),Zh=ui(),ou=tu(),eg=TypeError,br=function(r,e){this.stopped=r,this.result=e},nu=br.prototype;au.exports=function(r,e,t){var i=t&&t.that,o=!!(t&&t.AS_ENTRIES),a=!!(t&&t.IS_RECORD),u=!!(t&&t.IS_ITERATOR),c=!!(t&&t.INTERRUPTED),d=Wh(e,i),f,p,v,s,l,h,y,I=function(S){return f&&ou(f,"normal",S),new br(!0,S)},g=function(S){return o?(zh(S),c?d(S[0],S[1],I):d(S[0],S[1])):c?d(S,I):d(S)};if(a)f=r.iterator;else if(u)f=r;else{if(p=Zh(r),!p)throw new eg(Qh(r)+" is not iterable");if(Yh(p)){for(v=0,s=Jh(r);s>v;v++)if(l=g(r[v]),l&&iu(nu,l))return l;return new br(!1)}f=Xh(r,p)}for(h=a?r.next:f.next;!(y=Hh(h,f)).done;){try{l=g(y.value)}catch(S){ou(f,"throw",S)}if(typeof l=="object"&&l&&iu(nu,l))return l}return new br(!1)}});var fu=n((gS,lu)=>{"use strict";var rg=O(),uu=rg("iterator"),cu=!1;try{su=0,ci={next:function(){return{done:!!su++}},return:function(){cu=!0}},ci[uu]=function(){return this},Array.from(ci,function(){throw 2})}catch{}var su,ci;lu.exports=function(r,e){try{if(!e&&!cu)return!1}catch{return!1}var t=!1;try{var i={};i[uu]=function(){return{next:function(){return{done:t=!0}}}},r(i)}catch{}return t}});var li=n((mS,du)=>{"use strict";var tg=Q(),ig=fu(),og=ae().CONSTRUCTOR;du.exports=og||!ig(function(r){tg.all(r).then(void 0,function(){})})});var pu=n(()=>{"use strict";var ng=_(),ag=w(),sg=j(),ug=se(),cg=sr(),lg=yr(),fg=li();ng({target:"Promise",stat:!0,forced:fg},{all:function(e){var t=this,i=ug.f(t),o=i.resolve,a=i.reject,u=cg(function(){var c=sg(t.resolve),d=[],f=0,p=1;lg(e,function(v){var s=f++,l=!1;p++,ag(c,t,v).then(function(h){l||(l=!0,d[s]=h,--p||o(d))},a)}),--p||o(d)});return u.error&&a(u.value),i.promise}})});var hu=n(()=>{"use strict";var dg=_(),pg=L(),vg=ae().CONSTRUCTOR,di=Q(),hg=$(),gg=b(),mg=ie(),vu=di&&di.prototype;dg({target:"Promise",proto:!0,forced:vg,real:!0},{catch:function(r){return this.then(void 0,r)}});!pg&&gg(di)&&(fi=hg("Promise").prototype.catch,vu.catch!==fi&&mg(vu,"catch",fi,{unsafe:!0}));var fi});var gu=n(()=>{"use strict";var bg=_(),yg=w(),Ig=j(),Sg=se(),Eg=sr(),qg=yr(),Pg=li();bg({target:"Promise",stat:!0,forced:Pg},{race:function(e){var t=this,i=Sg.f(t),o=i.reject,a=Eg(function(){var u=Ig(t.resolve);qg(e,function(c){yg(u,t,c).then(i.resolve,o)})});return a.error&&o(a.value),i.promise}})});var mu=n(()=>{"use strict";var Tg=_(),Og=se(),_g=ae().CONSTRUCTOR;Tg({target:"Promise",stat:!0,forced:_g},{reject:function(e){var t=Og.f(this),i=t.reject;return i(e),t.promise}})});var pi=n((OS,bu)=>{"use strict";var xg=M(),wg=R(),Rg=se();bu.exports=function(r,e){if(xg(r),wg(e)&&e.constructor===r)return e;var t=Rg.f(r),i=t.resolve;return i(e),t.promise}});var Su=n(()=>{"use strict";var Cg=_(),Ag=$(),yu=L(),Ng=Q(),Iu=ae().CONSTRUCTOR,Lg=pi(),kg=Ag("Promise"),Dg=yu&&!Iu;Cg({target:"Promise",stat:!0,forced:yu||Iu},{resolve:function(e){return Lg(Dg&&this===kg?Ng:this,e)}})});var Eu=n(()=>{"use strict";Ws();pu();hu();gu();mu();Su()});var Ou=n(()=>{"use strict";var $g=_(),jg=L(),Ir=Q(),Mg=E(),Pu=$(),Tu=b(),Fg=Rt(),qu=pi(),Bg=ie(),hi=Ir&&Ir.prototype,Ug=!!Ir&&Mg(function(){hi.finally.call({then:function(){}},function(){})});$g({target:"Promise",proto:!0,real:!0,forced:Ug},{finally:function(r){var e=Fg(this,Pu("Promise")),t=Tu(r);return this.then(t?function(i){return qu(e,r()).then(function(){return i})}:r,t?function(i){return qu(e,r()).then(function(){throw i})}:r)}});!jg&&Tu(Ir)&&(vi=Pu("Promise").prototype.finally,hi.finally!==vi&&Bg(hi,"finally",vi,{unsafe:!0}));var vi});var xu=n((NS,_u)=>{"use strict";Yn();Eu();Ou();var Vg=Xe();_u.exports=Vg("Promise","finally")});var Ru=n((LS,wu)=>{"use strict";var Gg=xu();wu.exports=Gg});var Au=n((kS,Cu)=>{"use strict";var Kg=Ru();Cu.exports=Kg});var Lu=n((DS,Nu)=>{"use strict";var Wg=E();Nu.exports=!Wg(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var Sr=n(($S,Du)=>{"use strict";var Hg=k(),zg=b(),Qg=it(),Yg=ur(),Jg=Lu(),ku=Yg("IE_PROTO"),gi=Object,Xg=gi.prototype;Du.exports=Jg?gi.getPrototypeOf:function(r){var e=Qg(r);if(Hg(e,ku))return e[ku];var t=e.constructor;return zg(t)&&e instanceof t?t.prototype:e instanceof gi?Xg:null}});var Mu=n((jS,ju)=>{"use strict";var Zg=P(),mi=k(),em=G(),rm=mt().indexOf,tm=cr(),$u=Zg([].push);ju.exports=function(r,e){var t=em(r),i=0,o=[],a;for(a in t)!mi(tm,a)&&mi(t,a)&&$u(o,a);for(;e.length>i;)mi(t,a=e[i++])&&(~rm(o,a)||$u(o,a));return o}});var bi=n((MS,Fu)=>{"use strict";Fu.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var yi=n((FS,Bu)=>{"use strict";var im=Mu(),om=bi();Bu.exports=Object.keys||function(e){return im(e,om)}});var Hu=n((BS,Wu)=>{"use strict";var Vu=T(),nm=E(),Gu=P(),am=Sr(),sm=yi(),um=G(),cm=Gr().f,Ku=Gu(cm),lm=Gu([].push),fm=Vu&&nm(function(){var r=Object.create(null);return r[2]=2,!Ku(r,2)}),Uu=function(r){return function(e){for(var t=um(e),i=sm(t),o=fm&&am(t)===null,a=i.length,u=0,c=[],d;a>u;)d=i[u++],(!Vu||(o?d in t:Ku(t,d)))&&lm(c,r?[d,t[d]]:t[d]);return c}};Wu.exports={entries:Uu(!0),values:Uu(!1)}});var zu=n(()=>{"use strict";var dm=_(),pm=Hu().entries;dm({target:"Object",stat:!0},{entries:function(e){return pm(e)}})});var Yu=n((GS,Qu)=>{"use strict";zu();var vm=Se();Qu.exports=vm.Object.entries});var Xu=n((KS,Ju)=>{"use strict";var hm=Yu();Ju.exports=hm});var Er=n((WS,Zu)=>{"use strict";var gm=Xu();Zu.exports=gm});var tc=n((HS,rc)=>{"use strict";var Ii=T(),mm=k(),ec=Function.prototype,bm=Ii&&Object.getOwnPropertyDescriptor,Si=mm(ec,"name"),ym=Si&&function(){}.name==="something",Im=Si&&(!Ii||Ii&&bm(ec,"name").configurable);rc.exports={EXISTS:Si,PROPER:ym,CONFIGURABLE:Im}});var oc=n(ic=>{"use strict";var Sm=T(),Em=lt(),qm=W(),Pm=M(),Tm=G(),Om=yi();ic.f=Sm&&!Em?Object.defineProperties:function(e,t){Pm(e);for(var i=Tm(t),o=Om(t),a=o.length,u=0,c;a>u;)qm.f(e,c=o[u++],i[c]);return e}});var Ti=n((QS,fc)=>{"use strict";var _m=M(),xm=oc(),nc=bi(),wm=cr(),Rm=Ct(),Cm=Qe(),Am=ur(),ac=">",sc="<",qi="prototype",Pi="script",cc=Am("IE_PROTO"),Ei=function(){},lc=function(r){return sc+Pi+ac+r+sc+"/"+Pi+ac},uc=function(r){r.write(lc("")),r.close();var e=r.parentWindow.Object;return r=null,e},Nm=function(){var r=Cm("iframe"),e="java"+Pi+":",t;return r.style.display="none",Rm.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(lc("document.F=Object")),t.close(),t.F},qr,Pr=function(){try{qr=new ActiveXObject("htmlfile")}catch{}Pr=typeof document<"u"?document.domain&&qr?uc(qr):Nm():uc(qr);for(var r=nc.length;r--;)delete Pr[qi][nc[r]];return Pr()};wm[cc]=!0;fc.exports=Object.create||function(e,t){var i;return e!==null?(Ei[qi]=_m(e),i=new Ei,Ei[qi]=null,i[cc]=e):i=Pr(),t===void 0?i:xm.f(i,t)}});var wi=n((YS,vc)=>{"use strict";var Lm=E(),km=b(),Dm=R(),$m=Ti(),dc=Sr(),jm=ie(),Mm=O(),Fm=L(),xi=Mm("iterator"),pc=!1,F,Oi,_i;[].keys&&(_i=[].keys(),"next"in _i?(Oi=dc(dc(_i)),Oi!==Object.prototype&&(F=Oi)):pc=!0);var Bm=!Dm(F)||Lm(function(){var r={};return F[xi].call(r)!==r});Bm?F={}:Fm&&(F=$m(F));km(F[xi])||jm(F,xi,function(){return this});vc.exports={IteratorPrototype:F,BUGGY_SAFARI_ITERATORS:pc}});var gc=n((JS,hc)=>{"use strict";var Um=wi().IteratorPrototype,Vm=Ti(),Gm=ye(),Km=Re(),Wm=J(),Hm=function(){return this};hc.exports=function(r,e,t,i){var o=e+" Iterator";return r.prototype=Vm(Um,{next:Gm(+!i,t)}),Km(r,o,!1,!0),Wm[o]=Hm,r}});var _c=n((XS,Oc)=>{"use strict";var zm=_(),Qm=w(),Tr=L(),Pc=tc(),Ym=b(),Jm=gc(),mc=Sr(),bc=Ot(),Xm=Re(),Zm=ee(),Ri=ie(),eb=O(),yc=J(),Tc=wi(),rb=Pc.PROPER,tb=Pc.CONFIGURABLE,Ic=Tc.IteratorPrototype,Or=Tc.BUGGY_SAFARI_ITERATORS,je=eb("iterator"),Sc="keys",Me="values",Ec="entries",qc=function(){return this};Oc.exports=function(r,e,t,i,o,a,u){Jm(t,e,i);var c=function(g){if(g===o&&s)return s;if(!Or&&g&&g in p)return p[g];switch(g){case Sc:return function(){return new t(this,g)};case Me:return function(){return new t(this,g)};case Ec:return function(){return new t(this,g)}}return function(){return new t(this)}},d=e+" Iterator",f=!1,p=r.prototype,v=p[je]||p["@@iterator"]||o&&p[o],s=!Or&&v||c(o),l=e==="Array"&&p.entries||v,h,y,I;if(l&&(h=mc(l.call(new r)),h!==Object.prototype&&h.next&&(!Tr&&mc(h)!==Ic&&(bc?bc(h,Ic):Ym(h[je])||Ri(h,je,qc)),Xm(h,d,!0,!0),Tr&&(yc[d]=qc))),rb&&o===Me&&v&&v.name!==Me&&(!Tr&&tb?Zm(p,"name",Me):(f=!0,s=function(){return Qm(v,this)})),o)if(y={values:c(Me),keys:a?s:c(Sc),entries:c(Ec)},u)for(I in y)(Or||f||!(I in p))&&Ri(p,I,y[I]);else zm({target:e,proto:!0,forced:Or||f},y);return(!Tr||u)&&p[je]!==s&&Ri(p,je,s,{name:o}),yc[e]=s,y}});var wc=n((ZS,xc)=>{"use strict";xc.exports=function(r,e){return{value:r,done:e}}});var Ai=n((eE,Lc)=>{"use strict";var ib=G(),Ci=bt(),Rc=J(),Ac=Jt(),ob=W().f,nb=_c(),_r=wc(),ab=L(),sb=T(),Nc="Array Iterator",ub=Ac.set,cb=Ac.getterFor(Nc);Lc.exports=nb(Array,"Array",function(r,e){ub(this,{type:Nc,target:ib(r),index:0,kind:e})},function(){var r=cb(this),e=r.target,t=r.index++;if(!e||t>=e.length)return r.target=void 0,_r(void 0,!0);switch(r.kind){case"keys":return _r(t,!1);case"values":return _r(e[t],!1)}return _r([t,e[t]],!1)},"values");var Cc=Rc.Arguments=Rc.Array;Ci("keys");Ci("values");Ci("entries");if(!ab&&sb&&Cc.name!=="values")try{ob(Cc,"name",{value:"values"})}catch{}});var Dc=n((rE,kc)=>{"use strict";var lb=T(),fb=W(),db=ye();kc.exports=function(r,e,t){lb?fb.f(r,e,db(0,t)):r[e]=t}});var $c=n(()=>{"use strict";var pb=_(),vb=yr(),hb=Dc();pb({target:"Object",stat:!0},{fromEntries:function(e){var t={};return vb(e,function(i,o){hb(t,i,o)},{AS_ENTRIES:!0}),t}})});var Mc=n((oE,jc)=>{"use strict";Ai();$c();var gb=Se();jc.exports=gb.Object.fromEntries});var Bc=n((nE,Fc)=>{"use strict";Fc.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 Vc=n(()=>{"use strict";Ai();var mb=Bc(),bb=m(),yb=Re(),Uc=J();for(xr in mb)yb(bb[xr],xr),Uc[xr]=Uc.Array;var xr});var Kc=n((uE,Gc)=>{"use strict";var Ib=Mc();Vc();Gc.exports=Ib});var Hc=n((cE,Wc)=>{"use strict";var Sb=Kc();Wc.exports=Sb});var Mi=n((ZE,sl)=>{"use strict";var _b=we(),xb=String;sl.exports=function(r){if(_b(r)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return xb(r)}});var cl=n((eq,ul)=>{"use strict";var wb=Je(),Rb=Mi(),Cb=X(),Ab=RangeError;ul.exports=function(e){var t=Rb(Cb(this)),i="",o=wb(e);if(o<0||o===1/0)throw new Ab("Wrong number of repetitions");for(;o>0;(o>>>=1)&&(t+=t))o&1&&(i+=t);return i}});var vl=n((rq,pl)=>{"use strict";var dl=P(),Nb=ht(),ll=Mi(),Lb=cl(),kb=X(),Db=dl(Lb),$b=dl("".slice),jb=Math.ceil,fl=function(r){return function(e,t,i){var o=ll(kb(e)),a=Nb(t),u=o.length,c=i===void 0?" ":ll(i),d,f;return a<=u||c===""?o:(d=a-u,f=Db(c,jb(d/c.length)),f.length>d&&(f=$b(f,0,d)),r?o+f:f+o)}};pl.exports={start:fl(!1),end:fl(!0)}});var gl=n((tq,hl)=>{"use strict";var Mb=K();hl.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(Mb)});var ml=n(()=>{"use strict";var Fb=_(),Bb=vl().start,Ub=gl();Fb({target:"String",proto:!0,forced:Ub},{padStart:function(e){return Bb(this,e,arguments.length>1?arguments[1]:void 0)}})});var yl=n((nq,bl)=>{"use strict";ml();var Vb=Xe();bl.exports=Vb("String","padStart")});var Sl=n((aq,Il)=>{"use strict";var Gb=yl();Il.exports=Gb});var ql=n((sq,El)=>{"use strict";var Kb=Sl();El.exports=Kb});var Ki=D(Ze(),1);var _e=(u=>(u.PROD="prod",u.VK_ALIAS="vk_alias",u.VIDEOTEST="videotest",u.TEST="test",u.OKCDN="okcdn",u.AUTO="auto",u))(_e||{}),yt=(f=>(f.Q144P="mobile",f.Q240P="lowest",f.Q360P="low",f.Q480P="medium",f.Q720P="high",f.Q1080P="fullhd",f.Q1440P="quadhd",f.Q2160P="ultrahd",f.UNKNOWN="unknown",f))(yt||{}),It=(l=>(l.MP4="mp4",l.DASH="dash",l.DASH_SEP="dash_sep",l.ONDEMAND_DASH="ondemand_dash",l.HLS="hls",l.ONDEMAND_HLS="ondemand_hls",l.WEBM="webm",l.AV1="av1",l.ONDEMAND_DASH_LIVE="ondemand_dash_live",l.ONDEMAND_HLS_LIVE="ondemand_hls_live",l.WEBRTC="webrtc",l.UNKNOWN="unknown",l.RTMP="rtmp",l))(It||{});var St=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.HTTP3="http3",i))(St||{});var Et=(c=>(c.SLIDER="slider",c.DOUBLE_TAP="double_tap",c.TIME_CODE="time_code",c.EPISODE="episode",c.REWIND="rewind",c.LIVE="live",c.UNKNOWN="unknown",c))(Et||{}),Vn=(a=>(a.GRAPH_SHOW="iGraphShow",a.GRAPH_HIDE="iGraphHide",a.NEXT_AREA="iNextChapterArea",a.NEXT_BUTTON="iNextChapterBtn",a.WATCH_AGAIN="iWatchAgainBtn",a))(Vn||{}),Gn={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"},Kn={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"},Wn={unknown:"un",mobile:"m",lowest:"ls",low:"l",medium:"md",high:"h",fullhd:"f",quadhd:"q",ultrahd:"u"},Hn={pip:"pi",fullscreen:"fs",external:"ex",prefetch:"pr",airplay:"ap",chromecast:"cc",invisible:"iv"};import{fillWithDefault as pp}from"@vkontakte/videoplayer-shared";var er="1.0.71",zn="CIOPGQJGDIHBABABA",qt={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 vp={apiEnv:"vk_alias",apiKey:zn,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,backoff:{start:1e3,factor:1.5,max:5*60*1e3,random:.1}},Qn=r=>pp(r,vp);function Pt(){let r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),t=0,i,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(t<=2&&(t=33554432+Math.random()*16777216|0),i=t&15,t=t>>4,e[o]=r[o===19?i&3|8:i]);return e.join("")}import{assertNonNullable as Xb,combine as Rl,fromEvent as Cl,isNonNullable as he,isNullable as Al,merge as Zb,now as B,observableFrom as ey,once as ry,safeStorage as $r,Subject as ty,Subscription as Wi,ValueSubject as Vi,createURL as Nl}from"@vkontakte/videoplayer-shared";import{Logger as iy,detectEmbed as oy}from"@vkontakte/videoplayer-shared";var wr=D(Au(),1);var zc=D(Er(),1),Qc=D(Hc(),1);var Yc=r=>{let{operation:e,custom:t}=r,i=(0,Qc.default)((0,zc.default)(t).map(([o,a])=>{let u=Kn[o]??o,c=a;return a&&(o==="mode"?c=Hn[a]??a:o==="quality"&&(c=Wn[a]??a)),[u,c]}));return{...r,operation:Gn[e]??e,custom:i}};import{ValueSubject as Eb,getExponentialDelay as qb,ErrorCategory as de}from"@vkontakte/videoplayer-shared";var Fe=class{constructor(e){this.consequentAuthErrors=0;this.authorized$=new Eb(!1);this.params=e}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this._authorizeWithBackoff()}logBeacon(e){let t="log.externalLog",i=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(t,i,o)||this.logRequest(e).catch(()=>{})}async logRequest(e){let t="log.externalLog",i=this.createLogParams(e),o=this.sessionKey??await this._authorizeWithBackoff();if(!o)return;let a=async(u,c=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(t,i,o)}catch(d){if(!d||!("error_code"in d)){this.params.error$.next({id:"logRequestUnknown",category:de.NETWORK,message:`Unknown ${t} error`,thrown:d});return}let f=d?.error_code;switch(f){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this._authorizeWithBackoff(),c>0?a(u,c-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this._authorizeWithBackoff(),c>0?a(u,c-1):void 0;default:{this.params.error$.next({id:`LogRequest#${f}`,category:de.EXTERNAL_API,message:`${t} error`,data:d});return}}}};return a(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=(0,wr.default)(this.params.refreshAuthToken(),()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){return{collector:"ok.mobile.apps.video",data:JSON.stringify({application:`@vkontakte/videoplayer-statistics:${er}`,platform:this.params.mobile?"M_WEB":"WEB",items:this.params.config.shorten?e.map(Yc):e})}}_authorizeWithBackoff(){if(!this.consequentAuthErrors)return this._authorize();let e=qb(this.consequentAuthErrors,this.params.config.backoff);return new Promise(t=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(()=>{(0,wr.default)(this._authorize().then(t).catch(i=>this.params.error$.next({id:"AuthorizeBackoff",category:de.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",t={session_data:{version:2,device_id:this.params.deviceId,client_version:er.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(t.session_data.auth_token=this.authToken,t.session_data.version=3),this.authorizePromise=(0,wr.default)(this.params.apiTransport.sendRequest(e,t).then(i=>((!i||!i.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:de.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:de.EXTERNAL_API,message:"authorize error",data:i}):this.params.error$.next({id:"AuthorizeUnknown",category:de.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 Rr=class{constructor(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}addEventListener(e,t,i){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push({callback:t,options:i})}removeEventListener(e,t){if(!(e in this.listeners))return;let i=this.listeners[e];for(let o=0,a=i.length;o<a;o++)if(i[o].callback===t){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,a=i.length;o<a;o++){let u=i[o];try{u.callback.call(this,e)}catch(c){Promise.resolve().then(()=>{throw c})}u.options&&u.options.once&&this.removeEventListener(e.type,u.callback)}return!e.defaultPrevented}},pe=class extends Rr{constructor(){super(),this.listeners||Rr.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)}},Be=class{constructor(){Object.defineProperty(this,"signal",{value:new pe,writable:!0,configurable:!0})}abort(e){let t;try{t=new Event("abort")}catch{typeof document<"u"?document.createEvent?(t=document.createEvent("Event"),t.initEvent("abort",!1,!1)):(t=document.createEventObject(),t.type="abort"):t={type:"abort",bubbles:!1,cancelable:!1}}let i=e;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(t)}toString(){return"[object AbortController]"}};typeof Symbol<"u"&&Symbol.toStringTag&&(Be.prototype[Symbol.toStringTag]="AbortController",pe.prototype[Symbol.toStringTag]="AbortSignal");function Cr(r){return r.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof r.Request=="function"&&!r.Request.prototype.hasOwnProperty("signal")||!r.AbortController}function Ni(r){typeof r=="function"&&(r={fetch:r});let{fetch:e,Request:t=e.Request,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o=!1}=r;if(!Cr({fetch:e,Request:t,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o}))return{fetch:e,Request:a};let a=t;(a&&!a.prototype.hasOwnProperty("signal")||o)&&(a=function(f,p){let v;p&&p.signal&&(v=p.signal,delete p.signal);let s=new t(f,p);return v&&Object.defineProperty(s,"signal",{writable:!1,enumerable:!1,configurable:!0,value:v}),s},a.prototype=t.prototype);let u=e;return{fetch:(d,f)=>{let p=a&&a.prototype.isPrototypeOf(d)?d.signal:f?f.signal:void 0;if(p){let v;try{v=new DOMException("Aborted","AbortError")}catch{v=new Error("Aborted"),v.name="AbortError"}if(p.aborted)return Promise.reject(v);let s=new Promise((l,h)=>{p.addEventListener("abort",()=>h(v),{once:!0})});return f&&f.signal&&delete f.signal,Promise.race([s,u(d,f)])}return u(d,f)},Request:a}}var Ue=Cr({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}),Jc=Ue?Ni({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}):void 0,Li=Ue?Jc.fetch:window.fetch,xE=Ue?Jc.Request:window.Request,wE=Ue?Be:window.AbortController,RE=Ue?pe:window.AbortSignal;var Xc=D(Ze(),1),Zc=D(Er(),1);import{ErrorCategory as Ar,now as ki}from"@vkontakte/videoplayer-shared";var Ve=class{constructor(e){this.params=e,this.apiKey=e.config.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=qt[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 Li(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:Ar.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),qt.vk_alias}finally{this.isApiBaseUrlFetched=!0}}sendBeacon(e,t,i){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this._prepareQueryParams({method:e,queryParams:t,sessionKey:i}),a=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,a)}catch(u){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:Ar.NETWORK,message:"Unhandled beacon error",thrown:u,data:{method:e,params:t}})}return!1}async sendRequest(e,t,i){let o=ki(),a=u=>{if(u instanceof TypeError&&(0,Xc.default)(["Failed to fetch","NetworkError when attempting to fetch resource."],u.message)){this.params.error$.next({id:"Network",category:Ar.NETWORK,message:"Request failed",thrown:u});return}this.params.error$.next({id:"OneStat:ApiTransport:sendRequest",category:Ar.NETWORK,message:"Unhandled request error",thrown:u,data:{method:e,params:t,sessionKey:i,time:ki()-o}})};return this.apiBaseUrl=await this.resolveApiBaseUrl(),Li(`${this.apiBaseUrl}/fb.do`,{method:"post",headers:{"Content-type":"application/x-www-form-urlencoded"},body:this._prepareQueryParams({method:e,queryParams:t,sessionKey:i})}).then(u=>{let c=Number(u.headers.get("content-length"))===0,d=new Date(u.headers.get("date")??"").getTime(),f=ki()-o;if(isFinite(d)&&this.timeSynchronisation?.addServerTime(d,f),!c)return u.json().then(p=>Object.prototype.hasOwnProperty.call(p,"error_msg")?Promise.reject(p):p,a)},a)}_prepareQueryParams(e){let t=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&t.append("session_key",e.sessionKey),(0,Zc.default)(e.queryParams).forEach(([i,o])=>t.append(i,typeof o=="string"?o:JSON.stringify(o))),t}};var rl=D(Ze(),1),tl=D(Er(),1);import{ErrorCategory as Pb,now as Tb,safeStorage as Ge,debounceFn as el}from"@vkontakte/videoplayer-shared";var Nr="onestat_events",Di=r=>e=>e.timestamp+r>=Tb(),Lr=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{operation:t}=e;return(0,rl.default)(["action_play","watch_coverage_record","watch_coverage_live"],t)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=el(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let t=Ge.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=el(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:t}),this.subscription=this.api.authorized$.subscribe(i=>{i&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:Pb.WTF,message:String(e)??"Unknown logger error",thrown:e})}}readFromStorage(){let e=Ge.get(Nr);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let t=this.readFromStorage(),o=(t[this.userSalt]??[]).filter(Di(this.params.config.storageExpiration));Ge.set(Nr,JSON.stringify({...t,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(Di(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],Ge.set(Nr,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[t,i]of(0,tl.default)(e)){let o=i.filter(Di(this.params.config.storageExpiration));o.length?e[t]=o:delete e[t],this.loggerDebugLog({message:`${i.length} retrieved from storage, ${o.length} of them actual`})}Ge.set(Nr,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:t}={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)),t&&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 $i,Surface as ve,VideoFormat as q,VideoQuality as N}from"@vkontakte/videoplayer-core";import{assertNever as il}from"@vkontakte/videoplayer-shared";var ol=r=>r&&{[N.INVARIANT]:"unknown",[N.Q_144P]:"mobile",[N.Q_240P]:"lowest",[N.Q_360P]:"low",[N.Q_480P]:"medium",[N.Q_576P]:"unknown",[N.Q_720P]:"high",[N.Q_1080P]:"fullhd",[N.Q_1440P]:"quadhd",[N.Q_2160P]:"ultrahd",[N.Q_4320P]:"unknown"}[r],ji=r=>r&&{[$i.HTTP1]:"http1",[$i.HTTP2]:"http2",[$i.QUIC]:"http3"}[r],nl=r=>{if(r!==void 0)switch(r){case q.MPEG:return"mp4";case q.DASH:case q.DASH_LIVE:case q.DASH_STREAMS:return"dash";case q.DASH_SEP:return"dash_sep";case q.DASH_ONDEMAND:return"ondemand_dash";case q.DASH_WEBM:case q.DASH_LIVE_WEBM:return"webm";case q.DASH_WEBM_AV1:return"av1";case q.DASH_LIVE_CMAF:return"ondemand_dash_live";case q.HLS:case q.HLS_LIVE:return"hls";case q.HLS_ONDEMAND:return"ondemand_hls";case q.HLS_LIVE_CMAF:return"ondemand_hls_live";case q.WEB_RTC_LIVE:return"webrtc";default:return il(r)}},kr=r=>{if(r!==void 0)switch(r){case ve.NONE:case ve.INLINE:return;case ve.FULLSCREEN:return"fullscreen";case ve.SECOND_SCREEN:return"chromecast";case ve.PIP:return"pip";case ve.INVISIBLE:return"invisible";default:return il(r)}},al=r=>{switch(r){case"slow-2g":return"poor";case"2g":return"poor";case"3g":return"good";case"4g":return"excellent"}};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,t){let i=Date.now(),o=e-i-t/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 Fi=D(ql(),1),Pl=()=>(0,Fi.default)(Math.floor(Math.random()*2**32).toString(36),7,"0"),Tl=()=>(0,Fi.default)(Math.floor(Math.random()*2**64).toString(36),13,"0");import{PlaybackState as Ol}from"@vkontakte/videoplayer-core";import{filter as _l,filterChanged as Wb,fromEvent as Hb,isNullable as xl,map as zb,merge as Bi,Observable as Qb,Subject as Ui,Subscription as Yb,ValueSubject as Jb}from"@vkontakte/videoplayer-shared";var wl=(r,e)=>new Qb(t=>{let i=new Yb,o=Bi(Hb(window,"beforeunload"),r.events.willDestruct$),a=new Jb(void 0),u;i.add(r.info.isLive$.pipe(Wb()).subscribe(U=>{u&&(u.unsubscribe(),a.next(void 0)),U?u=r.info.liveTime$.pipe(zb(jr=>jr&&jr/1e3)).subscribe(a):u=r.info.position$.subscribe(a),i.add(u)}));let{playing$:c,paused$:d}=r.events,f=r.events.willSeek$.pipe(_l(()=>r.info.playbackState$.getValue()===Ol.PLAYING)),p=r.events.seeked$.pipe(_l(()=>r.info.playbackState$.getValue()===Ol.PLAYING)),v=!1,s=new Ui;i.add(f.subscribe(()=>{v||s.next(),v=!0})),i.add(p.subscribe(()=>v=!1));let l=new Ui,h=new Ui,y=Bi(c,p,l),I=Bi(d,s,o,r.events.looped$,h),g,S=()=>g=a.getValue(),$l=()=>{let U=a.getValue();xl(g)||g===U||xl(U)||(t.next({from:g,to:U}),g=void 0)},jl=()=>{h.next(),l.next()};if(i.add(y.subscribe(S)),i.add(I.subscribe($l)),e.forceInterval&&isFinite(e.forceInterval)){let U=0;i.add(y.subscribe(()=>U=window.setTimeout(jl,e.forceInterval))),i.add(I.subscribe(()=>window.clearTimeout(U)))}return i});var Dl="_one-stat_",Ll=`${Dl}uuid`,kl=`${Dl}deviceId`,Gi=()=>{let r=new Wi;return{subscription:r,subscribe:(e,t)=>{e&&r.add(e.subscribe(t))}}},Hi=class{constructor(e,t){this.subscription=new Wi;this.debugLogger=new iy;this.oneStatDebugLog=this.debugLogger.createComponentLog("onestat");this.loopCounter=0;this.disabled=!1;this.vsid$=new Vi(void 0);this.isid$=new Vi(void 0);this.seekAction$=new Vi("unknown");this.statContext=e,this.config=Qn(t.config??{}),he(t.apiEnv)&&(this.config.apiEnv=t.apiEnv),this.config.synchronizeTime&&(this.timeSynchronisation=new Dr);let i=new ty;this.experimental={error$:i},$r.get(Ll)&&$r.remove(Ll);let a=$r.get(kl);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:a?this.deviceId=a:(this.deviceId=Pt(),$r.set(kl,this.deviceId)),this.resetViewSession(),t.useIsid&&this.isid$.next(t.isid??Tl());let u=new Ve({config:this.config,error$:i,timeSynchronisation:this.timeSynchronisation});this.api=new Fe({config:this.config,apiTransport:u,refreshAuthToken:t.refreshAuthToken,mobile:this.statContext.mobile??!1,deviceId:this.deviceId,error$:i}),this.logger=new Lr({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:i,userSalt:t.userSalt});let{isEmbed:c,topOrigin:d}=oy();this.isEmbed=c,this.embedParent=d?new URL(d).hostname:void 0,this.subscribe()}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e){let t=new Wi,i=(s,l)=>t.add(s.subscribe(l));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(wl(e,{forceInterval:this.config.watchCoverageInterval}),s=>{let l=e.info.isLive$.getValue(),h={start:parseFloat(s.from.toFixed(3)),end:parseFloat(s.to.toFixed(3))};l?this.logWatchCoverageLive(h):this.logWatchCoverageRecord(h)});let o;i(e.info.isStalled$,s=>{s?o=B():(he(o)&&this.logEmptyBuffer({duration:B()-o}),o=void 0)});let a=!1;t.add(e.events.fatalError$.pipe(ry()).subscribe(()=>a=!0)),i(e.events.willStop$,()=>{if(e.info.isStalled$.getValue()){let l=he(o)?B()-o:void 0;this.logCloseAtEmptyBuffer({duration:l??0}),o=void 0}else a||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 u,c,d=!1;i(e.events.firstBytes$,s=>{u=B(),this.logFirstBytes({time:s})}),i(e.events.willStart$,()=>c=B()),i(e.info.currentBuffer$,s=>{!d&&s&&s.end-s.start>0&&he(u)&&(this.logPlayerReady({duration:B()-u}),d=!0)}),i(e.events.firstFrame$,()=>{he(u)&&!d&&(this.logPlayerReady({duration:B()-u}),d=!0),he(c)&&this.logFirstFrame({time:B()-c})});let f;i(e.info.currentVideoStream$,s=>{s&&(f&&s.id!==f&&this.logTrackSwitch(s),f=s.id)});let p;i(e.info.currentAudioStream$,s=>{s&&(p&&s.id!==p&&this.logTrackSwitch(s),p=s.id)}),i(e.info.atLiveEdge$,s=>this.updateContext({liveEdge:s})),i(Rl({muted:e.info.muted$,volume:e.info.volume$}),({muted:s,volume:l})=>this.updateContext({audible:!s&&l>0})),i(e.info.currentQuality$,s=>{let l=ol(s);this.updateContext({quality:l}),l&&this.logQuality(l)}),i(e.info.isAutoQualityEnabled$,s=>this.updateContext({autoQuality:s})),i(e.info.currentFormat$,s=>this.updateContext({contentType:nl(s)})),i(e.info.currentPlaybackRate$,s=>this.updateContext({rate:s})),i(e.info.is3DVideo$,s=>this.updateContext({is3d:s}));let v;return i(e.info.hostname$,s=>{let l=v!==void 0&&v!==s;this.updateContext({cdnHostname:s,failover:l}),l&&this.logFailover(s),v=s}),i(e.info.throughputEstimation$,s=>this.updateContext({downloadSpeed:s})),i(e.info.httpConnectionType$,s=>{this.statContext.firstConnectionType||this.updateContext({firstConnectionType:ji(s)}),this.updateContext({connectionType:ji(s)})}),i(e.info.httpConnectionReused$,s=>{Al(this.statContext.firstConnectionReused)&&this.updateContext({firstConnectionReused:s}),this.updateContext({connectionReused:s})}),i(e.info.surface$,s=>this.updateContext({mode:kr(s)})),i(Rl({current:e.info.currentTextTrack$,available:e.info.availableTextTracks$}),({current:s,available:l})=>{let h=l.find(({id:I})=>I===s),y=h&&(h.isAuto?`${h.language}_auto`:h.language);this.updateContext({subtitles:y})}),this.player=e,this.uiEvents&&this.attachToUi(this.uiEvents),this.resubscribeBeforeunload(),this.subscription.add(t),t}attachToUi(e){this.uiEvents=e;let{subscription:t,subscribe:i}=Gi();return this.player&&(i(e.actionRewind$,()=>{this.player&&(this.resetViewSession(),this.logActionPlay({position:this.player.info.position$.getValue()}))}),i(e.actionSeek$,this.seekAction$),i(e.inPiP$,o=>{let a=o?"pip":kr(this.player?.info.surface$.getValue());this.updateContext({mode:a})}),i(e.inFullscreen$,o=>{let a=o?"fullscreen":kr(this.player?.info.surface$.getValue());this.updateContext({mode:a})}),i(e.actionSetSubtitle$,o=>this.updateContext({subtitles:o})),i(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(t)),t}attachToAds(e){let{subscription:t,subscribe:i}=Gi();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(t),t}attachToInteractive(e){let{subscription:t,subscribe:i}=Gi();return i(e.click$,o=>this.logInterfaceClick(o)),i(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(t),t}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"}),this.vsid$.next(Pl())}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 t=this.timeSynchronisation?.getOffset()??0,i=e.start+t,o=e.end+t;this.log({operation:"watch_coverage_live",param:`${i}-${o}`},{in_history:this.statContext.inHistory?1:void 0})}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(Zb(Cl(e,"change"),ey(["init"])).subscribe(()=>this.updateContext({network:al(e.effectiveType)}))),this.config.debugLog&&this.debugLogger.log$.subscribe(t=>{console.debug("%c stat ","background:#fa6470;",`component: ${t.component}.`,t.message)})}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=Cl(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,t={}){if(this.disabled){this.oneStatDebugLog({message:`operation ${e.operation} but statistics is disabled`});return}if((0,Ki.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,t);this.logger.log(i)}createLogItem({operation:e,param:t,time:i},o={}){let a=this.timeSynchronisation?.now()??B(),u=this.vsid$.getValue();Xb(u);let c=this.isid$.getValue(),d=e==="empty_buffer"||e==="close_at_empty_buffer"?this.statContext.connectionType:this.statContext.firstConnectionType,f=this.statContext.firstConnectionReused,p,v;if(this.isEmbed||this.statContext.place==="embed"){p=this.embedParent;let l=[...new URLSearchParams(location.search).entries()].filter(([h,y])=>(0,Ki.default)(this.config.embedUrlParams,h));v=new URLSearchParams(l).toString()}else this.statContext.place==="direct"&&(this.statContext.refDomain?p=Nl(this.statContext.refDomain)?.hostname??this.statContext.refDomain:document.referrer&&(p=Nl(document.referrer)?.hostname??document.referrer),v=location.href.substring(0,1024));let s={vsid:u,isid:c,vid:this.statContext.movieId,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:t,vk_app_id:this.statContext.vkAppId,track_code:this.statContext.trackCode,connection_type:d,connection_reused:f===!0?1:f===!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:p,direct_url:v,rate:this.statContext.rate===1||Al(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 l of this.config.disabledCustomFields)delete s[l];return{operation:e,type:1,time:i,network:this.statContext.network,timestamp:a,custom:s}}};export{_e as ApiEnv,St as ConnectionType,It as ContentType,Vn as InteractiveInterfaceClick,Hi as OneStat,yt as Quality,Et as SeekAction,er as VERSION};
package/evergreen.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @vkontakte/videoplayer-statistics v1.0.71-dev.ffbc0545.0
3
- * Fri, 14 Feb 2025 09:15:41 GMT
2
+ * @vkontakte/videoplayer-statistics v1.0.71
3
+ * Wed, 12 Feb 2025 12:37:46 GMT
4
4
  * https://st.mycdn.me/static/vkontakte-videoplayer/1-0-71/doc/
5
5
  */
6
- var A=(a=>(a.PROD="prod",a.VK_ALIAS="vk_alias",a.VIDEOTEST="videotest",a.TEST="test",a.OKCDN="okcdn",a.AUTO="auto",a))(A||{}),V=(u=>(u.Q144P="mobile",u.Q240P="lowest",u.Q360P="low",u.Q480P="medium",u.Q720P="high",u.Q1080P="fullhd",u.Q1440P="quadhd",u.Q2160P="ultrahd",u.UNKNOWN="unknown",u))(V||{}),U=(d=>(d.MP4="mp4",d.DASH="dash",d.DASH_SEP="dash_sep",d.ONDEMAND_DASH="ondemand_dash",d.HLS="hls",d.ONDEMAND_HLS="ondemand_hls",d.WEBM="webm",d.AV1="av1",d.ONDEMAND_DASH_LIVE="ondemand_dash_live",d.ONDEMAND_HLS_LIVE="ondemand_hls_live",d.WEBRTC="webrtc",d.UNKNOWN="unknown",d.RTMP="rtmp",d))(U||{});var W=(t=>(t.HTTP1="http1",t.HTTP2="http2",t.HTTP3="http3",t))(W||{});var H=(c=>(c.SLIDER="slider",c.DOUBLE_TAP="double_tap",c.TIME_CODE="time_code",c.EPISODE="episode",c.REWIND="rewind",c.LIVE="live",c.UNKNOWN="unknown",c))(H||{}),ie=(n=>(n.GRAPH_SHOW="iGraphShow",n.GRAPH_HIDE="iGraphHide",n.NEXT_AREA="iNextChapterArea",n.NEXT_BUTTON="iNextChapterBtn",n.WATCH_AGAIN="iWatchAgainBtn",n))(ie||{}),oe={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"},se={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"},re={unknown:"un",mobile:"m",lowest:"ls",low:"l",medium:"md",high:"h",fullhd:"f",quadhd:"q",ultrahd:"u"},ne={pip:"pi",fullscreen:"fs",external:"ex",prefetch:"pr",airplay:"ap",chromecast:"cc",invisible:"iv"};import{fillWithDefault as Te}from"@vkontakte/videoplayer-shared/evergreen";var L="1.0.71-dev.ffbc0545.0",ae="CIOPGQJGDIHBABABA",K={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 we={apiEnv:"vk_alias",apiKey:ae,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,backoff:{start:1e3,factor:1.5,max:5*60*1e3,random:.1}},de=r=>Te(r,we);function q(){let r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),i=0,t,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(i<=2&&(i=33554432+Math.random()*16777216|0),t=i&15,i=i>>4,e[o]=r[o===19?t&3|8:t]);return e.join("")}import{assertNonNullable as Ue,combine as ye,fromEvent as Pe,isNonNullable as E,isNullable as _e,merge as We,now as I,observableFrom as He,once as Ke,safeStorage as N,Subject as qe,Subscription as ee,ValueSubject as J,createURL as Ee}from"@vkontakte/videoplayer-shared/evergreen";import{Logger as Qe,detectEmbed as ze}from"@vkontakte/videoplayer-shared/evergreen";var ce=r=>{let{operation:e,custom:i}=r,t=Object.fromEntries(Object.entries(i).map(([o,n])=>{let a=se[o]??o,c=n;return n&&(o==="mode"?c=ne[n]??n:o==="quality"&&(c=re[n]??n)),[a,c]}));return{...r,operation:oe[e]??e,custom:t}};import{ValueSubject as Le,getExponentialDelay as ke,ErrorCategory as P}from"@vkontakte/videoplayer-shared/evergreen";var x=class{constructor(e){this.consequentAuthErrors=0;this.authorized$=new Le(!1);this.params=e}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this._authorizeWithBackoff()}logBeacon(e){let i="log.externalLog",t=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(i,t,o)||this.logRequest(e).catch(()=>{})}async logRequest(e){let i="log.externalLog",t=this.createLogParams(e),o=this.sessionKey??await this._authorizeWithBackoff();if(!o)return;let n=async(a,c=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(i,t,o)}catch(l){if(!l||!("error_code"in l)){this.params.error$.next({id:"logRequestUnknown",category:P.NETWORK,message:`Unknown ${i} error`,thrown:l});return}let u=l?.error_code;switch(u){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this._authorizeWithBackoff(),c>0?n(a,c-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this._authorizeWithBackoff(),c>0?n(a,c-1):void 0;default:{this.params.error$.next({id:`LogRequest#${u}`,category:P.EXTERNAL_API,message:`${i} error`,data:l});return}}}};return n(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=this.params.refreshAuthToken().finally(()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){return{collector:"ok.mobile.apps.video",data:JSON.stringify({application:`@vkontakte/videoplayer-statistics:${L}`,platform:this.params.mobile?"M_WEB":"WEB",items:this.params.config.shorten?e.map(ce):e})}}_authorizeWithBackoff(){if(!this.consequentAuthErrors)return this._authorize();let e=ke(this.consequentAuthErrors,this.params.config.backoff);return new Promise(i=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(()=>{this._authorize().then(i).catch(t=>this.params.error$.next({id:"AuthorizeBackoff",category:P.NETWORK,message:"Otherwise unhandled error in authorization",thrown:t})).finally(()=>this.backoffTimeoutId=0)},e))})}async _authorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",i={session_data:{version:2,device_id:this.params.deviceId,client_version:L.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(i.session_data.auth_token=this.authToken,i.session_data.version=3),this.authorizePromise=this.params.apiTransport.sendRequest(e,i).then(t=>((!t||!t.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:P.EXTERNAL_API,message:"No session key",data:t}),this.sessionKey=t?.session_key??void 0,this.sessionKey)).catch(async t=>{this.sessionKey=void 0;let o=t?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this._authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:P.EXTERNAL_API,message:"authorize error",data:t}):this.params.error$.next({id:"AuthorizeUnknown",category:P.NETWORK,message:"authorize error",thrown:t})}).finally(()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};import{ErrorCategory as k,now as Q}from"@vkontakte/videoplayer-shared/evergreen";var C=class{constructor(e){this.params=e,this.apiKey=e.config.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=K[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 fetch(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:k.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),K.vk_alias}finally{this.isApiBaseUrlFetched=!0}}sendBeacon(e,i,t){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this._prepareQueryParams({method:e,queryParams:i,sessionKey:t}),n=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,n)}catch(a){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:k.NETWORK,message:"Unhandled beacon error",thrown:a,data:{method:e,params:i}})}return!1}async sendRequest(e,i,t){let o=Q(),n=a=>{if(a instanceof TypeError&&["Failed to fetch","NetworkError when attempting to fetch resource."].includes(a.message)){this.params.error$.next({id:"Network",category:k.NETWORK,message:"Request failed",thrown:a});return}this.params.error$.next({id:"OneStat:ApiTransport:sendRequest",category:k.NETWORK,message:"Unhandled request error",thrown:a,data:{method:e,params:i,sessionKey:t,time:Q()-o}})};return this.apiBaseUrl=await this.resolveApiBaseUrl(),fetch(`${this.apiBaseUrl}/fb.do`,{method:"post",headers:{"Content-type":"application/x-www-form-urlencoded"},body:this._prepareQueryParams({method:e,queryParams:i,sessionKey:t})}).then(a=>{let c=Number(a.headers.get("content-length"))===0,l=new Date(a.headers.get("date")??"").getTime(),u=Q()-o;if(isFinite(l)&&this.timeSynchronisation?.addServerTime(l,u),!c)return a.json().then(p=>Object.prototype.hasOwnProperty.call(p,"error_msg")?Promise.reject(p):p,n)},n)}_prepareQueryParams(e){let i=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&i.append("session_key",e.sessionKey),Object.entries(e.queryParams).forEach(([t,o])=>i.append(t,typeof o=="string"?o:JSON.stringify(o))),i}};import{ErrorCategory as $e,now as Re,safeStorage as T,debounceFn as ue}from"@vkontakte/videoplayer-shared/evergreen";var $="onestat_events",z=r=>e=>e.timestamp+r>=Re(),R=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{operation:i}=e;return["action_play","watch_coverage_record","watch_coverage_live"].includes(i)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=ue(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let i=T.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=ue(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:i}),this.subscription=this.api.authorized$.subscribe(t=>{t&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:$e.WTF,message:String(e)??"Unknown logger error",thrown:e})}}readFromStorage(){let e=T.get($);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let i=this.readFromStorage(),o=(i[this.userSalt]??[]).filter(z(this.params.config.storageExpiration));T.set($,JSON.stringify({...i,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(z(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],T.set($,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[i,t]of Object.entries(e)){let o=t.filter(z(this.params.config.storageExpiration));o.length?e[i]=o:delete e[i],this.loggerDebugLog({message:`${t.length} retrieved from storage, ${o.length} of them actual`})}T.set($,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:i}={wantBeacon:!1,clearStorage:!0}){let t=this.getFromStorage();t.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${t.length} events through beacon`}),this.api.logBeacon(t)):(this.loggerDebugLog({message:`Flushing ${t.length} events`}),this.api.logRequest(t)),i&&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 j,Surface as _,VideoFormat as h,VideoQuality as m}from"@vkontakte/videoplayer-core/evergreen";import{assertNever as le}from"@vkontakte/videoplayer-shared/evergreen";var pe=r=>r&&{[m.INVARIANT]:"unknown",[m.Q_144P]:"mobile",[m.Q_240P]:"lowest",[m.Q_360P]:"low",[m.Q_480P]:"medium",[m.Q_576P]:"unknown",[m.Q_720P]:"high",[m.Q_1080P]:"fullhd",[m.Q_1440P]:"quadhd",[m.Q_2160P]:"ultrahd",[m.Q_4320P]:"unknown"}[r],G=r=>r&&{[j.HTTP1]:"http1",[j.HTTP2]:"http2",[j.QUIC]:"http3"}[r],he=r=>{if(r!==void 0)switch(r){case h.MPEG:return"mp4";case h.DASH:case h.DASH_LIVE:case h.DASH_STREAMS:return"dash";case h.DASH_SEP:return"dash_sep";case h.DASH_ONDEMAND:return"ondemand_dash";case h.DASH_WEBM:case h.DASH_LIVE_WEBM:return"webm";case h.DASH_WEBM_AV1:return"av1";case h.DASH_LIVE_CMAF:return"ondemand_dash_live";case h.HLS:case h.HLS_LIVE:return"hls";case h.HLS_ONDEMAND:return"ondemand_hls";case h.HLS_LIVE_CMAF:return"ondemand_hls_live";case h.WEB_RTC_LIVE:return"webrtc";default:return le(r)}},O=r=>{if(r!==void 0)switch(r){case _.NONE:case _.INLINE:return;case _.FULLSCREEN:return"fullscreen";case _.SECOND_SCREEN:return"chromecast";case _.PIP:return"pip";case _.INVISIBLE:return"invisible";default:return le(r)}},fe=r=>{switch(r){case"slow-2g":return"poor";case"2g":return"poor";case"3g":return"good";case"4g":return"excellent"}};var D=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,i){let t=Date.now(),o=e-t-i/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 ge=()=>Math.floor(Math.random()*4294967296).toString(36).padStart(7,"0"),me=()=>Math.floor(Math.random()*18446744073709552e3).toString(36).padStart(13,"0");import{PlaybackState as be}from"@vkontakte/videoplayer-core/evergreen";import{filter as ve,filterChanged as De,fromEvent as Ne,isNullable as Ie,map as Be,merge as Y,Observable as Fe,Subject as X,Subscription as Me,ValueSubject as Ve}from"@vkontakte/videoplayer-shared/evergreen";var Se=(r,e)=>new Fe(i=>{let t=new Me,o=Y(Ne(window,"beforeunload"),r.events.willDestruct$),n=new Ve(void 0),a;t.add(r.info.isLive$.pipe(De()).subscribe(y=>{a&&(a.unsubscribe(),n.next(void 0)),y?a=r.info.liveTime$.pipe(Be(M=>M&&M/1e3)).subscribe(n):a=r.info.position$.subscribe(n),t.add(a)}));let{playing$:c,paused$:l}=r.events,u=r.events.willSeek$.pipe(ve(()=>r.info.playbackState$.getValue()===be.PLAYING)),p=r.events.seeked$.pipe(ve(()=>r.info.playbackState$.getValue()===be.PLAYING)),f=!1,s=new X;t.add(u.subscribe(()=>{f||s.next(),f=!0})),t.add(p.subscribe(()=>f=!1));let d=new X,g=new X,b=Y(c,p,d),S=Y(l,s,o,r.events.looped$,g),v,w=()=>v=n.getValue(),B=()=>{let y=n.getValue();Ie(v)||v===y||Ie(y)||(i.next({from:v,to:y}),v=void 0)},F=()=>{g.next(),d.next()};if(t.add(b.subscribe(w)),t.add(S.subscribe(B)),e.forceInterval&&isFinite(e.forceInterval)){let y=0;t.add(b.subscribe(()=>y=window.setTimeout(F,e.forceInterval))),t.add(S.subscribe(()=>window.clearTimeout(y)))}return t});var Ce="_one-stat_",Ae=`${Ce}uuid`,xe=`${Ce}deviceId`,Z=()=>{let r=new ee;return{subscription:r,subscribe:(e,i)=>{e&&r.add(e.subscribe(i))}}},te=class{constructor(e,i){this.subscription=new ee;this.debugLogger=new Qe;this.oneStatDebugLog=this.debugLogger.createComponentLog("onestat");this.loopCounter=0;this.disabled=!1;this.vsid$=new J(void 0);this.isid$=new J(void 0);this.seekAction$=new J("unknown");this.statContext=e,this.config=de(i.config??{}),E(i.apiEnv)&&(this.config.apiEnv=i.apiEnv),this.config.synchronizeTime&&(this.timeSynchronisation=new D);let t=new qe;this.experimental={error$:t},N.get(Ae)&&N.remove(Ae);let n=N.get(xe);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:n?this.deviceId=n:(this.deviceId=q(),N.set(xe,this.deviceId)),this.resetViewSession(),i.useIsid&&this.isid$.next(i.isid??me());let a=new C({config:this.config,error$:t,timeSynchronisation:this.timeSynchronisation});this.api=new x({config:this.config,apiTransport:a,refreshAuthToken:i.refreshAuthToken,mobile:this.statContext.mobile??!1,deviceId:this.deviceId,error$:t}),this.logger=new R({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:t,userSalt:i.userSalt});let{isEmbed:c,topOrigin:l}=ze();this.isEmbed=c,this.embedParent=l?new URL(l).hostname:void 0,this.subscribe()}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e){let i=new ee,t=(s,d)=>i.add(s.subscribe(d));t(e.events.willStart$,()=>{let s=e.info.position$.getValue();this.logActionPlay({position:s}),this.statContext.projectId&&this.logActionPlayInteractive()}),t(e.events.looped$,()=>{this.resetViewSession(),++this.loopCounter>this.config.maxLoops&&(this.disabled=!0),this.logActionPlay({position:e.info.position$.getValue()})}),t(e.events.seeked$,()=>{this.logSeek({action:this.seekAction$.getValue(),time:e.info.position$.getValue()}),this.seekAction$.next("unknown")}),t(e.events.paused$,()=>{this.logPause({position:e.info.position$.getValue()})}),t(e.events.willResume$,()=>{this.logPlay()}),t(e.events.started$,()=>{this.statContext.clip&&this.logWatchCoverageRecord({start:0,end:0})}),t(e.events.playing$,()=>{this.logPlaying()}),t(Se(e,{forceInterval:this.config.watchCoverageInterval}),s=>{let d=e.info.isLive$.getValue(),g=e.info.atLiveEdge$.getValue(),b={start:parseFloat(s.from.toFixed(3)),end:parseFloat(s.to.toFixed(3))},S,v;if(d&&g){let w=e.info.liveLatency$.getValue()??0,B=e.info.currentBuffer$.getValue()?.end??0,F=e.info.liveBufferTime$.getValue()??0;S=w*1e3,v=(w-(B-F))*1e3,S&&v&&(b={...b,latency:S,bufferLatency:v})}d?this.logWatchCoverageLive(b):this.logWatchCoverageRecord(b)});let o;t(e.info.isStalled$,s=>{s?o=I():(E(o)&&this.logEmptyBuffer({duration:I()-o}),o=void 0)});let n=!1;i.add(e.events.fatalError$.pipe(Ke()).subscribe(()=>n=!0)),t(e.events.willStop$,()=>{if(e.info.isStalled$.getValue()){let d=E(o)?I()-o:void 0;this.logCloseAtEmptyBuffer({duration:d??0}),o=void 0}else n||this.logActionStop()}),t(e.events.managedError$,({id:s})=>{this.logError({fatal:!1,errorType:s})}),t(e.events.fatalError$,({id:s})=>{this.logError({fatal:!0,errorType:s})});let a,c,l=!1;t(e.events.firstBytes$,s=>{a=I(),this.logFirstBytes({time:s})}),t(e.events.willStart$,()=>c=I()),t(e.info.currentBuffer$,s=>{!l&&s&&s.end-s.start>0&&E(a)&&(this.logPlayerReady({duration:I()-a}),l=!0)}),t(e.events.firstFrame$,()=>{E(a)&&!l&&(this.logPlayerReady({duration:I()-a}),l=!0),E(c)&&this.logFirstFrame({time:I()-c})});let u;t(e.info.currentVideoStream$,s=>{s&&(u&&s.id!==u&&this.logTrackSwitch(s),u=s.id)});let p;t(e.info.currentAudioStream$,s=>{s&&(p&&s.id!==p&&this.logTrackSwitch(s),p=s.id)}),t(e.info.atLiveEdge$,s=>this.updateContext({liveEdge:s})),t(ye({muted:e.info.muted$,volume:e.info.volume$}),({muted:s,volume:d})=>this.updateContext({audible:!s&&d>0})),t(e.info.currentQuality$,s=>{let d=pe(s);this.updateContext({quality:d}),d&&this.logQuality(d)}),t(e.info.isAutoQualityEnabled$,s=>this.updateContext({autoQuality:s})),t(e.info.currentFormat$,s=>this.updateContext({contentType:he(s)})),t(e.info.currentPlaybackRate$,s=>this.updateContext({rate:s})),t(e.info.is3DVideo$,s=>this.updateContext({is3d:s}));let f;return t(e.info.hostname$,s=>{let d=f!==void 0&&f!==s;this.updateContext({cdnHostname:s,failover:d}),d&&this.logFailover(s),f=s}),t(e.info.throughputEstimation$,s=>this.updateContext({downloadSpeed:s})),t(e.info.httpConnectionType$,s=>{this.statContext.firstConnectionType||this.updateContext({firstConnectionType:G(s)}),this.updateContext({connectionType:G(s)})}),t(e.info.httpConnectionReused$,s=>{_e(this.statContext.firstConnectionReused)&&this.updateContext({firstConnectionReused:s}),this.updateContext({connectionReused:s})}),t(e.info.surface$,s=>this.updateContext({mode:O(s)})),t(ye({current:e.info.currentTextTrack$,available:e.info.availableTextTracks$}),({current:s,available:d})=>{let g=d.find(({id:S})=>S===s),b=g&&(g.isAuto?`${g.language}_auto`:g.language);this.updateContext({subtitles:b?.split(".")[0]})}),this.player=e,this.uiEvents&&this.attachToUi(this.uiEvents),this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToUi(e){this.uiEvents=e;let{subscription:i,subscribe:t}=Z();return this.player&&(t(e.actionRewind$,()=>{this.player&&(this.resetViewSession(),this.logActionPlay({position:this.player.info.position$.getValue()}))}),t(e.actionSeek$,this.seekAction$),t(e.inPiP$,o=>{let n=o?"pip":O(this.player?.info.surface$.getValue());this.updateContext({mode:n})}),t(e.inFullscreen$,o=>{let n=o?"fullscreen":O(this.player?.info.surface$.getValue());this.updateContext({mode:n})}),t(e.actionSetSubtitle$,o=>this.updateContext({subtitles:o.split(".")[0]})),t(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(i)),i}attachToAds(e){let{subscription:i,subscribe:t}=Z();return t(e.slotRequested$,()=>this.logAdSlotRequest()),t(e.started$,o=>this.logAdStarted(o)),t(e.paused$,()=>this.logAdPaused()),t(e.resumed$,()=>this.logAdResumed()),t(e.ended$,()=>this.logAdEnded()),t(e.skipped$,()=>this.logAdSkipped()),t(e.clicked$,()=>this.logAdClicked()),t(e.error$,o=>this.logError({errorType:o,fatal:!1})),this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToInteractive(e){let{subscription:i,subscribe:t}=Z();return t(e.click$,o=>this.logInterfaceClick(o)),t(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(i),i}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"}),this.vsid$.next(ge())}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 i=this.timeSynchronisation?.getOffset()??0,t=e.start+i,o=e.end+i;this.log({operation:"watch_coverage_live",param:`${t}-${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(We(Pe(e,"change"),He(["init"])).subscribe(()=>this.updateContext({network:fe(e.effectiveType)}))),this.config.debugLog&&this.debugLogger.log$.subscribe(i=>{console.debug("%c stat ","background:#fa6470;",`component: ${i.component}.`,i.message)})}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=Pe(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,i={}){if(this.disabled){this.oneStatDebugLog({message:`operation ${e.operation} but statistics is disabled`});return}if(this.config.disabledOperations.includes(e.operation)){this.oneStatDebugLog({message:`operation ${e.operation} but it is disabled`});return}this.oneStatDebugLog({message:`operation ${e.operation} ${e.param}`});let t=this.createLogItem(e,i);this.logger.log(t)}createLogItem({operation:e,param:i,time:t},o={}){let n=this.timeSynchronisation?.now()??I(),a=this.vsid$.getValue();Ue(a);let c=this.isid$.getValue(),l=e==="empty_buffer"||e==="close_at_empty_buffer"?this.statContext.connectionType:this.statContext.firstConnectionType,u=this.statContext.firstConnectionReused,p,f;if(this.isEmbed||this.statContext.place==="embed"){p=this.embedParent;let d=[...new URLSearchParams(location.search).entries()].filter(([g,b])=>this.config.embedUrlParams.includes(g));f=new URLSearchParams(d).toString()}else this.statContext.place==="direct"&&(this.statContext.refDomain?p=Ee(this.statContext.refDomain)?.hostname??this.statContext.refDomain:document.referrer&&(p=Ee(document.referrer)?.hostname??document.referrer),f=location.href.substring(0,1024));let s={vsid:a,isid:c,vid:this.statContext.movieId,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:i,vk_app_id:this.statContext.vkAppId,track_code:this.statContext.trackCode,connection_type:l,connection_reused:u===!0?1:u===!1?0:void 0,cached_data:this.statContext.cached===!0?1:this.statContext.cached===!1?0:void 0,live:this.statContext.liveEdge?1:void 0,muted:this.statContext.audible===!1?1:void 0,mode:this.statContext.mode,subtitles:this.statContext.subtitles,download_speed:this.statContext.downloadSpeed,manual_quality:this.statContext.autoQuality?void 0:1,ref_domain:p,direct_url:f,rate:this.statContext.rate===1||_e(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:t,network:this.statContext.network,timestamp:n,custom:s}}};export{A as ApiEnv,W as ConnectionType,U as ContentType,ie as InteractiveInterfaceClick,te as OneStat,V as Quality,H as SeekAction,L as VERSION};
6
+ var E=(a=>(a.PROD="prod",a.VK_ALIAS="vk_alias",a.VIDEOTEST="videotest",a.TEST="test",a.OKCDN="okcdn",a.AUTO="auto",a))(E||{}),B=(u=>(u.Q144P="mobile",u.Q240P="lowest",u.Q360P="low",u.Q480P="medium",u.Q720P="high",u.Q1080P="fullhd",u.Q1440P="quadhd",u.Q2160P="ultrahd",u.UNKNOWN="unknown",u))(B||{}),F=(d=>(d.MP4="mp4",d.DASH="dash",d.DASH_SEP="dash_sep",d.ONDEMAND_DASH="ondemand_dash",d.HLS="hls",d.ONDEMAND_HLS="ondemand_hls",d.WEBM="webm",d.AV1="av1",d.ONDEMAND_DASH_LIVE="ondemand_dash_live",d.ONDEMAND_HLS_LIVE="ondemand_hls_live",d.WEBRTC="webrtc",d.UNKNOWN="unknown",d.RTMP="rtmp",d))(F||{});var M=(t=>(t.HTTP1="http1",t.HTTP2="http2",t.HTTP3="http3",t))(M||{});var V=(c=>(c.SLIDER="slider",c.DOUBLE_TAP="double_tap",c.TIME_CODE="time_code",c.EPISODE="episode",c.REWIND="rewind",c.LIVE="live",c.UNKNOWN="unknown",c))(V||{}),Z=(n=>(n.GRAPH_SHOW="iGraphShow",n.GRAPH_HIDE="iGraphHide",n.NEXT_AREA="iNextChapterArea",n.NEXT_BUTTON="iNextChapterBtn",n.WATCH_AGAIN="iWatchAgainBtn",n))(Z||{}),ee={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"},te={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"},ie={unknown:"un",mobile:"m",lowest:"ls",low:"l",medium:"md",high:"h",fullhd:"f",quadhd:"q",ultrahd:"u"},oe={pip:"pi",fullscreen:"fs",external:"ex",prefetch:"pr",airplay:"ap",chromecast:"cc",invisible:"iv"};import{fillWithDefault as Te}from"@vkontakte/videoplayer-shared/evergreen";var w="1.0.71",se="CIOPGQJGDIHBABABA",U={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 we={apiEnv:"vk_alias",apiKey:se,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,backoff:{start:1e3,factor:1.5,max:5*60*1e3,random:.1}},re=r=>Te(r,we);function W(){let r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),i=0,t,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(i<=2&&(i=33554432+Math.random()*16777216|0),t=i&15,i=i>>4,e[o]=r[o===19?t&3|8:t]);return e.join("")}import{assertNonNullable as Ue,combine as ve,fromEvent as Ie,isNonNullable as y,isNullable as Se,merge as We,now as b,observableFrom as He,once as Ke,safeStorage as D,Subject as qe,Subscription as X,ValueSubject as G,createURL as ye}from"@vkontakte/videoplayer-shared/evergreen";import{Logger as Qe,detectEmbed as ze}from"@vkontakte/videoplayer-shared/evergreen";var ne=r=>{let{operation:e,custom:i}=r,t=Object.fromEntries(Object.entries(i).map(([o,n])=>{let a=te[o]??o,c=n;return n&&(o==="mode"?c=oe[n]??n:o==="quality"&&(c=ie[n]??n)),[a,c]}));return{...r,operation:ee[e]??e,custom:t}};import{ValueSubject as ke,getExponentialDelay as Le,ErrorCategory as I}from"@vkontakte/videoplayer-shared/evergreen";var A=class{constructor(e){this.consequentAuthErrors=0;this.authorized$=new ke(!1);this.params=e}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this._authorizeWithBackoff()}logBeacon(e){let i="log.externalLog",t=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(i,t,o)||this.logRequest(e).catch(()=>{})}async logRequest(e){let i="log.externalLog",t=this.createLogParams(e),o=this.sessionKey??await this._authorizeWithBackoff();if(!o)return;let n=async(a,c=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(i,t,o)}catch(l){if(!l||!("error_code"in l)){this.params.error$.next({id:"logRequestUnknown",category:I.NETWORK,message:`Unknown ${i} error`,thrown:l});return}let u=l?.error_code;switch(u){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this._authorizeWithBackoff(),c>0?n(a,c-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this._authorizeWithBackoff(),c>0?n(a,c-1):void 0;default:{this.params.error$.next({id:`LogRequest#${u}`,category:I.EXTERNAL_API,message:`${i} error`,data:l});return}}}};return n(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=this.params.refreshAuthToken().finally(()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){return{collector:"ok.mobile.apps.video",data:JSON.stringify({application:`@vkontakte/videoplayer-statistics:${w}`,platform:this.params.mobile?"M_WEB":"WEB",items:this.params.config.shorten?e.map(ne):e})}}_authorizeWithBackoff(){if(!this.consequentAuthErrors)return this._authorize();let e=Le(this.consequentAuthErrors,this.params.config.backoff);return new Promise(i=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(()=>{this._authorize().then(i).catch(t=>this.params.error$.next({id:"AuthorizeBackoff",category:I.NETWORK,message:"Otherwise unhandled error in authorization",thrown:t})).finally(()=>this.backoffTimeoutId=0)},e))})}async _authorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",i={session_data:{version:2,device_id:this.params.deviceId,client_version:w.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(i.session_data.auth_token=this.authToken,i.session_data.version=3),this.authorizePromise=this.params.apiTransport.sendRequest(e,i).then(t=>((!t||!t.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:I.EXTERNAL_API,message:"No session key",data:t}),this.sessionKey=t?.session_key??void 0,this.sessionKey)).catch(async t=>{this.sessionKey=void 0;let o=t?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this._authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:I.EXTERNAL_API,message:"authorize error",data:t}):this.params.error$.next({id:"AuthorizeUnknown",category:I.NETWORK,message:"authorize error",thrown:t})}).finally(()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};import{ErrorCategory as k,now as H}from"@vkontakte/videoplayer-shared/evergreen";var x=class{constructor(e){this.params=e,this.apiKey=e.config.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=U[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 fetch(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:k.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),U.vk_alias}finally{this.isApiBaseUrlFetched=!0}}sendBeacon(e,i,t){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this._prepareQueryParams({method:e,queryParams:i,sessionKey:t}),n=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,n)}catch(a){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:k.NETWORK,message:"Unhandled beacon error",thrown:a,data:{method:e,params:i}})}return!1}async sendRequest(e,i,t){let o=H(),n=a=>{if(a instanceof TypeError&&["Failed to fetch","NetworkError when attempting to fetch resource."].includes(a.message)){this.params.error$.next({id:"Network",category:k.NETWORK,message:"Request failed",thrown:a});return}this.params.error$.next({id:"OneStat:ApiTransport:sendRequest",category:k.NETWORK,message:"Unhandled request error",thrown:a,data:{method:e,params:i,sessionKey:t,time:H()-o}})};return this.apiBaseUrl=await this.resolveApiBaseUrl(),fetch(`${this.apiBaseUrl}/fb.do`,{method:"post",headers:{"Content-type":"application/x-www-form-urlencoded"},body:this._prepareQueryParams({method:e,queryParams:i,sessionKey:t})}).then(a=>{let c=Number(a.headers.get("content-length"))===0,l=new Date(a.headers.get("date")??"").getTime(),u=H()-o;if(isFinite(l)&&this.timeSynchronisation?.addServerTime(l,u),!c)return a.json().then(p=>Object.prototype.hasOwnProperty.call(p,"error_msg")?Promise.reject(p):p,n)},n)}_prepareQueryParams(e){let i=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&i.append("session_key",e.sessionKey),Object.entries(e.queryParams).forEach(([t,o])=>i.append(t,typeof o=="string"?o:JSON.stringify(o))),i}};import{ErrorCategory as $e,now as Re,safeStorage as C,debounceFn as ae}from"@vkontakte/videoplayer-shared/evergreen";var L="onestat_events",K=r=>e=>e.timestamp+r>=Re(),$=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{operation:i}=e;return["action_play","watch_coverage_record","watch_coverage_live"].includes(i)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=ae(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let i=C.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=ae(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:i}),this.subscription=this.api.authorized$.subscribe(t=>{t&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:$e.WTF,message:String(e)??"Unknown logger error",thrown:e})}}readFromStorage(){let e=C.get(L);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let i=this.readFromStorage(),o=(i[this.userSalt]??[]).filter(K(this.params.config.storageExpiration));C.set(L,JSON.stringify({...i,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(K(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],C.set(L,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[i,t]of Object.entries(e)){let o=t.filter(K(this.params.config.storageExpiration));o.length?e[i]=o:delete e[i],this.loggerDebugLog({message:`${t.length} retrieved from storage, ${o.length} of them actual`})}C.set(L,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:i}={wantBeacon:!1,clearStorage:!0}){let t=this.getFromStorage();t.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${t.length} events through beacon`}),this.api.logBeacon(t)):(this.loggerDebugLog({message:`Flushing ${t.length} events`}),this.api.logRequest(t)),i&&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 q,Surface as S,VideoFormat as h,VideoQuality as m}from"@vkontakte/videoplayer-core/evergreen";import{assertNever as de}from"@vkontakte/videoplayer-shared/evergreen";var ce=r=>r&&{[m.INVARIANT]:"unknown",[m.Q_144P]:"mobile",[m.Q_240P]:"lowest",[m.Q_360P]:"low",[m.Q_480P]:"medium",[m.Q_576P]:"unknown",[m.Q_720P]:"high",[m.Q_1080P]:"fullhd",[m.Q_1440P]:"quadhd",[m.Q_2160P]:"ultrahd",[m.Q_4320P]:"unknown"}[r],Q=r=>r&&{[q.HTTP1]:"http1",[q.HTTP2]:"http2",[q.QUIC]:"http3"}[r],ue=r=>{if(r!==void 0)switch(r){case h.MPEG:return"mp4";case h.DASH:case h.DASH_LIVE:case h.DASH_STREAMS:return"dash";case h.DASH_SEP:return"dash_sep";case h.DASH_ONDEMAND:return"ondemand_dash";case h.DASH_WEBM:case h.DASH_LIVE_WEBM:return"webm";case h.DASH_WEBM_AV1:return"av1";case h.DASH_LIVE_CMAF:return"ondemand_dash_live";case h.HLS:case h.HLS_LIVE:return"hls";case h.HLS_ONDEMAND:return"ondemand_hls";case h.HLS_LIVE_CMAF:return"ondemand_hls_live";case h.WEB_RTC_LIVE:return"webrtc";default:return de(r)}},R=r=>{if(r!==void 0)switch(r){case S.NONE:case S.INLINE:return;case S.FULLSCREEN:return"fullscreen";case S.SECOND_SCREEN:return"chromecast";case S.PIP:return"pip";case S.INVISIBLE:return"invisible";default:return de(r)}},le=r=>{switch(r){case"slow-2g":return"poor";case"2g":return"poor";case"3g":return"good";case"4g":return"excellent"}};var O=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,i){let t=Date.now(),o=e-t-i/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 pe=()=>Math.floor(Math.random()*4294967296).toString(36).padStart(7,"0"),he=()=>Math.floor(Math.random()*18446744073709552e3).toString(36).padStart(13,"0");import{PlaybackState as fe}from"@vkontakte/videoplayer-core/evergreen";import{filter as ge,filterChanged as De,fromEvent as Ne,isNullable as me,map as Be,merge as z,Observable as Fe,Subject as j,Subscription as Me,ValueSubject as Ve}from"@vkontakte/videoplayer-shared/evergreen";var be=(r,e)=>new Fe(i=>{let t=new Me,o=z(Ne(window,"beforeunload"),r.events.willDestruct$),n=new Ve(void 0),a;t.add(r.info.isLive$.pipe(De()).subscribe(v=>{a&&(a.unsubscribe(),n.next(void 0)),v?a=r.info.liveTime$.pipe(Be(N=>N&&N/1e3)).subscribe(n):a=r.info.position$.subscribe(n),t.add(a)}));let{playing$:c,paused$:l}=r.events,u=r.events.willSeek$.pipe(ge(()=>r.info.playbackState$.getValue()===fe.PLAYING)),p=r.events.seeked$.pipe(ge(()=>r.info.playbackState$.getValue()===fe.PLAYING)),g=!1,s=new j;t.add(u.subscribe(()=>{g||s.next(),g=!0})),t.add(p.subscribe(()=>g=!1));let d=new j,f=new j,P=z(c,p,d),T=z(l,s,o,r.events.looped$,f),_,Ae=()=>_=n.getValue(),xe=()=>{let v=n.getValue();me(_)||_===v||me(v)||(i.next({from:_,to:v}),_=void 0)},Ce=()=>{f.next(),d.next()};if(t.add(P.subscribe(Ae)),t.add(T.subscribe(xe)),e.forceInterval&&isFinite(e.forceInterval)){let v=0;t.add(P.subscribe(()=>v=window.setTimeout(Ce,e.forceInterval))),t.add(T.subscribe(()=>window.clearTimeout(v)))}return t});var Ee="_one-stat_",Pe=`${Ee}uuid`,_e=`${Ee}deviceId`,Y=()=>{let r=new X;return{subscription:r,subscribe:(e,i)=>{e&&r.add(e.subscribe(i))}}},J=class{constructor(e,i){this.subscription=new X;this.debugLogger=new Qe;this.oneStatDebugLog=this.debugLogger.createComponentLog("onestat");this.loopCounter=0;this.disabled=!1;this.vsid$=new G(void 0);this.isid$=new G(void 0);this.seekAction$=new G("unknown");this.statContext=e,this.config=re(i.config??{}),y(i.apiEnv)&&(this.config.apiEnv=i.apiEnv),this.config.synchronizeTime&&(this.timeSynchronisation=new O);let t=new qe;this.experimental={error$:t},D.get(Pe)&&D.remove(Pe);let n=D.get(_e);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:n?this.deviceId=n:(this.deviceId=W(),D.set(_e,this.deviceId)),this.resetViewSession(),i.useIsid&&this.isid$.next(i.isid??he());let a=new x({config:this.config,error$:t,timeSynchronisation:this.timeSynchronisation});this.api=new A({config:this.config,apiTransport:a,refreshAuthToken:i.refreshAuthToken,mobile:this.statContext.mobile??!1,deviceId:this.deviceId,error$:t}),this.logger=new $({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:t,userSalt:i.userSalt});let{isEmbed:c,topOrigin:l}=ze();this.isEmbed=c,this.embedParent=l?new URL(l).hostname:void 0,this.subscribe()}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e){let i=new X,t=(s,d)=>i.add(s.subscribe(d));t(e.events.willStart$,()=>{let s=e.info.position$.getValue();this.logActionPlay({position:s}),this.statContext.projectId&&this.logActionPlayInteractive()}),t(e.events.looped$,()=>{this.resetViewSession(),++this.loopCounter>this.config.maxLoops&&(this.disabled=!0),this.logActionPlay({position:e.info.position$.getValue()})}),t(e.events.seeked$,()=>{this.logSeek({action:this.seekAction$.getValue(),time:e.info.position$.getValue()}),this.seekAction$.next("unknown")}),t(e.events.paused$,()=>{this.logPause({position:e.info.position$.getValue()})}),t(e.events.willResume$,()=>{this.logPlay()}),t(e.events.started$,()=>{this.statContext.clip&&this.logWatchCoverageRecord({start:0,end:0})}),t(e.events.playing$,()=>{this.logPlaying()}),t(be(e,{forceInterval:this.config.watchCoverageInterval}),s=>{let d=e.info.isLive$.getValue(),f={start:parseFloat(s.from.toFixed(3)),end:parseFloat(s.to.toFixed(3))};d?this.logWatchCoverageLive(f):this.logWatchCoverageRecord(f)});let o;t(e.info.isStalled$,s=>{s?o=b():(y(o)&&this.logEmptyBuffer({duration:b()-o}),o=void 0)});let n=!1;i.add(e.events.fatalError$.pipe(Ke()).subscribe(()=>n=!0)),t(e.events.willStop$,()=>{if(e.info.isStalled$.getValue()){let d=y(o)?b()-o:void 0;this.logCloseAtEmptyBuffer({duration:d??0}),o=void 0}else n||this.logActionStop()}),t(e.events.managedError$,({id:s})=>{this.logError({fatal:!1,errorType:s})}),t(e.events.fatalError$,({id:s})=>{this.logError({fatal:!0,errorType:s})});let a,c,l=!1;t(e.events.firstBytes$,s=>{a=b(),this.logFirstBytes({time:s})}),t(e.events.willStart$,()=>c=b()),t(e.info.currentBuffer$,s=>{!l&&s&&s.end-s.start>0&&y(a)&&(this.logPlayerReady({duration:b()-a}),l=!0)}),t(e.events.firstFrame$,()=>{y(a)&&!l&&(this.logPlayerReady({duration:b()-a}),l=!0),y(c)&&this.logFirstFrame({time:b()-c})});let u;t(e.info.currentVideoStream$,s=>{s&&(u&&s.id!==u&&this.logTrackSwitch(s),u=s.id)});let p;t(e.info.currentAudioStream$,s=>{s&&(p&&s.id!==p&&this.logTrackSwitch(s),p=s.id)}),t(e.info.atLiveEdge$,s=>this.updateContext({liveEdge:s})),t(ve({muted:e.info.muted$,volume:e.info.volume$}),({muted:s,volume:d})=>this.updateContext({audible:!s&&d>0})),t(e.info.currentQuality$,s=>{let d=ce(s);this.updateContext({quality:d}),d&&this.logQuality(d)}),t(e.info.isAutoQualityEnabled$,s=>this.updateContext({autoQuality:s})),t(e.info.currentFormat$,s=>this.updateContext({contentType:ue(s)})),t(e.info.currentPlaybackRate$,s=>this.updateContext({rate:s})),t(e.info.is3DVideo$,s=>this.updateContext({is3d:s}));let g;return t(e.info.hostname$,s=>{let d=g!==void 0&&g!==s;this.updateContext({cdnHostname:s,failover:d}),d&&this.logFailover(s),g=s}),t(e.info.throughputEstimation$,s=>this.updateContext({downloadSpeed:s})),t(e.info.httpConnectionType$,s=>{this.statContext.firstConnectionType||this.updateContext({firstConnectionType:Q(s)}),this.updateContext({connectionType:Q(s)})}),t(e.info.httpConnectionReused$,s=>{Se(this.statContext.firstConnectionReused)&&this.updateContext({firstConnectionReused:s}),this.updateContext({connectionReused:s})}),t(e.info.surface$,s=>this.updateContext({mode:R(s)})),t(ve({current:e.info.currentTextTrack$,available:e.info.availableTextTracks$}),({current:s,available:d})=>{let f=d.find(({id:T})=>T===s),P=f&&(f.isAuto?`${f.language}_auto`:f.language);this.updateContext({subtitles:P})}),this.player=e,this.uiEvents&&this.attachToUi(this.uiEvents),this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToUi(e){this.uiEvents=e;let{subscription:i,subscribe:t}=Y();return this.player&&(t(e.actionRewind$,()=>{this.player&&(this.resetViewSession(),this.logActionPlay({position:this.player.info.position$.getValue()}))}),t(e.actionSeek$,this.seekAction$),t(e.inPiP$,o=>{let n=o?"pip":R(this.player?.info.surface$.getValue());this.updateContext({mode:n})}),t(e.inFullscreen$,o=>{let n=o?"fullscreen":R(this.player?.info.surface$.getValue());this.updateContext({mode:n})}),t(e.actionSetSubtitle$,o=>this.updateContext({subtitles:o})),t(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(i)),i}attachToAds(e){let{subscription:i,subscribe:t}=Y();return t(e.slotRequested$,()=>this.logAdSlotRequest()),t(e.started$,o=>this.logAdStarted(o)),t(e.paused$,()=>this.logAdPaused()),t(e.resumed$,()=>this.logAdResumed()),t(e.ended$,()=>this.logAdEnded()),t(e.skipped$,()=>this.logAdSkipped()),t(e.clicked$,()=>this.logAdClicked()),t(e.error$,o=>this.logError({errorType:o,fatal:!1})),this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToInteractive(e){let{subscription:i,subscribe:t}=Y();return t(e.click$,o=>this.logInterfaceClick(o)),t(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(i),i}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"}),this.vsid$.next(pe())}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 i=this.timeSynchronisation?.getOffset()??0,t=e.start+i,o=e.end+i;this.log({operation:"watch_coverage_live",param:`${t}-${o}`},{in_history:this.statContext.inHistory?1:void 0})}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(We(Ie(e,"change"),He(["init"])).subscribe(()=>this.updateContext({network:le(e.effectiveType)}))),this.config.debugLog&&this.debugLogger.log$.subscribe(i=>{console.debug("%c stat ","background:#fa6470;",`component: ${i.component}.`,i.message)})}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=Ie(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,i={}){if(this.disabled){this.oneStatDebugLog({message:`operation ${e.operation} but statistics is disabled`});return}if(this.config.disabledOperations.includes(e.operation)){this.oneStatDebugLog({message:`operation ${e.operation} but it is disabled`});return}this.oneStatDebugLog({message:`operation ${e.operation} ${e.param}`});let t=this.createLogItem(e,i);this.logger.log(t)}createLogItem({operation:e,param:i,time:t},o={}){let n=this.timeSynchronisation?.now()??b(),a=this.vsid$.getValue();Ue(a);let c=this.isid$.getValue(),l=e==="empty_buffer"||e==="close_at_empty_buffer"?this.statContext.connectionType:this.statContext.firstConnectionType,u=this.statContext.firstConnectionReused,p,g;if(this.isEmbed||this.statContext.place==="embed"){p=this.embedParent;let d=[...new URLSearchParams(location.search).entries()].filter(([f,P])=>this.config.embedUrlParams.includes(f));g=new URLSearchParams(d).toString()}else this.statContext.place==="direct"&&(this.statContext.refDomain?p=ye(this.statContext.refDomain)?.hostname??this.statContext.refDomain:document.referrer&&(p=ye(document.referrer)?.hostname??document.referrer),g=location.href.substring(0,1024));let s={vsid:a,isid:c,vid:this.statContext.movieId,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:i,vk_app_id:this.statContext.vkAppId,track_code:this.statContext.trackCode,connection_type:l,connection_reused:u===!0?1:u===!1?0:void 0,cached_data:this.statContext.cached===!0?1:this.statContext.cached===!1?0:void 0,live:this.statContext.liveEdge?1:void 0,muted:this.statContext.audible===!1?1:void 0,mode:this.statContext.mode,subtitles:this.statContext.subtitles,download_speed:this.statContext.downloadSpeed,manual_quality:this.statContext.autoQuality?void 0:1,ref_domain:p,direct_url:g,rate:this.statContext.rate===1||Se(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:t,network:this.statContext.network,timestamp:n,custom:s}}};export{E as ApiEnv,M as ConnectionType,F as ContentType,Z as InteractiveInterfaceClick,J as OneStat,B as Quality,V as SeekAction,w as VERSION};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/videoplayer-statistics",
3
- "version": "1.0.71-dev.ffbc0545.0",
3
+ "version": "1.0.71",
4
4
  "author": "vk.com",
5
5
  "description": "Statistics library for vk.com videoplayer",
6
6
  "homepage": "https://vk.com",
@@ -49,9 +49,9 @@
49
49
  "**/*.d.ts"
50
50
  ],
51
51
  "dependencies": {
52
- "@vkontakte/videoplayer-shared": "1.0.54-dev.04f3a7be.0"
52
+ "@vkontakte/videoplayer-shared": "^1.0.54"
53
53
  },
54
54
  "peerDependencies": {
55
- "@vkontakte/videoplayer-core": "2.0.126-dev.0487954a.0"
55
+ "@vkontakte/videoplayer-core": "^2.0.126"
56
56
  }
57
57
  }
@@ -250,8 +250,6 @@ export interface IConstructorParams {
250
250
  export interface IWatchCoveragePayload {
251
251
  start: number;
252
252
  end: number;
253
- latency?: number;
254
- bufferLatency?: number;
255
253
  }
256
254
  export declare class OneStat implements IOneStat {
257
255
  private api;
package/types/types.d.ts CHANGED
@@ -41,6 +41,4 @@ export interface ILogCustomData {
41
41
  vk_playlist_id?: string;
42
42
  aid?: string;
43
43
  in_history?: 1;
44
- latency?: number;
45
- buffer_latency?: number;
46
44
  }