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