@vkontakte/videoplayer-core 2.0.114-dev.478b25ab.0 → 2.0.114-dev.4cbe9ebd.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esnext.esm.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
- * @vkontakte/videoplayer-core v2.0.114-dev.478b25ab.0
3
- * Mon, 14 Oct 2024 08:56:46 GMT
2
+ * @vkontakte/videoplayer-core v2.0.114-dev.4cbe9ebd.0
3
+ * Tue, 15 Oct 2024 07:33:42 GMT
4
4
  * https://st.mycdn.me/static/vkontakte-videoplayer/2-0-114/doc/
5
5
  */
6
- var Gg=Object.create;var Ku=Object.defineProperty;var Wg=Object.getOwnPropertyDescriptor;var Yg=Object.getOwnPropertyNames;var Qg=Object.getPrototypeOf,zg=Object.prototype.hasOwnProperty;var f=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Kg=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Yg(e))!zg.call(r,a)&&a!==t&&Ku(r,a,{get:()=>e[a],enumerable:!(i=Wg(e,a))||i.enumerable});return r};var Ye=(r,e,t)=>(t=r!=null?Gg(Qg(r)):{},Kg(e||!r||!r.__esModule?Ku(t,"default",{value:r,enumerable:!0}):t,r));var be=f((zR,ac)=>{"use strict";ac.exports=function(r){try{return!!r()}catch{return!0}}});var Fi=f((KR,sc)=>{"use strict";var aS=be();sc.exports=!aS(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var se=f((JR,uc)=>{"use strict";var nc=Fi(),oc=Function.prototype,Xs=oc.call,sS=nc&&oc.bind.bind(Xs,Xs);uc.exports=nc?sS:function(r){return function(){return Xs.apply(r,arguments)}}});var ii=f((XR,lc)=>{"use strict";var cc=se(),nS=cc({}.toString),oS=cc("".slice);lc.exports=function(r){return oS(nS(r),8,-1)}});var pc=f((ZR,dc)=>{"use strict";var uS=se(),cS=be(),lS=ii(),Zs=Object,dS=uS("".split);dc.exports=cS(function(){return!Zs("z").propertyIsEnumerable(0)})?function(r){return lS(r)==="String"?dS(r,""):Zs(r)}:Zs});var ri=f((eL,hc)=>{"use strict";hc.exports=function(r){return r==null}});var qi=f((tL,fc)=>{"use strict";var pS=ri(),hS=TypeError;fc.exports=function(r){if(pS(r))throw new hS("Can't call method on "+r);return r}});var ai=f((iL,mc)=>{"use strict";var fS=pc(),mS=qi();mc.exports=function(r){return fS(mS(r))}});var en=f((rL,bc)=>{"use strict";bc.exports=function(){}});var Mt=f((aL,gc)=>{"use strict";gc.exports={}});var j=f((tn,Sc)=>{"use strict";var Ui=function(r){return r&&r.Math===Math&&r};Sc.exports=Ui(typeof globalThis=="object"&&globalThis)||Ui(typeof window=="object"&&window)||Ui(typeof self=="object"&&self)||Ui(typeof global=="object"&&global)||Ui(typeof tn=="object"&&tn)||function(){return this}()||Function("return this")()});var U=f((sL,vc)=>{"use strict";var rn=typeof document=="object"&&document.all;vc.exports=typeof rn>"u"&&rn!==void 0?function(r){return typeof r=="function"||r===rn}:function(r){return typeof r=="function"}});var Ic=f((nL,Tc)=>{"use strict";var bS=j(),gS=U(),yc=bS.WeakMap;Tc.exports=gS(yc)&&/native code/.test(String(yc))});var Ee=f((oL,Ec)=>{"use strict";var SS=U();Ec.exports=function(r){return typeof r=="object"?r!==null:SS(r)}});var xe=f((uL,xc)=>{"use strict";var vS=be();xc.exports=!vS(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var xa=f((cL,Ac)=>{"use strict";var yS=j(),Pc=Ee(),an=yS.document,TS=Pc(an)&&Pc(an.createElement);Ac.exports=function(r){return TS?an.createElement(r):{}}});var sn=f((lL,kc)=>{"use strict";var IS=xe(),ES=be(),xS=xa();kc.exports=!IS&&!ES(function(){return Object.defineProperty(xS("div"),"a",{get:function(){return 7}}).a!==7})});var nn=f((dL,wc)=>{"use strict";var PS=xe(),AS=be();wc.exports=PS&&AS(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var Qe=f((pL,Rc)=>{"use strict";var kS=Ee(),wS=String,RS=TypeError;Rc.exports=function(r){if(kS(r))return r;throw new RS(wS(r)+" is not an object")}});var ge=f((hL,Lc)=>{"use strict";var LS=Fi(),Pa=Function.prototype.call;Lc.exports=LS?Pa.bind(Pa):function(){return Pa.apply(Pa,arguments)}});var Aa=f((fL,$c)=>{"use strict";$c.exports={}});var et=f((mL,Cc)=>{"use strict";var on=Aa(),un=j(),$S=U(),Mc=function(r){return $S(r)?r:void 0};Cc.exports=function(r,e){return arguments.length<2?Mc(on[r])||Mc(un[r]):on[r]&&on[r][e]||un[r]&&un[r][e]}});var Hi=f((bL,Dc)=>{"use strict";var MS=se();Dc.exports=MS({}.isPrototypeOf)});var si=f((gL,Vc)=>{"use strict";var CS=j(),Bc=CS.navigator,Oc=Bc&&Bc.userAgent;Vc.exports=Oc?String(Oc):""});var ln=f((SL,Hc)=>{"use strict";var Uc=j(),cn=si(),_c=Uc.process,Nc=Uc.Deno,Fc=_c&&_c.versions||Nc&&Nc.version,qc=Fc&&Fc.v8,_e,ka;qc&&(_e=qc.split("."),ka=_e[0]>0&&_e[0]<4?1:+(_e[0]+_e[1]));!ka&&cn&&(_e=cn.match(/Edge\/(\d+)/),(!_e||_e[1]>=74)&&(_e=cn.match(/Chrome\/(\d+)/),_e&&(ka=+_e[1])));Hc.exports=ka});var dn=f((vL,Gc)=>{"use strict";var jc=ln(),DS=be(),BS=j(),OS=BS.String;Gc.exports=!!Object.getOwnPropertySymbols&&!DS(function(){var r=Symbol("symbol detection");return!OS(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&jc&&jc<41})});var pn=f((yL,Wc)=>{"use strict";var VS=dn();Wc.exports=VS&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var hn=f((TL,Yc)=>{"use strict";var _S=et(),NS=U(),FS=Hi(),qS=pn(),US=Object;Yc.exports=qS?function(r){return typeof r=="symbol"}:function(r){var e=_S("Symbol");return NS(e)&&FS(e.prototype,US(r))}});var ji=f((IL,Qc)=>{"use strict";var HS=String;Qc.exports=function(r){try{return HS(r)}catch{return"Object"}}});var tt=f((EL,zc)=>{"use strict";var jS=U(),GS=ji(),WS=TypeError;zc.exports=function(r){if(jS(r))return r;throw new WS(GS(r)+" is not a function")}});var Gi=f((xL,Kc)=>{"use strict";var YS=tt(),QS=ri();Kc.exports=function(r,e){var t=r[e];return QS(t)?void 0:YS(t)}});var Xc=f((PL,Jc)=>{"use strict";var fn=ge(),mn=U(),bn=Ee(),zS=TypeError;Jc.exports=function(r,e){var t,i;if(e==="string"&&mn(t=r.toString)&&!bn(i=fn(t,r))||mn(t=r.valueOf)&&!bn(i=fn(t,r))||e!=="string"&&mn(t=r.toString)&&!bn(i=fn(t,r)))return i;throw new zS("Can't convert object to primitive value")}});var Ne=f((AL,Zc)=>{"use strict";Zc.exports=!0});var il=f((kL,tl)=>{"use strict";var el=j(),KS=Object.defineProperty;tl.exports=function(r,e){try{KS(el,r,{value:e,configurable:!0,writable:!0})}catch{el[r]=e}return e}});var Wi=f((wL,sl)=>{"use strict";var JS=Ne(),XS=j(),ZS=il(),rl="__core-js_shared__",al=sl.exports=XS[rl]||ZS(rl,{});(al.versions||(al.versions=[])).push({version:"3.38.0",mode:JS?"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 gn=f((RL,ol)=>{"use strict";var nl=Wi();ol.exports=function(r,e){return nl[r]||(nl[r]=e||{})}});var Yi=f((LL,ul)=>{"use strict";var ev=qi(),tv=Object;ul.exports=function(r){return tv(ev(r))}});var Fe=f(($L,cl)=>{"use strict";var iv=se(),rv=Yi(),av=iv({}.hasOwnProperty);cl.exports=Object.hasOwn||function(e,t){return av(rv(e),t)}});var Sn=f((ML,ll)=>{"use strict";var sv=se(),nv=0,ov=Math.random(),uv=sv(1 .toString);ll.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+uv(++nv+ov,36)}});var te=f((CL,pl)=>{"use strict";var cv=j(),lv=gn(),dl=Fe(),dv=Sn(),pv=dn(),hv=pn(),ni=cv.Symbol,vn=lv("wks"),fv=hv?ni.for||ni:ni&&ni.withoutSetter||dv;pl.exports=function(r){return dl(vn,r)||(vn[r]=pv&&dl(ni,r)?ni[r]:fv("Symbol."+r)),vn[r]}});var bl=f((DL,ml)=>{"use strict";var mv=ge(),hl=Ee(),fl=hn(),bv=Gi(),gv=Xc(),Sv=te(),vv=TypeError,yv=Sv("toPrimitive");ml.exports=function(r,e){if(!hl(r)||fl(r))return r;var t=bv(r,yv),i;if(t){if(e===void 0&&(e="default"),i=mv(t,r,e),!hl(i)||fl(i))return i;throw new vv("Can't convert object to primitive value")}return e===void 0&&(e="number"),gv(r,e)}});var yn=f((BL,gl)=>{"use strict";var Tv=bl(),Iv=hn();gl.exports=function(r){var e=Tv(r,"string");return Iv(e)?e:e+""}});var Ct=f(vl=>{"use strict";var Ev=xe(),xv=sn(),Pv=nn(),wa=Qe(),Sl=yn(),Av=TypeError,Tn=Object.defineProperty,kv=Object.getOwnPropertyDescriptor,In="enumerable",En="configurable",xn="writable";vl.f=Ev?Pv?function(e,t,i){if(wa(e),t=Sl(t),wa(i),typeof e=="function"&&t==="prototype"&&"value"in i&&xn in i&&!i[xn]){var a=kv(e,t);a&&a[xn]&&(e[t]=i.value,i={configurable:En in i?i[En]:a[En],enumerable:In in i?i[In]:a[In],writable:!1})}return Tn(e,t,i)}:Tn:function(e,t,i){if(wa(e),t=Sl(t),wa(i),xv)try{return Tn(e,t,i)}catch{}if("get"in i||"set"in i)throw new Av("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var Qi=f((VL,yl)=>{"use strict";yl.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var oi=f((_L,Tl)=>{"use strict";var wv=xe(),Rv=Ct(),Lv=Qi();Tl.exports=wv?function(r,e,t){return Rv.f(r,e,Lv(1,t))}:function(r,e,t){return r[e]=t,r}});var Ra=f((NL,El)=>{"use strict";var $v=gn(),Mv=Sn(),Il=$v("keys");El.exports=function(r){return Il[r]||(Il[r]=Mv(r))}});var La=f((FL,xl)=>{"use strict";xl.exports={}});var wn=f((qL,kl)=>{"use strict";var Cv=Ic(),Al=j(),Dv=Ee(),Bv=oi(),Pn=Fe(),An=Wi(),Ov=Ra(),Vv=La(),Pl="Object already initialized",kn=Al.TypeError,_v=Al.WeakMap,$a,zi,Ma,Nv=function(r){return Ma(r)?zi(r):$a(r,{})},Fv=function(r){return function(e){var t;if(!Dv(e)||(t=zi(e)).type!==r)throw new kn("Incompatible receiver, "+r+" required");return t}};Cv||An.state?(qe=An.state||(An.state=new _v),qe.get=qe.get,qe.has=qe.has,qe.set=qe.set,$a=function(r,e){if(qe.has(r))throw new kn(Pl);return e.facade=r,qe.set(r,e),e},zi=function(r){return qe.get(r)||{}},Ma=function(r){return qe.has(r)}):(Dt=Ov("state"),Vv[Dt]=!0,$a=function(r,e){if(Pn(r,Dt))throw new kn(Pl);return e.facade=r,Bv(r,Dt,e),e},zi=function(r){return Pn(r,Dt)?r[Dt]:{}},Ma=function(r){return Pn(r,Dt)});var qe,Dt;kl.exports={set:$a,get:zi,has:Ma,enforce:Nv,getterFor:Fv}});var Rn=f((UL,$l)=>{"use strict";var qv=Fi(),Ll=Function.prototype,wl=Ll.apply,Rl=Ll.call;$l.exports=typeof Reflect=="object"&&Reflect.apply||(qv?Rl.bind(wl):function(){return Rl.apply(wl,arguments)})});var Ln=f((HL,Ml)=>{"use strict";var Uv=ii(),Hv=se();Ml.exports=function(r){if(Uv(r)==="Function")return Hv(r)}});var Ol=f(Bl=>{"use strict";var Cl={}.propertyIsEnumerable,Dl=Object.getOwnPropertyDescriptor,jv=Dl&&!Cl.call({1:2},1);Bl.f=jv?function(e){var t=Dl(this,e);return!!t&&t.enumerable}:Cl});var Nl=f(_l=>{"use strict";var Gv=xe(),Wv=ge(),Yv=Ol(),Qv=Qi(),zv=ai(),Kv=yn(),Jv=Fe(),Xv=sn(),Vl=Object.getOwnPropertyDescriptor;_l.f=Gv?Vl:function(e,t){if(e=zv(e),t=Kv(t),Xv)try{return Vl(e,t)}catch{}if(Jv(e,t))return Qv(!Wv(Yv.f,e,t),e[t])}});var $n=f((WL,Fl)=>{"use strict";var Zv=be(),ey=U(),ty=/#|\.prototype\./,Ki=function(r,e){var t=ry[iy(r)];return t===sy?!0:t===ay?!1:ey(e)?Zv(e):!!e},iy=Ki.normalize=function(r){return String(r).replace(ty,".").toLowerCase()},ry=Ki.data={},ay=Ki.NATIVE="N",sy=Ki.POLYFILL="P";Fl.exports=Ki});var Ji=f((YL,Ul)=>{"use strict";var ql=Ln(),ny=tt(),oy=Fi(),uy=ql(ql.bind);Ul.exports=function(r,e){return ny(r),e===void 0?r:oy?uy(r,e):function(){return r.apply(e,arguments)}}});var Pe=f((QL,jl)=>{"use strict";var Xi=j(),cy=Rn(),ly=Ln(),dy=U(),py=Nl().f,hy=$n(),ui=Aa(),fy=Ji(),ci=oi(),Hl=Fe();Wi();var my=function(r){var e=function(t,i,a){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,a)}return cy(r,this,arguments)};return e.prototype=r.prototype,e};jl.exports=function(r,e){var t=r.target,i=r.global,a=r.stat,s=r.proto,n=i?Xi:a?Xi[t]:Xi[t]&&Xi[t].prototype,o=i?ui:ui[t]||ci(ui,t,{})[t],c=o.prototype,u,d,l,p,h,m,b,g,y;for(p in e)u=hy(i?p:t+(a?".":"#")+p,r.forced),d=!u&&n&&Hl(n,p),m=o[p],d&&(r.dontCallGetSet?(y=py(n,p),b=y&&y.value):b=n[p]),h=d&&b?b:e[p],!(!u&&!s&&typeof m==typeof h)&&(r.bind&&d?g=fy(h,Xi):r.wrap&&d?g=my(h):s&&dy(h)?g=ly(h):g=h,(r.sham||h&&h.sham||m&&m.sham)&&ci(g,"sham",!0),ci(o,p,g),s&&(l=t+"Prototype",Hl(ui,l)||ci(ui,l,{}),ci(ui[l],p,h),r.real&&c&&(u||!c[p])&&ci(c,p,h)))}});var Yl=f((zL,Wl)=>{"use strict";var Mn=xe(),by=Fe(),Gl=Function.prototype,gy=Mn&&Object.getOwnPropertyDescriptor,Cn=by(Gl,"name"),Sy=Cn&&function(){}.name==="something",vy=Cn&&(!Mn||Mn&&gy(Gl,"name").configurable);Wl.exports={EXISTS:Cn,PROPER:Sy,CONFIGURABLE:vy}});var zl=f((KL,Ql)=>{"use strict";var yy=Math.ceil,Ty=Math.floor;Ql.exports=Math.trunc||function(e){var t=+e;return(t>0?Ty:yy)(t)}});var Ca=f((JL,Kl)=>{"use strict";var Iy=zl();Kl.exports=function(r){var e=+r;return e!==e||e===0?0:Iy(e)}});var Xl=f((XL,Jl)=>{"use strict";var Ey=Ca(),xy=Math.max,Py=Math.min;Jl.exports=function(r,e){var t=Ey(r);return t<0?xy(t+e,0):Py(t,e)}});var ed=f((ZL,Zl)=>{"use strict";var Ay=Ca(),ky=Math.min;Zl.exports=function(r){var e=Ay(r);return e>0?ky(e,9007199254740991):0}});var Da=f((e$,td)=>{"use strict";var wy=ed();td.exports=function(r){return wy(r.length)}});var ad=f((t$,rd)=>{"use strict";var Ry=ai(),Ly=Xl(),$y=Da(),id=function(r){return function(e,t,i){var a=Ry(e),s=$y(a);if(s===0)return!r&&-1;var n=Ly(i,s),o;if(r&&t!==t){for(;s>n;)if(o=a[n++],o!==o)return!0}else for(;s>n;n++)if((r||n in a)&&a[n]===t)return r||n||0;return!r&&-1}};rd.exports={includes:id(!0),indexOf:id(!1)}});var od=f((i$,nd)=>{"use strict";var My=se(),Dn=Fe(),Cy=ai(),Dy=ad().indexOf,By=La(),sd=My([].push);nd.exports=function(r,e){var t=Cy(r),i=0,a=[],s;for(s in t)!Dn(By,s)&&Dn(t,s)&&sd(a,s);for(;e.length>i;)Dn(t,s=e[i++])&&(~Dy(a,s)||sd(a,s));return a}});var Bn=f((r$,ud)=>{"use strict";ud.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var ld=f((a$,cd)=>{"use strict";var Oy=od(),Vy=Bn();cd.exports=Object.keys||function(e){return Oy(e,Vy)}});var pd=f(dd=>{"use strict";var _y=xe(),Ny=nn(),Fy=Ct(),qy=Qe(),Uy=ai(),Hy=ld();dd.f=_y&&!Ny?Object.defineProperties:function(e,t){qy(e);for(var i=Uy(t),a=Hy(t),s=a.length,n=0,o;s>n;)Fy.f(e,o=a[n++],i[o]);return e}});var On=f((n$,hd)=>{"use strict";var jy=et();hd.exports=jy("document","documentElement")});var Fn=f((o$,yd)=>{"use strict";var Gy=Qe(),Wy=pd(),fd=Bn(),Yy=La(),Qy=On(),zy=xa(),Ky=Ra(),md=">",bd="<",_n="prototype",Nn="script",Sd=Ky("IE_PROTO"),Vn=function(){},vd=function(r){return bd+Nn+md+r+bd+"/"+Nn+md},gd=function(r){r.write(vd("")),r.close();var e=r.parentWindow.Object;return r=null,e},Jy=function(){var r=zy("iframe"),e="java"+Nn+":",t;return r.style.display="none",Qy.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(vd("document.F=Object")),t.close(),t.F},Ba,Oa=function(){try{Ba=new ActiveXObject("htmlfile")}catch{}Oa=typeof document<"u"?document.domain&&Ba?gd(Ba):Jy():gd(Ba);for(var r=fd.length;r--;)delete Oa[_n][fd[r]];return Oa()};Yy[Sd]=!0;yd.exports=Object.create||function(e,t){var i;return e!==null?(Vn[_n]=Gy(e),i=new Vn,Vn[_n]=null,i[Sd]=e):i=Oa(),t===void 0?i:Wy.f(i,t)}});var Id=f((u$,Td)=>{"use strict";var Xy=be();Td.exports=!Xy(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var Un=f((c$,xd)=>{"use strict";var Zy=Fe(),eT=U(),tT=Yi(),iT=Ra(),rT=Id(),Ed=iT("IE_PROTO"),qn=Object,aT=qn.prototype;xd.exports=rT?qn.getPrototypeOf:function(r){var e=tT(r);if(Zy(e,Ed))return e[Ed];var t=e.constructor;return eT(t)&&e instanceof t?t.prototype:e instanceof qn?aT:null}});var li=f((l$,Pd)=>{"use strict";var sT=oi();Pd.exports=function(r,e,t,i){return i&&i.enumerable?r[e]=t:sT(r,e,t),r}});var Wn=f((d$,wd)=>{"use strict";var nT=be(),oT=U(),uT=Ee(),cT=Fn(),Ad=Un(),lT=li(),dT=te(),pT=Ne(),Gn=dT("iterator"),kd=!1,it,Hn,jn;[].keys&&(jn=[].keys(),"next"in jn?(Hn=Ad(Ad(jn)),Hn!==Object.prototype&&(it=Hn)):kd=!0);var hT=!uT(it)||nT(function(){var r={};return it[Gn].call(r)!==r});hT?it={}:pT&&(it=cT(it));oT(it[Gn])||lT(it,Gn,function(){return this});wd.exports={IteratorPrototype:it,BUGGY_SAFARI_ITERATORS:kd}});var Va=f((p$,Ld)=>{"use strict";var fT=te(),mT=fT("toStringTag"),Rd={};Rd[mT]="z";Ld.exports=String(Rd)==="[object z]"});var Zi=f((h$,$d)=>{"use strict";var bT=Va(),gT=U(),_a=ii(),ST=te(),vT=ST("toStringTag"),yT=Object,TT=_a(function(){return arguments}())==="Arguments",IT=function(r,e){try{return r[e]}catch{}};$d.exports=bT?_a:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=IT(e=yT(r),vT))=="string"?t:TT?_a(e):(i=_a(e))==="Object"&&gT(e.callee)?"Arguments":i}});var Cd=f((f$,Md)=>{"use strict";var ET=Va(),xT=Zi();Md.exports=ET?{}.toString:function(){return"[object "+xT(this)+"]"}});var er=f((m$,Bd)=>{"use strict";var PT=Va(),AT=Ct().f,kT=oi(),wT=Fe(),RT=Cd(),LT=te(),Dd=LT("toStringTag");Bd.exports=function(r,e,t,i){var a=t?r:r&&r.prototype;a&&(wT(a,Dd)||AT(a,Dd,{configurable:!0,value:e}),i&&!PT&&kT(a,"toString",RT))}});var Vd=f((b$,Od)=>{"use strict";var $T=Wn().IteratorPrototype,MT=Fn(),CT=Qi(),DT=er(),BT=Mt(),OT=function(){return this};Od.exports=function(r,e,t,i){var a=e+" Iterator";return r.prototype=MT($T,{next:CT(+!i,t)}),DT(r,a,!1,!0),BT[a]=OT,r}});var Nd=f((g$,_d)=>{"use strict";var VT=se(),_T=tt();_d.exports=function(r,e,t){try{return VT(_T(Object.getOwnPropertyDescriptor(r,e)[t]))}catch{}}});var qd=f((S$,Fd)=>{"use strict";var NT=Ee();Fd.exports=function(r){return NT(r)||r===null}});var Hd=f((v$,Ud)=>{"use strict";var FT=qd(),qT=String,UT=TypeError;Ud.exports=function(r){if(FT(r))return r;throw new UT("Can't set "+qT(r)+" as a prototype")}});var Yn=f((y$,jd)=>{"use strict";var HT=Nd(),jT=Ee(),GT=qi(),WT=Hd();jd.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=HT(Object.prototype,"__proto__","set"),t(e,[]),r=e instanceof Array}catch{}return function(a,s){return GT(a),WT(s),jT(a)&&(r?t(a,s):a.__proto__=s),a}}():void 0)});var tp=f((T$,ep)=>{"use strict";var YT=Pe(),QT=ge(),Na=Ne(),Xd=Yl(),zT=U(),KT=Vd(),Gd=Un(),Wd=Yn(),JT=er(),XT=oi(),Qn=li(),ZT=te(),Yd=Mt(),Zd=Wn(),eI=Xd.PROPER,tI=Xd.CONFIGURABLE,Qd=Zd.IteratorPrototype,Fa=Zd.BUGGY_SAFARI_ITERATORS,tr=ZT("iterator"),zd="keys",ir="values",Kd="entries",Jd=function(){return this};ep.exports=function(r,e,t,i,a,s,n){KT(t,e,i);var o=function(y){if(y===a&&p)return p;if(!Fa&&y&&y in d)return d[y];switch(y){case zd:return function(){return new t(this,y)};case ir:return function(){return new t(this,y)};case Kd:return function(){return new t(this,y)}}return function(){return new t(this)}},c=e+" Iterator",u=!1,d=r.prototype,l=d[tr]||d["@@iterator"]||a&&d[a],p=!Fa&&l||o(a),h=e==="Array"&&d.entries||l,m,b,g;if(h&&(m=Gd(h.call(new r)),m!==Object.prototype&&m.next&&(!Na&&Gd(m)!==Qd&&(Wd?Wd(m,Qd):zT(m[tr])||Qn(m,tr,Jd)),JT(m,c,!0,!0),Na&&(Yd[c]=Jd))),eI&&a===ir&&l&&l.name!==ir&&(!Na&&tI?XT(d,"name",ir):(u=!0,p=function(){return QT(l,this)})),a)if(b={values:o(ir),keys:s?p:o(zd),entries:o(Kd)},n)for(g in b)(Fa||u||!(g in d))&&Qn(d,g,b[g]);else YT({target:e,proto:!0,forced:Fa||u},b);return(!Na||n)&&d[tr]!==p&&Qn(d,tr,p,{name:a}),Yd[e]=p,b}});var rp=f((I$,ip)=>{"use strict";ip.exports=function(r,e){return{value:r,done:e}}});var Kn=f((E$,up)=>{"use strict";var iI=ai(),zn=en(),ap=Mt(),np=wn(),rI=Ct().f,aI=tp(),qa=rp(),sI=Ne(),nI=xe(),op="Array Iterator",oI=np.set,uI=np.getterFor(op);up.exports=aI(Array,"Array",function(r,e){oI(this,{type:op,target:iI(r),index:0,kind:e})},function(){var r=uI(this),e=r.target,t=r.index++;if(!e||t>=e.length)return r.target=void 0,qa(void 0,!0);switch(r.kind){case"keys":return qa(t,!1);case"values":return qa(e[t],!1)}return qa([t,e[t]],!1)},"values");var sp=ap.Arguments=ap.Array;zn("keys");zn("values");zn("entries");if(!sI&&nI&&sp.name!=="values")try{rI(sp,"name",{value:"values"})}catch{}});var lp=f((x$,cp)=>{"use strict";var cI=te(),lI=Mt(),dI=cI("iterator"),pI=Array.prototype;cp.exports=function(r){return r!==void 0&&(lI.Array===r||pI[dI]===r)}});var Jn=f((P$,pp)=>{"use strict";var hI=Zi(),dp=Gi(),fI=ri(),mI=Mt(),bI=te(),gI=bI("iterator");pp.exports=function(r){if(!fI(r))return dp(r,gI)||dp(r,"@@iterator")||mI[hI(r)]}});var fp=f((A$,hp)=>{"use strict";var SI=ge(),vI=tt(),yI=Qe(),TI=ji(),II=Jn(),EI=TypeError;hp.exports=function(r,e){var t=arguments.length<2?II(r):e;if(vI(t))return yI(SI(t,r));throw new EI(TI(r)+" is not iterable")}});var gp=f((k$,bp)=>{"use strict";var xI=ge(),mp=Qe(),PI=Gi();bp.exports=function(r,e,t){var i,a;mp(r);try{if(i=PI(r,"return"),!i){if(e==="throw")throw t;return t}i=xI(i,r)}catch(s){a=!0,i=s}if(e==="throw")throw t;if(a)throw i;return mp(i),t}});var Ha=f((w$,Tp)=>{"use strict";var AI=Ji(),kI=ge(),wI=Qe(),RI=ji(),LI=lp(),$I=Da(),Sp=Hi(),MI=fp(),CI=Jn(),vp=gp(),DI=TypeError,Ua=function(r,e){this.stopped=r,this.result=e},yp=Ua.prototype;Tp.exports=function(r,e,t){var i=t&&t.that,a=!!(t&&t.AS_ENTRIES),s=!!(t&&t.IS_RECORD),n=!!(t&&t.IS_ITERATOR),o=!!(t&&t.INTERRUPTED),c=AI(e,i),u,d,l,p,h,m,b,g=function(A){return u&&vp(u,"normal",A),new Ua(!0,A)},y=function(A){return a?(wI(A),o?c(A[0],A[1],g):c(A[0],A[1])):o?c(A,g):c(A)};if(s)u=r.iterator;else if(n)u=r;else{if(d=CI(r),!d)throw new DI(RI(r)+" is not iterable");if(LI(d)){for(l=0,p=$I(r);p>l;l++)if(h=y(r[l]),h&&Sp(yp,h))return h;return new Ua(!1)}u=MI(r,d)}for(m=s?r.next:u.next;!(b=kI(m,u)).done;){try{h=y(b.value)}catch(A){vp(u,"throw",A)}if(typeof h=="object"&&h&&Sp(yp,h))return h}return new Ua(!1)}});var Ep=f((R$,Ip)=>{"use strict";var BI=xe(),OI=Ct(),VI=Qi();Ip.exports=function(r,e,t){BI?OI.f(r,e,VI(0,t)):r[e]=t}});var xp=f(()=>{"use strict";var _I=Pe(),NI=Ha(),FI=Ep();_I({target:"Object",stat:!0},{fromEntries:function(e){var t={};return NI(e,function(i,a){FI(t,i,a)},{AS_ENTRIES:!0}),t}})});var Ap=f((M$,Pp)=>{"use strict";Kn();xp();var qI=Aa();Pp.exports=qI.Object.fromEntries});var wp=f((C$,kp)=>{"use strict";kp.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 Lp=f(()=>{"use strict";Kn();var UI=wp(),HI=j(),jI=er(),Rp=Mt();for(ja in UI)jI(HI[ja],ja),Rp[ja]=Rp.Array;var ja});var Mp=f((O$,$p)=>{"use strict";var GI=Ap();Lp();$p.exports=GI});var Xn=f((V$,Cp)=>{"use strict";var WI=Mp();Cp.exports=WI});var Dp=f(()=>{"use strict"});var Zn=f((F$,Bp)=>{"use strict";var rr=j(),YI=si(),QI=ii(),Ga=function(r){return YI.slice(0,r.length)===r};Bp.exports=function(){return Ga("Bun/")?"BUN":Ga("Cloudflare-Workers")?"CLOUDFLARE":Ga("Deno/")?"DENO":Ga("Node.js/")?"NODE":rr.Bun&&typeof Bun.version=="string"?"BUN":rr.Deno&&typeof Deno.version=="object"?"DENO":QI(rr.process)==="process"?"NODE":rr.window&&rr.document?"BROWSER":"REST"}()});var Wa=f((q$,Op)=>{"use strict";var zI=Zn();Op.exports=zI==="NODE"});var _p=f((U$,Vp)=>{"use strict";var KI=Ct();Vp.exports=function(r,e,t){return KI.f(r,e,t)}});var qp=f((H$,Fp)=>{"use strict";var JI=et(),XI=_p(),ZI=te(),eE=xe(),Np=ZI("species");Fp.exports=function(r){var e=JI(r);eE&&e&&!e[Np]&&XI(e,Np,{configurable:!0,get:function(){return this}})}});var Hp=f((j$,Up)=>{"use strict";var tE=Hi(),iE=TypeError;Up.exports=function(r,e){if(tE(e,r))return r;throw new iE("Incorrect invocation")}});var to=f((G$,jp)=>{"use strict";var rE=se(),aE=U(),eo=Wi(),sE=rE(Function.toString);aE(eo.inspectSource)||(eo.inspectSource=function(r){return sE(r)});jp.exports=eo.inspectSource});var Kp=f((W$,zp)=>{"use strict";var nE=se(),oE=be(),Gp=U(),uE=Zi(),cE=et(),lE=to(),Wp=function(){},Yp=cE("Reflect","construct"),io=/^\s*(?:class|function)\b/,dE=nE(io.exec),pE=!io.test(Wp),ar=function(e){if(!Gp(e))return!1;try{return Yp(Wp,[],e),!0}catch{return!1}},Qp=function(e){if(!Gp(e))return!1;switch(uE(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return pE||!!dE(io,lE(e))}catch{return!0}};Qp.sham=!0;zp.exports=!Yp||oE(function(){var r;return ar(ar.call)||!ar(Object)||!ar(function(){r=!0})||r})?Qp:ar});var Xp=f((Y$,Jp)=>{"use strict";var hE=Kp(),fE=ji(),mE=TypeError;Jp.exports=function(r){if(hE(r))return r;throw new mE(fE(r)+" is not a constructor")}});var ro=f((Q$,eh)=>{"use strict";var Zp=Qe(),bE=Xp(),gE=ri(),SE=te(),vE=SE("species");eh.exports=function(r,e){var t=Zp(r).constructor,i;return t===void 0||gE(i=Zp(t)[vE])?e:bE(i)}});var ih=f((z$,th)=>{"use strict";var yE=se();th.exports=yE([].slice)});var ah=f((K$,rh)=>{"use strict";var TE=TypeError;rh.exports=function(r,e){if(r<e)throw new TE("Not enough arguments");return r}});var ao=f((J$,sh)=>{"use strict";var IE=si();sh.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(IE)});var fo=f((X$,fh)=>{"use strict";var Se=j(),EE=Rn(),xE=Ji(),nh=U(),PE=Fe(),hh=be(),oh=On(),AE=ih(),uh=xa(),kE=ah(),wE=ao(),RE=Wa(),lo=Se.setImmediate,po=Se.clearImmediate,LE=Se.process,so=Se.Dispatch,$E=Se.Function,ch=Se.MessageChannel,ME=Se.String,no=0,sr={},lh="onreadystatechange",nr,Bt,oo,uo;hh(function(){nr=Se.location});var ho=function(r){if(PE(sr,r)){var e=sr[r];delete sr[r],e()}},co=function(r){return function(){ho(r)}},dh=function(r){ho(r.data)},ph=function(r){Se.postMessage(ME(r),nr.protocol+"//"+nr.host)};(!lo||!po)&&(lo=function(e){kE(arguments.length,1);var t=nh(e)?e:$E(e),i=AE(arguments,1);return sr[++no]=function(){EE(t,void 0,i)},Bt(no),no},po=function(e){delete sr[e]},RE?Bt=function(r){LE.nextTick(co(r))}:so&&so.now?Bt=function(r){so.now(co(r))}:ch&&!wE?(oo=new ch,uo=oo.port2,oo.port1.onmessage=dh,Bt=xE(uo.postMessage,uo)):Se.addEventListener&&nh(Se.postMessage)&&!Se.importScripts&&nr&&nr.protocol!=="file:"&&!hh(ph)?(Bt=ph,Se.addEventListener("message",dh,!1)):lh in uh("script")?Bt=function(r){oh.appendChild(uh("script"))[lh]=function(){oh.removeChild(this),ho(r)}}:Bt=function(r){setTimeout(co(r),0)});fh.exports={set:lo,clear:po}});var gh=f((Z$,bh)=>{"use strict";var mh=j(),CE=xe(),DE=Object.getOwnPropertyDescriptor;bh.exports=function(r){if(!CE)return mh[r];var e=DE(mh,r);return e&&e.value}});var mo=f((eM,vh)=>{"use strict";var Sh=function(){this.head=null,this.tail=null};Sh.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}}};vh.exports=Sh});var Th=f((tM,yh)=>{"use strict";var BE=si();yh.exports=/ipad|iphone|ipod/i.test(BE)&&typeof Pebble<"u"});var Eh=f((iM,Ih)=>{"use strict";var OE=si();Ih.exports=/web0s(?!.*chrome)/i.test(OE)});var Lh=f((rM,Rh)=>{"use strict";var pi=j(),VE=gh(),xh=Ji(),bo=fo().set,_E=mo(),NE=ao(),FE=Th(),qE=Eh(),go=Wa(),Ph=pi.MutationObserver||pi.WebKitMutationObserver,Ah=pi.document,kh=pi.process,Ya=pi.Promise,yo=VE("queueMicrotask"),di,So,vo,Qa,wh;yo||(or=new _E,ur=function(){var r,e;for(go&&(r=kh.domain)&&r.exit();e=or.get();)try{e()}catch(t){throw or.head&&di(),t}r&&r.enter()},!NE&&!go&&!qE&&Ph&&Ah?(So=!0,vo=Ah.createTextNode(""),new Ph(ur).observe(vo,{characterData:!0}),di=function(){vo.data=So=!So}):!FE&&Ya&&Ya.resolve?(Qa=Ya.resolve(void 0),Qa.constructor=Ya,wh=xh(Qa.then,Qa),di=function(){wh(ur)}):go?di=function(){kh.nextTick(ur)}:(bo=xh(bo,pi),di=function(){bo(ur)}),yo=function(r){or.head||di(),or.add(r)});var or,ur;Rh.exports=yo});var Mh=f((aM,$h)=>{"use strict";$h.exports=function(r,e){try{arguments.length===1?console.error(r):console.error(r,e)}catch{}}});var za=f((sM,Ch)=>{"use strict";Ch.exports=function(r){try{return{error:!1,value:r()}}catch(e){return{error:!0,value:e}}}});var Ot=f((nM,Dh)=>{"use strict";var UE=j();Dh.exports=UE.Promise});var hi=f((oM,_h)=>{"use strict";var HE=j(),cr=Ot(),jE=U(),GE=$n(),WE=to(),YE=te(),Bh=Zn(),QE=Ne(),To=ln(),Oh=cr&&cr.prototype,zE=YE("species"),Io=!1,Vh=jE(HE.PromiseRejectionEvent),KE=GE("Promise",function(){var r=WE(cr),e=r!==String(cr);if(!e&&To===66||QE&&!(Oh.catch&&Oh.finally))return!0;if(!To||To<51||!/native code/.test(r)){var t=new cr(function(s){s(1)}),i=function(s){s(function(){},function(){})},a=t.constructor={};if(a[zE]=i,Io=t.then(function(){})instanceof i,!Io)return!0}return!e&&(Bh==="BROWSER"||Bh==="DENO")&&!Vh});_h.exports={CONSTRUCTOR:KE,REJECTION_EVENT:Vh,SUBCLASSING:Io}});var fi=f((uM,Fh)=>{"use strict";var Nh=tt(),JE=TypeError,XE=function(r){var e,t;this.promise=new r(function(i,a){if(e!==void 0||t!==void 0)throw new JE("Bad Promise constructor");e=i,t=a}),this.resolve=Nh(e),this.reject=Nh(t)};Fh.exports.f=function(r){return new XE(r)}});var nf=f(()=>{"use strict";var ZE=Pe(),ex=Ne(),Za=Wa(),bt=j(),Si=ge(),qh=li(),Uh=Yn(),tx=er(),ix=qp(),rx=tt(),Xa=U(),ax=Ee(),sx=Hp(),nx=ro(),Yh=fo().set,ko=Lh(),ox=Mh(),ux=za(),cx=mo(),Qh=wn(),es=Ot(),wo=hi(),zh=fi(),ts="Promise",Kh=wo.CONSTRUCTOR,lx=wo.REJECTION_EVENT,dx=wo.SUBCLASSING,Eo=Qh.getterFor(ts),px=Qh.set,mi=es&&es.prototype,Vt=es,Ka=mi,Jh=bt.TypeError,xo=bt.document,Ro=bt.process,Po=zh.f,hx=Po,fx=!!(xo&&xo.createEvent&&bt.dispatchEvent),Xh="unhandledrejection",mx="rejectionhandled",Hh=0,Zh=1,bx=2,Lo=1,ef=2,Ja,jh,gx,Gh,tf=function(r){var e;return ax(r)&&Xa(e=r.then)?e:!1},rf=function(r,e){var t=e.value,i=e.state===Zh,a=i?r.ok:r.fail,s=r.resolve,n=r.reject,o=r.domain,c,u,d;try{a?(i||(e.rejection===ef&&vx(e),e.rejection=Lo),a===!0?c=t:(o&&o.enter(),c=a(t),o&&(o.exit(),d=!0)),c===r.promise?n(new Jh("Promise-chain cycle")):(u=tf(c))?Si(u,c,s,n):s(c)):n(t)}catch(l){o&&!d&&o.exit(),n(l)}},af=function(r,e){r.notified||(r.notified=!0,ko(function(){for(var t=r.reactions,i;i=t.get();)rf(i,r);r.notified=!1,e&&!r.rejection&&Sx(r)}))},sf=function(r,e,t){var i,a;fx?(i=xo.createEvent("Event"),i.promise=e,i.reason=t,i.initEvent(r,!1,!0),bt.dispatchEvent(i)):i={promise:e,reason:t},!lx&&(a=bt["on"+r])?a(i):r===Xh&&ox("Unhandled promise rejection",t)},Sx=function(r){Si(Yh,bt,function(){var e=r.facade,t=r.value,i=Wh(r),a;if(i&&(a=ux(function(){Za?Ro.emit("unhandledRejection",t,e):sf(Xh,e,t)}),r.rejection=Za||Wh(r)?ef:Lo,a.error))throw a.value})},Wh=function(r){return r.rejection!==Lo&&!r.parent},vx=function(r){Si(Yh,bt,function(){var e=r.facade;Za?Ro.emit("rejectionHandled",e):sf(mx,e,r.value)})},bi=function(r,e,t){return function(i){r(e,i,t)}},gi=function(r,e,t){r.done||(r.done=!0,t&&(r=t),r.value=e,r.state=bx,af(r,!0))},Ao=function(r,e,t){if(!r.done){r.done=!0,t&&(r=t);try{if(r.facade===e)throw new Jh("Promise can't be resolved itself");var i=tf(e);i?ko(function(){var a={done:!1};try{Si(i,e,bi(Ao,a,r),bi(gi,a,r))}catch(s){gi(a,s,r)}}):(r.value=e,r.state=Zh,af(r,!1))}catch(a){gi({done:!1},a,r)}}};if(Kh&&(Vt=function(e){sx(this,Ka),rx(e),Si(Ja,this);var t=Eo(this);try{e(bi(Ao,t),bi(gi,t))}catch(i){gi(t,i)}},Ka=Vt.prototype,Ja=function(e){px(this,{type:ts,done:!1,notified:!1,parent:!1,reactions:new cx,rejection:!1,state:Hh,value:void 0})},Ja.prototype=qh(Ka,"then",function(e,t){var i=Eo(this),a=Po(nx(this,Vt));return i.parent=!0,a.ok=Xa(e)?e:!0,a.fail=Xa(t)&&t,a.domain=Za?Ro.domain:void 0,i.state===Hh?i.reactions.add(a):ko(function(){rf(a,i)}),a.promise}),jh=function(){var r=new Ja,e=Eo(r);this.promise=r,this.resolve=bi(Ao,e),this.reject=bi(gi,e)},zh.f=Po=function(r){return r===Vt||r===gx?new jh(r):hx(r)},!ex&&Xa(es)&&mi!==Object.prototype)){Gh=mi.then,dx||qh(mi,"then",function(e,t){var i=this;return new Vt(function(a,s){Si(Gh,i,a,s)}).then(e,t)},{unsafe:!0});try{delete mi.constructor}catch{}Uh&&Uh(mi,Ka)}ZE({global:!0,constructor:!0,wrap:!0,forced:Kh},{Promise:Vt});tx(Vt,ts,!1,!0);ix(ts)});var df=f((dM,lf)=>{"use strict";var yx=te(),uf=yx("iterator"),cf=!1;try{of=0,$o={next:function(){return{done:!!of++}},return:function(){cf=!0}},$o[uf]=function(){return this},Array.from($o,function(){throw 2})}catch{}var of,$o;lf.exports=function(r,e){try{if(!e&&!cf)return!1}catch{return!1}var t=!1;try{var i={};i[uf]=function(){return{next:function(){return{done:t=!0}}}},r(i)}catch{}return t}});var Mo=f((pM,pf)=>{"use strict";var Tx=Ot(),Ix=df(),Ex=hi().CONSTRUCTOR;pf.exports=Ex||!Ix(function(r){Tx.all(r).then(void 0,function(){})})});var hf=f(()=>{"use strict";var xx=Pe(),Px=ge(),Ax=tt(),kx=fi(),wx=za(),Rx=Ha(),Lx=Mo();xx({target:"Promise",stat:!0,forced:Lx},{all:function(e){var t=this,i=kx.f(t),a=i.resolve,s=i.reject,n=wx(function(){var o=Ax(t.resolve),c=[],u=0,d=1;Rx(e,function(l){var p=u++,h=!1;d++,Px(o,t,l).then(function(m){h||(h=!0,c[p]=m,--d||a(c))},s)}),--d||a(c)});return n.error&&s(n.value),i.promise}})});var mf=f(()=>{"use strict";var $x=Pe(),Mx=Ne(),Cx=hi().CONSTRUCTOR,Do=Ot(),Dx=et(),Bx=U(),Ox=li(),ff=Do&&Do.prototype;$x({target:"Promise",proto:!0,forced:Cx,real:!0},{catch:function(r){return this.then(void 0,r)}});!Mx&&Bx(Do)&&(Co=Dx("Promise").prototype.catch,ff.catch!==Co&&Ox(ff,"catch",Co,{unsafe:!0}));var Co});var bf=f(()=>{"use strict";var Vx=Pe(),_x=ge(),Nx=tt(),Fx=fi(),qx=za(),Ux=Ha(),Hx=Mo();Vx({target:"Promise",stat:!0,forced:Hx},{race:function(e){var t=this,i=Fx.f(t),a=i.reject,s=qx(function(){var n=Nx(t.resolve);Ux(e,function(o){_x(n,t,o).then(i.resolve,a)})});return s.error&&a(s.value),i.promise}})});var gf=f(()=>{"use strict";var jx=Pe(),Gx=fi(),Wx=hi().CONSTRUCTOR;jx({target:"Promise",stat:!0,forced:Wx},{reject:function(e){var t=Gx.f(this),i=t.reject;return i(e),t.promise}})});var Bo=f((TM,Sf)=>{"use strict";var Yx=Qe(),Qx=Ee(),zx=fi();Sf.exports=function(r,e){if(Yx(r),Qx(e)&&e.constructor===r)return e;var t=zx.f(r),i=t.resolve;return i(e),t.promise}});var Tf=f(()=>{"use strict";var Kx=Pe(),Jx=et(),vf=Ne(),Xx=Ot(),yf=hi().CONSTRUCTOR,Zx=Bo(),eP=Jx("Promise"),tP=vf&&!yf;Kx({target:"Promise",stat:!0,forced:vf||yf},{resolve:function(e){return Zx(tP&&this===eP?Xx:this,e)}})});var If=f(()=>{"use strict";nf();hf();mf();bf();gf();Tf()});var Af=f(()=>{"use strict";var iP=Pe(),rP=Ne(),is=Ot(),aP=be(),xf=et(),Pf=U(),sP=ro(),Ef=Bo(),nP=li(),Vo=is&&is.prototype,oP=!!is&&aP(function(){Vo.finally.call({then:function(){}},function(){})});iP({target:"Promise",proto:!0,real:!0,forced:oP},{finally:function(r){var e=sP(this,xf("Promise")),t=Pf(r);return this.then(t?function(i){return Ef(e,r()).then(function(){return i})}:r,t?function(i){return Ef(e,r()).then(function(){throw i})}:r)}});!rP&&Pf(is)&&(Oo=xf("Promise").prototype.finally,Vo.finally!==Oo&&nP(Vo,"finally",Oo,{unsafe:!0}));var Oo});var rs=f((wM,kf)=>{"use strict";var uP=et();kf.exports=uP});var Rf=f((RM,wf)=>{"use strict";Dp();If();Af();var cP=rs();wf.exports=cP("Promise","finally")});var $f=f((LM,Lf)=>{"use strict";var lP=Rf();Lf.exports=lP});var as=f(($M,Mf)=>{"use strict";var dP=$f();Mf.exports=dP});var rm=f(()=>{"use strict";var FP=Pe(),qP=Yi(),UP=Da(),HP=Ca(),jP=en();FP({target:"Array",proto:!0},{at:function(e){var t=qP(this),i=UP(t),a=HP(e),s=a>=0?a:i+a;return s<0||s>=i?void 0:t[s]}});jP("at")});var sm=f((FC,am)=>{"use strict";rm();var GP=rs();am.exports=GP("Array","at")});var om=f((qC,nm)=>{"use strict";var WP=sm();nm.exports=WP});var hr=f((UC,um)=>{"use strict";var YP=om();um.exports=YP});var ab=f(()=>{"use strict"});var sb=f(()=>{"use strict"});var ob=f((UO,nb)=>{"use strict";var ZA=Ee(),ek=ii(),tk=te(),ik=tk("match");nb.exports=function(r){var e;return ZA(r)&&((e=r[ik])!==void 0?!!e:ek(r)==="RegExp")}});var cb=f((HO,ub)=>{"use strict";var rk=Zi(),ak=String;ub.exports=function(r){if(rk(r)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return ak(r)}});var db=f((jO,lb)=>{"use strict";var sk=Qe();lb.exports=function(){var r=sk(this),e="";return r.hasIndices&&(e+="d"),r.global&&(e+="g"),r.ignoreCase&&(e+="i"),r.multiline&&(e+="m"),r.dotAll&&(e+="s"),r.unicode&&(e+="u"),r.unicodeSets&&(e+="v"),r.sticky&&(e+="y"),e}});var fb=f((GO,hb)=>{"use strict";var nk=ge(),ok=Fe(),uk=Hi(),ck=db(),pb=RegExp.prototype;hb.exports=function(r){var e=r.flags;return e===void 0&&!("flags"in pb)&&!ok(r,"flags")&&uk(pb,r)?nk(ck,r):e}});var bb=f((WO,mb)=>{"use strict";var hu=se(),lk=Yi(),dk=Math.floor,du=hu("".charAt),pk=hu("".replace),pu=hu("".slice),hk=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,fk=/\$([$&'`]|\d{1,2})/g;mb.exports=function(r,e,t,i,a,s){var n=t+r.length,o=i.length,c=fk;return a!==void 0&&(a=lk(a),c=hk),pk(s,c,function(u,d){var l;switch(du(d,0)){case"$":return"$";case"&":return r;case"`":return pu(e,0,t);case"'":return pu(e,n);case"<":l=a[pu(d,1,-1)];break;default:var p=+d;if(p===0)return u;if(p>o){var h=dk(p/10);return h===0?u:h<=o?i[h-1]===void 0?du(d,1):i[h-1]+du(d,1):u}l=i[p-1]}return l===void 0?"":l})}});var vb=f(()=>{"use strict";var mk=Pe(),bk=ge(),mu=se(),gb=qi(),gk=U(),Sk=ri(),vk=ob(),Ri=cb(),yk=Gi(),Tk=fb(),Ik=bb(),Ek=te(),xk=Ne(),Pk=Ek("replace"),Ak=TypeError,fu=mu("".indexOf),kk=mu("".replace),Sb=mu("".slice),wk=Math.max;mk({target:"String",proto:!0},{replaceAll:function(e,t){var i=gb(this),a,s,n,o,c,u,d,l,p,h,m=0,b="";if(!Sk(e)){if(a=vk(e),a&&(s=Ri(gb(Tk(e))),!~fu(s,"g")))throw new Ak("`.replaceAll` does not allow non-global regexes");if(n=yk(e,Pk),n)return bk(n,e,i,t);if(xk&&a)return kk(Ri(i),e,t)}for(o=Ri(i),c=Ri(e),u=gk(t),u||(t=Ri(t)),d=c.length,l=wk(1,d),p=fu(o,c);p!==-1;)h=u?Ri(t(c,p,o)):Ik(c,o,p,[],void 0,t),b+=Sb(o,m,p)+h,m=p+d,p=p+l>o.length?-1:fu(o,c,p+l);return m<o.length&&(b+=Sb(o,m)),b}})});var Tb=f((zO,yb)=>{"use strict";ab();sb();vb();var Rk=rs();yb.exports=Rk("String","replaceAll")});var Eb=f((KO,Ib)=>{"use strict";var Lk=Tb();Ib.exports=Lk});var Pb=f((JO,xb)=>{"use strict";var $k=Eb();xb.exports=$k});var Ju="2.0.114-dev.478b25ab.0";var ae=(a=>(a.STOPPED="stopped",a.READY="ready",a.PLAYING="playing",a.PAUSED="paused",a))(ae||{}),mt=(T=>(T.MPEG="MPEG",T.DASH="DASH",T.DASH_SEP="DASH_SEP",T.DASH_SEP_VK="DASH_SEP",T.DASH_WEBM="DASH_WEBM",T.DASH_WEBM_AV1="DASH_WEBM_AV1",T.DASH_STREAMS="DASH_STREAMS",T.DASH_WEBM_VK="DASH_WEBM",T.DASH_ONDEMAND="DASH_ONDEMAND",T.DASH_ONDEMAND_VK="DASH_ONDEMAND",T.DASH_LIVE="DASH_LIVE",T.DASH_LIVE_CMAF="DASH_LIVE_CMAF",T.DASH_LIVE_WEBM="DASH_LIVE_WEBM",T.HLS="HLS",T.HLS_ONDEMAND="HLS_ONDEMAND",T.HLS_JS="HLS",T.HLS_LIVE="HLS_LIVE",T.HLS_LIVE_CMAF="HLS_LIVE_CMAF",T.WEB_RTC_LIVE="WEB_RTC_LIVE",T))(mt||{});var Ta=(a=>(a.NOT_AVAILABLE="NOT_AVAILABLE",a.AVAILABLE="AVAILABLE",a.CONNECTING="CONNECTING",a.CONNECTED="CONNECTED",a))(Ta||{}),Qs=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Qs||{});var zs=(n=>(n.NONE="none",n.INLINE="inline",n.FULLSCREEN="fullscreen",n.SECOND_SCREEN="second_screen",n.PIP="pip",n.INVISIBLE="invisible",n))(zs||{});import{assertNever as rc,assertNonNullable as Jg,isNonNullable as Ia,ValueSubject as Ks,Subject as Xg,Subscription as Zg,merge as eS,observableFrom as tS,fromEvent as Zu,map as ec,tap as tc,filterChanged as iS,isNullable as Js,ErrorCategory as ic}from"@vkontakte/videoplayer-shared";var Xu=r=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",r),i.onload=()=>e,i.onerror=()=>t,document.body.appendChild(i)});var Ea=class{constructor(e){this.connection$=new Ks(void 0);this.castState$=new Ks("NOT_AVAILABLE");this.errorEvent$=new Xg;this.realCastState$=new Ks("NOT_AVAILABLE");this.subscription=new Zg;this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastInitializer");let t="chrome"in window;if(this.log({message:`[constructor] receiverApplicationId: ${this.params.receiverApplicationId}, isDisabled: ${this.params.isDisabled}, isSupported: ${t}`}),e.isDisabled||!t)return;let i=Ia(window.chrome?.cast),a=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=s=>{delete window.__onGCastApiAvailable,s&&this.initializeCastApi()},a||Xu("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:ic.NETWORK,message:"Script loading failed!"})))}connect(){cast.framework.CastContext.getInstance()?.requestSession()}disconnect(){cast.framework.CastContext.getInstance()?.getCurrentSession()?.endSession(!0)}stopMedia(){return new Promise((e,t)=>{cast.framework.CastContext.getInstance()?.getCurrentSession()?.getMediaSession()?.stop(new chrome.cast.media.StopRequest,e,t)})}toggleConnection(){Ia(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();Js(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();Js(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(Zu(i,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(a=>{switch(a.sessionState){case cast.framework.SessionState.SESSION_STARTED:case cast.framework.SessionState.SESSION_STARTING:case cast.framework.SessionState.SESSION_RESUMED:this.contentId=i.getCurrentSession()?.getMediaSession()?.media?.contentId;break;case cast.framework.SessionState.NO_SESSION:case cast.framework.SessionState.SESSION_ENDING:case cast.framework.SessionState.SESSION_ENDED:case cast.framework.SessionState.SESSION_START_FAILED:this.contentId=void 0;break;default:return rc(a.sessionState)}})).add(eS(Zu(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(tc(a=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(a)}`})}),ec(a=>a.castState)),tS([i.getCastState()])).pipe(iS(),ec(rS),tc(a=>{this.log({message:`realCastState$: ${a}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(a=>{let s=a==="CONNECTED",n=Ia(this.connection$.getValue());if(s&&!n){let o=i.getCurrentSession();Jg(o);let c=o.getCastDevice(),u=o.getMediaSession()?.media?.contentId;(Js(u)||u===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:c}))}else!s&&n&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(a==="CONNECTED"?Ia(this.connection$.getValue())?"CONNECTED":"AVAILABLE":a)}))}initializeCastApi(){let e,t,i;try{e=cast.framework.CastContext.getInstance(),t=chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,i=chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}catch{return}try{e.setOptions({receiverApplicationId:this.params.receiverApplicationId??t,autoJoinPolicy:i}),this.initListeners()}catch(a){this.errorEvent$.next({id:"ChromecastInitializer",category:ic.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:a})}}},rS=r=>{switch(r){case cast.framework.CastState.NO_DEVICES_AVAILABLE:return"NOT_AVAILABLE";case cast.framework.CastState.NOT_CONNECTED:return"AVAILABLE";case cast.framework.CastState.CONNECTING:return"CONNECTING";case cast.framework.CastState.CONNECTED:return"CONNECTED";default:return rc(r)}};var Ig=Ye(Xn(),1);var Uf=Ye(as(),1);import{assertNever as Cf}from"@vkontakte/videoplayer-shared";var J=(r,e=0,t=0)=>{switch(t){case 0:return r.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return r;let i=new URL(r);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(r);return!i.searchParams.get("offset_p")&&e===0?r:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:Cf(t)}return r},_o=(r,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(r);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(r);return Number(t.searchParams.get("offset_p")??0)}default:Cf(e)}};var E=(r,e,t=!1)=>{let i=r.getTransition();(t||!i||i.to===e)&&r.setState(e)};import{isNonNullable as pP,Subject as ss,merge as Df}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new ss;this.transitionEnded$=new ss;this.transitionUpdated$=new ss;this.forceChanged$=new ss;this.stateChangeStarted$=Df(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=Df(this.transitionEnded$,this.forceChanged$);this.state=e,this.prevState=void 0}setState(e){let t=this.transition,i=this.state;this.transition=void 0,this.prevState=i,this.state=e,t?t.to===e?this.transitionEnded$.next(t):this.forceChanged$.next({from:t.from,to:e,canceledTransition:t}):this.forceChanged$.next({from:i,to:e,canceledTransition:t})}startTransitionTo(e){let t=this.transition,i=this.state;i===e||pP(t)&&t.to===e||(this.prevState=i,this.state=e,t?(this.transition={from:t.from,to:e,canceledTransition:t},this.transitionUpdated$.next(this.transition)):(this.transition={from:i,to:e},this.transitionStarted$.next(this.transition)))}getTransition(){return this.transition}getState(){return this.state}getPrevState(){return this.prevState}};import{assertNever as hP}from"@vkontakte/videoplayer-shared";var Bf=r=>{switch(r){case"MPEG":case"DASH":case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":case"HLS":case"HLS_ONDEMAND":return!1;case"DASH_LIVE":case"DASH_LIVE_CMAF":case"HLS_LIVE":case"HLS_LIVE_CMAF":case"DASH_LIVE_WEBM":case"WEB_RTC_LIVE":return!0;default:return hP(r)}};import{assertNever as vi,assertNonNullable as _t,debounce as Of,ErrorCategory as Vf,fromEvent as Nt,isNonNullable as _f,map as Nf,merge as Ff,observableFrom as fP,Subject as mP,Subscription as No,timeout as bP,getHighestQuality as gP}from"@vkontakte/videoplayer-shared";var SP=5,vP=5,yP=500,qf=7e3,lr=class{constructor(e){this.subscription=new No;this.loadMediaTimeoutSubscription=new No;this.videoState=new $("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),a=this.params.desiredState.playbackState.getTransition(),s=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${i}; desiredPlaybackStateTransition: ${this.params.desiredState.playbackState.getTransition()}; seekState: ${JSON.stringify(s)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(a?.to!=="paused"&&s.state==="requested"&&e!=="stopped"){this.seek(s.position/1e3);return}switch(i){case"ready":{switch(e){case"playing":case"paused":case"ready":break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:vi(e)}break}case"playing":{switch(e){case"playing":break;case"paused":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"ready":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:vi(e)}break}case"paused":{switch(e){case"playing":this.videoState.startTransitionTo("paused"),this.params.connection.remotePlayerController.playOrPause();break;case"paused":break;case"ready":this.videoState.startTransitionTo("paused"),this.videoState.setState("paused");break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:vi(e)}break}default:vi(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(Bf(e.format)),this.params.output.isAudioAvailable$.next(!0),this.handleRemoteVolumeChange({volume:this.params.connection.remotePlayer.volumeLevel,muted:this.params.connection.remotePlayer.isMuted});let t=this.params.connection.session.getMediaSession();t&&this.restoreSession(t),this.subscribe()}destroy(){this.log({message:"[destroy]"}),this.subscription.unsubscribe()}subscribe(){this.subscription.add(this.loadMediaTimeoutSubscription);let e=new No;this.subscription.add(e),this.subscription.add(Ff(this.videoState.stateChangeStarted$.pipe(Nf(a=>`stateChangeStarted$ ${JSON.stringify(a)}`)),this.videoState.stateChangeEnded$.pipe(Nf(a=>`stateChangeEnded$ ${JSON.stringify(a)}`))).subscribe(a=>this.log({message:`[videoState] ${a}`})));let t=(a,s)=>this.subscription.add(a.subscribe(s));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let a=new mP;e.add(a.pipe(Of(yP)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let s=NaN;e.add(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED).subscribe(n=>{this.logRemoteEvent(n);let o=n.value;this.params.output.position$.next(o),(this.params.desiredState.seekState.getState().state==="applying"||Math.abs(o-s)>SP)&&a.next(o),s=o})),e.add(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(n=>{this.logRemoteEvent(n),this.params.output.duration$.next(n.value)}))}t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),a=>{this.logRemoteEvent(a),a.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),a=>{this.logRemoteEvent(a),a.value?this.handleRemotePause():this.handleRemotePlay()}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),a=>{this.logRemoteEvent(a);let{remotePlayer:s}=this.params.connection,n=a.value,o=this.params.output.isBuffering$.getValue(),c=n===chrome.cast.media.PlayerState.BUFFERING;switch(o!==c&&this.params.output.isBuffering$.next(c),n){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&s.duration-s.currentTime<vP&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),E(this.params.desiredState.playbackState,"stopped");break;case chrome.cast.media.PlayerState.PAUSED:{this.handleRemotePause();break}case chrome.cast.media.PlayerState.PLAYING:this.handleRemotePlay();break;case chrome.cast.media.PlayerState.BUFFERING:break;default:vi(n)}}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),a=>{this.logRemoteEvent(a),this.handleRemoteVolumeChange({volume:a.value})}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),a=>{this.logRemoteEvent(a),this.handleRemoteVolumeChange({muted:a.value})});let i=Ff(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,fP(["init"])).pipe(Of(0));t(i,this.syncPlayback)}restoreSession(e){this.log({message:"restoreSession"});let{remotePlayer:t}=this.params.connection;if(e.playerState!==chrome.cast.media.PlayerState.IDLE){t.isPaused?(this.videoState.setState("paused"),E(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),E(this.params.desiredState.playbackState,"playing"));let i=this.params.output.isLive$.getValue();this.params.output.duration$.next(i?0:t.duration),this.params.output.position$.next(i?0:t.currentTime),this.params.desiredState.seekState.setState({state:"none"})}}prepare(){let e=this.params.format;this.log({message:`[prepare] format: ${e}`});let t=this.createMediaInfo(e),i=this.createLoadRequest(t);this.loadMedia(i)}handleRemotePause(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="paused"||e==="playing")&&(this.videoState.setState("paused"),E(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),E(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&E(this.params.desiredState.playbackState,"ready")}handleRemoteStop(){this.videoState.getState()!=="stopped"&&this.videoState.setState("stopped")}handleRemoteVolumeChange(e){let t=this.params.output.volume$.getValue(),i={volume:e.volume??t.volume,muted:e.muted??t.muted};(i.volume!==t.volume||i.muted!==i.muted)&&this.params.output.volume$.next(i)}seek(e){this.params.output.willSeekEvent$.next();let{remotePlayer:t,remotePlayerController:i}=this.params.connection;t.currentTime=e,i.seek()}stop(){let{remotePlayerController:e}=this.params.connection;e.stop()}createMediaInfo(e){let t=this.params.source,i,a,s;switch(e){case"MPEG":{let u=t[e];_t(u);let d=gP(Object.keys(u));_t(d);let l=u[d];_t(l),i=l,a="video/mp4",s=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let u=t[e];_t(u),i=u.url,a="application/x-mpegurl",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":{let u=t[e];_t(u),i=u.url,a="application/dash+xml",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let u=t[e];_t(u),i=u.url,a="application/dash+xml",s=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let u=t[e];_t(u),i=J(u.url),a="application/x-mpegurl",s=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let u="Unsupported format for Chromecast",d=new Error(u);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:Vf.VIDEO_PIPELINE,message:u,thrown:d}),d}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return vi(e)}let n=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,a);n.contentUrl=i,n.streamType=s,n.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:c}=this.params.meta;return _f(o)&&(n.metadata.title=o),_f(c)&&(n.metadata.subtitle=c),n}createLoadRequest(e){let t=new chrome.cast.media.LoadRequest(e);t.autoplay=!1;let i=this.params.desiredState.seekState.getState();return i.state==="applying"||i.state==="requested"?t.currentTime=this.params.output.isLive$.getValue()?0:i.position/1e3:t.currentTime=0,t}loadMedia(e){let t=this.params.connection.session.loadMedia(e),i=new Promise((a,s)=>{this.loadMediaTimeoutSubscription.add(bP(qf).subscribe(()=>s(`timeout(${qf})`)))});(0,Uf.default)(Promise.race([t,i]).then(()=>{this.log({message:`[loadMedia] completed, format: ${this.params.format}`}),this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.handleRemoteReady()},a=>{let s=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${a}`;this.log({message:s}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:Vf.VIDEO_PIPELINE,message:s,thrown:a})}),()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as jf}from"@vkontakte/videoplayer-shared";import{clearVideoElement as TP}from"@vkontakte/videoplayer-shared";var Hf=r=>{try{r.pause(),r.playbackRate=0,TP(r),r.remove()}catch(e){console.error(e)}};import{fromEvent as IP,Subscription as EP}from"@vkontakte/videoplayer-shared";var Fo=class{constructor(){this.attribute="data-pool-reused"}get(e){return e.hasAttribute(this.attribute)}set(e,t){e.toggleAttribute(this.attribute,t)}delete(e){e.removeAttribute(this.attribute)}},qo=window.WeakMap?new WeakMap:new Fo,Uo=window.WeakMap?new WeakMap:new Map,xP=(r,e=20)=>{let t=0;return IP(r,"ratechange").subscribe(i=>{t++,t>=e&&(r.currentTime=r.currentTime,t=0)})},ne=(r,{audioVideoSyncRate:e})=>{let t=r.querySelector("video"),i=!!t;t?jf(t):(t=document.createElement("video"),r.appendChild(t)),qo.set(t,i);let a=new EP;return a.add(xP(t,e)),Uo.set(t,a),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},oe=r=>{Uo.get(r)?.unsubscribe(),Uo.delete(r);let t=qo.get(r);qo.delete(r),t?jf(r):Hf(r)};import{assertNonNullable as dr,isNonNullable as Ke,isNullable as kP,fromEvent as yi,merge as Gf,observableFrom as Wf,filterChanged as Yf,map as pr,Subject as Qf,Subscription as wP,ValueSubject as RP,ErrorCategory as LP}from"@vkontakte/videoplayer-shared";import{isNonNullable as Ho,isNullable as PP,Subscription as AP}from"@vkontakte/videoplayer-shared";var ns=(r,e,t,{equal:i=(n,o)=>n===o,changed$:a,onError:s}={})=>{let n=r.getState(),o=e(),c=PP(a),u=new AP;return a&&u.add(a.subscribe(d=>{let l=r.getState();i(d,l)&&r.setState(d)},s)),i(o,n)||(t(n),c&&r.setState(n)),u.add(r.stateChangeStarted$.subscribe(d=>{t(d.to),c&&r.setState(d.to)},s)),u},ze=(r,e,t)=>ns(e,()=>r.loop,i=>{Ho(i)&&(r.loop=i)},{onError:t}),ue=(r,e,t,i)=>ns(e,()=>({muted:r.muted,volume:r.volume}),a=>{Ho(a)&&(r.muted=a.muted,r.volume=a.volume)},{equal:(a,s)=>a===s||a?.muted===s?.muted&&a?.volume===s?.volume,changed$:t,onError:i}),Ae=(r,e,t,i)=>ns(e,()=>r.playbackRate,a=>{Ho(a)&&(r.playbackRate=a)},{changed$:t,onError:i}),gt=ns;var $P=r=>["__",r.language,r.label].join("|"),MP=(r,e)=>{if(r.id===e)return!0;let[t,i,a]=e.split("|");return r.language===i&&r.label===a},jo=class r{constructor(){this.available$=new Qf;this.current$=new RP(void 0);this.error$=new Qf;this.subscription=new wP;this.externalTracks=new Map;this.internalTracks=new Map}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let a=s=>{this.error$.next({id:"TextTracksManager",category:LP.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:s})};this.subscription.add(this.available$.subscribe(i.availableTextTracks$)),this.subscription.add(this.current$.subscribe(i.currentTextTrack$)),this.subscription.add(this.error$.subscribe(i.error$)),this.subscription.add(gt(t.internalTextTracks,()=>Object.values(this.internalTracks),s=>{Ke(s)&&this.setInternal(s)},{equal:(s,n)=>Ke(s)&&Ke(n)&&s.length===n.length&&s.every(({id:o},c)=>o===n[c].id),changed$:this.available$.pipe(pr(s=>s.filter(({type:n})=>n==="internal"))),onError:a})),this.subscription.add(gt(t.externalTextTracks,()=>Object.values(this.externalTracks),s=>{Ke(s)&&this.setExternal(s)},{equal:(s,n)=>Ke(s)&&Ke(n)&&s.length===n.length&&s.every(({id:o},c)=>o===n[c].id),changed$:this.available$.pipe(pr(s=>s.filter(({type:n})=>n==="external"))),onError:a})),this.subscription.add(gt(t.currentTextTrack,()=>{if(this.video)return;let s=this.htmlTextTracksAsArray().find(({mode:n})=>n==="showing");return s&&this.htmlTextTrackToITextTrack(s).id},s=>this.select(s),{changed$:this.current$,onError:a})),this.subscription.add(gt(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let s of this.htmlTextTracksAsArray())this.applyCueSettings(s.cues),this.applyCueSettings(s.activeCues)}))}subscribe(){dr(this.video);let{textTracks:e}=this.video;this.subscription.add(yi(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(Gf(yi(e,"addtrack"),yi(e,"removetrack"),Wf(["init"])).pipe(pr(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),Yf((i,a)=>i.length===a.length&&i.every(({id:s},n)=>s===a[n].id))).subscribe(this.available$)),this.subscription.add(Gf(yi(e,"change"),Wf(["init"])).pipe(pr(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),pr(i=>i&&this.htmlTextTrackToITextTrack(i).id),Yf()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(yi(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let a=s=>{let n=s.target?.cues??null;n&&n.length&&(this.applyCueSettings(s.target?.cues??null),s.target?.removeEventListener("cuechange",a))};i.track?.addEventListener("cuechange",a)})),this.subscription.add(yi(e,"removetrack").subscribe(i=>{i.track?.removeEventListener("cuechange",t)}))}applyCueSettings(e){if(!e||!e.length)return;let t=this.cueSettings.getState();for(let i of Array.from(e)){let a=i;Ke(t.align)&&(a.align=t.align),Ke(t.position)&&(a.position=t.position),Ke(t.size)&&(a.size=t.size),Ke(t.line)&&(a.line=t.line)}}htmlTextTracksAsArray(e=!1){dr(this.video);let t=[...this.video.textTracks];return e?t:t.filter(r.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,a=e.id?e.id:$P(e),s=this.externalTracks.has(a),n=a.includes("auto");return s?{id:a,type:"external",isAuto:n,language:t,label:i,url:this.externalTracks.get(a)?.url}:{id:a,type:"internal",isAuto:n,language:t,label:i,url:this.internalTracks.get(a)?.url}}static isHealthyTrack(e){return!(e.kind==="metadata"||e.groupId||e.id===""&&e.label===""&&e.language==="")}setExternal(e){this.internalTracks.size>0&&Array.from(this.internalTracks).forEach(([,t])=>this.detach(t)),e.filter(({id:t})=>!this.externalTracks.has(t)).forEach(t=>this.attach(t)),Array.from(this.externalTracks).filter(([t])=>!e.find(i=>i.id===t)).forEach(([,t])=>this.detach(t))}setInternal(e){let t=[...this.externalTracks];e.filter(({id:i,language:a,isAuto:s})=>!this.internalTracks.has(i)&&!t.some(([,n])=>n.language===a&&n.isAuto===s)).forEach(i=>this.attach(i)),Array.from(this.internalTracks).filter(([i])=>!e.find(a=>a.id===i)).forEach(([,i])=>this.detach(i))}select(e){dr(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(kP(e)||!MP(t,e))&&(t.mode="disabled")}destroy(){if(this.subscription.unsubscribe(),this.video)for(let e of Array.from(this.video.getElementsByTagName("track"))){let t=e.getAttribute("id");t&&this.externalTracks.has(t)&&this.video.removeChild(e)}this.externalTracks.clear()}attach(e){dr(this.video);let t=document.createElement("track");t.setAttribute("src",e.url),t.setAttribute("id",e.id),e.label&&t.setAttribute("label",e.label),e.language&&t.setAttribute("srclang",e.language),e.type==="external"?this.externalTracks.set(e.id,e):e.type==="internal"&&this.internalTracks.set(e.id,e),this.video.appendChild(t)}detach(e){dr(this.video);let t=Array.prototype.find.call(this.video.getElementsByTagName("track"),i=>i.getAttribute("id")===e.id);t&&this.video.removeChild(t),e.type==="external"?this.externalTracks.delete(e.id):e.type==="internal"&&this.internalTracks.delete(e.id)}},ke=jo;var at=class{constructor(){this.pausedTime=0;this.streamOffset=0;this.pauseTimestamp=0}getTotalPausedTime(){return this.pausedTime+this.getCurrentPausedTime()}getCurrentPausedTime(){return this.pauseTimestamp>0?Date.now()-this.pauseTimestamp:0}getStreamOffset(){return this.streamOffset}getTotalOffset(){return this.getTotalPausedTime()+this.streamOffset}pause(){this.pauseTimestamp===0&&(this.pauseTimestamp=Date.now())}resume(){this.pauseTimestamp>0&&(this.pausedTime+=this.getCurrentPausedTime(),this.pauseTimestamp=0)}resetTo(e,t=!1){this.streamOffset=e,this.pauseTimestamp=0,this.pausedTime=0,t&&this.pause()}};var zf=r=>{let e=r;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Go=r=>{let e=zf(r);return!!(e&&e.fullscreenElement&&e.fullscreenElement===r)},Kf=r=>{let e=zf(r);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===r)};import{fromEvent as we,map as St,merge as Xf,filterChanged as DP,isNonNullable as Zf,Subject as BP,filter as em,mapTo as tm,combine as OP,once as VP,ErrorCategory as _P,ValueSubject as im,clientChecker as NP}from"@vkontakte/videoplayer-shared";var CP=3,Jf=(r,e,t=CP)=>{let i=0,a=0;for(let s=0;s<r.length;s++){let n=r.start(s),o=r.end(s);if(n<=e&&e<=o){if(i=n,a=o,!t)return{from:i,to:a};for(let c=s-1;c>=0;c--)r.end(c)+t>=i&&(i=r.start(c));for(let c=s+1;c<r.length;c++)r.start(c)-t<=a&&(a=r.end(c))}}return{from:i,to:a}};var ce=r=>{let e=T=>we(r,T).pipe(tm(void 0)),i=Xf(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(T=>we(r,T))).pipe(St(T=>T.type==="ended"?r.readyState<2:r.readyState<3),DP()),a=Xf(we(r,"progress"),we(r,"timeupdate")).pipe(St(()=>Jf(r.buffered,r.currentTime))),s=NP.isSafari?OP({play:e("play").pipe(VP()),playing:e("playing")}).pipe(tm(void 0)):e("playing"),n=we(r,"volumechange").pipe(St(()=>({muted:r.muted,volume:r.volume}))),o=we(r,"ratechange").pipe(St(()=>r.playbackRate)),c=we(r,"error").pipe(em(()=>!!(r.error||r.played.length)),St(()=>{let T=r.error;return{id:T?`MediaError#${T.code}`:"HtmlVideoError",category:_P.VIDEO_PIPELINE,message:T?T.message:"Error event from HTML video element",thrown:r.error??void 0}})),u=we(r,"timeupdate").pipe(St(()=>r.currentTime)),d=new BP,l=.3,p;u.subscribe(T=>{r.loop&&Zf(p)&&Zf(T)&&p>=r.duration-l&&T<=l&&d.next(p),p=T});let h=e("pause").pipe(em(()=>!r.error&&p!==r.duration)),m=we(r,"enterpictureinpicture"),b=we(r,"leavepictureinpicture"),g=new im(Kf(r));m.subscribe(()=>g.next(!0)),b.subscribe(()=>g.next(!1));let y=new im(Go(r));return we(r,"fullscreenchange").pipe(St(()=>Go(r))).subscribe(y),{playing$:s,pause$:h,canplay$:e("canplay"),ended$:e("ended"),looped$:d,error$:c,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:u,durationChange$:we(r,"durationchange").pipe(St(()=>r.duration)),isBuffering$:i,currentBuffer$:a,volumeState$:n,playbackRateState$:o,inPiP$:g,inFullscreen$:y}};import{VideoQuality as vt}from"@vkontakte/videoplayer-shared";var yt=r=>{switch(r){case"mobile":return vt.Q_144P;case"lowest":return vt.Q_240P;case"low":return vt.Q_360P;case"sd":case"medium":return vt.Q_480P;case"hd":case"high":return vt.Q_720P;case"fullhd":case"full":return vt.Q_1080P;case"quadhd":case"quad":return vt.Q_1440P;case"ultrahd":case"ultra":return vt.Q_2160P}};var Ft=Ye(hr(),1);import{isNonNullable as le,isNullable as Yo,now as bm,isHigher as Qo,isHigherOrEqual as pm,isInvariantQuality as hm,isLower as zo,isLowerOrEqual as fm,videoSizeToQuality as QP,assertNotEmptyArray as gm,assertNonNullable as zP}from"@vkontakte/videoplayer-shared";var Wo=!1,st={},cm=r=>{Wo=r},lm=()=>{st={}},dm=r=>{r(st)},fr=(r,e)=>{Wo&&(st.meta=st.meta??{},st.meta[r]=e)},ie=class{constructor(e){this.name=e}next(e){if(!Wo)return;st.series=st.series??{};let t=st.series[this.name]??[];t.push([Date.now(),e]),st.series[this.name]=t}};var KP=new ie("best_bitrate"),Sm=(r,e,t)=>(e-t)*Math.pow(2,-10*r)+t;var Ko=r=>(e,t)=>r*(Number(e.bitrate)-Number(t.bitrate)),mr=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=bm()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},vm='Assertion "ABR Tracks is empty array" failed',os=(r,e,t,i)=>{let a=[...e].sort(Ko(1)),s=[...t].sort(Ko(1)),n=s.filter(c=>le(c.bitrate)&&le(r.bitrate)?r.bitrate/c.bitrate>i:!0),o=(0,Ft.default)(s,Math.round(s.length*a.indexOf(r)/(a.length+1)))??(0,Ft.default)(s,-1);return o&&n.includes(o)?o:n.length?(0,Ft.default)(n,-1):(0,Ft.default)(s,0)},mm=r=>"quality"in r,ym=(r,e,t,i)=>{let a=t&&i&&i.history[t.id]&&bm()-i.history[t.id]<=r.trackCooldown&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!a&&i.recordSelection(t),a&&i?.last){let s=i.last;i?.recordSwitch(s);let n=mm(s)?"video":"audio",o=mm(s)?s.quality:s.bitrate;return e({message:`
6
+ var Gg=Object.create;var Ku=Object.defineProperty;var Wg=Object.getOwnPropertyDescriptor;var Yg=Object.getOwnPropertyNames;var Qg=Object.getPrototypeOf,zg=Object.prototype.hasOwnProperty;var f=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Kg=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Yg(e))!zg.call(r,a)&&a!==t&&Ku(r,a,{get:()=>e[a],enumerable:!(i=Wg(e,a))||i.enumerable});return r};var Ye=(r,e,t)=>(t=r!=null?Gg(Qg(r)):{},Kg(e||!r||!r.__esModule?Ku(t,"default",{value:r,enumerable:!0}):t,r));var be=f((zR,ac)=>{"use strict";ac.exports=function(r){try{return!!r()}catch{return!0}}});var Fi=f((KR,sc)=>{"use strict";var aS=be();sc.exports=!aS(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var se=f((JR,uc)=>{"use strict";var nc=Fi(),oc=Function.prototype,Xs=oc.call,sS=nc&&oc.bind.bind(Xs,Xs);uc.exports=nc?sS:function(r){return function(){return Xs.apply(r,arguments)}}});var ii=f((XR,lc)=>{"use strict";var cc=se(),nS=cc({}.toString),oS=cc("".slice);lc.exports=function(r){return oS(nS(r),8,-1)}});var pc=f((ZR,dc)=>{"use strict";var uS=se(),cS=be(),lS=ii(),Zs=Object,dS=uS("".split);dc.exports=cS(function(){return!Zs("z").propertyIsEnumerable(0)})?function(r){return lS(r)==="String"?dS(r,""):Zs(r)}:Zs});var ri=f((eL,hc)=>{"use strict";hc.exports=function(r){return r==null}});var qi=f((tL,fc)=>{"use strict";var pS=ri(),hS=TypeError;fc.exports=function(r){if(pS(r))throw new hS("Can't call method on "+r);return r}});var ai=f((iL,mc)=>{"use strict";var fS=pc(),mS=qi();mc.exports=function(r){return fS(mS(r))}});var en=f((rL,bc)=>{"use strict";bc.exports=function(){}});var Mt=f((aL,gc)=>{"use strict";gc.exports={}});var j=f((tn,Sc)=>{"use strict";var Ui=function(r){return r&&r.Math===Math&&r};Sc.exports=Ui(typeof globalThis=="object"&&globalThis)||Ui(typeof window=="object"&&window)||Ui(typeof self=="object"&&self)||Ui(typeof global=="object"&&global)||Ui(typeof tn=="object"&&tn)||function(){return this}()||Function("return this")()});var U=f((sL,vc)=>{"use strict";var rn=typeof document=="object"&&document.all;vc.exports=typeof rn>"u"&&rn!==void 0?function(r){return typeof r=="function"||r===rn}:function(r){return typeof r=="function"}});var Ic=f((nL,Tc)=>{"use strict";var bS=j(),gS=U(),yc=bS.WeakMap;Tc.exports=gS(yc)&&/native code/.test(String(yc))});var Ee=f((oL,Ec)=>{"use strict";var SS=U();Ec.exports=function(r){return typeof r=="object"?r!==null:SS(r)}});var xe=f((uL,xc)=>{"use strict";var vS=be();xc.exports=!vS(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var xa=f((cL,Ac)=>{"use strict";var yS=j(),Pc=Ee(),an=yS.document,TS=Pc(an)&&Pc(an.createElement);Ac.exports=function(r){return TS?an.createElement(r):{}}});var sn=f((lL,kc)=>{"use strict";var IS=xe(),ES=be(),xS=xa();kc.exports=!IS&&!ES(function(){return Object.defineProperty(xS("div"),"a",{get:function(){return 7}}).a!==7})});var nn=f((dL,wc)=>{"use strict";var PS=xe(),AS=be();wc.exports=PS&&AS(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var Qe=f((pL,Rc)=>{"use strict";var kS=Ee(),wS=String,RS=TypeError;Rc.exports=function(r){if(kS(r))return r;throw new RS(wS(r)+" is not an object")}});var ge=f((hL,Lc)=>{"use strict";var LS=Fi(),Pa=Function.prototype.call;Lc.exports=LS?Pa.bind(Pa):function(){return Pa.apply(Pa,arguments)}});var Aa=f((fL,$c)=>{"use strict";$c.exports={}});var et=f((mL,Cc)=>{"use strict";var on=Aa(),un=j(),$S=U(),Mc=function(r){return $S(r)?r:void 0};Cc.exports=function(r,e){return arguments.length<2?Mc(on[r])||Mc(un[r]):on[r]&&on[r][e]||un[r]&&un[r][e]}});var Hi=f((bL,Dc)=>{"use strict";var MS=se();Dc.exports=MS({}.isPrototypeOf)});var si=f((gL,Vc)=>{"use strict";var CS=j(),Bc=CS.navigator,Oc=Bc&&Bc.userAgent;Vc.exports=Oc?String(Oc):""});var ln=f((SL,Hc)=>{"use strict";var Uc=j(),cn=si(),_c=Uc.process,Nc=Uc.Deno,Fc=_c&&_c.versions||Nc&&Nc.version,qc=Fc&&Fc.v8,_e,ka;qc&&(_e=qc.split("."),ka=_e[0]>0&&_e[0]<4?1:+(_e[0]+_e[1]));!ka&&cn&&(_e=cn.match(/Edge\/(\d+)/),(!_e||_e[1]>=74)&&(_e=cn.match(/Chrome\/(\d+)/),_e&&(ka=+_e[1])));Hc.exports=ka});var dn=f((vL,Gc)=>{"use strict";var jc=ln(),DS=be(),BS=j(),OS=BS.String;Gc.exports=!!Object.getOwnPropertySymbols&&!DS(function(){var r=Symbol("symbol detection");return!OS(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&jc&&jc<41})});var pn=f((yL,Wc)=>{"use strict";var VS=dn();Wc.exports=VS&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var hn=f((TL,Yc)=>{"use strict";var _S=et(),NS=U(),FS=Hi(),qS=pn(),US=Object;Yc.exports=qS?function(r){return typeof r=="symbol"}:function(r){var e=_S("Symbol");return NS(e)&&FS(e.prototype,US(r))}});var ji=f((IL,Qc)=>{"use strict";var HS=String;Qc.exports=function(r){try{return HS(r)}catch{return"Object"}}});var tt=f((EL,zc)=>{"use strict";var jS=U(),GS=ji(),WS=TypeError;zc.exports=function(r){if(jS(r))return r;throw new WS(GS(r)+" is not a function")}});var Gi=f((xL,Kc)=>{"use strict";var YS=tt(),QS=ri();Kc.exports=function(r,e){var t=r[e];return QS(t)?void 0:YS(t)}});var Xc=f((PL,Jc)=>{"use strict";var fn=ge(),mn=U(),bn=Ee(),zS=TypeError;Jc.exports=function(r,e){var t,i;if(e==="string"&&mn(t=r.toString)&&!bn(i=fn(t,r))||mn(t=r.valueOf)&&!bn(i=fn(t,r))||e!=="string"&&mn(t=r.toString)&&!bn(i=fn(t,r)))return i;throw new zS("Can't convert object to primitive value")}});var Ne=f((AL,Zc)=>{"use strict";Zc.exports=!0});var il=f((kL,tl)=>{"use strict";var el=j(),KS=Object.defineProperty;tl.exports=function(r,e){try{KS(el,r,{value:e,configurable:!0,writable:!0})}catch{el[r]=e}return e}});var Wi=f((wL,sl)=>{"use strict";var JS=Ne(),XS=j(),ZS=il(),rl="__core-js_shared__",al=sl.exports=XS[rl]||ZS(rl,{});(al.versions||(al.versions=[])).push({version:"3.38.0",mode:JS?"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 gn=f((RL,ol)=>{"use strict";var nl=Wi();ol.exports=function(r,e){return nl[r]||(nl[r]=e||{})}});var Yi=f((LL,ul)=>{"use strict";var ev=qi(),tv=Object;ul.exports=function(r){return tv(ev(r))}});var Fe=f(($L,cl)=>{"use strict";var iv=se(),rv=Yi(),av=iv({}.hasOwnProperty);cl.exports=Object.hasOwn||function(e,t){return av(rv(e),t)}});var Sn=f((ML,ll)=>{"use strict";var sv=se(),nv=0,ov=Math.random(),uv=sv(1 .toString);ll.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+uv(++nv+ov,36)}});var te=f((CL,pl)=>{"use strict";var cv=j(),lv=gn(),dl=Fe(),dv=Sn(),pv=dn(),hv=pn(),ni=cv.Symbol,vn=lv("wks"),fv=hv?ni.for||ni:ni&&ni.withoutSetter||dv;pl.exports=function(r){return dl(vn,r)||(vn[r]=pv&&dl(ni,r)?ni[r]:fv("Symbol."+r)),vn[r]}});var bl=f((DL,ml)=>{"use strict";var mv=ge(),hl=Ee(),fl=hn(),bv=Gi(),gv=Xc(),Sv=te(),vv=TypeError,yv=Sv("toPrimitive");ml.exports=function(r,e){if(!hl(r)||fl(r))return r;var t=bv(r,yv),i;if(t){if(e===void 0&&(e="default"),i=mv(t,r,e),!hl(i)||fl(i))return i;throw new vv("Can't convert object to primitive value")}return e===void 0&&(e="number"),gv(r,e)}});var yn=f((BL,gl)=>{"use strict";var Tv=bl(),Iv=hn();gl.exports=function(r){var e=Tv(r,"string");return Iv(e)?e:e+""}});var Ct=f(vl=>{"use strict";var Ev=xe(),xv=sn(),Pv=nn(),wa=Qe(),Sl=yn(),Av=TypeError,Tn=Object.defineProperty,kv=Object.getOwnPropertyDescriptor,In="enumerable",En="configurable",xn="writable";vl.f=Ev?Pv?function(e,t,i){if(wa(e),t=Sl(t),wa(i),typeof e=="function"&&t==="prototype"&&"value"in i&&xn in i&&!i[xn]){var a=kv(e,t);a&&a[xn]&&(e[t]=i.value,i={configurable:En in i?i[En]:a[En],enumerable:In in i?i[In]:a[In],writable:!1})}return Tn(e,t,i)}:Tn:function(e,t,i){if(wa(e),t=Sl(t),wa(i),xv)try{return Tn(e,t,i)}catch{}if("get"in i||"set"in i)throw new Av("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var Qi=f((VL,yl)=>{"use strict";yl.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var oi=f((_L,Tl)=>{"use strict";var wv=xe(),Rv=Ct(),Lv=Qi();Tl.exports=wv?function(r,e,t){return Rv.f(r,e,Lv(1,t))}:function(r,e,t){return r[e]=t,r}});var Ra=f((NL,El)=>{"use strict";var $v=gn(),Mv=Sn(),Il=$v("keys");El.exports=function(r){return Il[r]||(Il[r]=Mv(r))}});var La=f((FL,xl)=>{"use strict";xl.exports={}});var wn=f((qL,kl)=>{"use strict";var Cv=Ic(),Al=j(),Dv=Ee(),Bv=oi(),Pn=Fe(),An=Wi(),Ov=Ra(),Vv=La(),Pl="Object already initialized",kn=Al.TypeError,_v=Al.WeakMap,$a,zi,Ma,Nv=function(r){return Ma(r)?zi(r):$a(r,{})},Fv=function(r){return function(e){var t;if(!Dv(e)||(t=zi(e)).type!==r)throw new kn("Incompatible receiver, "+r+" required");return t}};Cv||An.state?(qe=An.state||(An.state=new _v),qe.get=qe.get,qe.has=qe.has,qe.set=qe.set,$a=function(r,e){if(qe.has(r))throw new kn(Pl);return e.facade=r,qe.set(r,e),e},zi=function(r){return qe.get(r)||{}},Ma=function(r){return qe.has(r)}):(Dt=Ov("state"),Vv[Dt]=!0,$a=function(r,e){if(Pn(r,Dt))throw new kn(Pl);return e.facade=r,Bv(r,Dt,e),e},zi=function(r){return Pn(r,Dt)?r[Dt]:{}},Ma=function(r){return Pn(r,Dt)});var qe,Dt;kl.exports={set:$a,get:zi,has:Ma,enforce:Nv,getterFor:Fv}});var Rn=f((UL,$l)=>{"use strict";var qv=Fi(),Ll=Function.prototype,wl=Ll.apply,Rl=Ll.call;$l.exports=typeof Reflect=="object"&&Reflect.apply||(qv?Rl.bind(wl):function(){return Rl.apply(wl,arguments)})});var Ln=f((HL,Ml)=>{"use strict";var Uv=ii(),Hv=se();Ml.exports=function(r){if(Uv(r)==="Function")return Hv(r)}});var Ol=f(Bl=>{"use strict";var Cl={}.propertyIsEnumerable,Dl=Object.getOwnPropertyDescriptor,jv=Dl&&!Cl.call({1:2},1);Bl.f=jv?function(e){var t=Dl(this,e);return!!t&&t.enumerable}:Cl});var Nl=f(_l=>{"use strict";var Gv=xe(),Wv=ge(),Yv=Ol(),Qv=Qi(),zv=ai(),Kv=yn(),Jv=Fe(),Xv=sn(),Vl=Object.getOwnPropertyDescriptor;_l.f=Gv?Vl:function(e,t){if(e=zv(e),t=Kv(t),Xv)try{return Vl(e,t)}catch{}if(Jv(e,t))return Qv(!Wv(Yv.f,e,t),e[t])}});var $n=f((WL,Fl)=>{"use strict";var Zv=be(),ey=U(),ty=/#|\.prototype\./,Ki=function(r,e){var t=ry[iy(r)];return t===sy?!0:t===ay?!1:ey(e)?Zv(e):!!e},iy=Ki.normalize=function(r){return String(r).replace(ty,".").toLowerCase()},ry=Ki.data={},ay=Ki.NATIVE="N",sy=Ki.POLYFILL="P";Fl.exports=Ki});var Ji=f((YL,Ul)=>{"use strict";var ql=Ln(),ny=tt(),oy=Fi(),uy=ql(ql.bind);Ul.exports=function(r,e){return ny(r),e===void 0?r:oy?uy(r,e):function(){return r.apply(e,arguments)}}});var Pe=f((QL,jl)=>{"use strict";var Xi=j(),cy=Rn(),ly=Ln(),dy=U(),py=Nl().f,hy=$n(),ui=Aa(),fy=Ji(),ci=oi(),Hl=Fe();Wi();var my=function(r){var e=function(t,i,a){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,a)}return cy(r,this,arguments)};return e.prototype=r.prototype,e};jl.exports=function(r,e){var t=r.target,i=r.global,a=r.stat,s=r.proto,n=i?Xi:a?Xi[t]:Xi[t]&&Xi[t].prototype,o=i?ui:ui[t]||ci(ui,t,{})[t],c=o.prototype,u,d,l,p,h,m,b,g,y;for(p in e)u=hy(i?p:t+(a?".":"#")+p,r.forced),d=!u&&n&&Hl(n,p),m=o[p],d&&(r.dontCallGetSet?(y=py(n,p),b=y&&y.value):b=n[p]),h=d&&b?b:e[p],!(!u&&!s&&typeof m==typeof h)&&(r.bind&&d?g=fy(h,Xi):r.wrap&&d?g=my(h):s&&dy(h)?g=ly(h):g=h,(r.sham||h&&h.sham||m&&m.sham)&&ci(g,"sham",!0),ci(o,p,g),s&&(l=t+"Prototype",Hl(ui,l)||ci(ui,l,{}),ci(ui[l],p,h),r.real&&c&&(u||!c[p])&&ci(c,p,h)))}});var Yl=f((zL,Wl)=>{"use strict";var Mn=xe(),by=Fe(),Gl=Function.prototype,gy=Mn&&Object.getOwnPropertyDescriptor,Cn=by(Gl,"name"),Sy=Cn&&function(){}.name==="something",vy=Cn&&(!Mn||Mn&&gy(Gl,"name").configurable);Wl.exports={EXISTS:Cn,PROPER:Sy,CONFIGURABLE:vy}});var zl=f((KL,Ql)=>{"use strict";var yy=Math.ceil,Ty=Math.floor;Ql.exports=Math.trunc||function(e){var t=+e;return(t>0?Ty:yy)(t)}});var Ca=f((JL,Kl)=>{"use strict";var Iy=zl();Kl.exports=function(r){var e=+r;return e!==e||e===0?0:Iy(e)}});var Xl=f((XL,Jl)=>{"use strict";var Ey=Ca(),xy=Math.max,Py=Math.min;Jl.exports=function(r,e){var t=Ey(r);return t<0?xy(t+e,0):Py(t,e)}});var ed=f((ZL,Zl)=>{"use strict";var Ay=Ca(),ky=Math.min;Zl.exports=function(r){var e=Ay(r);return e>0?ky(e,9007199254740991):0}});var Da=f((e$,td)=>{"use strict";var wy=ed();td.exports=function(r){return wy(r.length)}});var ad=f((t$,rd)=>{"use strict";var Ry=ai(),Ly=Xl(),$y=Da(),id=function(r){return function(e,t,i){var a=Ry(e),s=$y(a);if(s===0)return!r&&-1;var n=Ly(i,s),o;if(r&&t!==t){for(;s>n;)if(o=a[n++],o!==o)return!0}else for(;s>n;n++)if((r||n in a)&&a[n]===t)return r||n||0;return!r&&-1}};rd.exports={includes:id(!0),indexOf:id(!1)}});var od=f((i$,nd)=>{"use strict";var My=se(),Dn=Fe(),Cy=ai(),Dy=ad().indexOf,By=La(),sd=My([].push);nd.exports=function(r,e){var t=Cy(r),i=0,a=[],s;for(s in t)!Dn(By,s)&&Dn(t,s)&&sd(a,s);for(;e.length>i;)Dn(t,s=e[i++])&&(~Dy(a,s)||sd(a,s));return a}});var Bn=f((r$,ud)=>{"use strict";ud.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var ld=f((a$,cd)=>{"use strict";var Oy=od(),Vy=Bn();cd.exports=Object.keys||function(e){return Oy(e,Vy)}});var pd=f(dd=>{"use strict";var _y=xe(),Ny=nn(),Fy=Ct(),qy=Qe(),Uy=ai(),Hy=ld();dd.f=_y&&!Ny?Object.defineProperties:function(e,t){qy(e);for(var i=Uy(t),a=Hy(t),s=a.length,n=0,o;s>n;)Fy.f(e,o=a[n++],i[o]);return e}});var On=f((n$,hd)=>{"use strict";var jy=et();hd.exports=jy("document","documentElement")});var Fn=f((o$,yd)=>{"use strict";var Gy=Qe(),Wy=pd(),fd=Bn(),Yy=La(),Qy=On(),zy=xa(),Ky=Ra(),md=">",bd="<",_n="prototype",Nn="script",Sd=Ky("IE_PROTO"),Vn=function(){},vd=function(r){return bd+Nn+md+r+bd+"/"+Nn+md},gd=function(r){r.write(vd("")),r.close();var e=r.parentWindow.Object;return r=null,e},Jy=function(){var r=zy("iframe"),e="java"+Nn+":",t;return r.style.display="none",Qy.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(vd("document.F=Object")),t.close(),t.F},Ba,Oa=function(){try{Ba=new ActiveXObject("htmlfile")}catch{}Oa=typeof document<"u"?document.domain&&Ba?gd(Ba):Jy():gd(Ba);for(var r=fd.length;r--;)delete Oa[_n][fd[r]];return Oa()};Yy[Sd]=!0;yd.exports=Object.create||function(e,t){var i;return e!==null?(Vn[_n]=Gy(e),i=new Vn,Vn[_n]=null,i[Sd]=e):i=Oa(),t===void 0?i:Wy.f(i,t)}});var Id=f((u$,Td)=>{"use strict";var Xy=be();Td.exports=!Xy(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var Un=f((c$,xd)=>{"use strict";var Zy=Fe(),eT=U(),tT=Yi(),iT=Ra(),rT=Id(),Ed=iT("IE_PROTO"),qn=Object,aT=qn.prototype;xd.exports=rT?qn.getPrototypeOf:function(r){var e=tT(r);if(Zy(e,Ed))return e[Ed];var t=e.constructor;return eT(t)&&e instanceof t?t.prototype:e instanceof qn?aT:null}});var li=f((l$,Pd)=>{"use strict";var sT=oi();Pd.exports=function(r,e,t,i){return i&&i.enumerable?r[e]=t:sT(r,e,t),r}});var Wn=f((d$,wd)=>{"use strict";var nT=be(),oT=U(),uT=Ee(),cT=Fn(),Ad=Un(),lT=li(),dT=te(),pT=Ne(),Gn=dT("iterator"),kd=!1,it,Hn,jn;[].keys&&(jn=[].keys(),"next"in jn?(Hn=Ad(Ad(jn)),Hn!==Object.prototype&&(it=Hn)):kd=!0);var hT=!uT(it)||nT(function(){var r={};return it[Gn].call(r)!==r});hT?it={}:pT&&(it=cT(it));oT(it[Gn])||lT(it,Gn,function(){return this});wd.exports={IteratorPrototype:it,BUGGY_SAFARI_ITERATORS:kd}});var Va=f((p$,Ld)=>{"use strict";var fT=te(),mT=fT("toStringTag"),Rd={};Rd[mT]="z";Ld.exports=String(Rd)==="[object z]"});var Zi=f((h$,$d)=>{"use strict";var bT=Va(),gT=U(),_a=ii(),ST=te(),vT=ST("toStringTag"),yT=Object,TT=_a(function(){return arguments}())==="Arguments",IT=function(r,e){try{return r[e]}catch{}};$d.exports=bT?_a:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=IT(e=yT(r),vT))=="string"?t:TT?_a(e):(i=_a(e))==="Object"&&gT(e.callee)?"Arguments":i}});var Cd=f((f$,Md)=>{"use strict";var ET=Va(),xT=Zi();Md.exports=ET?{}.toString:function(){return"[object "+xT(this)+"]"}});var er=f((m$,Bd)=>{"use strict";var PT=Va(),AT=Ct().f,kT=oi(),wT=Fe(),RT=Cd(),LT=te(),Dd=LT("toStringTag");Bd.exports=function(r,e,t,i){var a=t?r:r&&r.prototype;a&&(wT(a,Dd)||AT(a,Dd,{configurable:!0,value:e}),i&&!PT&&kT(a,"toString",RT))}});var Vd=f((b$,Od)=>{"use strict";var $T=Wn().IteratorPrototype,MT=Fn(),CT=Qi(),DT=er(),BT=Mt(),OT=function(){return this};Od.exports=function(r,e,t,i){var a=e+" Iterator";return r.prototype=MT($T,{next:CT(+!i,t)}),DT(r,a,!1,!0),BT[a]=OT,r}});var Nd=f((g$,_d)=>{"use strict";var VT=se(),_T=tt();_d.exports=function(r,e,t){try{return VT(_T(Object.getOwnPropertyDescriptor(r,e)[t]))}catch{}}});var qd=f((S$,Fd)=>{"use strict";var NT=Ee();Fd.exports=function(r){return NT(r)||r===null}});var Hd=f((v$,Ud)=>{"use strict";var FT=qd(),qT=String,UT=TypeError;Ud.exports=function(r){if(FT(r))return r;throw new UT("Can't set "+qT(r)+" as a prototype")}});var Yn=f((y$,jd)=>{"use strict";var HT=Nd(),jT=Ee(),GT=qi(),WT=Hd();jd.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=HT(Object.prototype,"__proto__","set"),t(e,[]),r=e instanceof Array}catch{}return function(a,s){return GT(a),WT(s),jT(a)&&(r?t(a,s):a.__proto__=s),a}}():void 0)});var tp=f((T$,ep)=>{"use strict";var YT=Pe(),QT=ge(),Na=Ne(),Xd=Yl(),zT=U(),KT=Vd(),Gd=Un(),Wd=Yn(),JT=er(),XT=oi(),Qn=li(),ZT=te(),Yd=Mt(),Zd=Wn(),eI=Xd.PROPER,tI=Xd.CONFIGURABLE,Qd=Zd.IteratorPrototype,Fa=Zd.BUGGY_SAFARI_ITERATORS,tr=ZT("iterator"),zd="keys",ir="values",Kd="entries",Jd=function(){return this};ep.exports=function(r,e,t,i,a,s,n){KT(t,e,i);var o=function(y){if(y===a&&p)return p;if(!Fa&&y&&y in d)return d[y];switch(y){case zd:return function(){return new t(this,y)};case ir:return function(){return new t(this,y)};case Kd:return function(){return new t(this,y)}}return function(){return new t(this)}},c=e+" Iterator",u=!1,d=r.prototype,l=d[tr]||d["@@iterator"]||a&&d[a],p=!Fa&&l||o(a),h=e==="Array"&&d.entries||l,m,b,g;if(h&&(m=Gd(h.call(new r)),m!==Object.prototype&&m.next&&(!Na&&Gd(m)!==Qd&&(Wd?Wd(m,Qd):zT(m[tr])||Qn(m,tr,Jd)),JT(m,c,!0,!0),Na&&(Yd[c]=Jd))),eI&&a===ir&&l&&l.name!==ir&&(!Na&&tI?XT(d,"name",ir):(u=!0,p=function(){return QT(l,this)})),a)if(b={values:o(ir),keys:s?p:o(zd),entries:o(Kd)},n)for(g in b)(Fa||u||!(g in d))&&Qn(d,g,b[g]);else YT({target:e,proto:!0,forced:Fa||u},b);return(!Na||n)&&d[tr]!==p&&Qn(d,tr,p,{name:a}),Yd[e]=p,b}});var rp=f((I$,ip)=>{"use strict";ip.exports=function(r,e){return{value:r,done:e}}});var Kn=f((E$,up)=>{"use strict";var iI=ai(),zn=en(),ap=Mt(),np=wn(),rI=Ct().f,aI=tp(),qa=rp(),sI=Ne(),nI=xe(),op="Array Iterator",oI=np.set,uI=np.getterFor(op);up.exports=aI(Array,"Array",function(r,e){oI(this,{type:op,target:iI(r),index:0,kind:e})},function(){var r=uI(this),e=r.target,t=r.index++;if(!e||t>=e.length)return r.target=void 0,qa(void 0,!0);switch(r.kind){case"keys":return qa(t,!1);case"values":return qa(e[t],!1)}return qa([t,e[t]],!1)},"values");var sp=ap.Arguments=ap.Array;zn("keys");zn("values");zn("entries");if(!sI&&nI&&sp.name!=="values")try{rI(sp,"name",{value:"values"})}catch{}});var lp=f((x$,cp)=>{"use strict";var cI=te(),lI=Mt(),dI=cI("iterator"),pI=Array.prototype;cp.exports=function(r){return r!==void 0&&(lI.Array===r||pI[dI]===r)}});var Jn=f((P$,pp)=>{"use strict";var hI=Zi(),dp=Gi(),fI=ri(),mI=Mt(),bI=te(),gI=bI("iterator");pp.exports=function(r){if(!fI(r))return dp(r,gI)||dp(r,"@@iterator")||mI[hI(r)]}});var fp=f((A$,hp)=>{"use strict";var SI=ge(),vI=tt(),yI=Qe(),TI=ji(),II=Jn(),EI=TypeError;hp.exports=function(r,e){var t=arguments.length<2?II(r):e;if(vI(t))return yI(SI(t,r));throw new EI(TI(r)+" is not iterable")}});var gp=f((k$,bp)=>{"use strict";var xI=ge(),mp=Qe(),PI=Gi();bp.exports=function(r,e,t){var i,a;mp(r);try{if(i=PI(r,"return"),!i){if(e==="throw")throw t;return t}i=xI(i,r)}catch(s){a=!0,i=s}if(e==="throw")throw t;if(a)throw i;return mp(i),t}});var Ha=f((w$,Tp)=>{"use strict";var AI=Ji(),kI=ge(),wI=Qe(),RI=ji(),LI=lp(),$I=Da(),Sp=Hi(),MI=fp(),CI=Jn(),vp=gp(),DI=TypeError,Ua=function(r,e){this.stopped=r,this.result=e},yp=Ua.prototype;Tp.exports=function(r,e,t){var i=t&&t.that,a=!!(t&&t.AS_ENTRIES),s=!!(t&&t.IS_RECORD),n=!!(t&&t.IS_ITERATOR),o=!!(t&&t.INTERRUPTED),c=AI(e,i),u,d,l,p,h,m,b,g=function(A){return u&&vp(u,"normal",A),new Ua(!0,A)},y=function(A){return a?(wI(A),o?c(A[0],A[1],g):c(A[0],A[1])):o?c(A,g):c(A)};if(s)u=r.iterator;else if(n)u=r;else{if(d=CI(r),!d)throw new DI(RI(r)+" is not iterable");if(LI(d)){for(l=0,p=$I(r);p>l;l++)if(h=y(r[l]),h&&Sp(yp,h))return h;return new Ua(!1)}u=MI(r,d)}for(m=s?r.next:u.next;!(b=kI(m,u)).done;){try{h=y(b.value)}catch(A){vp(u,"throw",A)}if(typeof h=="object"&&h&&Sp(yp,h))return h}return new Ua(!1)}});var Ep=f((R$,Ip)=>{"use strict";var BI=xe(),OI=Ct(),VI=Qi();Ip.exports=function(r,e,t){BI?OI.f(r,e,VI(0,t)):r[e]=t}});var xp=f(()=>{"use strict";var _I=Pe(),NI=Ha(),FI=Ep();_I({target:"Object",stat:!0},{fromEntries:function(e){var t={};return NI(e,function(i,a){FI(t,i,a)},{AS_ENTRIES:!0}),t}})});var Ap=f((M$,Pp)=>{"use strict";Kn();xp();var qI=Aa();Pp.exports=qI.Object.fromEntries});var wp=f((C$,kp)=>{"use strict";kp.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 Lp=f(()=>{"use strict";Kn();var UI=wp(),HI=j(),jI=er(),Rp=Mt();for(ja in UI)jI(HI[ja],ja),Rp[ja]=Rp.Array;var ja});var Mp=f((O$,$p)=>{"use strict";var GI=Ap();Lp();$p.exports=GI});var Xn=f((V$,Cp)=>{"use strict";var WI=Mp();Cp.exports=WI});var Dp=f(()=>{"use strict"});var Zn=f((F$,Bp)=>{"use strict";var rr=j(),YI=si(),QI=ii(),Ga=function(r){return YI.slice(0,r.length)===r};Bp.exports=function(){return Ga("Bun/")?"BUN":Ga("Cloudflare-Workers")?"CLOUDFLARE":Ga("Deno/")?"DENO":Ga("Node.js/")?"NODE":rr.Bun&&typeof Bun.version=="string"?"BUN":rr.Deno&&typeof Deno.version=="object"?"DENO":QI(rr.process)==="process"?"NODE":rr.window&&rr.document?"BROWSER":"REST"}()});var Wa=f((q$,Op)=>{"use strict";var zI=Zn();Op.exports=zI==="NODE"});var _p=f((U$,Vp)=>{"use strict";var KI=Ct();Vp.exports=function(r,e,t){return KI.f(r,e,t)}});var qp=f((H$,Fp)=>{"use strict";var JI=et(),XI=_p(),ZI=te(),eE=xe(),Np=ZI("species");Fp.exports=function(r){var e=JI(r);eE&&e&&!e[Np]&&XI(e,Np,{configurable:!0,get:function(){return this}})}});var Hp=f((j$,Up)=>{"use strict";var tE=Hi(),iE=TypeError;Up.exports=function(r,e){if(tE(e,r))return r;throw new iE("Incorrect invocation")}});var to=f((G$,jp)=>{"use strict";var rE=se(),aE=U(),eo=Wi(),sE=rE(Function.toString);aE(eo.inspectSource)||(eo.inspectSource=function(r){return sE(r)});jp.exports=eo.inspectSource});var Kp=f((W$,zp)=>{"use strict";var nE=se(),oE=be(),Gp=U(),uE=Zi(),cE=et(),lE=to(),Wp=function(){},Yp=cE("Reflect","construct"),io=/^\s*(?:class|function)\b/,dE=nE(io.exec),pE=!io.test(Wp),ar=function(e){if(!Gp(e))return!1;try{return Yp(Wp,[],e),!0}catch{return!1}},Qp=function(e){if(!Gp(e))return!1;switch(uE(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return pE||!!dE(io,lE(e))}catch{return!0}};Qp.sham=!0;zp.exports=!Yp||oE(function(){var r;return ar(ar.call)||!ar(Object)||!ar(function(){r=!0})||r})?Qp:ar});var Xp=f((Y$,Jp)=>{"use strict";var hE=Kp(),fE=ji(),mE=TypeError;Jp.exports=function(r){if(hE(r))return r;throw new mE(fE(r)+" is not a constructor")}});var ro=f((Q$,eh)=>{"use strict";var Zp=Qe(),bE=Xp(),gE=ri(),SE=te(),vE=SE("species");eh.exports=function(r,e){var t=Zp(r).constructor,i;return t===void 0||gE(i=Zp(t)[vE])?e:bE(i)}});var ih=f((z$,th)=>{"use strict";var yE=se();th.exports=yE([].slice)});var ah=f((K$,rh)=>{"use strict";var TE=TypeError;rh.exports=function(r,e){if(r<e)throw new TE("Not enough arguments");return r}});var ao=f((J$,sh)=>{"use strict";var IE=si();sh.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(IE)});var fo=f((X$,fh)=>{"use strict";var Se=j(),EE=Rn(),xE=Ji(),nh=U(),PE=Fe(),hh=be(),oh=On(),AE=ih(),uh=xa(),kE=ah(),wE=ao(),RE=Wa(),lo=Se.setImmediate,po=Se.clearImmediate,LE=Se.process,so=Se.Dispatch,$E=Se.Function,ch=Se.MessageChannel,ME=Se.String,no=0,sr={},lh="onreadystatechange",nr,Bt,oo,uo;hh(function(){nr=Se.location});var ho=function(r){if(PE(sr,r)){var e=sr[r];delete sr[r],e()}},co=function(r){return function(){ho(r)}},dh=function(r){ho(r.data)},ph=function(r){Se.postMessage(ME(r),nr.protocol+"//"+nr.host)};(!lo||!po)&&(lo=function(e){kE(arguments.length,1);var t=nh(e)?e:$E(e),i=AE(arguments,1);return sr[++no]=function(){EE(t,void 0,i)},Bt(no),no},po=function(e){delete sr[e]},RE?Bt=function(r){LE.nextTick(co(r))}:so&&so.now?Bt=function(r){so.now(co(r))}:ch&&!wE?(oo=new ch,uo=oo.port2,oo.port1.onmessage=dh,Bt=xE(uo.postMessage,uo)):Se.addEventListener&&nh(Se.postMessage)&&!Se.importScripts&&nr&&nr.protocol!=="file:"&&!hh(ph)?(Bt=ph,Se.addEventListener("message",dh,!1)):lh in uh("script")?Bt=function(r){oh.appendChild(uh("script"))[lh]=function(){oh.removeChild(this),ho(r)}}:Bt=function(r){setTimeout(co(r),0)});fh.exports={set:lo,clear:po}});var gh=f((Z$,bh)=>{"use strict";var mh=j(),CE=xe(),DE=Object.getOwnPropertyDescriptor;bh.exports=function(r){if(!CE)return mh[r];var e=DE(mh,r);return e&&e.value}});var mo=f((eM,vh)=>{"use strict";var Sh=function(){this.head=null,this.tail=null};Sh.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}}};vh.exports=Sh});var Th=f((tM,yh)=>{"use strict";var BE=si();yh.exports=/ipad|iphone|ipod/i.test(BE)&&typeof Pebble<"u"});var Eh=f((iM,Ih)=>{"use strict";var OE=si();Ih.exports=/web0s(?!.*chrome)/i.test(OE)});var Lh=f((rM,Rh)=>{"use strict";var pi=j(),VE=gh(),xh=Ji(),bo=fo().set,_E=mo(),NE=ao(),FE=Th(),qE=Eh(),go=Wa(),Ph=pi.MutationObserver||pi.WebKitMutationObserver,Ah=pi.document,kh=pi.process,Ya=pi.Promise,yo=VE("queueMicrotask"),di,So,vo,Qa,wh;yo||(or=new _E,ur=function(){var r,e;for(go&&(r=kh.domain)&&r.exit();e=or.get();)try{e()}catch(t){throw or.head&&di(),t}r&&r.enter()},!NE&&!go&&!qE&&Ph&&Ah?(So=!0,vo=Ah.createTextNode(""),new Ph(ur).observe(vo,{characterData:!0}),di=function(){vo.data=So=!So}):!FE&&Ya&&Ya.resolve?(Qa=Ya.resolve(void 0),Qa.constructor=Ya,wh=xh(Qa.then,Qa),di=function(){wh(ur)}):go?di=function(){kh.nextTick(ur)}:(bo=xh(bo,pi),di=function(){bo(ur)}),yo=function(r){or.head||di(),or.add(r)});var or,ur;Rh.exports=yo});var Mh=f((aM,$h)=>{"use strict";$h.exports=function(r,e){try{arguments.length===1?console.error(r):console.error(r,e)}catch{}}});var za=f((sM,Ch)=>{"use strict";Ch.exports=function(r){try{return{error:!1,value:r()}}catch(e){return{error:!0,value:e}}}});var Ot=f((nM,Dh)=>{"use strict";var UE=j();Dh.exports=UE.Promise});var hi=f((oM,_h)=>{"use strict";var HE=j(),cr=Ot(),jE=U(),GE=$n(),WE=to(),YE=te(),Bh=Zn(),QE=Ne(),To=ln(),Oh=cr&&cr.prototype,zE=YE("species"),Io=!1,Vh=jE(HE.PromiseRejectionEvent),KE=GE("Promise",function(){var r=WE(cr),e=r!==String(cr);if(!e&&To===66||QE&&!(Oh.catch&&Oh.finally))return!0;if(!To||To<51||!/native code/.test(r)){var t=new cr(function(s){s(1)}),i=function(s){s(function(){},function(){})},a=t.constructor={};if(a[zE]=i,Io=t.then(function(){})instanceof i,!Io)return!0}return!e&&(Bh==="BROWSER"||Bh==="DENO")&&!Vh});_h.exports={CONSTRUCTOR:KE,REJECTION_EVENT:Vh,SUBCLASSING:Io}});var fi=f((uM,Fh)=>{"use strict";var Nh=tt(),JE=TypeError,XE=function(r){var e,t;this.promise=new r(function(i,a){if(e!==void 0||t!==void 0)throw new JE("Bad Promise constructor");e=i,t=a}),this.resolve=Nh(e),this.reject=Nh(t)};Fh.exports.f=function(r){return new XE(r)}});var nf=f(()=>{"use strict";var ZE=Pe(),ex=Ne(),Za=Wa(),bt=j(),Si=ge(),qh=li(),Uh=Yn(),tx=er(),ix=qp(),rx=tt(),Xa=U(),ax=Ee(),sx=Hp(),nx=ro(),Yh=fo().set,ko=Lh(),ox=Mh(),ux=za(),cx=mo(),Qh=wn(),es=Ot(),wo=hi(),zh=fi(),ts="Promise",Kh=wo.CONSTRUCTOR,lx=wo.REJECTION_EVENT,dx=wo.SUBCLASSING,Eo=Qh.getterFor(ts),px=Qh.set,mi=es&&es.prototype,Vt=es,Ka=mi,Jh=bt.TypeError,xo=bt.document,Ro=bt.process,Po=zh.f,hx=Po,fx=!!(xo&&xo.createEvent&&bt.dispatchEvent),Xh="unhandledrejection",mx="rejectionhandled",Hh=0,Zh=1,bx=2,Lo=1,ef=2,Ja,jh,gx,Gh,tf=function(r){var e;return ax(r)&&Xa(e=r.then)?e:!1},rf=function(r,e){var t=e.value,i=e.state===Zh,a=i?r.ok:r.fail,s=r.resolve,n=r.reject,o=r.domain,c,u,d;try{a?(i||(e.rejection===ef&&vx(e),e.rejection=Lo),a===!0?c=t:(o&&o.enter(),c=a(t),o&&(o.exit(),d=!0)),c===r.promise?n(new Jh("Promise-chain cycle")):(u=tf(c))?Si(u,c,s,n):s(c)):n(t)}catch(l){o&&!d&&o.exit(),n(l)}},af=function(r,e){r.notified||(r.notified=!0,ko(function(){for(var t=r.reactions,i;i=t.get();)rf(i,r);r.notified=!1,e&&!r.rejection&&Sx(r)}))},sf=function(r,e,t){var i,a;fx?(i=xo.createEvent("Event"),i.promise=e,i.reason=t,i.initEvent(r,!1,!0),bt.dispatchEvent(i)):i={promise:e,reason:t},!lx&&(a=bt["on"+r])?a(i):r===Xh&&ox("Unhandled promise rejection",t)},Sx=function(r){Si(Yh,bt,function(){var e=r.facade,t=r.value,i=Wh(r),a;if(i&&(a=ux(function(){Za?Ro.emit("unhandledRejection",t,e):sf(Xh,e,t)}),r.rejection=Za||Wh(r)?ef:Lo,a.error))throw a.value})},Wh=function(r){return r.rejection!==Lo&&!r.parent},vx=function(r){Si(Yh,bt,function(){var e=r.facade;Za?Ro.emit("rejectionHandled",e):sf(mx,e,r.value)})},bi=function(r,e,t){return function(i){r(e,i,t)}},gi=function(r,e,t){r.done||(r.done=!0,t&&(r=t),r.value=e,r.state=bx,af(r,!0))},Ao=function(r,e,t){if(!r.done){r.done=!0,t&&(r=t);try{if(r.facade===e)throw new Jh("Promise can't be resolved itself");var i=tf(e);i?ko(function(){var a={done:!1};try{Si(i,e,bi(Ao,a,r),bi(gi,a,r))}catch(s){gi(a,s,r)}}):(r.value=e,r.state=Zh,af(r,!1))}catch(a){gi({done:!1},a,r)}}};if(Kh&&(Vt=function(e){sx(this,Ka),rx(e),Si(Ja,this);var t=Eo(this);try{e(bi(Ao,t),bi(gi,t))}catch(i){gi(t,i)}},Ka=Vt.prototype,Ja=function(e){px(this,{type:ts,done:!1,notified:!1,parent:!1,reactions:new cx,rejection:!1,state:Hh,value:void 0})},Ja.prototype=qh(Ka,"then",function(e,t){var i=Eo(this),a=Po(nx(this,Vt));return i.parent=!0,a.ok=Xa(e)?e:!0,a.fail=Xa(t)&&t,a.domain=Za?Ro.domain:void 0,i.state===Hh?i.reactions.add(a):ko(function(){rf(a,i)}),a.promise}),jh=function(){var r=new Ja,e=Eo(r);this.promise=r,this.resolve=bi(Ao,e),this.reject=bi(gi,e)},zh.f=Po=function(r){return r===Vt||r===gx?new jh(r):hx(r)},!ex&&Xa(es)&&mi!==Object.prototype)){Gh=mi.then,dx||qh(mi,"then",function(e,t){var i=this;return new Vt(function(a,s){Si(Gh,i,a,s)}).then(e,t)},{unsafe:!0});try{delete mi.constructor}catch{}Uh&&Uh(mi,Ka)}ZE({global:!0,constructor:!0,wrap:!0,forced:Kh},{Promise:Vt});tx(Vt,ts,!1,!0);ix(ts)});var df=f((dM,lf)=>{"use strict";var yx=te(),uf=yx("iterator"),cf=!1;try{of=0,$o={next:function(){return{done:!!of++}},return:function(){cf=!0}},$o[uf]=function(){return this},Array.from($o,function(){throw 2})}catch{}var of,$o;lf.exports=function(r,e){try{if(!e&&!cf)return!1}catch{return!1}var t=!1;try{var i={};i[uf]=function(){return{next:function(){return{done:t=!0}}}},r(i)}catch{}return t}});var Mo=f((pM,pf)=>{"use strict";var Tx=Ot(),Ix=df(),Ex=hi().CONSTRUCTOR;pf.exports=Ex||!Ix(function(r){Tx.all(r).then(void 0,function(){})})});var hf=f(()=>{"use strict";var xx=Pe(),Px=ge(),Ax=tt(),kx=fi(),wx=za(),Rx=Ha(),Lx=Mo();xx({target:"Promise",stat:!0,forced:Lx},{all:function(e){var t=this,i=kx.f(t),a=i.resolve,s=i.reject,n=wx(function(){var o=Ax(t.resolve),c=[],u=0,d=1;Rx(e,function(l){var p=u++,h=!1;d++,Px(o,t,l).then(function(m){h||(h=!0,c[p]=m,--d||a(c))},s)}),--d||a(c)});return n.error&&s(n.value),i.promise}})});var mf=f(()=>{"use strict";var $x=Pe(),Mx=Ne(),Cx=hi().CONSTRUCTOR,Do=Ot(),Dx=et(),Bx=U(),Ox=li(),ff=Do&&Do.prototype;$x({target:"Promise",proto:!0,forced:Cx,real:!0},{catch:function(r){return this.then(void 0,r)}});!Mx&&Bx(Do)&&(Co=Dx("Promise").prototype.catch,ff.catch!==Co&&Ox(ff,"catch",Co,{unsafe:!0}));var Co});var bf=f(()=>{"use strict";var Vx=Pe(),_x=ge(),Nx=tt(),Fx=fi(),qx=za(),Ux=Ha(),Hx=Mo();Vx({target:"Promise",stat:!0,forced:Hx},{race:function(e){var t=this,i=Fx.f(t),a=i.reject,s=qx(function(){var n=Nx(t.resolve);Ux(e,function(o){_x(n,t,o).then(i.resolve,a)})});return s.error&&a(s.value),i.promise}})});var gf=f(()=>{"use strict";var jx=Pe(),Gx=fi(),Wx=hi().CONSTRUCTOR;jx({target:"Promise",stat:!0,forced:Wx},{reject:function(e){var t=Gx.f(this),i=t.reject;return i(e),t.promise}})});var Bo=f((TM,Sf)=>{"use strict";var Yx=Qe(),Qx=Ee(),zx=fi();Sf.exports=function(r,e){if(Yx(r),Qx(e)&&e.constructor===r)return e;var t=zx.f(r),i=t.resolve;return i(e),t.promise}});var Tf=f(()=>{"use strict";var Kx=Pe(),Jx=et(),vf=Ne(),Xx=Ot(),yf=hi().CONSTRUCTOR,Zx=Bo(),eP=Jx("Promise"),tP=vf&&!yf;Kx({target:"Promise",stat:!0,forced:vf||yf},{resolve:function(e){return Zx(tP&&this===eP?Xx:this,e)}})});var If=f(()=>{"use strict";nf();hf();mf();bf();gf();Tf()});var Af=f(()=>{"use strict";var iP=Pe(),rP=Ne(),is=Ot(),aP=be(),xf=et(),Pf=U(),sP=ro(),Ef=Bo(),nP=li(),Vo=is&&is.prototype,oP=!!is&&aP(function(){Vo.finally.call({then:function(){}},function(){})});iP({target:"Promise",proto:!0,real:!0,forced:oP},{finally:function(r){var e=sP(this,xf("Promise")),t=Pf(r);return this.then(t?function(i){return Ef(e,r()).then(function(){return i})}:r,t?function(i){return Ef(e,r()).then(function(){throw i})}:r)}});!rP&&Pf(is)&&(Oo=xf("Promise").prototype.finally,Vo.finally!==Oo&&nP(Vo,"finally",Oo,{unsafe:!0}));var Oo});var rs=f((wM,kf)=>{"use strict";var uP=et();kf.exports=uP});var Rf=f((RM,wf)=>{"use strict";Dp();If();Af();var cP=rs();wf.exports=cP("Promise","finally")});var $f=f((LM,Lf)=>{"use strict";var lP=Rf();Lf.exports=lP});var as=f(($M,Mf)=>{"use strict";var dP=$f();Mf.exports=dP});var rm=f(()=>{"use strict";var FP=Pe(),qP=Yi(),UP=Da(),HP=Ca(),jP=en();FP({target:"Array",proto:!0},{at:function(e){var t=qP(this),i=UP(t),a=HP(e),s=a>=0?a:i+a;return s<0||s>=i?void 0:t[s]}});jP("at")});var sm=f((FC,am)=>{"use strict";rm();var GP=rs();am.exports=GP("Array","at")});var om=f((qC,nm)=>{"use strict";var WP=sm();nm.exports=WP});var hr=f((UC,um)=>{"use strict";var YP=om();um.exports=YP});var ab=f(()=>{"use strict"});var sb=f(()=>{"use strict"});var ob=f((UO,nb)=>{"use strict";var ZA=Ee(),ek=ii(),tk=te(),ik=tk("match");nb.exports=function(r){var e;return ZA(r)&&((e=r[ik])!==void 0?!!e:ek(r)==="RegExp")}});var cb=f((HO,ub)=>{"use strict";var rk=Zi(),ak=String;ub.exports=function(r){if(rk(r)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return ak(r)}});var db=f((jO,lb)=>{"use strict";var sk=Qe();lb.exports=function(){var r=sk(this),e="";return r.hasIndices&&(e+="d"),r.global&&(e+="g"),r.ignoreCase&&(e+="i"),r.multiline&&(e+="m"),r.dotAll&&(e+="s"),r.unicode&&(e+="u"),r.unicodeSets&&(e+="v"),r.sticky&&(e+="y"),e}});var fb=f((GO,hb)=>{"use strict";var nk=ge(),ok=Fe(),uk=Hi(),ck=db(),pb=RegExp.prototype;hb.exports=function(r){var e=r.flags;return e===void 0&&!("flags"in pb)&&!ok(r,"flags")&&uk(pb,r)?nk(ck,r):e}});var bb=f((WO,mb)=>{"use strict";var hu=se(),lk=Yi(),dk=Math.floor,du=hu("".charAt),pk=hu("".replace),pu=hu("".slice),hk=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,fk=/\$([$&'`]|\d{1,2})/g;mb.exports=function(r,e,t,i,a,s){var n=t+r.length,o=i.length,c=fk;return a!==void 0&&(a=lk(a),c=hk),pk(s,c,function(u,d){var l;switch(du(d,0)){case"$":return"$";case"&":return r;case"`":return pu(e,0,t);case"'":return pu(e,n);case"<":l=a[pu(d,1,-1)];break;default:var p=+d;if(p===0)return u;if(p>o){var h=dk(p/10);return h===0?u:h<=o?i[h-1]===void 0?du(d,1):i[h-1]+du(d,1):u}l=i[p-1]}return l===void 0?"":l})}});var vb=f(()=>{"use strict";var mk=Pe(),bk=ge(),mu=se(),gb=qi(),gk=U(),Sk=ri(),vk=ob(),Ri=cb(),yk=Gi(),Tk=fb(),Ik=bb(),Ek=te(),xk=Ne(),Pk=Ek("replace"),Ak=TypeError,fu=mu("".indexOf),kk=mu("".replace),Sb=mu("".slice),wk=Math.max;mk({target:"String",proto:!0},{replaceAll:function(e,t){var i=gb(this),a,s,n,o,c,u,d,l,p,h,m=0,b="";if(!Sk(e)){if(a=vk(e),a&&(s=Ri(gb(Tk(e))),!~fu(s,"g")))throw new Ak("`.replaceAll` does not allow non-global regexes");if(n=yk(e,Pk),n)return bk(n,e,i,t);if(xk&&a)return kk(Ri(i),e,t)}for(o=Ri(i),c=Ri(e),u=gk(t),u||(t=Ri(t)),d=c.length,l=wk(1,d),p=fu(o,c);p!==-1;)h=u?Ri(t(c,p,o)):Ik(c,o,p,[],void 0,t),b+=Sb(o,m,p)+h,m=p+d,p=p+l>o.length?-1:fu(o,c,p+l);return m<o.length&&(b+=Sb(o,m)),b}})});var Tb=f((zO,yb)=>{"use strict";ab();sb();vb();var Rk=rs();yb.exports=Rk("String","replaceAll")});var Eb=f((KO,Ib)=>{"use strict";var Lk=Tb();Ib.exports=Lk});var Pb=f((JO,xb)=>{"use strict";var $k=Eb();xb.exports=$k});var Ju="2.0.114-dev.4cbe9ebd.0";var ae=(a=>(a.STOPPED="stopped",a.READY="ready",a.PLAYING="playing",a.PAUSED="paused",a))(ae||{}),mt=(T=>(T.MPEG="MPEG",T.DASH="DASH",T.DASH_SEP="DASH_SEP",T.DASH_SEP_VK="DASH_SEP",T.DASH_WEBM="DASH_WEBM",T.DASH_WEBM_AV1="DASH_WEBM_AV1",T.DASH_STREAMS="DASH_STREAMS",T.DASH_WEBM_VK="DASH_WEBM",T.DASH_ONDEMAND="DASH_ONDEMAND",T.DASH_ONDEMAND_VK="DASH_ONDEMAND",T.DASH_LIVE="DASH_LIVE",T.DASH_LIVE_CMAF="DASH_LIVE_CMAF",T.DASH_LIVE_WEBM="DASH_LIVE_WEBM",T.HLS="HLS",T.HLS_ONDEMAND="HLS_ONDEMAND",T.HLS_JS="HLS",T.HLS_LIVE="HLS_LIVE",T.HLS_LIVE_CMAF="HLS_LIVE_CMAF",T.WEB_RTC_LIVE="WEB_RTC_LIVE",T))(mt||{});var Ta=(a=>(a.NOT_AVAILABLE="NOT_AVAILABLE",a.AVAILABLE="AVAILABLE",a.CONNECTING="CONNECTING",a.CONNECTED="CONNECTED",a))(Ta||{}),Qs=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Qs||{});var zs=(n=>(n.NONE="none",n.INLINE="inline",n.FULLSCREEN="fullscreen",n.SECOND_SCREEN="second_screen",n.PIP="pip",n.INVISIBLE="invisible",n))(zs||{});import{assertNever as rc,assertNonNullable as Jg,isNonNullable as Ia,ValueSubject as Ks,Subject as Xg,Subscription as Zg,merge as eS,observableFrom as tS,fromEvent as Zu,map as ec,tap as tc,filterChanged as iS,isNullable as Js,ErrorCategory as ic}from"@vkontakte/videoplayer-shared";var Xu=r=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",r),i.onload=()=>e,i.onerror=()=>t,document.body.appendChild(i)});var Ea=class{constructor(e){this.connection$=new Ks(void 0);this.castState$=new Ks("NOT_AVAILABLE");this.errorEvent$=new Xg;this.realCastState$=new Ks("NOT_AVAILABLE");this.subscription=new Zg;this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastInitializer");let t="chrome"in window;if(this.log({message:`[constructor] receiverApplicationId: ${this.params.receiverApplicationId}, isDisabled: ${this.params.isDisabled}, isSupported: ${t}`}),e.isDisabled||!t)return;let i=Ia(window.chrome?.cast),a=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=s=>{delete window.__onGCastApiAvailable,s&&this.initializeCastApi()},a||Xu("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:ic.NETWORK,message:"Script loading failed!"})))}connect(){cast.framework.CastContext.getInstance()?.requestSession()}disconnect(){cast.framework.CastContext.getInstance()?.getCurrentSession()?.endSession(!0)}stopMedia(){return new Promise((e,t)=>{cast.framework.CastContext.getInstance()?.getCurrentSession()?.getMediaSession()?.stop(new chrome.cast.media.StopRequest,e,t)})}toggleConnection(){Ia(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();Js(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();Js(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(Zu(i,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(a=>{switch(a.sessionState){case cast.framework.SessionState.SESSION_STARTED:case cast.framework.SessionState.SESSION_STARTING:case cast.framework.SessionState.SESSION_RESUMED:this.contentId=i.getCurrentSession()?.getMediaSession()?.media?.contentId;break;case cast.framework.SessionState.NO_SESSION:case cast.framework.SessionState.SESSION_ENDING:case cast.framework.SessionState.SESSION_ENDED:case cast.framework.SessionState.SESSION_START_FAILED:this.contentId=void 0;break;default:return rc(a.sessionState)}})).add(eS(Zu(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(tc(a=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(a)}`})}),ec(a=>a.castState)),tS([i.getCastState()])).pipe(iS(),ec(rS),tc(a=>{this.log({message:`realCastState$: ${a}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(a=>{let s=a==="CONNECTED",n=Ia(this.connection$.getValue());if(s&&!n){let o=i.getCurrentSession();Jg(o);let c=o.getCastDevice(),u=o.getMediaSession()?.media?.contentId;(Js(u)||u===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:c}))}else!s&&n&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(a==="CONNECTED"?Ia(this.connection$.getValue())?"CONNECTED":"AVAILABLE":a)}))}initializeCastApi(){let e,t,i;try{e=cast.framework.CastContext.getInstance(),t=chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,i=chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}catch{return}try{e.setOptions({receiverApplicationId:this.params.receiverApplicationId??t,autoJoinPolicy:i}),this.initListeners()}catch(a){this.errorEvent$.next({id:"ChromecastInitializer",category:ic.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:a})}}},rS=r=>{switch(r){case cast.framework.CastState.NO_DEVICES_AVAILABLE:return"NOT_AVAILABLE";case cast.framework.CastState.NOT_CONNECTED:return"AVAILABLE";case cast.framework.CastState.CONNECTING:return"CONNECTING";case cast.framework.CastState.CONNECTED:return"CONNECTED";default:return rc(r)}};var Ig=Ye(Xn(),1);var Uf=Ye(as(),1);import{assertNever as Cf}from"@vkontakte/videoplayer-shared";var J=(r,e=0,t=0)=>{switch(t){case 0:return r.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return r;let i=new URL(r);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(r);return!i.searchParams.get("offset_p")&&e===0?r:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:Cf(t)}return r},_o=(r,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(r);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(r);return Number(t.searchParams.get("offset_p")??0)}default:Cf(e)}};var E=(r,e,t=!1)=>{let i=r.getTransition();(t||!i||i.to===e)&&r.setState(e)};import{isNonNullable as pP,Subject as ss,merge as Df}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new ss;this.transitionEnded$=new ss;this.transitionUpdated$=new ss;this.forceChanged$=new ss;this.stateChangeStarted$=Df(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=Df(this.transitionEnded$,this.forceChanged$);this.state=e,this.prevState=void 0}setState(e){let t=this.transition,i=this.state;this.transition=void 0,this.prevState=i,this.state=e,t?t.to===e?this.transitionEnded$.next(t):this.forceChanged$.next({from:t.from,to:e,canceledTransition:t}):this.forceChanged$.next({from:i,to:e,canceledTransition:t})}startTransitionTo(e){let t=this.transition,i=this.state;i===e||pP(t)&&t.to===e||(this.prevState=i,this.state=e,t?(this.transition={from:t.from,to:e,canceledTransition:t},this.transitionUpdated$.next(this.transition)):(this.transition={from:i,to:e},this.transitionStarted$.next(this.transition)))}getTransition(){return this.transition}getState(){return this.state}getPrevState(){return this.prevState}};import{assertNever as hP}from"@vkontakte/videoplayer-shared";var Bf=r=>{switch(r){case"MPEG":case"DASH":case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":case"HLS":case"HLS_ONDEMAND":return!1;case"DASH_LIVE":case"DASH_LIVE_CMAF":case"HLS_LIVE":case"HLS_LIVE_CMAF":case"DASH_LIVE_WEBM":case"WEB_RTC_LIVE":return!0;default:return hP(r)}};import{assertNever as vi,assertNonNullable as _t,debounce as Of,ErrorCategory as Vf,fromEvent as Nt,isNonNullable as _f,map as Nf,merge as Ff,observableFrom as fP,Subject as mP,Subscription as No,timeout as bP,getHighestQuality as gP}from"@vkontakte/videoplayer-shared";var SP=5,vP=5,yP=500,qf=7e3,lr=class{constructor(e){this.subscription=new No;this.loadMediaTimeoutSubscription=new No;this.videoState=new $("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),a=this.params.desiredState.playbackState.getTransition(),s=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${i}; desiredPlaybackStateTransition: ${this.params.desiredState.playbackState.getTransition()}; seekState: ${JSON.stringify(s)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(a?.to!=="paused"&&s.state==="requested"&&e!=="stopped"){this.seek(s.position/1e3);return}switch(i){case"ready":{switch(e){case"playing":case"paused":case"ready":break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:vi(e)}break}case"playing":{switch(e){case"playing":break;case"paused":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"ready":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:vi(e)}break}case"paused":{switch(e){case"playing":this.videoState.startTransitionTo("paused"),this.params.connection.remotePlayerController.playOrPause();break;case"paused":break;case"ready":this.videoState.startTransitionTo("paused"),this.videoState.setState("paused");break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:vi(e)}break}default:vi(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(Bf(e.format)),this.params.output.isAudioAvailable$.next(!0),this.handleRemoteVolumeChange({volume:this.params.connection.remotePlayer.volumeLevel,muted:this.params.connection.remotePlayer.isMuted});let t=this.params.connection.session.getMediaSession();t&&this.restoreSession(t),this.subscribe()}destroy(){this.log({message:"[destroy]"}),this.subscription.unsubscribe()}subscribe(){this.subscription.add(this.loadMediaTimeoutSubscription);let e=new No;this.subscription.add(e),this.subscription.add(Ff(this.videoState.stateChangeStarted$.pipe(Nf(a=>`stateChangeStarted$ ${JSON.stringify(a)}`)),this.videoState.stateChangeEnded$.pipe(Nf(a=>`stateChangeEnded$ ${JSON.stringify(a)}`))).subscribe(a=>this.log({message:`[videoState] ${a}`})));let t=(a,s)=>this.subscription.add(a.subscribe(s));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let a=new mP;e.add(a.pipe(Of(yP)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let s=NaN;e.add(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED).subscribe(n=>{this.logRemoteEvent(n);let o=n.value;this.params.output.position$.next(o),(this.params.desiredState.seekState.getState().state==="applying"||Math.abs(o-s)>SP)&&a.next(o),s=o})),e.add(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(n=>{this.logRemoteEvent(n),this.params.output.duration$.next(n.value)}))}t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),a=>{this.logRemoteEvent(a),a.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),a=>{this.logRemoteEvent(a),a.value?this.handleRemotePause():this.handleRemotePlay()}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),a=>{this.logRemoteEvent(a);let{remotePlayer:s}=this.params.connection,n=a.value,o=this.params.output.isBuffering$.getValue(),c=n===chrome.cast.media.PlayerState.BUFFERING;switch(o!==c&&this.params.output.isBuffering$.next(c),n){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&s.duration-s.currentTime<vP&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),E(this.params.desiredState.playbackState,"stopped");break;case chrome.cast.media.PlayerState.PAUSED:{this.handleRemotePause();break}case chrome.cast.media.PlayerState.PLAYING:this.handleRemotePlay();break;case chrome.cast.media.PlayerState.BUFFERING:break;default:vi(n)}}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),a=>{this.logRemoteEvent(a),this.handleRemoteVolumeChange({volume:a.value})}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),a=>{this.logRemoteEvent(a),this.handleRemoteVolumeChange({muted:a.value})});let i=Ff(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,fP(["init"])).pipe(Of(0));t(i,this.syncPlayback)}restoreSession(e){this.log({message:"restoreSession"});let{remotePlayer:t}=this.params.connection;if(e.playerState!==chrome.cast.media.PlayerState.IDLE){t.isPaused?(this.videoState.setState("paused"),E(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),E(this.params.desiredState.playbackState,"playing"));let i=this.params.output.isLive$.getValue();this.params.output.duration$.next(i?0:t.duration),this.params.output.position$.next(i?0:t.currentTime),this.params.desiredState.seekState.setState({state:"none"})}}prepare(){let e=this.params.format;this.log({message:`[prepare] format: ${e}`});let t=this.createMediaInfo(e),i=this.createLoadRequest(t);this.loadMedia(i)}handleRemotePause(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="paused"||e==="playing")&&(this.videoState.setState("paused"),E(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),E(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&E(this.params.desiredState.playbackState,"ready")}handleRemoteStop(){this.videoState.getState()!=="stopped"&&this.videoState.setState("stopped")}handleRemoteVolumeChange(e){let t=this.params.output.volume$.getValue(),i={volume:e.volume??t.volume,muted:e.muted??t.muted};(i.volume!==t.volume||i.muted!==i.muted)&&this.params.output.volume$.next(i)}seek(e){this.params.output.willSeekEvent$.next();let{remotePlayer:t,remotePlayerController:i}=this.params.connection;t.currentTime=e,i.seek()}stop(){let{remotePlayerController:e}=this.params.connection;e.stop()}createMediaInfo(e){let t=this.params.source,i,a,s;switch(e){case"MPEG":{let u=t[e];_t(u);let d=gP(Object.keys(u));_t(d);let l=u[d];_t(l),i=l,a="video/mp4",s=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let u=t[e];_t(u),i=u.url,a="application/x-mpegurl",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":{let u=t[e];_t(u),i=u.url,a="application/dash+xml",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let u=t[e];_t(u),i=u.url,a="application/dash+xml",s=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let u=t[e];_t(u),i=J(u.url),a="application/x-mpegurl",s=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let u="Unsupported format for Chromecast",d=new Error(u);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:Vf.VIDEO_PIPELINE,message:u,thrown:d}),d}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return vi(e)}let n=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,a);n.contentUrl=i,n.streamType=s,n.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:c}=this.params.meta;return _f(o)&&(n.metadata.title=o),_f(c)&&(n.metadata.subtitle=c),n}createLoadRequest(e){let t=new chrome.cast.media.LoadRequest(e);t.autoplay=!1;let i=this.params.desiredState.seekState.getState();return i.state==="applying"||i.state==="requested"?t.currentTime=this.params.output.isLive$.getValue()?0:i.position/1e3:t.currentTime=0,t}loadMedia(e){let t=this.params.connection.session.loadMedia(e),i=new Promise((a,s)=>{this.loadMediaTimeoutSubscription.add(bP(qf).subscribe(()=>s(`timeout(${qf})`)))});(0,Uf.default)(Promise.race([t,i]).then(()=>{this.log({message:`[loadMedia] completed, format: ${this.params.format}`}),this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.handleRemoteReady()},a=>{let s=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${a}`;this.log({message:s}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:Vf.VIDEO_PIPELINE,message:s,thrown:a})}),()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as jf}from"@vkontakte/videoplayer-shared";import{clearVideoElement as TP}from"@vkontakte/videoplayer-shared";var Hf=r=>{try{r.pause(),r.playbackRate=0,TP(r),r.remove()}catch(e){console.error(e)}};import{fromEvent as IP,Subscription as EP}from"@vkontakte/videoplayer-shared";var Fo=class{constructor(){this.attribute="data-pool-reused"}get(e){return e.hasAttribute(this.attribute)}set(e,t){e.toggleAttribute(this.attribute,t)}delete(e){e.removeAttribute(this.attribute)}},qo=window.WeakMap?new WeakMap:new Fo,Uo=window.WeakMap?new WeakMap:new Map,xP=(r,e=20)=>{let t=0;return IP(r,"ratechange").subscribe(i=>{t++,t>=e&&(r.currentTime=r.currentTime,t=0)})},ne=(r,{audioVideoSyncRate:e})=>{let t=r.querySelector("video"),i=!!t;t?jf(t):(t=document.createElement("video"),r.appendChild(t)),qo.set(t,i);let a=new EP;return a.add(xP(t,e)),Uo.set(t,a),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},oe=r=>{Uo.get(r)?.unsubscribe(),Uo.delete(r);let t=qo.get(r);qo.delete(r),t?jf(r):Hf(r)};import{assertNonNullable as dr,isNonNullable as Ke,isNullable as kP,fromEvent as yi,merge as Gf,observableFrom as Wf,filterChanged as Yf,map as pr,Subject as Qf,Subscription as wP,ValueSubject as RP,ErrorCategory as LP}from"@vkontakte/videoplayer-shared";import{isNonNullable as Ho,isNullable as PP,Subscription as AP}from"@vkontakte/videoplayer-shared";var ns=(r,e,t,{equal:i=(n,o)=>n===o,changed$:a,onError:s}={})=>{let n=r.getState(),o=e(),c=PP(a),u=new AP;return a&&u.add(a.subscribe(d=>{let l=r.getState();i(d,l)&&r.setState(d)},s)),i(o,n)||(t(n),c&&r.setState(n)),u.add(r.stateChangeStarted$.subscribe(d=>{t(d.to),c&&r.setState(d.to)},s)),u},ze=(r,e,t)=>ns(e,()=>r.loop,i=>{Ho(i)&&(r.loop=i)},{onError:t}),ue=(r,e,t,i)=>ns(e,()=>({muted:r.muted,volume:r.volume}),a=>{Ho(a)&&(r.muted=a.muted,r.volume=a.volume)},{equal:(a,s)=>a===s||a?.muted===s?.muted&&a?.volume===s?.volume,changed$:t,onError:i}),Ae=(r,e,t,i)=>ns(e,()=>r.playbackRate,a=>{Ho(a)&&(r.playbackRate=a)},{changed$:t,onError:i}),gt=ns;var $P=r=>["__",r.language,r.label].join("|"),MP=(r,e)=>{if(r.id===e)return!0;let[t,i,a]=e.split("|");return r.language===i&&r.label===a},jo=class r{constructor(){this.available$=new Qf;this.current$=new RP(void 0);this.error$=new Qf;this.subscription=new wP;this.externalTracks=new Map;this.internalTracks=new Map}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let a=s=>{this.error$.next({id:"TextTracksManager",category:LP.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:s})};this.subscription.add(this.available$.subscribe(i.availableTextTracks$)),this.subscription.add(this.current$.subscribe(i.currentTextTrack$)),this.subscription.add(this.error$.subscribe(i.error$)),this.subscription.add(gt(t.internalTextTracks,()=>Object.values(this.internalTracks),s=>{Ke(s)&&this.setInternal(s)},{equal:(s,n)=>Ke(s)&&Ke(n)&&s.length===n.length&&s.every(({id:o},c)=>o===n[c].id),changed$:this.available$.pipe(pr(s=>s.filter(({type:n})=>n==="internal"))),onError:a})),this.subscription.add(gt(t.externalTextTracks,()=>Object.values(this.externalTracks),s=>{Ke(s)&&this.setExternal(s)},{equal:(s,n)=>Ke(s)&&Ke(n)&&s.length===n.length&&s.every(({id:o},c)=>o===n[c].id),changed$:this.available$.pipe(pr(s=>s.filter(({type:n})=>n==="external"))),onError:a})),this.subscription.add(gt(t.currentTextTrack,()=>{if(this.video)return;let s=this.htmlTextTracksAsArray().find(({mode:n})=>n==="showing");return s&&this.htmlTextTrackToITextTrack(s).id},s=>this.select(s),{changed$:this.current$,onError:a})),this.subscription.add(gt(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let s of this.htmlTextTracksAsArray())this.applyCueSettings(s.cues),this.applyCueSettings(s.activeCues)}))}subscribe(){dr(this.video);let{textTracks:e}=this.video;this.subscription.add(yi(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(Gf(yi(e,"addtrack"),yi(e,"removetrack"),Wf(["init"])).pipe(pr(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),Yf((i,a)=>i.length===a.length&&i.every(({id:s},n)=>s===a[n].id))).subscribe(this.available$)),this.subscription.add(Gf(yi(e,"change"),Wf(["init"])).pipe(pr(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),pr(i=>i&&this.htmlTextTrackToITextTrack(i).id),Yf()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(yi(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let a=s=>{let n=s.target?.cues??null;n&&n.length&&(this.applyCueSettings(s.target?.cues??null),s.target?.removeEventListener("cuechange",a))};i.track?.addEventListener("cuechange",a)})),this.subscription.add(yi(e,"removetrack").subscribe(i=>{i.track?.removeEventListener("cuechange",t)}))}applyCueSettings(e){if(!e||!e.length)return;let t=this.cueSettings.getState();for(let i of Array.from(e)){let a=i;Ke(t.align)&&(a.align=t.align),Ke(t.position)&&(a.position=t.position),Ke(t.size)&&(a.size=t.size),Ke(t.line)&&(a.line=t.line)}}htmlTextTracksAsArray(e=!1){dr(this.video);let t=[...this.video.textTracks];return e?t:t.filter(r.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,a=e.id?e.id:$P(e),s=this.externalTracks.has(a),n=a.includes("auto");return s?{id:a,type:"external",isAuto:n,language:t,label:i,url:this.externalTracks.get(a)?.url}:{id:a,type:"internal",isAuto:n,language:t,label:i,url:this.internalTracks.get(a)?.url}}static isHealthyTrack(e){return!(e.kind==="metadata"||e.groupId||e.id===""&&e.label===""&&e.language==="")}setExternal(e){this.internalTracks.size>0&&Array.from(this.internalTracks).forEach(([,t])=>this.detach(t)),e.filter(({id:t})=>!this.externalTracks.has(t)).forEach(t=>this.attach(t)),Array.from(this.externalTracks).filter(([t])=>!e.find(i=>i.id===t)).forEach(([,t])=>this.detach(t))}setInternal(e){let t=[...this.externalTracks];e.filter(({id:i,language:a,isAuto:s})=>!this.internalTracks.has(i)&&!t.some(([,n])=>n.language===a&&n.isAuto===s)).forEach(i=>this.attach(i)),Array.from(this.internalTracks).filter(([i])=>!e.find(a=>a.id===i)).forEach(([,i])=>this.detach(i))}select(e){dr(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(kP(e)||!MP(t,e))&&(t.mode="disabled")}destroy(){if(this.subscription.unsubscribe(),this.video)for(let e of Array.from(this.video.getElementsByTagName("track"))){let t=e.getAttribute("id");t&&this.externalTracks.has(t)&&this.video.removeChild(e)}this.externalTracks.clear()}attach(e){dr(this.video);let t=document.createElement("track");t.setAttribute("src",e.url),t.setAttribute("id",e.id),e.label&&t.setAttribute("label",e.label),e.language&&t.setAttribute("srclang",e.language),e.type==="external"?this.externalTracks.set(e.id,e):e.type==="internal"&&this.internalTracks.set(e.id,e),this.video.appendChild(t)}detach(e){dr(this.video);let t=Array.prototype.find.call(this.video.getElementsByTagName("track"),i=>i.getAttribute("id")===e.id);t&&this.video.removeChild(t),e.type==="external"?this.externalTracks.delete(e.id):e.type==="internal"&&this.internalTracks.delete(e.id)}},ke=jo;var at=class{constructor(){this.pausedTime=0;this.streamOffset=0;this.pauseTimestamp=0}getTotalPausedTime(){return this.pausedTime+this.getCurrentPausedTime()}getCurrentPausedTime(){return this.pauseTimestamp>0?Date.now()-this.pauseTimestamp:0}getStreamOffset(){return this.streamOffset}getTotalOffset(){return this.getTotalPausedTime()+this.streamOffset}pause(){this.pauseTimestamp===0&&(this.pauseTimestamp=Date.now())}resume(){this.pauseTimestamp>0&&(this.pausedTime+=this.getCurrentPausedTime(),this.pauseTimestamp=0)}resetTo(e,t=!1){this.streamOffset=e,this.pauseTimestamp=0,this.pausedTime=0,t&&this.pause()}};var zf=r=>{let e=r;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Go=r=>{let e=zf(r);return!!(e&&e.fullscreenElement&&e.fullscreenElement===r)},Kf=r=>{let e=zf(r);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===r)};import{fromEvent as we,map as St,merge as Xf,filterChanged as DP,isNonNullable as Zf,Subject as BP,filter as em,mapTo as tm,combine as OP,once as VP,ErrorCategory as _P,ValueSubject as im,clientChecker as NP}from"@vkontakte/videoplayer-shared";var CP=3,Jf=(r,e,t=CP)=>{let i=0,a=0;for(let s=0;s<r.length;s++){let n=r.start(s),o=r.end(s);if(n<=e&&e<=o){if(i=n,a=o,!t)return{from:i,to:a};for(let c=s-1;c>=0;c--)r.end(c)+t>=i&&(i=r.start(c));for(let c=s+1;c<r.length;c++)r.start(c)-t<=a&&(a=r.end(c))}}return{from:i,to:a}};var ce=r=>{let e=T=>we(r,T).pipe(tm(void 0)),i=Xf(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(T=>we(r,T))).pipe(St(T=>T.type==="ended"?r.readyState<2:r.readyState<3),DP()),a=Xf(we(r,"progress"),we(r,"timeupdate")).pipe(St(()=>Jf(r.buffered,r.currentTime))),s=NP.isSafari?OP({play:e("play").pipe(VP()),playing:e("playing")}).pipe(tm(void 0)):e("playing"),n=we(r,"volumechange").pipe(St(()=>({muted:r.muted,volume:r.volume}))),o=we(r,"ratechange").pipe(St(()=>r.playbackRate)),c=we(r,"error").pipe(em(()=>!!(r.error||r.played.length)),St(()=>{let T=r.error;return{id:T?`MediaError#${T.code}`:"HtmlVideoError",category:_P.VIDEO_PIPELINE,message:T?T.message:"Error event from HTML video element",thrown:r.error??void 0}})),u=we(r,"timeupdate").pipe(St(()=>r.currentTime)),d=new BP,l=.3,p;u.subscribe(T=>{r.loop&&Zf(p)&&Zf(T)&&p>=r.duration-l&&T<=l&&d.next(p),p=T});let h=e("pause").pipe(em(()=>!r.error&&p!==r.duration)),m=we(r,"enterpictureinpicture"),b=we(r,"leavepictureinpicture"),g=new im(Kf(r));m.subscribe(()=>g.next(!0)),b.subscribe(()=>g.next(!1));let y=new im(Go(r));return we(r,"fullscreenchange").pipe(St(()=>Go(r))).subscribe(y),{playing$:s,pause$:h,canplay$:e("canplay"),ended$:e("ended"),looped$:d,error$:c,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:u,durationChange$:we(r,"durationchange").pipe(St(()=>r.duration)),isBuffering$:i,currentBuffer$:a,volumeState$:n,playbackRateState$:o,inPiP$:g,inFullscreen$:y}};import{VideoQuality as vt}from"@vkontakte/videoplayer-shared";var yt=r=>{switch(r){case"mobile":return vt.Q_144P;case"lowest":return vt.Q_240P;case"low":return vt.Q_360P;case"sd":case"medium":return vt.Q_480P;case"hd":case"high":return vt.Q_720P;case"fullhd":case"full":return vt.Q_1080P;case"quadhd":case"quad":return vt.Q_1440P;case"ultrahd":case"ultra":return vt.Q_2160P}};var Ft=Ye(hr(),1);import{isNonNullable as le,isNullable as Yo,now as bm,isHigher as Qo,isHigherOrEqual as pm,isInvariantQuality as hm,isLower as zo,isLowerOrEqual as fm,videoSizeToQuality as QP,assertNotEmptyArray as gm,assertNonNullable as zP}from"@vkontakte/videoplayer-shared";var Wo=!1,st={},cm=r=>{Wo=r},lm=()=>{st={}},dm=r=>{r(st)},fr=(r,e)=>{Wo&&(st.meta=st.meta??{},st.meta[r]=e)},ie=class{constructor(e){this.name=e}next(e){if(!Wo)return;st.series=st.series??{};let t=st.series[this.name]??[];t.push([Date.now(),e]),st.series[this.name]=t}};var KP=new ie("best_bitrate"),Sm=(r,e,t)=>(e-t)*Math.pow(2,-10*r)+t;var Ko=r=>(e,t)=>r*(Number(e.bitrate)-Number(t.bitrate)),mr=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=bm()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},vm='Assertion "ABR Tracks is empty array" failed',os=(r,e,t,i)=>{let a=[...e].sort(Ko(1)),s=[...t].sort(Ko(1)),n=s.filter(c=>le(c.bitrate)&&le(r.bitrate)?r.bitrate/c.bitrate>i:!0),o=(0,Ft.default)(s,Math.round(s.length*a.indexOf(r)/(a.length+1)))??(0,Ft.default)(s,-1);return o&&n.includes(o)?o:n.length?(0,Ft.default)(n,-1):(0,Ft.default)(s,0)},mm=r=>"quality"in r,ym=(r,e,t,i)=>{let a=t&&i&&i.history[t.id]&&bm()-i.history[t.id]<=r.trackCooldown&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!a&&i.recordSelection(t),a&&i?.last){let s=i.last;i?.recordSwitch(s);let n=mm(s)?"video":"audio",o=mm(s)?s.quality:s.bitrate;return e({message:`
7
7
  [last ${n} selected] ${o}
8
8
  `}),s}return i?.recordSwitch(t),t},Tt=(r,{container:e,throughput:t,tuning:i,limits:a,reserve:s=0,forwardBufferHealth:n,playbackRate:o,current:c,history:u,visible:d,droppedVideoMaxQualityLimit:l,abrLogger:p})=>{gm(r,vm);let h=window.devicePixelRatio??1,m=i.usePixelRatio?i.pixelRatioMultiplier*(h-1)+1:1,b=i.limitByContainer&&e&&e.width>0&&e.height>0&&{width:e.width*m*i.containerSizeFactor,height:e.height*m*i.containerSizeFactor},g=b&&QP(b),y=i.considerPlaybackRate&&le(o)?o:1,A=r.filter(v=>!hm(v.quality)).sort((v,R)=>Qo(v.quality,R.quality)?-1:1),T=(0,Ft.default)(A,-1)?.quality,S=(0,Ft.default)(A,0)?.quality,I=Yo(a)||le(a.min)&&le(a.max)&&zo(a.max,a.min)||le(a.min)&&S&&Qo(a.min,S)||le(a.max)&&T&&zo(a.max,T),w=y*Sm(n??.5,i.bitrateFactorAtEmptyBuffer,i.bitrateFactorAtFullBuffer),L={},V=A.filter(v=>{if(!(g?zo(v.quality,g):!0))return L[v.quality]="FitsContainer",!1;if(!(le(t)&&isFinite(t)&&le(v.bitrate)?t-s>=v.bitrate*w:!0))return L[v.quality]="FitsThroughput",!1;if(i.lazyQualitySwitch&&le(i.minBufferToSwitchUp)&&c&&!hm(c.quality)&&(n??0)<i.minBufferToSwitchUp&&Qo(v.quality,c.quality))return L[v.quality]="Buffer",!1;if(!!l&&pm(v.quality,l))return L[v.quality]="DroppedFramesLimit",!1;let x=I||(Yo(a.max)||fm(v.quality,a.max))&&(Yo(a.min)||pm(v.quality,a.min)),k=le(d)&&!d?fm(v.quality,i.backgroundVideoQualityLimit):!0;return!x||!k?(L[v.quality]="FitsQualityLimits",!1):!0})[0];V&&V.bitrate&&KP.next(V.bitrate);let _=V??A[Math.ceil((A.length-1)/2)]??r[0];return _.quality!==u?.last?.quality&&p({message:`
9
9
  [VIDEO TRACKS ABR]
package/evergreen.esm.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
- * @vkontakte/videoplayer-core v2.0.114-dev.478b25ab.0
3
- * Mon, 14 Oct 2024 08:56:46 GMT
2
+ * @vkontakte/videoplayer-core v2.0.114-dev.4cbe9ebd.0
3
+ * Tue, 15 Oct 2024 07:33:42 GMT
4
4
  * https://st.mycdn.me/static/vkontakte-videoplayer/2-0-114/doc/
5
5
  */
6
- var qa="2.0.114-dev.478b25ab.0";var ee=(r=>(r.STOPPED="stopped",r.READY="ready",r.PLAYING="playing",r.PAUSED="paused",r))(ee||{}),Ye=(v=>(v.MPEG="MPEG",v.DASH="DASH",v.DASH_SEP="DASH_SEP",v.DASH_SEP_VK="DASH_SEP",v.DASH_WEBM="DASH_WEBM",v.DASH_WEBM_AV1="DASH_WEBM_AV1",v.DASH_STREAMS="DASH_STREAMS",v.DASH_WEBM_VK="DASH_WEBM",v.DASH_ONDEMAND="DASH_ONDEMAND",v.DASH_ONDEMAND_VK="DASH_ONDEMAND",v.DASH_LIVE="DASH_LIVE",v.DASH_LIVE_CMAF="DASH_LIVE_CMAF",v.DASH_LIVE_WEBM="DASH_LIVE_WEBM",v.HLS="HLS",v.HLS_ONDEMAND="HLS_ONDEMAND",v.HLS_JS="HLS",v.HLS_LIVE="HLS_LIVE",v.HLS_LIVE_CMAF="HLS_LIVE_CMAF",v.WEB_RTC_LIVE="WEB_RTC_LIVE",v))(Ye||{});var Ji=(r=>(r.NOT_AVAILABLE="NOT_AVAILABLE",r.AVAILABLE="AVAILABLE",r.CONNECTING="CONNECTING",r.CONNECTED="CONNECTED",r))(Ji||{}),Ur=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Ur||{});var Hr=(s=>(s.NONE="none",s.INLINE="inline",s.FULLSCREEN="fullscreen",s.SECOND_SCREEN="second_screen",s.PIP="pip",s.INVISIBLE="invisible",s))(Hr||{});import{assertNever as es,assertNonNullable as Do,isNonNullable as Xi,ValueSubject as Qr,Subject as Co,Subscription as Bo,merge as Vo,observableFrom as Oo,fromEvent as Ka,map as Ja,tap as Xa,filterChanged as No,isNullable as jr,ErrorCategory as Za}from"@vkontakte/videoplayer-shared";var za=n=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",n),i.onload=()=>e,i.onerror=()=>t,document.body.appendChild(i)});var Zi=class{constructor(e){this.connection$=new Qr(void 0);this.castState$=new Qr("NOT_AVAILABLE");this.errorEvent$=new Co;this.realCastState$=new Qr("NOT_AVAILABLE");this.subscription=new Bo;this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastInitializer");let t="chrome"in window;if(this.log({message:`[constructor] receiverApplicationId: ${this.params.receiverApplicationId}, isDisabled: ${this.params.isDisabled}, isSupported: ${t}`}),e.isDisabled||!t)return;let i=Xi(window.chrome?.cast),r=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=a=>{delete window.__onGCastApiAvailable,a&&this.initializeCastApi()},r||za("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:Za.NETWORK,message:"Script loading failed!"})))}connect(){cast.framework.CastContext.getInstance()?.requestSession()}disconnect(){cast.framework.CastContext.getInstance()?.getCurrentSession()?.endSession(!0)}stopMedia(){return new Promise((e,t)=>{cast.framework.CastContext.getInstance()?.getCurrentSession()?.getMediaSession()?.stop(new chrome.cast.media.StopRequest,e,t)})}toggleConnection(){Xi(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();jr(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();jr(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(Ka(i,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(r=>{switch(r.sessionState){case cast.framework.SessionState.SESSION_STARTED:case cast.framework.SessionState.SESSION_STARTING:case cast.framework.SessionState.SESSION_RESUMED:this.contentId=i.getCurrentSession()?.getMediaSession()?.media?.contentId;break;case cast.framework.SessionState.NO_SESSION:case cast.framework.SessionState.SESSION_ENDING:case cast.framework.SessionState.SESSION_ENDED:case cast.framework.SessionState.SESSION_START_FAILED:this.contentId=void 0;break;default:return es(r.sessionState)}})).add(Vo(Ka(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(Xa(r=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(r)}`})}),Ja(r=>r.castState)),Oo([i.getCastState()])).pipe(No(),Ja(_o),Xa(r=>{this.log({message:`realCastState$: ${r}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(r=>{let a=r==="CONNECTED",s=Xi(this.connection$.getValue());if(a&&!s){let o=i.getCurrentSession();Do(o);let d=o.getCastDevice(),u=o.getMediaSession()?.media?.contentId;(jr(u)||u===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:d}))}else!a&&s&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(r==="CONNECTED"?Xi(this.connection$.getValue())?"CONNECTED":"AVAILABLE":r)}))}initializeCastApi(){let e,t,i;try{e=cast.framework.CastContext.getInstance(),t=chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,i=chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}catch{return}try{e.setOptions({receiverApplicationId:this.params.receiverApplicationId??t,autoJoinPolicy:i}),this.initListeners()}catch(r){this.errorEvent$.next({id:"ChromecastInitializer",category:Za.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:r})}}},_o=n=>{switch(n){case cast.framework.CastState.NO_DEVICES_AVAILABLE:return"NOT_AVAILABLE";case cast.framework.CastState.NOT_CONNECTED:return"AVAILABLE";case cast.framework.CastState.CONNECTING:return"CONNECTING";case cast.framework.CastState.CONNECTED:return"CONNECTED";default:return es(n)}};import{assertNever as ts}from"@vkontakte/videoplayer-shared";var q=(n,e=0,t=0)=>{switch(t){case 0:return n.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return n;let i=new URL(n);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(n);return!i.searchParams.get("offset_p")&&e===0?n:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:ts(t)}return n},Gr=(n,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(n);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(n);return Number(t.searchParams.get("offset_p")??0)}default:ts(e)}};var T=(n,e,t=!1)=>{let i=n.getTransition();(t||!i||i.to===e)&&n.setState(e)};import{isNonNullable as Fo,Subject as er,merge as is}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new er;this.transitionEnded$=new er;this.transitionUpdated$=new er;this.forceChanged$=new er;this.stateChangeStarted$=is(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=is(this.transitionEnded$,this.forceChanged$);this.state=e,this.prevState=void 0}setState(e){let t=this.transition,i=this.state;this.transition=void 0,this.prevState=i,this.state=e,t?t.to===e?this.transitionEnded$.next(t):this.forceChanged$.next({from:t.from,to:e,canceledTransition:t}):this.forceChanged$.next({from:i,to:e,canceledTransition:t})}startTransitionTo(e){let t=this.transition,i=this.state;i===e||Fo(t)&&t.to===e||(this.prevState=i,this.state=e,t?(this.transition={from:t.from,to:e,canceledTransition:t},this.transitionUpdated$.next(this.transition)):(this.transition={from:i,to:e},this.transitionStarted$.next(this.transition)))}getTransition(){return this.transition}getState(){return this.state}getPrevState(){return this.prevState}};import{assertNever as Uo}from"@vkontakte/videoplayer-shared";var rs=n=>{switch(n){case"MPEG":case"DASH":case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":case"HLS":case"HLS_ONDEMAND":return!1;case"DASH_LIVE":case"DASH_LIVE_CMAF":case"HLS_LIVE":case"HLS_LIVE_CMAF":case"DASH_LIVE_WEBM":case"WEB_RTC_LIVE":return!0;default:return Uo(n)}};import{assertNever as At,assertNonNullable as dt,debounce as as,ErrorCategory as ss,fromEvent as lt,isNonNullable as ns,map as os,merge as us,observableFrom as Ho,Subject as Qo,Subscription as Wr,timeout as jo,getHighestQuality as Go}from"@vkontakte/videoplayer-shared";var Wo=5,Yo=5,qo=500,ds=7e3,jt=class{constructor(e){this.subscription=new Wr;this.loadMediaTimeoutSubscription=new Wr;this.videoState=new $("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),r=this.params.desiredState.playbackState.getTransition(),a=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${i}; desiredPlaybackStateTransition: ${this.params.desiredState.playbackState.getTransition()}; seekState: ${JSON.stringify(a)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(r?.to!=="paused"&&a.state==="requested"&&e!=="stopped"){this.seek(a.position/1e3);return}switch(i){case"ready":{switch(e){case"playing":case"paused":case"ready":break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:At(e)}break}case"playing":{switch(e){case"playing":break;case"paused":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"ready":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:At(e)}break}case"paused":{switch(e){case"playing":this.videoState.startTransitionTo("paused"),this.params.connection.remotePlayerController.playOrPause();break;case"paused":break;case"ready":this.videoState.startTransitionTo("paused"),this.videoState.setState("paused");break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:At(e)}break}default:At(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(rs(e.format)),this.params.output.isAudioAvailable$.next(!0),this.handleRemoteVolumeChange({volume:this.params.connection.remotePlayer.volumeLevel,muted:this.params.connection.remotePlayer.isMuted});let t=this.params.connection.session.getMediaSession();t&&this.restoreSession(t),this.subscribe()}destroy(){this.log({message:"[destroy]"}),this.subscription.unsubscribe()}subscribe(){this.subscription.add(this.loadMediaTimeoutSubscription);let e=new Wr;this.subscription.add(e),this.subscription.add(us(this.videoState.stateChangeStarted$.pipe(os(r=>`stateChangeStarted$ ${JSON.stringify(r)}`)),this.videoState.stateChangeEnded$.pipe(os(r=>`stateChangeEnded$ ${JSON.stringify(r)}`))).subscribe(r=>this.log({message:`[videoState] ${r}`})));let t=(r,a)=>this.subscription.add(r.subscribe(a));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let r=new Qo;e.add(r.pipe(as(qo)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let a=NaN;e.add(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED).subscribe(s=>{this.logRemoteEvent(s);let o=s.value;this.params.output.position$.next(o),(this.params.desiredState.seekState.getState().state==="applying"||Math.abs(o-a)>Wo)&&r.next(o),a=o})),e.add(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(s=>{this.logRemoteEvent(s),this.params.output.duration$.next(s.value)}))}t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemotePause():this.handleRemotePlay()}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),r=>{this.logRemoteEvent(r);let{remotePlayer:a}=this.params.connection,s=r.value,o=this.params.output.isBuffering$.getValue(),d=s===chrome.cast.media.PlayerState.BUFFERING;switch(o!==d&&this.params.output.isBuffering$.next(d),s){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&a.duration-a.currentTime<Yo&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),T(this.params.desiredState.playbackState,"stopped");break;case chrome.cast.media.PlayerState.PAUSED:{this.handleRemotePause();break}case chrome.cast.media.PlayerState.PLAYING:this.handleRemotePlay();break;case chrome.cast.media.PlayerState.BUFFERING:break;default:At(s)}}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({volume:r.value})}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({muted:r.value})});let i=us(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,Ho(["init"])).pipe(as(0));t(i,this.syncPlayback)}restoreSession(e){this.log({message:"restoreSession"});let{remotePlayer:t}=this.params.connection;if(e.playerState!==chrome.cast.media.PlayerState.IDLE){t.isPaused?(this.videoState.setState("paused"),T(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),T(this.params.desiredState.playbackState,"playing"));let i=this.params.output.isLive$.getValue();this.params.output.duration$.next(i?0:t.duration),this.params.output.position$.next(i?0:t.currentTime),this.params.desiredState.seekState.setState({state:"none"})}}prepare(){let e=this.params.format;this.log({message:`[prepare] format: ${e}`});let t=this.createMediaInfo(e),i=this.createLoadRequest(t);this.loadMedia(i)}handleRemotePause(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="paused"||e==="playing")&&(this.videoState.setState("paused"),T(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),T(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&T(this.params.desiredState.playbackState,"ready")}handleRemoteStop(){this.videoState.getState()!=="stopped"&&this.videoState.setState("stopped")}handleRemoteVolumeChange(e){let t=this.params.output.volume$.getValue(),i={volume:e.volume??t.volume,muted:e.muted??t.muted};(i.volume!==t.volume||i.muted!==i.muted)&&this.params.output.volume$.next(i)}seek(e){this.params.output.willSeekEvent$.next();let{remotePlayer:t,remotePlayerController:i}=this.params.connection;t.currentTime=e,i.seek()}stop(){let{remotePlayerController:e}=this.params.connection;e.stop()}createMediaInfo(e){let t=this.params.source,i,r,a;switch(e){case"MPEG":{let u=t[e];dt(u);let c=Go(Object.keys(u));dt(c);let l=u[c];dt(l),i=l,r="video/mp4",a=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let u=t[e];dt(u),i=u.url,r="application/x-mpegurl",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":{let u=t[e];dt(u),i=u.url,r="application/dash+xml",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let u=t[e];dt(u),i=u.url,r="application/dash+xml",a=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let u=t[e];dt(u),i=q(u.url),r="application/x-mpegurl",a=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let u="Unsupported format for Chromecast",c=new Error(u);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:ss.VIDEO_PIPELINE,message:u,thrown:c}),c}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return At(e)}let s=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,r);s.contentUrl=i,s.streamType=a,s.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:d}=this.params.meta;return ns(o)&&(s.metadata.title=o),ns(d)&&(s.metadata.subtitle=d),s}createLoadRequest(e){let t=new chrome.cast.media.LoadRequest(e);t.autoplay=!1;let i=this.params.desiredState.seekState.getState();return i.state==="applying"||i.state==="requested"?t.currentTime=this.params.output.isLive$.getValue()?0:i.position/1e3:t.currentTime=0,t}loadMedia(e){let t=this.params.connection.session.loadMedia(e),i=new Promise((r,a)=>{this.loadMediaTimeoutSubscription.add(jo(ds).subscribe(()=>a(`timeout(${ds})`)))});Promise.race([t,i]).then(()=>{this.log({message:`[loadMedia] completed, format: ${this.params.format}`}),this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.handleRemoteReady()},r=>{let a=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${r}`;this.log({message:a}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:ss.VIDEO_PIPELINE,message:a,thrown:r})}).finally(()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as cs}from"@vkontakte/videoplayer-shared";import{clearVideoElement as zo}from"@vkontakte/videoplayer-shared";var ls=n=>{try{n.pause(),n.playbackRate=0,zo(n),n.remove()}catch(e){console.error(e)}};import{fromEvent as Ko,Subscription as Jo}from"@vkontakte/videoplayer-shared";var Yr=class{constructor(){this.attribute="data-pool-reused"}get(e){return e.hasAttribute(this.attribute)}set(e,t){e.toggleAttribute(this.attribute,t)}delete(e){e.removeAttribute(this.attribute)}},qr=window.WeakMap?new WeakMap:new Yr,zr=window.WeakMap?new WeakMap:new Map,Xo=(n,e=20)=>{let t=0;return Ko(n,"ratechange").subscribe(i=>{t++,t>=e&&(n.currentTime=n.currentTime,t=0)})},te=(n,{audioVideoSyncRate:e})=>{let t=n.querySelector("video"),i=!!t;t?cs(t):(t=document.createElement("video"),n.appendChild(t)),qr.set(t,i);let r=new Jo;return r.add(Xo(t,e)),zr.set(t,r),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},ie=n=>{zr.get(n)?.unsubscribe(),zr.delete(n);let t=qr.get(n);qr.delete(n),t?cs(n):ls(n)};import{assertNonNullable as Gt,isNonNullable as De,isNullable as tu,fromEvent as Pt,merge as ps,observableFrom as hs,filterChanged as ms,map as Wt,Subject as fs,Subscription as iu,ValueSubject as ru,ErrorCategory as au}from"@vkontakte/videoplayer-shared";import{isNonNullable as Kr,isNullable as Zo,Subscription as eu}from"@vkontakte/videoplayer-shared";var tr=(n,e,t,{equal:i=(s,o)=>s===o,changed$:r,onError:a}={})=>{let s=n.getState(),o=e(),d=Zo(r),u=new eu;return r&&u.add(r.subscribe(c=>{let l=n.getState();i(c,l)&&n.setState(c)},a)),i(o,s)||(t(s),d&&n.setState(s)),u.add(n.stateChangeStarted$.subscribe(c=>{t(c.to),d&&n.setState(c.to)},a)),u},Re=(n,e,t)=>tr(e,()=>n.loop,i=>{Kr(i)&&(n.loop=i)},{onError:t}),re=(n,e,t,i)=>tr(e,()=>({muted:n.muted,volume:n.volume}),r=>{Kr(r)&&(n.muted=r.muted,n.volume=r.volume)},{equal:(r,a)=>r===a||r?.muted===a?.muted&&r?.volume===a?.volume,changed$:t,onError:i}),fe=(n,e,t,i)=>tr(e,()=>n.playbackRate,r=>{Kr(r)&&(n.playbackRate=r)},{changed$:t,onError:i}),qe=tr;var su=n=>["__",n.language,n.label].join("|"),nu=(n,e)=>{if(n.id===e)return!0;let[t,i,r]=e.split("|");return n.language===i&&n.label===r},Jr=class n{constructor(){this.available$=new fs;this.current$=new ru(void 0);this.error$=new fs;this.subscription=new iu;this.externalTracks=new Map;this.internalTracks=new Map}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let r=a=>{this.error$.next({id:"TextTracksManager",category:au.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:a})};this.subscription.add(this.available$.subscribe(i.availableTextTracks$)),this.subscription.add(this.current$.subscribe(i.currentTextTrack$)),this.subscription.add(this.error$.subscribe(i.error$)),this.subscription.add(qe(t.internalTextTracks,()=>Object.values(this.internalTracks),a=>{De(a)&&this.setInternal(a)},{equal:(a,s)=>De(a)&&De(s)&&a.length===s.length&&a.every(({id:o},d)=>o===s[d].id),changed$:this.available$.pipe(Wt(a=>a.filter(({type:s})=>s==="internal"))),onError:r})),this.subscription.add(qe(t.externalTextTracks,()=>Object.values(this.externalTracks),a=>{De(a)&&this.setExternal(a)},{equal:(a,s)=>De(a)&&De(s)&&a.length===s.length&&a.every(({id:o},d)=>o===s[d].id),changed$:this.available$.pipe(Wt(a=>a.filter(({type:s})=>s==="external"))),onError:r})),this.subscription.add(qe(t.currentTextTrack,()=>{if(this.video)return;let a=this.htmlTextTracksAsArray().find(({mode:s})=>s==="showing");return a&&this.htmlTextTrackToITextTrack(a).id},a=>this.select(a),{changed$:this.current$,onError:r})),this.subscription.add(qe(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let a of this.htmlTextTracksAsArray())this.applyCueSettings(a.cues),this.applyCueSettings(a.activeCues)}))}subscribe(){Gt(this.video);let{textTracks:e}=this.video;this.subscription.add(Pt(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(ps(Pt(e,"addtrack"),Pt(e,"removetrack"),hs(["init"])).pipe(Wt(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),ms((i,r)=>i.length===r.length&&i.every(({id:a},s)=>a===r[s].id))).subscribe(this.available$)),this.subscription.add(ps(Pt(e,"change"),hs(["init"])).pipe(Wt(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),Wt(i=>i&&this.htmlTextTrackToITextTrack(i).id),ms()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(Pt(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let r=a=>{let s=a.target?.cues??null;s&&s.length&&(this.applyCueSettings(a.target?.cues??null),a.target?.removeEventListener("cuechange",r))};i.track?.addEventListener("cuechange",r)})),this.subscription.add(Pt(e,"removetrack").subscribe(i=>{i.track?.removeEventListener("cuechange",t)}))}applyCueSettings(e){if(!e||!e.length)return;let t=this.cueSettings.getState();for(let i of Array.from(e)){let r=i;De(t.align)&&(r.align=t.align),De(t.position)&&(r.position=t.position),De(t.size)&&(r.size=t.size),De(t.line)&&(r.line=t.line)}}htmlTextTracksAsArray(e=!1){Gt(this.video);let t=[...this.video.textTracks];return e?t:t.filter(n.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,r=e.id?e.id:su(e),a=this.externalTracks.has(r),s=r.includes("auto");return a?{id:r,type:"external",isAuto:s,language:t,label:i,url:this.externalTracks.get(r)?.url}:{id:r,type:"internal",isAuto:s,language:t,label:i,url:this.internalTracks.get(r)?.url}}static isHealthyTrack(e){return!(e.kind==="metadata"||e.groupId||e.id===""&&e.label===""&&e.language==="")}setExternal(e){this.internalTracks.size>0&&Array.from(this.internalTracks).forEach(([,t])=>this.detach(t)),e.filter(({id:t})=>!this.externalTracks.has(t)).forEach(t=>this.attach(t)),Array.from(this.externalTracks).filter(([t])=>!e.find(i=>i.id===t)).forEach(([,t])=>this.detach(t))}setInternal(e){let t=[...this.externalTracks];e.filter(({id:i,language:r,isAuto:a})=>!this.internalTracks.has(i)&&!t.some(([,s])=>s.language===r&&s.isAuto===a)).forEach(i=>this.attach(i)),Array.from(this.internalTracks).filter(([i])=>!e.find(r=>r.id===i)).forEach(([,i])=>this.detach(i))}select(e){Gt(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(tu(e)||!nu(t,e))&&(t.mode="disabled")}destroy(){if(this.subscription.unsubscribe(),this.video)for(let e of Array.from(this.video.getElementsByTagName("track"))){let t=e.getAttribute("id");t&&this.externalTracks.has(t)&&this.video.removeChild(e)}this.externalTracks.clear()}attach(e){Gt(this.video);let t=document.createElement("track");t.setAttribute("src",e.url),t.setAttribute("id",e.id),e.label&&t.setAttribute("label",e.label),e.language&&t.setAttribute("srclang",e.language),e.type==="external"?this.externalTracks.set(e.id,e):e.type==="internal"&&this.internalTracks.set(e.id,e),this.video.appendChild(t)}detach(e){Gt(this.video);let t=Array.prototype.find.call(this.video.getElementsByTagName("track"),i=>i.getAttribute("id")===e.id);t&&this.video.removeChild(t),e.type==="external"?this.externalTracks.delete(e.id):e.type==="internal"&&this.internalTracks.delete(e.id)}},be=Jr;var Ne=class{constructor(){this.pausedTime=0;this.streamOffset=0;this.pauseTimestamp=0}getTotalPausedTime(){return this.pausedTime+this.getCurrentPausedTime()}getCurrentPausedTime(){return this.pauseTimestamp>0?Date.now()-this.pauseTimestamp:0}getStreamOffset(){return this.streamOffset}getTotalOffset(){return this.getTotalPausedTime()+this.streamOffset}pause(){this.pauseTimestamp===0&&(this.pauseTimestamp=Date.now())}resume(){this.pauseTimestamp>0&&(this.pausedTime+=this.getCurrentPausedTime(),this.pauseTimestamp=0)}resetTo(e,t=!1){this.streamOffset=e,this.pauseTimestamp=0,this.pausedTime=0,t&&this.pause()}};var bs=n=>{let e=n;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Xr=n=>{let e=bs(n);return!!(e&&e.fullscreenElement&&e.fullscreenElement===n)},gs=n=>{let e=bs(n);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===n)};import{fromEvent as ge,map as ze,merge as vs,filterChanged as uu,isNonNullable as ys,Subject as du,filter as Ts,mapTo as Is,combine as lu,once as cu,ErrorCategory as pu,ValueSubject as Es,clientChecker as hu}from"@vkontakte/videoplayer-shared";var ou=3,Ss=(n,e,t=ou)=>{let i=0,r=0;for(let a=0;a<n.length;a++){let s=n.start(a),o=n.end(a);if(s<=e&&e<=o){if(i=s,r=o,!t)return{from:i,to:r};for(let d=a-1;d>=0;d--)n.end(d)+t>=i&&(i=n.start(d));for(let d=a+1;d<n.length;d++)n.start(d)-t<=r&&(r=n.end(d))}}return{from:i,to:r}};var ae=n=>{let e=v=>ge(n,v).pipe(Is(void 0)),i=vs(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(v=>ge(n,v))).pipe(ze(v=>v.type==="ended"?n.readyState<2:n.readyState<3),uu()),r=vs(ge(n,"progress"),ge(n,"timeupdate")).pipe(ze(()=>Ss(n.buffered,n.currentTime))),a=hu.isSafari?lu({play:e("play").pipe(cu()),playing:e("playing")}).pipe(Is(void 0)):e("playing"),s=ge(n,"volumechange").pipe(ze(()=>({muted:n.muted,volume:n.volume}))),o=ge(n,"ratechange").pipe(ze(()=>n.playbackRate)),d=ge(n,"error").pipe(Ts(()=>!!(n.error||n.played.length)),ze(()=>{let v=n.error;return{id:v?`MediaError#${v.code}`:"HtmlVideoError",category:pu.VIDEO_PIPELINE,message:v?v.message:"Error event from HTML video element",thrown:n.error??void 0}})),u=ge(n,"timeupdate").pipe(ze(()=>n.currentTime)),c=new du,l=.3,p;u.subscribe(v=>{n.loop&&ys(p)&&ys(v)&&p>=n.duration-l&&v<=l&&c.next(p),p=v});let h=e("pause").pipe(Ts(()=>!n.error&&p!==n.duration)),m=ge(n,"enterpictureinpicture"),f=ge(n,"leavepictureinpicture"),S=new Es(gs(n));m.subscribe(()=>S.next(!0)),f.subscribe(()=>S.next(!1));let P=new Es(Xr(n));return ge(n,"fullscreenchange").pipe(ze(()=>Xr(n))).subscribe(P),{playing$:a,pause$:h,canplay$:e("canplay"),ended$:e("ended"),looped$:c,error$:d,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:u,durationChange$:ge(n,"durationchange").pipe(ze(()=>n.duration)),isBuffering$:i,currentBuffer$:r,volumeState$:s,playbackRateState$:o,inPiP$:S,inFullscreen$:P}};import{VideoQuality as Ke}from"@vkontakte/videoplayer-shared";var Je=n=>{switch(n){case"mobile":return Ke.Q_144P;case"lowest":return Ke.Q_240P;case"low":return Ke.Q_360P;case"sd":case"medium":return Ke.Q_480P;case"hd":case"high":return Ke.Q_720P;case"fullhd":case"full":return Ke.Q_1080P;case"quadhd":case"quad":return Ke.Q_1440P;case"ultrahd":case"ultra":return Ke.Q_2160P}};import{isNonNullable as se,isNullable as ea,now as Ms,isHigher as ta,isHigherOrEqual as Ps,isInvariantQuality as ws,isLower as ia,isLowerOrEqual as $s,videoSizeToQuality as mu,assertNotEmptyArray as Rs,assertNonNullable as fu}from"@vkontakte/videoplayer-shared";var Zr=!1,_e={},xs=n=>{Zr=n},ks=()=>{_e={}},As=n=>{n(_e)},Yt=(n,e)=>{Zr&&(_e.meta=_e.meta??{},_e.meta[n]=e)},X=class{constructor(e){this.name=e}next(e){if(!Zr)return;_e.series=_e.series??{};let t=_e.series[this.name]??[];t.push([Date.now(),e]),_e.series[this.name]=t}};var bu=new X("best_bitrate"),Ds=(n,e,t)=>(e-t)*Math.pow(2,-10*n)+t;var ra=n=>(e,t)=>n*(Number(e.bitrate)-Number(t.bitrate)),qt=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=Ms()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},Cs='Assertion "ABR Tracks is empty array" failed',ir=(n,e,t,i)=>{let r=[...e].sort(ra(1)),a=[...t].sort(ra(1)),s=a.filter(d=>se(d.bitrate)&&se(n.bitrate)?n.bitrate/d.bitrate>i:!0),o=a.at(Math.round(a.length*r.indexOf(n)/(r.length+1)))??a.at(-1);return o&&s.includes(o)?o:s.length?s.at(-1):a.at(0)},Ls=n=>"quality"in n,Bs=(n,e,t,i)=>{let r=t&&i&&i.history[t.id]&&Ms()-i.history[t.id]<=n.trackCooldown&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!r&&i.recordSelection(t),r&&i?.last){let a=i.last;i?.recordSwitch(a);let s=Ls(a)?"video":"audio",o=Ls(a)?a.quality:a.bitrate;return e({message:`
6
+ var qa="2.0.114-dev.4cbe9ebd.0";var ee=(r=>(r.STOPPED="stopped",r.READY="ready",r.PLAYING="playing",r.PAUSED="paused",r))(ee||{}),Ye=(v=>(v.MPEG="MPEG",v.DASH="DASH",v.DASH_SEP="DASH_SEP",v.DASH_SEP_VK="DASH_SEP",v.DASH_WEBM="DASH_WEBM",v.DASH_WEBM_AV1="DASH_WEBM_AV1",v.DASH_STREAMS="DASH_STREAMS",v.DASH_WEBM_VK="DASH_WEBM",v.DASH_ONDEMAND="DASH_ONDEMAND",v.DASH_ONDEMAND_VK="DASH_ONDEMAND",v.DASH_LIVE="DASH_LIVE",v.DASH_LIVE_CMAF="DASH_LIVE_CMAF",v.DASH_LIVE_WEBM="DASH_LIVE_WEBM",v.HLS="HLS",v.HLS_ONDEMAND="HLS_ONDEMAND",v.HLS_JS="HLS",v.HLS_LIVE="HLS_LIVE",v.HLS_LIVE_CMAF="HLS_LIVE_CMAF",v.WEB_RTC_LIVE="WEB_RTC_LIVE",v))(Ye||{});var Ji=(r=>(r.NOT_AVAILABLE="NOT_AVAILABLE",r.AVAILABLE="AVAILABLE",r.CONNECTING="CONNECTING",r.CONNECTED="CONNECTED",r))(Ji||{}),Ur=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Ur||{});var Hr=(s=>(s.NONE="none",s.INLINE="inline",s.FULLSCREEN="fullscreen",s.SECOND_SCREEN="second_screen",s.PIP="pip",s.INVISIBLE="invisible",s))(Hr||{});import{assertNever as es,assertNonNullable as Do,isNonNullable as Xi,ValueSubject as Qr,Subject as Co,Subscription as Bo,merge as Vo,observableFrom as Oo,fromEvent as Ka,map as Ja,tap as Xa,filterChanged as No,isNullable as jr,ErrorCategory as Za}from"@vkontakte/videoplayer-shared";var za=n=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",n),i.onload=()=>e,i.onerror=()=>t,document.body.appendChild(i)});var Zi=class{constructor(e){this.connection$=new Qr(void 0);this.castState$=new Qr("NOT_AVAILABLE");this.errorEvent$=new Co;this.realCastState$=new Qr("NOT_AVAILABLE");this.subscription=new Bo;this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastInitializer");let t="chrome"in window;if(this.log({message:`[constructor] receiverApplicationId: ${this.params.receiverApplicationId}, isDisabled: ${this.params.isDisabled}, isSupported: ${t}`}),e.isDisabled||!t)return;let i=Xi(window.chrome?.cast),r=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=a=>{delete window.__onGCastApiAvailable,a&&this.initializeCastApi()},r||za("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:Za.NETWORK,message:"Script loading failed!"})))}connect(){cast.framework.CastContext.getInstance()?.requestSession()}disconnect(){cast.framework.CastContext.getInstance()?.getCurrentSession()?.endSession(!0)}stopMedia(){return new Promise((e,t)=>{cast.framework.CastContext.getInstance()?.getCurrentSession()?.getMediaSession()?.stop(new chrome.cast.media.StopRequest,e,t)})}toggleConnection(){Xi(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();jr(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();jr(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(Ka(i,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(r=>{switch(r.sessionState){case cast.framework.SessionState.SESSION_STARTED:case cast.framework.SessionState.SESSION_STARTING:case cast.framework.SessionState.SESSION_RESUMED:this.contentId=i.getCurrentSession()?.getMediaSession()?.media?.contentId;break;case cast.framework.SessionState.NO_SESSION:case cast.framework.SessionState.SESSION_ENDING:case cast.framework.SessionState.SESSION_ENDED:case cast.framework.SessionState.SESSION_START_FAILED:this.contentId=void 0;break;default:return es(r.sessionState)}})).add(Vo(Ka(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(Xa(r=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(r)}`})}),Ja(r=>r.castState)),Oo([i.getCastState()])).pipe(No(),Ja(_o),Xa(r=>{this.log({message:`realCastState$: ${r}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(r=>{let a=r==="CONNECTED",s=Xi(this.connection$.getValue());if(a&&!s){let o=i.getCurrentSession();Do(o);let d=o.getCastDevice(),u=o.getMediaSession()?.media?.contentId;(jr(u)||u===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:d}))}else!a&&s&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(r==="CONNECTED"?Xi(this.connection$.getValue())?"CONNECTED":"AVAILABLE":r)}))}initializeCastApi(){let e,t,i;try{e=cast.framework.CastContext.getInstance(),t=chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,i=chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}catch{return}try{e.setOptions({receiverApplicationId:this.params.receiverApplicationId??t,autoJoinPolicy:i}),this.initListeners()}catch(r){this.errorEvent$.next({id:"ChromecastInitializer",category:Za.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:r})}}},_o=n=>{switch(n){case cast.framework.CastState.NO_DEVICES_AVAILABLE:return"NOT_AVAILABLE";case cast.framework.CastState.NOT_CONNECTED:return"AVAILABLE";case cast.framework.CastState.CONNECTING:return"CONNECTING";case cast.framework.CastState.CONNECTED:return"CONNECTED";default:return es(n)}};import{assertNever as ts}from"@vkontakte/videoplayer-shared";var q=(n,e=0,t=0)=>{switch(t){case 0:return n.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return n;let i=new URL(n);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(n);return!i.searchParams.get("offset_p")&&e===0?n:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:ts(t)}return n},Gr=(n,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(n);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(n);return Number(t.searchParams.get("offset_p")??0)}default:ts(e)}};var T=(n,e,t=!1)=>{let i=n.getTransition();(t||!i||i.to===e)&&n.setState(e)};import{isNonNullable as Fo,Subject as er,merge as is}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new er;this.transitionEnded$=new er;this.transitionUpdated$=new er;this.forceChanged$=new er;this.stateChangeStarted$=is(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=is(this.transitionEnded$,this.forceChanged$);this.state=e,this.prevState=void 0}setState(e){let t=this.transition,i=this.state;this.transition=void 0,this.prevState=i,this.state=e,t?t.to===e?this.transitionEnded$.next(t):this.forceChanged$.next({from:t.from,to:e,canceledTransition:t}):this.forceChanged$.next({from:i,to:e,canceledTransition:t})}startTransitionTo(e){let t=this.transition,i=this.state;i===e||Fo(t)&&t.to===e||(this.prevState=i,this.state=e,t?(this.transition={from:t.from,to:e,canceledTransition:t},this.transitionUpdated$.next(this.transition)):(this.transition={from:i,to:e},this.transitionStarted$.next(this.transition)))}getTransition(){return this.transition}getState(){return this.state}getPrevState(){return this.prevState}};import{assertNever as Uo}from"@vkontakte/videoplayer-shared";var rs=n=>{switch(n){case"MPEG":case"DASH":case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":case"HLS":case"HLS_ONDEMAND":return!1;case"DASH_LIVE":case"DASH_LIVE_CMAF":case"HLS_LIVE":case"HLS_LIVE_CMAF":case"DASH_LIVE_WEBM":case"WEB_RTC_LIVE":return!0;default:return Uo(n)}};import{assertNever as At,assertNonNullable as dt,debounce as as,ErrorCategory as ss,fromEvent as lt,isNonNullable as ns,map as os,merge as us,observableFrom as Ho,Subject as Qo,Subscription as Wr,timeout as jo,getHighestQuality as Go}from"@vkontakte/videoplayer-shared";var Wo=5,Yo=5,qo=500,ds=7e3,jt=class{constructor(e){this.subscription=new Wr;this.loadMediaTimeoutSubscription=new Wr;this.videoState=new $("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),r=this.params.desiredState.playbackState.getTransition(),a=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${i}; desiredPlaybackStateTransition: ${this.params.desiredState.playbackState.getTransition()}; seekState: ${JSON.stringify(a)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(r?.to!=="paused"&&a.state==="requested"&&e!=="stopped"){this.seek(a.position/1e3);return}switch(i){case"ready":{switch(e){case"playing":case"paused":case"ready":break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:At(e)}break}case"playing":{switch(e){case"playing":break;case"paused":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"ready":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:At(e)}break}case"paused":{switch(e){case"playing":this.videoState.startTransitionTo("paused"),this.params.connection.remotePlayerController.playOrPause();break;case"paused":break;case"ready":this.videoState.startTransitionTo("paused"),this.videoState.setState("paused");break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:At(e)}break}default:At(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(rs(e.format)),this.params.output.isAudioAvailable$.next(!0),this.handleRemoteVolumeChange({volume:this.params.connection.remotePlayer.volumeLevel,muted:this.params.connection.remotePlayer.isMuted});let t=this.params.connection.session.getMediaSession();t&&this.restoreSession(t),this.subscribe()}destroy(){this.log({message:"[destroy]"}),this.subscription.unsubscribe()}subscribe(){this.subscription.add(this.loadMediaTimeoutSubscription);let e=new Wr;this.subscription.add(e),this.subscription.add(us(this.videoState.stateChangeStarted$.pipe(os(r=>`stateChangeStarted$ ${JSON.stringify(r)}`)),this.videoState.stateChangeEnded$.pipe(os(r=>`stateChangeEnded$ ${JSON.stringify(r)}`))).subscribe(r=>this.log({message:`[videoState] ${r}`})));let t=(r,a)=>this.subscription.add(r.subscribe(a));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let r=new Qo;e.add(r.pipe(as(qo)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let a=NaN;e.add(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED).subscribe(s=>{this.logRemoteEvent(s);let o=s.value;this.params.output.position$.next(o),(this.params.desiredState.seekState.getState().state==="applying"||Math.abs(o-a)>Wo)&&r.next(o),a=o})),e.add(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(s=>{this.logRemoteEvent(s),this.params.output.duration$.next(s.value)}))}t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemotePause():this.handleRemotePlay()}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),r=>{this.logRemoteEvent(r);let{remotePlayer:a}=this.params.connection,s=r.value,o=this.params.output.isBuffering$.getValue(),d=s===chrome.cast.media.PlayerState.BUFFERING;switch(o!==d&&this.params.output.isBuffering$.next(d),s){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&a.duration-a.currentTime<Yo&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),T(this.params.desiredState.playbackState,"stopped");break;case chrome.cast.media.PlayerState.PAUSED:{this.handleRemotePause();break}case chrome.cast.media.PlayerState.PLAYING:this.handleRemotePlay();break;case chrome.cast.media.PlayerState.BUFFERING:break;default:At(s)}}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({volume:r.value})}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({muted:r.value})});let i=us(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,Ho(["init"])).pipe(as(0));t(i,this.syncPlayback)}restoreSession(e){this.log({message:"restoreSession"});let{remotePlayer:t}=this.params.connection;if(e.playerState!==chrome.cast.media.PlayerState.IDLE){t.isPaused?(this.videoState.setState("paused"),T(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),T(this.params.desiredState.playbackState,"playing"));let i=this.params.output.isLive$.getValue();this.params.output.duration$.next(i?0:t.duration),this.params.output.position$.next(i?0:t.currentTime),this.params.desiredState.seekState.setState({state:"none"})}}prepare(){let e=this.params.format;this.log({message:`[prepare] format: ${e}`});let t=this.createMediaInfo(e),i=this.createLoadRequest(t);this.loadMedia(i)}handleRemotePause(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="paused"||e==="playing")&&(this.videoState.setState("paused"),T(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),T(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&T(this.params.desiredState.playbackState,"ready")}handleRemoteStop(){this.videoState.getState()!=="stopped"&&this.videoState.setState("stopped")}handleRemoteVolumeChange(e){let t=this.params.output.volume$.getValue(),i={volume:e.volume??t.volume,muted:e.muted??t.muted};(i.volume!==t.volume||i.muted!==i.muted)&&this.params.output.volume$.next(i)}seek(e){this.params.output.willSeekEvent$.next();let{remotePlayer:t,remotePlayerController:i}=this.params.connection;t.currentTime=e,i.seek()}stop(){let{remotePlayerController:e}=this.params.connection;e.stop()}createMediaInfo(e){let t=this.params.source,i,r,a;switch(e){case"MPEG":{let u=t[e];dt(u);let c=Go(Object.keys(u));dt(c);let l=u[c];dt(l),i=l,r="video/mp4",a=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let u=t[e];dt(u),i=u.url,r="application/x-mpegurl",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":{let u=t[e];dt(u),i=u.url,r="application/dash+xml",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let u=t[e];dt(u),i=u.url,r="application/dash+xml",a=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let u=t[e];dt(u),i=q(u.url),r="application/x-mpegurl",a=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let u="Unsupported format for Chromecast",c=new Error(u);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:ss.VIDEO_PIPELINE,message:u,thrown:c}),c}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return At(e)}let s=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,r);s.contentUrl=i,s.streamType=a,s.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:d}=this.params.meta;return ns(o)&&(s.metadata.title=o),ns(d)&&(s.metadata.subtitle=d),s}createLoadRequest(e){let t=new chrome.cast.media.LoadRequest(e);t.autoplay=!1;let i=this.params.desiredState.seekState.getState();return i.state==="applying"||i.state==="requested"?t.currentTime=this.params.output.isLive$.getValue()?0:i.position/1e3:t.currentTime=0,t}loadMedia(e){let t=this.params.connection.session.loadMedia(e),i=new Promise((r,a)=>{this.loadMediaTimeoutSubscription.add(jo(ds).subscribe(()=>a(`timeout(${ds})`)))});Promise.race([t,i]).then(()=>{this.log({message:`[loadMedia] completed, format: ${this.params.format}`}),this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.handleRemoteReady()},r=>{let a=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${r}`;this.log({message:a}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:ss.VIDEO_PIPELINE,message:a,thrown:r})}).finally(()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as cs}from"@vkontakte/videoplayer-shared";import{clearVideoElement as zo}from"@vkontakte/videoplayer-shared";var ls=n=>{try{n.pause(),n.playbackRate=0,zo(n),n.remove()}catch(e){console.error(e)}};import{fromEvent as Ko,Subscription as Jo}from"@vkontakte/videoplayer-shared";var Yr=class{constructor(){this.attribute="data-pool-reused"}get(e){return e.hasAttribute(this.attribute)}set(e,t){e.toggleAttribute(this.attribute,t)}delete(e){e.removeAttribute(this.attribute)}},qr=window.WeakMap?new WeakMap:new Yr,zr=window.WeakMap?new WeakMap:new Map,Xo=(n,e=20)=>{let t=0;return Ko(n,"ratechange").subscribe(i=>{t++,t>=e&&(n.currentTime=n.currentTime,t=0)})},te=(n,{audioVideoSyncRate:e})=>{let t=n.querySelector("video"),i=!!t;t?cs(t):(t=document.createElement("video"),n.appendChild(t)),qr.set(t,i);let r=new Jo;return r.add(Xo(t,e)),zr.set(t,r),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},ie=n=>{zr.get(n)?.unsubscribe(),zr.delete(n);let t=qr.get(n);qr.delete(n),t?cs(n):ls(n)};import{assertNonNullable as Gt,isNonNullable as De,isNullable as tu,fromEvent as Pt,merge as ps,observableFrom as hs,filterChanged as ms,map as Wt,Subject as fs,Subscription as iu,ValueSubject as ru,ErrorCategory as au}from"@vkontakte/videoplayer-shared";import{isNonNullable as Kr,isNullable as Zo,Subscription as eu}from"@vkontakte/videoplayer-shared";var tr=(n,e,t,{equal:i=(s,o)=>s===o,changed$:r,onError:a}={})=>{let s=n.getState(),o=e(),d=Zo(r),u=new eu;return r&&u.add(r.subscribe(c=>{let l=n.getState();i(c,l)&&n.setState(c)},a)),i(o,s)||(t(s),d&&n.setState(s)),u.add(n.stateChangeStarted$.subscribe(c=>{t(c.to),d&&n.setState(c.to)},a)),u},Re=(n,e,t)=>tr(e,()=>n.loop,i=>{Kr(i)&&(n.loop=i)},{onError:t}),re=(n,e,t,i)=>tr(e,()=>({muted:n.muted,volume:n.volume}),r=>{Kr(r)&&(n.muted=r.muted,n.volume=r.volume)},{equal:(r,a)=>r===a||r?.muted===a?.muted&&r?.volume===a?.volume,changed$:t,onError:i}),fe=(n,e,t,i)=>tr(e,()=>n.playbackRate,r=>{Kr(r)&&(n.playbackRate=r)},{changed$:t,onError:i}),qe=tr;var su=n=>["__",n.language,n.label].join("|"),nu=(n,e)=>{if(n.id===e)return!0;let[t,i,r]=e.split("|");return n.language===i&&n.label===r},Jr=class n{constructor(){this.available$=new fs;this.current$=new ru(void 0);this.error$=new fs;this.subscription=new iu;this.externalTracks=new Map;this.internalTracks=new Map}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let r=a=>{this.error$.next({id:"TextTracksManager",category:au.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:a})};this.subscription.add(this.available$.subscribe(i.availableTextTracks$)),this.subscription.add(this.current$.subscribe(i.currentTextTrack$)),this.subscription.add(this.error$.subscribe(i.error$)),this.subscription.add(qe(t.internalTextTracks,()=>Object.values(this.internalTracks),a=>{De(a)&&this.setInternal(a)},{equal:(a,s)=>De(a)&&De(s)&&a.length===s.length&&a.every(({id:o},d)=>o===s[d].id),changed$:this.available$.pipe(Wt(a=>a.filter(({type:s})=>s==="internal"))),onError:r})),this.subscription.add(qe(t.externalTextTracks,()=>Object.values(this.externalTracks),a=>{De(a)&&this.setExternal(a)},{equal:(a,s)=>De(a)&&De(s)&&a.length===s.length&&a.every(({id:o},d)=>o===s[d].id),changed$:this.available$.pipe(Wt(a=>a.filter(({type:s})=>s==="external"))),onError:r})),this.subscription.add(qe(t.currentTextTrack,()=>{if(this.video)return;let a=this.htmlTextTracksAsArray().find(({mode:s})=>s==="showing");return a&&this.htmlTextTrackToITextTrack(a).id},a=>this.select(a),{changed$:this.current$,onError:r})),this.subscription.add(qe(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let a of this.htmlTextTracksAsArray())this.applyCueSettings(a.cues),this.applyCueSettings(a.activeCues)}))}subscribe(){Gt(this.video);let{textTracks:e}=this.video;this.subscription.add(Pt(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(ps(Pt(e,"addtrack"),Pt(e,"removetrack"),hs(["init"])).pipe(Wt(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),ms((i,r)=>i.length===r.length&&i.every(({id:a},s)=>a===r[s].id))).subscribe(this.available$)),this.subscription.add(ps(Pt(e,"change"),hs(["init"])).pipe(Wt(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),Wt(i=>i&&this.htmlTextTrackToITextTrack(i).id),ms()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(Pt(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let r=a=>{let s=a.target?.cues??null;s&&s.length&&(this.applyCueSettings(a.target?.cues??null),a.target?.removeEventListener("cuechange",r))};i.track?.addEventListener("cuechange",r)})),this.subscription.add(Pt(e,"removetrack").subscribe(i=>{i.track?.removeEventListener("cuechange",t)}))}applyCueSettings(e){if(!e||!e.length)return;let t=this.cueSettings.getState();for(let i of Array.from(e)){let r=i;De(t.align)&&(r.align=t.align),De(t.position)&&(r.position=t.position),De(t.size)&&(r.size=t.size),De(t.line)&&(r.line=t.line)}}htmlTextTracksAsArray(e=!1){Gt(this.video);let t=[...this.video.textTracks];return e?t:t.filter(n.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,r=e.id?e.id:su(e),a=this.externalTracks.has(r),s=r.includes("auto");return a?{id:r,type:"external",isAuto:s,language:t,label:i,url:this.externalTracks.get(r)?.url}:{id:r,type:"internal",isAuto:s,language:t,label:i,url:this.internalTracks.get(r)?.url}}static isHealthyTrack(e){return!(e.kind==="metadata"||e.groupId||e.id===""&&e.label===""&&e.language==="")}setExternal(e){this.internalTracks.size>0&&Array.from(this.internalTracks).forEach(([,t])=>this.detach(t)),e.filter(({id:t})=>!this.externalTracks.has(t)).forEach(t=>this.attach(t)),Array.from(this.externalTracks).filter(([t])=>!e.find(i=>i.id===t)).forEach(([,t])=>this.detach(t))}setInternal(e){let t=[...this.externalTracks];e.filter(({id:i,language:r,isAuto:a})=>!this.internalTracks.has(i)&&!t.some(([,s])=>s.language===r&&s.isAuto===a)).forEach(i=>this.attach(i)),Array.from(this.internalTracks).filter(([i])=>!e.find(r=>r.id===i)).forEach(([,i])=>this.detach(i))}select(e){Gt(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(tu(e)||!nu(t,e))&&(t.mode="disabled")}destroy(){if(this.subscription.unsubscribe(),this.video)for(let e of Array.from(this.video.getElementsByTagName("track"))){let t=e.getAttribute("id");t&&this.externalTracks.has(t)&&this.video.removeChild(e)}this.externalTracks.clear()}attach(e){Gt(this.video);let t=document.createElement("track");t.setAttribute("src",e.url),t.setAttribute("id",e.id),e.label&&t.setAttribute("label",e.label),e.language&&t.setAttribute("srclang",e.language),e.type==="external"?this.externalTracks.set(e.id,e):e.type==="internal"&&this.internalTracks.set(e.id,e),this.video.appendChild(t)}detach(e){Gt(this.video);let t=Array.prototype.find.call(this.video.getElementsByTagName("track"),i=>i.getAttribute("id")===e.id);t&&this.video.removeChild(t),e.type==="external"?this.externalTracks.delete(e.id):e.type==="internal"&&this.internalTracks.delete(e.id)}},be=Jr;var Ne=class{constructor(){this.pausedTime=0;this.streamOffset=0;this.pauseTimestamp=0}getTotalPausedTime(){return this.pausedTime+this.getCurrentPausedTime()}getCurrentPausedTime(){return this.pauseTimestamp>0?Date.now()-this.pauseTimestamp:0}getStreamOffset(){return this.streamOffset}getTotalOffset(){return this.getTotalPausedTime()+this.streamOffset}pause(){this.pauseTimestamp===0&&(this.pauseTimestamp=Date.now())}resume(){this.pauseTimestamp>0&&(this.pausedTime+=this.getCurrentPausedTime(),this.pauseTimestamp=0)}resetTo(e,t=!1){this.streamOffset=e,this.pauseTimestamp=0,this.pausedTime=0,t&&this.pause()}};var bs=n=>{let e=n;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Xr=n=>{let e=bs(n);return!!(e&&e.fullscreenElement&&e.fullscreenElement===n)},gs=n=>{let e=bs(n);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===n)};import{fromEvent as ge,map as ze,merge as vs,filterChanged as uu,isNonNullable as ys,Subject as du,filter as Ts,mapTo as Is,combine as lu,once as cu,ErrorCategory as pu,ValueSubject as Es,clientChecker as hu}from"@vkontakte/videoplayer-shared";var ou=3,Ss=(n,e,t=ou)=>{let i=0,r=0;for(let a=0;a<n.length;a++){let s=n.start(a),o=n.end(a);if(s<=e&&e<=o){if(i=s,r=o,!t)return{from:i,to:r};for(let d=a-1;d>=0;d--)n.end(d)+t>=i&&(i=n.start(d));for(let d=a+1;d<n.length;d++)n.start(d)-t<=r&&(r=n.end(d))}}return{from:i,to:r}};var ae=n=>{let e=v=>ge(n,v).pipe(Is(void 0)),i=vs(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(v=>ge(n,v))).pipe(ze(v=>v.type==="ended"?n.readyState<2:n.readyState<3),uu()),r=vs(ge(n,"progress"),ge(n,"timeupdate")).pipe(ze(()=>Ss(n.buffered,n.currentTime))),a=hu.isSafari?lu({play:e("play").pipe(cu()),playing:e("playing")}).pipe(Is(void 0)):e("playing"),s=ge(n,"volumechange").pipe(ze(()=>({muted:n.muted,volume:n.volume}))),o=ge(n,"ratechange").pipe(ze(()=>n.playbackRate)),d=ge(n,"error").pipe(Ts(()=>!!(n.error||n.played.length)),ze(()=>{let v=n.error;return{id:v?`MediaError#${v.code}`:"HtmlVideoError",category:pu.VIDEO_PIPELINE,message:v?v.message:"Error event from HTML video element",thrown:n.error??void 0}})),u=ge(n,"timeupdate").pipe(ze(()=>n.currentTime)),c=new du,l=.3,p;u.subscribe(v=>{n.loop&&ys(p)&&ys(v)&&p>=n.duration-l&&v<=l&&c.next(p),p=v});let h=e("pause").pipe(Ts(()=>!n.error&&p!==n.duration)),m=ge(n,"enterpictureinpicture"),f=ge(n,"leavepictureinpicture"),S=new Es(gs(n));m.subscribe(()=>S.next(!0)),f.subscribe(()=>S.next(!1));let P=new Es(Xr(n));return ge(n,"fullscreenchange").pipe(ze(()=>Xr(n))).subscribe(P),{playing$:a,pause$:h,canplay$:e("canplay"),ended$:e("ended"),looped$:c,error$:d,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:u,durationChange$:ge(n,"durationchange").pipe(ze(()=>n.duration)),isBuffering$:i,currentBuffer$:r,volumeState$:s,playbackRateState$:o,inPiP$:S,inFullscreen$:P}};import{VideoQuality as Ke}from"@vkontakte/videoplayer-shared";var Je=n=>{switch(n){case"mobile":return Ke.Q_144P;case"lowest":return Ke.Q_240P;case"low":return Ke.Q_360P;case"sd":case"medium":return Ke.Q_480P;case"hd":case"high":return Ke.Q_720P;case"fullhd":case"full":return Ke.Q_1080P;case"quadhd":case"quad":return Ke.Q_1440P;case"ultrahd":case"ultra":return Ke.Q_2160P}};import{isNonNullable as se,isNullable as ea,now as Ms,isHigher as ta,isHigherOrEqual as Ps,isInvariantQuality as ws,isLower as ia,isLowerOrEqual as $s,videoSizeToQuality as mu,assertNotEmptyArray as Rs,assertNonNullable as fu}from"@vkontakte/videoplayer-shared";var Zr=!1,_e={},xs=n=>{Zr=n},ks=()=>{_e={}},As=n=>{n(_e)},Yt=(n,e)=>{Zr&&(_e.meta=_e.meta??{},_e.meta[n]=e)},X=class{constructor(e){this.name=e}next(e){if(!Zr)return;_e.series=_e.series??{};let t=_e.series[this.name]??[];t.push([Date.now(),e]),_e.series[this.name]=t}};var bu=new X("best_bitrate"),Ds=(n,e,t)=>(e-t)*Math.pow(2,-10*n)+t;var ra=n=>(e,t)=>n*(Number(e.bitrate)-Number(t.bitrate)),qt=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=Ms()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},Cs='Assertion "ABR Tracks is empty array" failed',ir=(n,e,t,i)=>{let r=[...e].sort(ra(1)),a=[...t].sort(ra(1)),s=a.filter(d=>se(d.bitrate)&&se(n.bitrate)?n.bitrate/d.bitrate>i:!0),o=a.at(Math.round(a.length*r.indexOf(n)/(r.length+1)))??a.at(-1);return o&&s.includes(o)?o:s.length?s.at(-1):a.at(0)},Ls=n=>"quality"in n,Bs=(n,e,t,i)=>{let r=t&&i&&i.history[t.id]&&Ms()-i.history[t.id]<=n.trackCooldown&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!r&&i.recordSelection(t),r&&i?.last){let a=i.last;i?.recordSwitch(a);let s=Ls(a)?"video":"audio",o=Ls(a)?a.quality:a.bitrate;return e({message:`
7
7
  [last ${s} selected] ${o}
8
8
  `}),a}return i?.recordSwitch(t),t},Xe=(n,{container:e,throughput:t,tuning:i,limits:r,reserve:a=0,forwardBufferHealth:s,playbackRate:o,current:d,history:u,visible:c,droppedVideoMaxQualityLimit:l,abrLogger:p})=>{Rs(n,Cs);let h=window.devicePixelRatio??1,m=i.usePixelRatio?i.pixelRatioMultiplier*(h-1)+1:1,f=i.limitByContainer&&e&&e.width>0&&e.height>0&&{width:e.width*m*i.containerSizeFactor,height:e.height*m*i.containerSizeFactor},S=f&&mu(f),P=i.considerPlaybackRate&&se(o)?o:1,M=n.filter(g=>!ws(g.quality)).sort((g,A)=>ta(g.quality,A.quality)?-1:1),v=M.at(-1)?.quality,b=M.at(0)?.quality,y=ea(r)||se(r.min)&&se(r.max)&&ia(r.max,r.min)||se(r.min)&&b&&ta(r.min,b)||se(r.max)&&v&&ia(r.max,v),k=P*Ds(s??.5,i.bitrateFactorAtEmptyBuffer,i.bitrateFactorAtFullBuffer),w={},V=M.filter(g=>{if(!(S?ia(g.quality,S):!0))return w[g.quality]="FitsContainer",!1;if(!(se(t)&&isFinite(t)&&se(g.bitrate)?t-a>=g.bitrate*k:!0))return w[g.quality]="FitsThroughput",!1;if(i.lazyQualitySwitch&&se(i.minBufferToSwitchUp)&&d&&!ws(d.quality)&&(s??0)<i.minBufferToSwitchUp&&ta(g.quality,d.quality))return w[g.quality]="Buffer",!1;if(!!l&&Ps(g.quality,l))return w[g.quality]="DroppedFramesLimit",!1;let I=y||(ea(r.max)||$s(g.quality,r.max))&&(ea(r.min)||Ps(g.quality,r.min)),x=se(c)&&!c?$s(g.quality,i.backgroundVideoQualityLimit):!0;return!I||!x?(w[g.quality]="FitsQualityLimits",!1):!0})[0];V&&V.bitrate&&bu.next(V.bitrate);let O=V??M[Math.ceil((M.length-1)/2)]??n[0];return O.quality!==u?.last?.quality&&p({message:`
9
9
  [VIDEO TRACKS ABR]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/videoplayer-core",
3
- "version": "2.0.114-dev.478b25ab.0",
3
+ "version": "2.0.114-dev.4cbe9ebd.0",
4
4
  "author": "vk.com",
5
5
  "description": "Videoplayer core library based on the vk.com platform",
6
6
  "homepage": "https://vk.com",
@@ -49,7 +49,7 @@
49
49
  "**/*.d.ts"
50
50
  ],
51
51
  "dependencies": {
52
- "@vkontakte/videoplayer-shared": "1.0.46-dev.889d294f.0",
52
+ "@vkontakte/videoplayer-shared": "1.0.46-dev.4afb3701.0",
53
53
  "hls.js": "~1.4.7"
54
54
  }
55
55
  }