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